diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 9f9a0bf36..7fa32fc56 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -7,6 +7,7 @@ ABOUT_TAB_RELEASENOTES;Notes de la versió ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Restaura predeterminats BATCHQUEUE_AUTOSTART;Auto engega +BATCHQUEUE_AUTOSTARTHINT;Inicia processat automàticament en rebre un nou treball BATCH_PROCESSING;Processament per lots CURVEEDITOR_CURVE;Corba CURVEEDITOR_CURVES;Corbes @@ -148,12 +149,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Mostra imatges no recentment desades.\nDrec FILEBROWSER_SHOWTRASHHINT;Veure què hi ha a la paperera.\nDrecera: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Mostra imatges sense etiqueta de color.\nDrecera: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Mostra imatges sense rang.\nDrecera: 0 -FILEBROWSER_STARTPROCESSING;Inicia procés -FILEBROWSER_STARTPROCESSINGHINT;Inicia el processament de les imatges de la cua -FILEBROWSER_STOPPROCESSING;Atura processament -FILEBROWSER_STOPPROCESSINGHINT;Atura processament d'imatges de la cua FILEBROWSER_THUMBSIZE;Tamany minifoto -FILEBROWSER_TOOLTIP_STOPPROCESSING;Inicia processat automàticament en rebre un nou treball FILEBROWSER_ZOOMINHINT;Engrandir minifoto.\nDrecera: + FILEBROWSER_ZOOMOUTHINT;Reduïr minifoto.\nDrecera: - GENERAL_ABOUT;Respecte a @@ -955,6 +951,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !!!!!!!!!!!!!!!!!!!!!!!!! !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1421,6 +1418,12 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 52b7da85b..b829a3d34 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -168,10 +168,6 @@ FILEBROWSER_SHOWRANK5HINT;显示5星图片 FILEBROWSER_SHOWRECENTLYSAVEDHINT;显示保存的图片\n快捷: Alt-7 FILEBROWSER_SHOWTRASHHINT;显示垃圾箱内容 FILEBROWSER_SHOWUNRANKHINT;显示未评星图片 -FILEBROWSER_STARTPROCESSING;开始处理 -FILEBROWSER_STARTPROCESSINGHINT;开始处理或保存队列中的图片 -FILEBROWSER_STOPPROCESSING;停止处理 -FILEBROWSER_STOPPROCESSINGHINT;停止处理图片 FILEBROWSER_THUMBSIZE;缩略图大小 FILEBROWSER_ZOOMINHINT;增大缩略图 FILEBROWSER_ZOOMOUTHINT;减小缩略图 @@ -1030,6 +1026,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1062,7 +1060,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. @@ -1490,6 +1487,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index b39738e4d..fde7f4fde 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -3,6 +3,7 @@ ADJUSTER_RESET_TO_DEFAULT;重置預設參數 BATCHQUEUE_AUTOSTART;Auto start +BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives CURVEEDITOR_LINEAR;線性 CURVEEDITOR_LOADDLGLABEL;正載入曲線... CURVEEDITOR_SAVEDLGLABEL;正儲存曲線... @@ -60,12 +61,7 @@ FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star FILEBROWSER_SHOWTRASHHINT;Show content of the trash FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_STARTPROCESSING;Start Processing -FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue -FILEBROWSER_STOPPROCESSING;Stop processing -FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives FILEBROWSER_ZOOMINHINT;Increase thumbnail size FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size GENERAL_ABOUT;關於 @@ -435,6 +431,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -1155,6 +1152,12 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 30f946c1a..e81f2c046 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -47,6 +47,7 @@ ABOUT_TAB_RELEASENOTES;Poznámky k vydání ABOUT_TAB_SPLASH;Úvodní obrazovka ADJUSTER_RESET_TO_DEFAULT;Vrátit se k původnímu BATCHQUEUE_AUTOSTART;Automatický start +BATCHQUEUE_AUTOSTARTHINT;Automatické spuštění zpracování po vložení nové úlohy. BATCHQUEUE_DESTFILENAME;Cesta a název souboru BATCH_PROCESSING;Dávkové zpracování CURVEEDITOR_AXIS_IN;Vstup: @@ -235,12 +236,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Ukázat neuložené obrázky.\nZkratka: FILEBROWSER_SHOWTRASHHINT;Ukázat obsah koše.\nZkratka: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Ukázat obrázky bez barevného štítku.\nZkratka: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Ukázat nehodnocené obrázky.\nZkratka: 0 -FILEBROWSER_STARTPROCESSING;Spustit zpracování -FILEBROWSER_STARTPROCESSINGHINT;Spustit zpracování obrázků ve frontě.\n\nZkratka: Ctrl+s -FILEBROWSER_STOPPROCESSING;Zastavit zpracovávaní -FILEBROWSER_STOPPROCESSINGHINT;Zastavit zpracování obrázků ve frontě.\n\nZkratka: Ctrl+s FILEBROWSER_THUMBSIZE;Velikost náhledu -FILEBROWSER_TOOLTIP_STOPPROCESSING;Automatické spuštění zpracování po vložení nové úlohy. FILEBROWSER_UNRANK_TOOLTIP;Zrušit hodnocení.\nZkratka: Shift - 0 FILEBROWSER_ZOOMINHINT;Zvětšit velikosti náhledů.\n\nZkratky:\n+ - režim více karet editoru,\nAlt-+ - režim jedné karty editoru. FILEBROWSER_ZOOMOUTHINT;Zmenšit velikosti náhledů.\n\nZkratky:\n- - režim více karet editoru,\nAlt-- - režim jedné karty editoru. @@ -2208,6 +2204,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !GENERAL_SLIDER;Slider !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -2221,6 +2218,12 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !HISTORY_MSG_LOCALCONTRAST_RADIUS;Local Contrast - Radius !HISTORY_MSG_METADATA_MODE;Metadata copy mode !PARTIALPASTE_LOCALCONTRAST;Local contrast +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_EDITORCMDLINE;Custom command line !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. !TP_DIRPYRDENOISE_LABEL;Noise Reduction diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 1a61b82f3..e5f193f6c 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Vis billeder vurderet med 4 stjerner FILEBROWSER_SHOWRANK5HINT;Vis billeder vurderet med 5 stjerner FILEBROWSER_SHOWTRASHHINT;Vis indhold i papirkurven FILEBROWSER_SHOWUNRANKHINT;Vis billeder uden vurdering -FILEBROWSER_STARTPROCESSING;Begynd bearbejdning -FILEBROWSER_STARTPROCESSINGHINT;Begynd at bearbejde/gemme billeder i køen -FILEBROWSER_STOPPROCESSING;Stop bearbejdning -FILEBROWSER_STOPPROCESSINGHINT;Stop bearbejdningen af billeder FILEBROWSER_THUMBSIZE;Miniaturestr. FILEBROWSER_ZOOMINHINT;Gør miniaturer større FILEBROWSER_ZOOMOUTHINT;Gør miniaturer mindre @@ -426,7 +422,9 @@ TP_WBALANCE_TEMPERATURE;Temperatur !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -557,7 +555,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1153,6 +1150,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index eb390b5bf..1daaa9119 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -56,6 +56,7 @@ ABOUT_TAB_RELEASENOTES;Versionshinweise ABOUT_TAB_SPLASH;Startbild ADJUSTER_RESET_TO_DEFAULT;Standard wiederherstellen BATCHQUEUE_AUTOSTART;Automatisch starten +BATCHQUEUE_AUTOSTARTHINT;Bei neuem Job die Verarbeitung automatisch starten BATCHQUEUE_DESTFILENAME;Pfad und Dateiname BATCH_PROCESSING;Stapelverarbeitung CURVEEDITOR_AXIS_IN;x: @@ -244,12 +245,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Nur nicht gespeicherte Bilder anzeigen\nTas FILEBROWSER_SHOWTRASHHINT;Inhalt des Papierkorbs anzeigen\nTaste: Strg + t FILEBROWSER_SHOWUNCOLORHINT;Nur unmarkierte Bilder anzeigen\nTaste: Alt + 0 FILEBROWSER_SHOWUNRANKHINT;Nur unbewertete Bilder anzeigen\nTaste: 0 -FILEBROWSER_STARTPROCESSING;Verarbeitung starten -FILEBROWSER_STARTPROCESSINGHINT;Verarbeitung und Speicherung der\nBilder starten.\nTaste: Strg + s -FILEBROWSER_STOPPROCESSING;Verarbeitung stoppen -FILEBROWSER_STOPPROCESSINGHINT;Verarbeitung der Bilder abbrechen.\nTaste: Strg + s FILEBROWSER_THUMBSIZE;Miniaturbildgröße -FILEBROWSER_TOOLTIP_STOPPROCESSING;Bei neuem Job die Verarbeitung automatisch starten FILEBROWSER_UNRANK_TOOLTIP;Bewertung entfernen\nTaste: Umschalt + 0 FILEBROWSER_ZOOMINHINT;Miniaturbilder vergrößern\n\nIm Multi-Reitermodus:\nTaste: +\nIm Ein-Reitermodus:\nTaste: Alt + FILEBROWSER_ZOOMOUTHINT;Miniaturbilder verkleinern\n\nIm Multi-Reitermodus:\nTaste: -\nIm Ein-Reitermodus:\nTaste: Alt - @@ -2230,12 +2226,19 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !GENERAL_SLIDER;Slider !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space !HISTORY_MSG_256;NR - Median - Type !HISTORY_MSG_297;NR - Mode !HISTORY_MSG_METADATA_MODE;Metadata copy mode +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_EDITORCMDLINE;Custom command line !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. !TP_DIRPYRDENOISE_LABEL;Noise Reduction diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index acd3a09e2..7d28deffa 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -117,7 +117,9 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !ABOUT_TAB_SPLASH;Splash !ADJUSTER_RESET_TO_DEFAULT;Reset to default !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -301,12 +303,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWTRASHHINT;Show contents of trash.\nShortcut: Ctrl-t !FILEBROWSER_SHOWUNRANKHINT;Show unranked images.\nShortcut: 0 -!FILEBROWSER_STARTPROCESSING;Start processing -!FILEBROWSER_STARTPROCESSINGHINT;Start processing the images in the queue.\n\nShortcut: Ctrl+s -!FILEBROWSER_STOPPROCESSING;Stop processing -!FILEBROWSER_STOPPROCESSINGHINT;Stop processing the images in the queue.\n\nShortcut: Ctrl+s !FILEBROWSER_THUMBSIZE;Thumbnail size -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILEBROWSER_ZOOMINHINT;Increase thumbnail size.\n\nShortcuts:\n+ - Multiple Editor Tabs Mode,\nAlt-+ - Single Editor Tab Mode. !FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size.\n\nShortcuts:\n- - Multiple Editor Tabs Mode,\nAlt-- - Single Editor Tab Mode. @@ -1049,6 +1046,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 0dfbba9e4..9173517cf 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -10,7 +10,9 @@ !ABOUT_TAB_SPLASH;Splash !ADJUSTER_RESET_TO_DEFAULT;Reset to default !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -198,12 +200,7 @@ !FILEBROWSER_SHOWTRASHHINT;Show contents of trash.\nShortcut: Ctrl-t !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_SHOWUNRANKHINT;Show unranked images.\nShortcut: 0 -!FILEBROWSER_STARTPROCESSING;Start processing -!FILEBROWSER_STARTPROCESSINGHINT;Start processing the images in the queue.\n\nShortcut: Ctrl+s -!FILEBROWSER_STOPPROCESSING;Stop processing -!FILEBROWSER_STOPPROCESSINGHINT;Stop processing the images in the queue.\n\nShortcut: Ctrl+s !FILEBROWSER_THUMBSIZE;Thumbnail size -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILEBROWSER_ZOOMINHINT;Increase thumbnail size.\n\nShortcuts:\n+ - Multiple Editor Tabs Mode,\nAlt-+ - Single Editor Tab Mode. !FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size.\n\nShortcuts:\n- - Multiple Editor Tabs Mode,\nAlt-- - Single Editor Tab Mode. @@ -977,6 +974,12 @@ !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index c739ce2f6..1973c1bcc 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -68,6 +68,7 @@ ABOUT_TAB_RELEASENOTES;Notas de la versión ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Restablece los valores predeterminados BATCHQUEUE_AUTOSTART;Inicio automático +BATCHQUEUE_AUTOSTARTHINT;Iniciar automáticamente el procesamiento en cuanto llega un nuevo trabajo BATCHQUEUE_DESTFILENAME;Ruta y nombre del archivo BATCH_PROCESSING;Proceso por lotes CURVEEDITOR_CURVE;Curva @@ -230,12 +231,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Mostrar imágenes no guardadas recientement FILEBROWSER_SHOWTRASHHINT;Mostrar el contenido de la papelera.\nAtajo: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Mostrar imágenes sin etiqueta de color.\nAtajo: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Mostrar imágenes sin rango.\nAtajo: 0 -FILEBROWSER_STARTPROCESSING;Iniciar procesamiento -FILEBROWSER_STARTPROCESSINGHINT;Iniciar el procesamiento de imágenes en la cola -FILEBROWSER_STOPPROCESSING;Parar procesamiento -FILEBROWSER_STOPPROCESSINGHINT;Parar el procesamiento de imágenes en la cola FILEBROWSER_THUMBSIZE;Tamaño miniatura -FILEBROWSER_TOOLTIP_STOPPROCESSING;Iniciar automáticamente el procesamiento en cuanto llega un nuevo trabajo FILEBROWSER_UNRANK_TOOLTIP;Sin Rango\nAtajoShift - 0 FILEBROWSER_ZOOMINHINT;Agrandar miniatura.\nAtajo: +\n\nAtajo en modo editor simple: Alt-+ FILEBROWSER_ZOOMOUTHINT;Reducir miniatura.\nAtajo: -\n\nAtajo en modo editor simple: Alt-- @@ -1491,6 +1487,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1784,6 +1781,12 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index d97b1865b..0fd7866a6 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star FILEBROWSER_SHOWTRASHHINT;Show content of the trash FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_STARTPROCESSING;Start Processing -FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue -FILEBROWSER_STOPPROCESSING;Stop processing -FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images FILEBROWSER_THUMBSIZE;Thumb. size FILEBROWSER_ZOOMINHINT;Increase thumbnail size FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size @@ -426,7 +422,9 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -557,7 +555,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1153,6 +1150,12 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 7d0ce60b8..3def47d59 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -7,6 +7,7 @@ ABOUT_TAB_RELEASENOTES;Notes de version ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Réglages par défaut BATCHQUEUE_AUTOSTART;Démarrage auto +BATCHQUEUE_AUTOSTARTHINT;Démarrer automatiquement le traitement à l'arrivée d'une nouvelle tâche BATCHQUEUE_DESTFILENAME;Chemin et nom de fichier BATCH_PROCESSING;Traitement par lot CURVEEDITOR_AXIS_IN;E: @@ -195,12 +196,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT; Afficher les images non sauvegardées réc FILEBROWSER_SHOWTRASHHINT;Voir le contenu de la corbeille\nRaccourci: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Afficher les images sans label de couleur\nRaccourci: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Voir les images sans étoile\nRaccourci: 0 -FILEBROWSER_STARTPROCESSING;Démarrer le traitement -FILEBROWSER_STARTPROCESSINGHINT;Démarre le traitement/sauvegarde des images dans la file -FILEBROWSER_STOPPROCESSING;Arrêter le traitement -FILEBROWSER_STOPPROCESSINGHINT;Arrête le traitement des images FILEBROWSER_THUMBSIZE;Taille vign. -FILEBROWSER_TOOLTIP_STOPPROCESSING;Démarrer automatiquement le traitement à l'arrivée d'une nouvelle tâche FILEBROWSER_UNRANK_TOOLTIP;Effacer le rang\nRaccourci: Shift-0 FILEBROWSER_ZOOMINHINT;Augmenter la taille des vignettes.\nRaccourci: +\n\nRaccourcis dans le mode Éditeur Unique: Alt-+ FILEBROWSER_ZOOMOUTHINT;Diminuer la taille des vignettes.\nRaccourci: -\n\nRaccourcis dans le mode Éditeur Unique: Alt-- @@ -2167,6 +2163,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !GENERAL_SLIDER;Slider !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -2182,6 +2179,12 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !HISTORY_MSG_LOCALCONTRAST_RADIUS;Local Contrast - Radius !HISTORY_MSG_METADATA_MODE;Metadata copy mode !PARTIALPASTE_LOCALCONTRAST;Local contrast +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_EDITORCMDLINE;Custom command line !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. !TP_DIRPYRDENOISE_LABEL;Noise Reduction diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index f285260bf..3051bd490 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star FILEBROWSER_SHOWTRASHHINT;Show content of the trash FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_STARTPROCESSING;Start Processing -FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue -FILEBROWSER_STOPPROCESSING;Stop processing -FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images FILEBROWSER_THUMBSIZE;Thumb. size FILEBROWSER_ZOOMINHINT;Increase thumbnail size FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size @@ -425,7 +421,9 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -556,7 +554,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1152,6 +1149,12 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index 9c18d073a..5fe10c54c 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star FILEBROWSER_SHOWTRASHHINT;Show content of the trash FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_STARTPROCESSING;Start Processing -FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue -FILEBROWSER_STOPPROCESSING;Stop processing -FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images FILEBROWSER_THUMBSIZE;Thumb. size FILEBROWSER_ZOOMINHINT;Increase thumbnail size FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size @@ -426,7 +422,9 @@ TP_WBALANCE_TEMPERATURE;מידת חום !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -557,7 +555,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1153,6 +1150,12 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index b76058f76..2da39b47b 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -11,6 +11,7 @@ ABOUT_TAB_RELEASENOTES;Note di rilascio ABOUT_TAB_SPLASH;Emblema ADJUSTER_RESET_TO_DEFAULT;Ripristina BATCHQUEUE_AUTOSTART;Autoavvia +BATCHQUEUE_AUTOSTARTHINT;Inizia a sviluppare automaticamente quando un nuovo lavoro viene accodato BATCHQUEUE_DESTFILENAME;Percorso e nome file BATCH_PROCESSING;Sviluppo in serie CURVEEDITOR_CURVE;Curva @@ -174,12 +175,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Mostra le immagini non salvate.\nScorciatoi FILEBROWSER_SHOWTRASHHINT;Mostra il contenuto del cestino.\nScorciatoia: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Mostra le immagini senza etichetta colorata.\nScorciatoia: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Mostra le immagini non classificate.\nScorciatoia: 0 -FILEBROWSER_STARTPROCESSING;Comincia a sviluppare -FILEBROWSER_STARTPROCESSINGHINT;Inizia a sviluppare le immagini nella Coda. -FILEBROWSER_STOPPROCESSING;Ferma lo sviluppo -FILEBROWSER_STOPPROCESSINGHINT;Ferma lo sviluppo delle immagini nella Coda. FILEBROWSER_THUMBSIZE;Dimensione miniature -FILEBROWSER_TOOLTIP_STOPPROCESSING;Inizia a sviluppare automaticamente quando un nuovo lavoro viene accodato FILEBROWSER_UNRANK_TOOLTIP;Nessun Punteggio.\nScorciatoia: Shift-0 FILEBROWSER_ZOOMINHINT;Aumenta la dimensione delle miniature.\n\nScorciatoie:\n+ - Modalità a Schede Multiple,\nAlt-+ - Modalità a Schede Singole. FILEBROWSER_ZOOMOUTHINT;Diminuisci la dimensione delle miniature.\n\nScorciatoie:\n- - Modalità a Schede Multiple,\nAlt-- - Modalità a Schede Singole. @@ -1326,6 +1322,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1656,6 +1653,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 838878b00..10979e399 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -40,6 +40,7 @@ ABOUT_TAB_RELEASENOTES;リリースノート ABOUT_TAB_SPLASH;スプラッシュ ADJUSTER_RESET_TO_DEFAULT;デフォルト値に戻す BATCHQUEUE_AUTOSTART;オートスタート +BATCHQUEUE_AUTOSTARTHINT;新しいrawファイルが送られて来たら自動的に現像処理を開始します BATCHQUEUE_DESTFILENAME;パスとファイル名 BATCH_PROCESSING;バッチ処理 CURVEEDITOR_AXIS_IN;I: @@ -210,12 +211,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;最近保存されていない画像を表 FILEBROWSER_SHOWTRASHHINT;ゴミ箱の内容を表示\nショートカット: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;カラー・ラベルのない画像を表示\nショートカット: Alt-0 FILEBROWSER_SHOWUNRANKHINT;ランクなし画像を表示\nショートカット: 0 -FILEBROWSER_STARTPROCESSING;処理開始 -FILEBROWSER_STARTPROCESSINGHINT;キューにある画像の処理を開始\n\nショートカット:Ctrl+s -FILEBROWSER_STOPPROCESSING;処理中止 -FILEBROWSER_STOPPROCESSINGHINT;キューにある画像の処理を中止\n\nショートカット:Ctrl+s FILEBROWSER_THUMBSIZE;サムネイルのサイズ -FILEBROWSER_TOOLTIP_STOPPROCESSING;新しいrawファイルが送られて来たら自動的に現像処理を開始します FILEBROWSER_UNRANK_TOOLTIP;ランクなし\nショートカット: Shift-0 FILEBROWSER_ZOOMINHINT;サムネイルサイズの拡大\nショートカット: +\n\nシングル・エディタ・タブのショートカット: Alt-+ FILEBROWSER_ZOOMOUTHINT;サムネイルサイズの縮小\nショートカット: -\n\nシングル・エディタ・タブのショートカット: Alt-- @@ -1861,6 +1857,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit @@ -2007,6 +2004,12 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !PARTIALPASTE_TM_FATTAL;HDR Tone mapping !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index b76f4353f..50e1407a9 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Rādīt attēlus ar 4 zvaigznēm FILEBROWSER_SHOWRANK5HINT;Rādīt attēlus ar 5 zvaigznēm FILEBROWSER_SHOWTRASHHINT;Rādīt atkritni FILEBROWSER_SHOWUNRANKHINT;Rādīt nevērtētus attēlus -FILEBROWSER_STARTPROCESSING;Sākt apstrādi -FILEBROWSER_STARTPROCESSINGHINT;Sākt attēlu rindas apstrādi/saglabāšanu -FILEBROWSER_STOPPROCESSING;Apturēt apstrādi -FILEBROWSER_STOPPROCESSINGHINT;Apturēt attēlu apstrādi FILEBROWSER_THUMBSIZE;Sīktēlu izmērs FILEBROWSER_ZOOMINHINT;Palielināt sīktēlus FILEBROWSER_ZOOMOUTHINT;Samazināt sīktēlus @@ -426,7 +422,9 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -557,7 +555,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1153,6 +1150,12 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index b2d93337f..9b4ae8097 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -7,6 +7,7 @@ ABOUT_TAB_RELEASENOTES;Kiadási megjegyzések ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Alaphelyzetbe állítás BATCHQUEUE_AUTOSTART;Auto start +BATCHQUEUE_AUTOSTARTHINT;Új kép érkezése esetén a feldolgozás automatikus indítása. BATCH_PROCESSING;Kötegelt feldolgozás CURVEEDITOR_CURVE;Görbe CURVEEDITOR_CURVES;Görbék @@ -143,12 +144,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Korábban mentett képek megjelenítése.\n FILEBROWSER_SHOWTRASHHINT;A kuka tartalmának mutatása FILEBROWSER_SHOWUNCOLORHINT;Színcímke nélküli képek megjelenítése.\nGyorsbillentyű: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Meg nem jelölt képek mutatása -FILEBROWSER_STARTPROCESSING;Feldolgozás indítása -FILEBROWSER_STARTPROCESSINGHINT;A sorban álló képek feldolgozásának elindítása -FILEBROWSER_STOPPROCESSING;Feldolgozás leállítása -FILEBROWSER_STOPPROCESSINGHINT;A sorban álló képek feldolgozásának leállítása FILEBROWSER_THUMBSIZE;Bélyegméret -FILEBROWSER_TOOLTIP_STOPPROCESSING;Új kép érkezése esetén a feldolgozás automatikus indítása. FILEBROWSER_ZOOMINHINT;Növelés FILEBROWSER_ZOOMOUTHINT;Csökkentés GENERAL_ABOUT;Névjegy @@ -871,6 +867,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !!!!!!!!!!!!!!!!!!!!!!!!! !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1357,6 +1354,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 282cd318b..9cf4cdf5d 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -22,6 +22,7 @@ ABOUT_TAB_RELEASENOTES;Uitgave-opmerkingen ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Terug naar beginwaarde BATCHQUEUE_AUTOSTART;Autostart +BATCHQUEUE_AUTOSTARTHINT;Start verwerking automatisch wanneer nieuwe foto arriveert BATCHQUEUE_DESTFILENAME;Pad en bestandsnaam BATCH_PROCESSING;Batch-verwerking CURVEEDITOR_AXIS_IN;I: @@ -208,12 +209,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Toon niet-opgeslagen/verwerkte foto's.\nSne FILEBROWSER_SHOWTRASHHINT;Toon inhoud prullenbak\nSneltoets: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Toon foto's zonder kleurlabel.\nSneltoets: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Toon foto's zonder sterwaardering.\nSneltoets: 0 -FILEBROWSER_STARTPROCESSING;Start verwerking -FILEBROWSER_STARTPROCESSINGHINT;Start verwerking van bestanden in verwerkingsrij -FILEBROWSER_STOPPROCESSING;Stop verwerking -FILEBROWSER_STOPPROCESSINGHINT;Stop verwerking van bestanden in verwerkingsrij FILEBROWSER_THUMBSIZE;Miniaturen -FILEBROWSER_TOOLTIP_STOPPROCESSING;Start verwerking automatisch wanneer nieuwe foto arriveert FILEBROWSER_UNRANK_TOOLTIP;Verwijder sterwaardering\nSneltoets: Shift-0 FILEBROWSER_ZOOMINHINT;Groter FILEBROWSER_ZOOMOUTHINT;Kleiner @@ -2125,6 +2121,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !DONT_SHOW_AGAIN;Don't show this message again. !EXIFPANEL_SHOWALL;Show all !GENERAL_SLIDER;Slider @@ -2168,6 +2165,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_TM_FATTAL;HDR Tone mapping !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 30d94cc27..fdb78ffc0 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Vis bilder rangert med 4 stjerne FILEBROWSER_SHOWRANK5HINT;Vis bilder rangert med 5 stjerne FILEBROWSER_SHOWTRASHHINT;Vis innholdet i søpla FILEBROWSER_SHOWUNRANKHINT;Vis unrangerte bilder -FILEBROWSER_STARTPROCESSING;Start Processing -FILEBROWSER_STARTPROCESSINGHINT;Begynn prosessering/lagring av bilder i køen -FILEBROWSER_STOPPROCESSING;Stopp prosesseringen -FILEBROWSER_STOPPROCESSINGHINT;Stopp prosesseringen av bilder FILEBROWSER_THUMBSIZE;Thumbnail størrelse FILEBROWSER_ZOOMINHINT;Øk thumbnail størrelse FILEBROWSER_ZOOMOUTHINT;Reduser thumbnail størrelse @@ -425,7 +421,9 @@ TP_WBALANCE_TEMPERATURE;Temperatur !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -556,7 +554,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1152,6 +1149,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 780de385a..eda9251ce 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -15,6 +15,7 @@ ABOUT_TAB_RELEASENOTES;Notatki eksploatacyjne ABOUT_TAB_SPLASH;Ekran powitalny ADJUSTER_RESET_TO_DEFAULT;Przywróć domyślne BATCHQUEUE_AUTOSTART;Autostart +BATCHQUEUE_AUTOSTARTHINT;Rozpocznij przetwarzanie automatycznie gdy pojawi się nowe zadanie. BATCHQUEUE_DESTFILENAME;Ścieżka i nazwa pliku BATCH_PROCESSING;Przetwarzanie wsadowe CURVEEDITOR_CURVE;Krzywa @@ -178,12 +179,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Pokazuje niezapisane zdjęcia.\nSkrót: FILEBROWSER_SHOWTRASHHINT;Pokazuje zawartość kosza.\nSkrót: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Pokazuje zdjęcia bez kolorowej etykiety.\nSkrót: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Pokazuje nieocenione zdjęcia.\nSkrót: 0 -FILEBROWSER_STARTPROCESSING;Rozpocznij przetwarzanie -FILEBROWSER_STARTPROCESSINGHINT;Rozpoczyna przetwarzanie/zapisywanie plików z kolejki. -FILEBROWSER_STOPPROCESSING;Zatrzymaj przetwarzanie -FILEBROWSER_STOPPROCESSINGHINT;Zatrzymuje przetwarzanie zdjęć. FILEBROWSER_THUMBSIZE;Rozmiar minaturek -FILEBROWSER_TOOLTIP_STOPPROCESSING;Rozpocznij przetwarzanie automatycznie gdy pojawi się nowe zadanie. FILEBROWSER_UNRANK_TOOLTIP;Usuń ocenę.\nSkrót: Shift-0 FILEBROWSER_ZOOMINHINT;Zwiększa rozmiar miniaturek.\n\nSkróty:\n+ - Tryb wielu zakładek,\nAlt-+ - Tryb pojedyńczej zakładki. FILEBROWSER_ZOOMOUTHINT;Zmniejsza rozmiar miniaturek.\n\nSkróty:\n- - Tryb wielu zakładek,\nAlt-- - Tryb pojedyńczej zakładki. @@ -1449,6 +1445,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1732,6 +1729,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 4a5c675d5..1212ed840 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -15,6 +15,7 @@ ABOUT_TAB_RELEASENOTES;Notatki eksploatacyjne ABOUT_TAB_SPLASH;Ekran powitalny ADJUSTER_RESET_TO_DEFAULT;Przywroc domyslne BATCHQUEUE_AUTOSTART;Autostart +BATCHQUEUE_AUTOSTARTHINT;Rozpocznij przetwarzanie automatycznie gdy pojawi sie nowe zadanie. BATCHQUEUE_DESTFILENAME;Sciezka i nazwa pliku BATCH_PROCESSING;Przetwarzanie wsadowe CURVEEDITOR_CURVE;Krzywa @@ -178,12 +179,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Pokazuje niezapisane zdjecia.\nSkrot: Al FILEBROWSER_SHOWTRASHHINT;Pokazuje zawartosc kosza.\nSkrot: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Pokazuje zdjecia bez kolorowej etykiety.\nSkrot: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Pokazuje nieocenione zdjecia.\nSkrot: 0 -FILEBROWSER_STARTPROCESSING;Rozpocznij przetwarzanie -FILEBROWSER_STARTPROCESSINGHINT;Rozpoczyna przetwarzanie/zapisywanie plikow z kolejki. -FILEBROWSER_STOPPROCESSING;Zatrzymaj przetwarzanie -FILEBROWSER_STOPPROCESSINGHINT;Zatrzymuje przetwarzanie zdjec. FILEBROWSER_THUMBSIZE;Rozmiar minaturek -FILEBROWSER_TOOLTIP_STOPPROCESSING;Rozpocznij przetwarzanie automatycznie gdy pojawi sie nowe zadanie. FILEBROWSER_UNRANK_TOOLTIP;Usun ocene.\nSkrot: Shift-0 FILEBROWSER_ZOOMINHINT;Zwieksza rozmiar miniaturek.\n\nSkroty:\n+ - Tryb wielu zakladek,\nAlt-+ - Tryb pojedynczej zakladki. FILEBROWSER_ZOOMOUTHINT;Zmniejsza rozmiar miniaturek.\n\nSkroty:\n- - Tryb wielu zakladek,\nAlt-- - Tryb pojedynczej zakladki. @@ -1449,6 +1445,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1732,6 +1729,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 7b11028e9..42c1436bc 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Exibir imagens classificadas como 4 estrelas FILEBROWSER_SHOWRANK5HINT;Exibir imagens classificadas como 5 estrelas FILEBROWSER_SHOWTRASHHINT;Exibir conteúdo da lixeira FILEBROWSER_SHOWUNRANKHINT;Exibir imagens não classificadas -FILEBROWSER_STARTPROCESSING;Iniciar Processamento -FILEBROWSER_STARTPROCESSINGHINT;Iniciar processamento/salvar imagens da lista -FILEBROWSER_STOPPROCESSING;Parar processamento -FILEBROWSER_STOPPROCESSINGHINT;Para o processamento das imagens FILEBROWSER_THUMBSIZE;Tamanho das Miniaturas FILEBROWSER_ZOOMINHINT;Aumentar Tamanho das Miniaturas FILEBROWSER_ZOOMOUTHINT;Diminuir Tamanho das Miniaturas @@ -426,7 +422,9 @@ TP_WBALANCE_TEMPERATURE;Temperatura !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -557,7 +555,6 @@ TP_WBALANCE_TEMPERATURE;Temperatura !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1153,6 +1150,12 @@ TP_WBALANCE_TEMPERATURE;Temperatura !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 95aa8cdce..7737d6578 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -13,6 +13,7 @@ ABOUT_TAB_RELEASENOTES;Примечания к выпуску ABOUT_TAB_SPLASH;Заставка ADJUSTER_RESET_TO_DEFAULT;Сбросить настройки BATCHQUEUE_AUTOSTART;Автостарт +BATCHQUEUE_AUTOSTARTHINT;Автоматически запускать обработку при добавлении файла в очередь BATCHQUEUE_DESTFILENAME;Имя файла и путь к нему BATCH_PROCESSING;Пакетная обработка CURVEEDITOR_CURVE;Кривая @@ -173,12 +174,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Показать изображения, с FILEBROWSER_SHOWTRASHHINT;Показать содержимое корзины.\nГорячая клавиша: Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Показать изображения без цветовой метки.\nГорячая клавиша: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Показать изображения без рейтинга\nГорячая клавиша: 0 -FILEBROWSER_STARTPROCESSING;Начать обработку -FILEBROWSER_STARTPROCESSINGHINT;Запуск обработки помещенных в очередь изображений -FILEBROWSER_STOPPROCESSING;Остановить обработку -FILEBROWSER_STOPPROCESSINGHINT;Отмена обработки изображений FILEBROWSER_THUMBSIZE;Размер эскиза -FILEBROWSER_TOOLTIP_STOPPROCESSING;Автоматически запускать обработку при добавлении файла в очередь FILEBROWSER_UNRANK_TOOLTIP;Удалить рейтинг\nГорячая клавиша: Shift-~ FILEBROWSER_ZOOMINHINT;Увеличить размер эскиза\nГорячая клавиша: +\n\nГорячая клавиша в режиме Одиночного редактора: Alt-+ FILEBROWSER_ZOOMOUTHINT;Уменьшить размер эскиза\nГорячая клавиша: +\n\nГорячая клавиша в режиме Одиночного редактора: Alt-- @@ -1262,6 +1258,7 @@ ZOOMPANEL_ZOOMOUT;Удалить - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1610,6 +1607,12 @@ ZOOMPANEL_ZOOMOUT;Удалить - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 34fa8ba97..e94beb82b 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -7,6 +7,7 @@ ABOUT_TAB_RELEASENOTES;Белешке о издању ABOUT_TAB_SPLASH;Увод ADJUSTER_RESET_TO_DEFAULT;Врати на подразумевано BATCHQUEUE_AUTOSTART;Сам започни +BATCHQUEUE_AUTOSTARTHINT;Покреће обраду фотографија када их закажете BATCHQUEUE_DESTFILENAME;Путања и име датотеке BATCH_PROCESSING;обрада CURVEEDITOR_CURVE;Кривуља @@ -154,12 +155,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Приказује слике које ни FILEBROWSER_SHOWTRASHHINT;Приказује слике у смећу FILEBROWSER_SHOWUNCOLORHINT;Приказује слике које нису означене бојом Alt-0 FILEBROWSER_SHOWUNRANKHINT;Прикажи неоцењене слике -FILEBROWSER_STARTPROCESSING;Започни обраду -FILEBROWSER_STARTPROCESSINGHINT;Почиње обраду и чување заказаних слика -FILEBROWSER_STOPPROCESSING;Заустави обраду -FILEBROWSER_STOPPROCESSINGHINT;Зауставља обраду слика FILEBROWSER_THUMBSIZE;Преглед -FILEBROWSER_TOOLTIP_STOPPROCESSING;Покреће обраду фотографија када их закажете FILEBROWSER_UNRANK_TOOLTIP;Неоцењено.\nПречица: Shift-0 FILEBROWSER_ZOOMINHINT;Увећава преглед FILEBROWSER_ZOOMOUTHINT;Умањује преглед @@ -1283,6 +1279,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1642,6 +1639,12 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 2db3daecd..a0597fbb6 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -7,6 +7,7 @@ ABOUT_TAB_RELEASENOTES;Beleške o izdanju ABOUT_TAB_SPLASH;Uvod ADJUSTER_RESET_TO_DEFAULT;Vrati na podrazumevano BATCHQUEUE_AUTOSTART;Sam započni +BATCHQUEUE_AUTOSTARTHINT;Pokreće obradu fotografija kada ih zakažete BATCHQUEUE_DESTFILENAME;Putanja i ime datoteke BATCH_PROCESSING;obrada CURVEEDITOR_CURVE;Krivulja @@ -154,12 +155,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Prikazuje slike koje nisu skoro sačuvane < FILEBROWSER_SHOWTRASHHINT;Prikazuje slike u smeću FILEBROWSER_SHOWUNCOLORHINT;Prikazuje slike koje nisu označene bojom Alt-0 FILEBROWSER_SHOWUNRANKHINT;Prikaži neocenjene slike -FILEBROWSER_STARTPROCESSING;Započni obradu -FILEBROWSER_STARTPROCESSINGHINT;Počinje obradu i čuvanje zakazanih slika -FILEBROWSER_STOPPROCESSING;Zaustavi obradu -FILEBROWSER_STOPPROCESSINGHINT;Zaustavlja obradu slika FILEBROWSER_THUMBSIZE;Pregled -FILEBROWSER_TOOLTIP_STOPPROCESSING;Pokreće obradu fotografija kada ih zakažete FILEBROWSER_UNRANK_TOOLTIP;Neocenjeno.\nPrečica: Shift-0 FILEBROWSER_ZOOMINHINT;Uvećava pregled FILEBROWSER_ZOOMOUTHINT;Umanjuje pregled @@ -1283,6 +1279,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1642,6 +1639,12 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index b87e71c5d..ada1225ef 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -4,6 +4,7 @@ ADJUSTER_RESET_TO_DEFAULT;Resetovať na predvolené nastavenia BATCHQUEUE_AUTOSTART;Auto štart +BATCHQUEUE_AUTOSTARTHINT;Začať spracovanie automaticky, keď príde nová úloha BATCH_PROCESSING;Dávkové spracovanie CURVEEDITOR_CUSTOM;Vlastné CURVEEDITOR_DARKS;Tiene @@ -75,12 +76,7 @@ FILEBROWSER_SHOWRANK4HINT;Ukázať obrázky triedy 4 hviezda FILEBROWSER_SHOWRANK5HINT;Ukázať obrázky triedy 5 hviezda FILEBROWSER_SHOWTRASHHINT;Zobraziť obsah koša FILEBROWSER_SHOWUNRANKHINT;Zobraziť obrázky bez triedy -FILEBROWSER_STARTPROCESSING;Začať spracovanie -FILEBROWSER_STARTPROCESSINGHINT;Začať spracovanie/ukladanie obrázkov v rade -FILEBROWSER_STOPPROCESSING;Zastaviť spracovanie -FILEBROWSER_STOPPROCESSINGHINT;Zastaviť spracovanie obrázkov FILEBROWSER_THUMBSIZE;Veľkosť zmenšenín -FILEBROWSER_TOOLTIP_STOPPROCESSING;Začať spracovanie automaticky, keď príde nová úloha FILEBROWSER_ZOOMINHINT;Zväčšiť veľkosť zmenšenín FILEBROWSER_ZOOMOUTHINT;Zmenšiť veľkosť zmenšenín GENERAL_ABOUT;O programe @@ -517,6 +513,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1203,6 +1200,12 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 2ed64181f..034995605 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Näytä 4 tähden kuvat FILEBROWSER_SHOWRANK5HINT;Näytä 5 tähden kuvat FILEBROWSER_SHOWTRASHHINT;Näytä roskakorin sisältö FILEBROWSER_SHOWUNRANKHINT;Näytä arvostelemattomat kuvat -FILEBROWSER_STARTPROCESSING;Aloita käsittely -FILEBROWSER_STARTPROCESSINGHINT;Aloita jonossa olevien kuvien käsittely -FILEBROWSER_STOPPROCESSING;Lopeta käsittely -FILEBROWSER_STOPPROCESSINGHINT;Lopeta jonossa olevien kuvien käsittely FILEBROWSER_THUMBSIZE;Esikatselun koko FILEBROWSER_ZOOMINHINT;Kasvata esikatselukuvien kokoa FILEBROWSER_ZOOMOUTHINT;Pienennä esikatselukuvien kokoa @@ -427,7 +423,9 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -558,7 +556,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1154,6 +1151,12 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 63d8781c8..0e45b4441 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -10,6 +10,7 @@ ABOUT_TAB_RELEASENOTES;Versionsnyheter ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Återställ till standard BATCHQUEUE_AUTOSTART;Autostart +BATCHQUEUE_AUTOSTARTHINT;Starta behandlingen automatiskt när en ny bild kommer in BATCHQUEUE_DESTFILENAME;Sökväg och filnamn BATCH_PROCESSING;Batchbehandling CURVEEDITOR_AXIS_IN;I: @@ -178,12 +179,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Visa bilder som inte nyligen sparats\nKortk FILEBROWSER_SHOWTRASHHINT;Visa innehållet i papperskorgen FILEBROWSER_SHOWUNCOLORHINT;Visa bilder utan färgetikett\nKortkommando: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Visa icke-betygsatta bilder -FILEBROWSER_STARTPROCESSING;Starta behandlingen -FILEBROWSER_STARTPROCESSINGHINT;Starta behandlingen och spara bilderna i behandlingskön -FILEBROWSER_STOPPROCESSING;Avbryt behandlingen -FILEBROWSER_STOPPROCESSINGHINT;Avbryt behandlingen av bilderna FILEBROWSER_THUMBSIZE;Miniatyrbildens storlek -FILEBROWSER_TOOLTIP_STOPPROCESSING;Starta behandlingen automatiskt när en ny bild kommer in FILEBROWSER_UNRANK_TOOLTIP;Ta bort betyg\nKortkommando: Shift-0 FILEBROWSER_ZOOMINHINT;Förstora miniatyrbilderna.\nKortkommando: +\nKortkommado i enkelbildsläget: Alt-+ FILEBROWSER_ZOOMOUTHINT;Förminska miniatyrbilderna.\nKortkommando: -\nKortkommado i enkelbildsläget: Alt-- @@ -1869,6 +1865,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. @@ -1998,6 +1995,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PARTIALPASTE_TM_FATTAL;HDR Tone mapping !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index b60b3e38f..a0909bcab 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -58,10 +58,6 @@ FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star FILEBROWSER_SHOWTRASHHINT;Show content of the trash FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_STARTPROCESSING;Start Processing -FILEBROWSER_STARTPROCESSINGHINT;Start processing/saving of images in the queue -FILEBROWSER_STOPPROCESSING;Stop processing -FILEBROWSER_STOPPROCESSINGHINT;Stop processing of images FILEBROWSER_THUMBSIZE;Thumb. size FILEBROWSER_ZOOMINHINT;Increase thumbnail size FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size @@ -426,7 +422,9 @@ TP_WBALANCE_TEMPERATURE;Isı !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !BATCHQUEUE_AUTOSTART;Auto-start +!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. !BATCHQUEUE_DESTFILENAME;Path and file name +!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -557,7 +555,6 @@ TP_WBALANCE_TEMPERATURE;Isı !FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files !FILECHOOSER_FILTER_COLPROF;Color profiles @@ -1153,6 +1150,12 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory !PREFERENCES_CMMBPC;Black point compensation +!PREFERENCES_CROP;Crop editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +!PREFERENCES_CROP_GUIDES_FRAME;Frame +!PREFERENCES_CROP_GUIDES_FULL;Original +!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons !PREFERENCES_CURVEBBOXPOS_ABOVE;Above !PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtdata/languages/default b/rtdata/languages/default index aaab1ac7e..3b4e3b74a 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -9,7 +9,9 @@ ABOUT_TAB_RELEASENOTES;Release Notes ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Reset to default BATCHQUEUE_AUTOSTART;Auto-start +BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. BATCHQUEUE_DESTFILENAME;Path and file name +BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s BATCH_PROCESSING;Batch Processing CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -197,12 +199,7 @@ FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6Ctrl-t FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 FILEBROWSER_SHOWUNRANKHINT;Show unranked images.\nShortcut: 0 -FILEBROWSER_STARTPROCESSING;Start processing -FILEBROWSER_STARTPROCESSINGHINT;Start processing the images in the queue.\n\nShortcut: Ctrl+s -FILEBROWSER_STOPPROCESSING;Stop processing -FILEBROWSER_STOPPROCESSINGHINT;Stop processing the images in the queue.\n\nShortcut: Ctrl+s FILEBROWSER_THUMBSIZE;Thumbnail size -FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives. FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 FILEBROWSER_ZOOMINHINT;Increase thumbnail size.\n\nShortcuts:\n+ - Multiple Editor Tabs Mode,\nAlt-+ - Single Editor Tab Mode. FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size.\n\nShortcuts:\n- - Multiple Editor Tabs Mode,\nAlt-- - Single Editor Tab Mode. @@ -1102,6 +1099,12 @@ PREFERENCES_CLUTSCACHE;HaldCLUT Cache PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs PREFERENCES_CLUTSDIR;HaldCLUT directory PREFERENCES_CMMBPC;Black point compensation +PREFERENCES_CROP;Crop editing +PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area +PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop +PREFERENCES_CROP_GUIDES_FRAME;Frame +PREFERENCES_CROP_GUIDES_FULL;Original +PREFERENCES_CROP_GUIDES_NONE;None PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons PREFERENCES_CURVEBBOXPOS_ABOVE;Above PREFERENCES_CURVEBBOXPOS_BELOW;Below diff --git a/rtengine/ciecam02.cc b/rtengine/ciecam02.cc index 77c57048a..560d5721a 100644 --- a/rtengine/ciecam02.cc +++ b/rtengine/ciecam02.cc @@ -608,31 +608,31 @@ void Ciecam02::calculate_ab ( double &aa, double &bb, double h, double e, double } void Ciecam02::calculate_abfloat ( float &aa, float &bb, float h, float e, float t, float nbb, float a ) { - float2 sincosval = xsincosf ((h * rtengine::RT_PI) / 180.0f); + float2 sincosval = xsincosf(h * rtengine::RT_PI_F_180); float sinh = sincosval.x; float cosh = sincosval.y; float x = (a / nbb) + 0.305f; - float p3 = 1.05f; - bool swapValues = fabs ( sinh ) > fabs ( cosh ); + constexpr float p3 = 1.05f; + const bool swapValues = fabs(sinh) > fabs(cosh); if (swapValues) { - std::swap (sinh, cosh); + std::swap(sinh, cosh); } float c1 = 1.f; float c2 = sinh / cosh; if (swapValues) { - std::swap (c1, c2); + std::swap(c1, c2); } - float div = ((e / (t * cosh)) - (-0.31362f - (p3 * 0.15681f)) * c1 - ((0.01924f - (p3 * 4.49038f)) * (c2))); + float div = ((e / (t * cosh)) - (-0.31362f - (p3 * 0.15681f)) * c1 - ((0.01924f - (p3 * 4.49038f)) * c2)); // for large values of t the above calculation can change its sign which results in a hue shift of 180 degree // so we have to check the sign to avoid this shift. // Additionally it seems useful to limit the minimum value of div // I limited it, but I'm sure the actual limit is not the best one - if (signf (div) != signf (cosh) || fabsf (div) <= fabsf (cosh) * 2.f) { + if (signf(div) != signf(cosh) || fabsf(div) <= fabsf(cosh) * 2.f) { div = cosh * 2.f; } @@ -640,7 +640,7 @@ void Ciecam02::calculate_abfloat ( float &aa, float &bb, float h, float e, float bb = (aa * sinh) / cosh; if (swapValues) { - std::swap (aa, bb); + std::swap(aa, bb); } } #ifdef __SSE2__ @@ -1007,9 +1007,18 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f bp = MAXR (bp, 0.0f); } - rpa = nonlinear_adaptationfloat ( rp, fl ); - gpa = nonlinear_adaptationfloat ( gp, fl ); - bpa = nonlinear_adaptationfloat ( bp, fl ); +#ifdef __SSE2__ + vfloat pv = _mm_setr_ps(rp, gp, bp, 1.f); + vfloat fv = F2V(fl); + vfloat outv = nonlinear_adaptationfloat(pv, fv); + rpa = outv[0]; + gpa = outv[1]; + bpa = outv[2]; +#else + rpa = nonlinear_adaptationfloat(rp, fl); + gpa = nonlinear_adaptationfloat(gp, fl); + bpa = nonlinear_adaptationfloat(bp, fl); +#endif ca = rpa - ((12.0f * gpa) - bpa) / 11.0f; cb = (0.11111111f) * (rpa + gpa - (2.0f * bpa)); @@ -1084,26 +1093,43 @@ void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, fl float a, ca, cb; float e, t; gamu = 1; - xyz_to_cat02float ( rw, gw, bw, xw, yw, zw, gamu ); - e = ((961.53846f) * nc * ncb) * (xcosf ( ((h * rtengine::RT_PI) / 180.0f) + 2.0f ) + 3.8f); - a = pow_F ( J / 100.0f, 1.0f / (c * cz) ) * aw; - t = pow_F ( 10.f * C / (sqrtf ( J ) * pow1), 1.1111111f ); + xyz_to_cat02float(rw, gw, bw, xw, yw, zw, gamu); + e = ((961.53846f) * nc * ncb) * (xcosf(h * rtengine::RT_PI_F_180 + 2.0f) + 3.8f); - calculate_abfloat ( ca, cb, h, e, t, nbb, a ); - Aab_to_rgbfloat ( rpa, gpa, bpa, a, ca, cb, nbb ); +#ifdef __SSE2__ + vfloat powinv1 = _mm_setr_ps(J / 100.0f, 10.f * C / (sqrtf(J) * pow1), 1.f, 1.f); + vfloat powinv2 = _mm_setr_ps(1.0f / (c * cz), 1.1111111f, 1.f, 1.f); + vfloat powoutv = pow_F(powinv1, powinv2); + a = powoutv[0] * aw; + t = powoutv[1]; +#else + a = pow_F(J / 100.0f, 1.0f / (c * cz)) * aw; + t = pow_F(10.f * C / (sqrtf(J) * pow1), 1.1111111f); +#endif - rp = inverse_nonlinear_adaptationfloat ( rpa, fl ); - gp = inverse_nonlinear_adaptationfloat ( gpa, fl ); - bp = inverse_nonlinear_adaptationfloat ( bpa, fl ); + calculate_abfloat(ca, cb, h, e, t, nbb, a); + Aab_to_rgbfloat(rpa, gpa, bpa, a, ca, cb, nbb); - hpe_to_xyzfloat ( x, y, z, rp, gp, bp ); - xyz_to_cat02float ( rc, gc, bc, x, y, z, gamu ); +#ifdef __SSE2__ + vfloat pav = _mm_setr_ps(rpa, gpa, bpa, 1.f); + vfloat fv = F2V(fl); + vfloat outv = inverse_nonlinear_adaptationfloat(pav, fv); + rp = outv[0]; + gp = outv[1]; + bp = outv[2]; +#else + rp = inverse_nonlinear_adaptationfloat(rpa, fl); + gp = inverse_nonlinear_adaptationfloat(gpa, fl); + bp = inverse_nonlinear_adaptationfloat(bpa, fl); +#endif + hpe_to_xyzfloat(x, y, z, rp, gp, bp); + xyz_to_cat02float(rc, gc, bc, x, y, z, gamu); r = rc / (((yw * d) / rw) + (1.0f - d)); g = gc / (((yw * d) / gw) + (1.0f - d)); b = bc / (((yw * d) / bw) + (1.0f - d)); - cat02_to_xyzfloat ( x, y, z, r, g, b, gamu ); + cat02_to_xyzfloat(x, y, z, r, g, b, gamu); } #ifdef __SSE2__ diff --git a/rtengine/color.h b/rtengine/color.h index 650d93250..df218cbc4 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -299,6 +299,30 @@ public: } } + static inline void rgb2hsvtc(float r, float g, float b, float &h, float &s, float &v) + { + const float var_Min = min(r, g, b); + const float var_Max = max(r, g, b); + const float del_Max = var_Max - var_Min; + + v = var_Max / 65535.f; + + if (del_Max < 0.00001f) { + h = 0.f; + s = 0.f; + } else { + s = del_Max / var_Max; + + if (r == var_Max) { + h = (g < b ? 6.f : 0.f) + (g - b) / del_Max; + } else if (g == var_Max) { + h = 2.f + (b - r) / del_Max; + } else { /*if ( b == var_Max ) */ + h = 4.f + (r - g) / del_Max; + } + } + } + /** * @brief Convert hue saturation value in red green blue * @param h hue channel [0 ; 1] @@ -313,14 +337,14 @@ public: static inline void hsv2rgbdcp(float h, float s, float v, float &r, float &g, float &b) { // special version for dcp which saves 1 division (in caller) and six multiplications (inside this function) - int sector = h; // sector 0 to 5, floor() is very slow, and h is always >0 - float f = h - sector; // fractional part of h + const int sector = h; // sector 0 to 5, floor() is very slow, and h is always > 0 + const float f = h - sector; // fractional part of h v *= 65535.f; - float vs = v * s; - float p = v - vs; - float q = v - f * vs; - float t = p + v - q; + const float vs = v * s; + const float p = v - vs; + const float q = v - f * vs; + const float t = p + v - q; switch (sector) { case 1: diff --git a/rtengine/curves.cc b/rtengine/curves.cc index f798fb198..c15a85626 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -2505,64 +2505,242 @@ float PerceptualToneCurve::calculateToneCurveContrastValue() const return maxslope; } -void PerceptualToneCurve::Apply(float &r, float &g, float &b, PerceptualToneCurveState & state) const +void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float *rc, float *gc, float *bc, const PerceptualToneCurveState &state) const { - float x, y, z; - - if (!state.isProphoto) { - // convert to prophoto space to make sure the same result is had regardless of working color space - float newr = state.Working2Prophoto[0][0] * r + state.Working2Prophoto[0][1] * g + state.Working2Prophoto[0][2] * b; - float newg = state.Working2Prophoto[1][0] * r + state.Working2Prophoto[1][1] * g + state.Working2Prophoto[1][2] * b; - float newb = state.Working2Prophoto[2][0] * r + state.Working2Prophoto[2][1] * g + state.Working2Prophoto[2][2] * b; - r = newr; - g = newg; - b = newb; - } - const AdobeToneCurve& adobeTC = static_cast((const ToneCurve&) * this); - float ar = r; - float ag = g; - float ab = b; - adobeTC.Apply(ar, ag, ab); - if (ar >= 65535.f && ag >= 65535.f && ab >= 65535.f) { - // clip fast path, will also avoid strange colors of clipped highlights - r = g = b = 65535.f; - return; - } + for (size_t i = start; i < end; ++i) { + float r = CLIP(rc[i]); + float g = CLIP(gc[i]); + float b = CLIP(bc[i]); - if (ar <= 0.f && ag <= 0.f && ab <= 0.f) { - r = g = b = 0; - return; - } + if (!state.isProphoto) { + // convert to prophoto space to make sure the same result is had regardless of working color space + float newr = state.Working2Prophoto[0][0] * r + state.Working2Prophoto[0][1] * g + state.Working2Prophoto[0][2] * b; + float newg = state.Working2Prophoto[1][0] * r + state.Working2Prophoto[1][1] * g + state.Working2Prophoto[1][2] * b; + float newb = state.Working2Prophoto[2][0] * r + state.Working2Prophoto[2][1] * g + state.Working2Prophoto[2][2] * b; + r = newr; + g = newg; + b = newb; + } - // ProPhoto constants for luminance, that is xyz_prophoto[1][] - const float Yr = 0.2880402f; - const float Yg = 0.7118741f; - const float Yb = 0.0000857f; + float ar = r; + float ag = g; + float ab = b; + adobeTC.Apply(ar, ag, ab); - // we use the Adobe (RGB-HSV hue-stabilized) curve to decide luminance, which generally leads to a less contrasty result - // compared to a pure luminance curve. We do this to be more compatible with the most popular curves. - float oldLuminance = r * Yr + g * Yg + b * Yb; - float newLuminance = ar * Yr + ag * Yg + ab * Yb; - float Lcoef = newLuminance / oldLuminance; - r = LIM (r * Lcoef, 0.f, 65535.f); - g = LIM (g * Lcoef, 0.f, 65535.f); - b = LIM (b * Lcoef, 0.f, 65535.f); + if (ar >= 65535.f && ag >= 65535.f && ab >= 65535.f) { + // clip fast path, will also avoid strange colours of clipped highlights + rc[i] = gc[i] = bc[i] = 65535.f; + continue; + } - // move to JCh so we can modulate chroma based on the global contrast-related chroma scaling factor - Color::Prophotoxyz(r, g, b, x, y, z); + if (ar <= 0.f && ag <= 0.f && ab <= 0.f) { + rc[i] = gc[i] = bc[i] = 0; + continue; + } - float J, C, h; - Ciecam02::xyz2jch_ciecam02float(J, C, h, - aw, fl, - x * 0.0015259022f, y * 0.0015259022f, z * 0.0015259022f, - xw, yw, zw, - c, nc, pow1, nbb, ncb, cz, d); + // ProPhoto constants for luminance, that is xyz_prophoto[1][] + constexpr float Yr = 0.2880402f; + constexpr float Yg = 0.7118741f; + constexpr float Yb = 0.0000857f; + + // we use the Adobe (RGB-HSV hue-stabilized) curve to decide luminance, which generally leads to a less contrasty result + // compared to a pure luminance curve. We do this to be more compatible with the most popular curves. + const float oldLuminance = r * Yr + g * Yg + b * Yb; + const float newLuminance = ar * Yr + ag * Yg + ab * Yb; + const float Lcoef = newLuminance / oldLuminance; + r = LIM(r * Lcoef, 0.f, 65535.f); + g = LIM(g * Lcoef, 0.f, 65535.f); + b = LIM(b * Lcoef, 0.f, 65535.f); + + // move to JCh so we can modulate chroma based on the global contrast-related chroma scaling factor + float x, y, z; + Color::Prophotoxyz(r, g, b, x, y, z); + + float J, C, h; + Ciecam02::xyz2jch_ciecam02float( J, C, h, + aw, fl, + x * 0.0015259022f, y * 0.0015259022f, z * 0.0015259022f, + xw, yw, zw, + c, nc, pow1, nbb, ncb, cz, d); - if (!isfinite(J) || !isfinite(C) || !isfinite(h)) { - // this can happen for dark noise colors or colors outside human gamut. Then we just return the curve's result. + if (!isfinite(J) || !isfinite(C) || !isfinite(h)) { + // this can happen for dark noise colours or colours outside human gamut. Then we just return the curve's result. + if (!state.isProphoto) { + float newr = state.Prophoto2Working[0][0] * r + state.Prophoto2Working[0][1] * g + state.Prophoto2Working[0][2] * b; + float newg = state.Prophoto2Working[1][0] * r + state.Prophoto2Working[1][1] * g + state.Prophoto2Working[1][2] * b; + float newb = state.Prophoto2Working[2][0] * r + state.Prophoto2Working[2][1] * g + state.Prophoto2Working[2][2] * b; + r = newr; + g = newg; + b = newb; + } + rc[i] = r; + gc[i] = g; + bc[i] = b; + + continue; + } + + float cmul = state.cmul_contrast; // chroma scaling factor + + // depending on color, the chroma scaling factor can be fine-tuned below + + { + // decrease chroma scaling sligthly of extremely saturated colors + float saturated_scale_factor = 0.95f; + constexpr float lolim = 35.f; // lower limit, below this chroma all colors will keep original chroma scaling factor + constexpr float hilim = 60.f; // high limit, above this chroma the chroma scaling factor is multiplied with the saturated scale factor value above + + if (C < lolim) { + // chroma is low enough, don't scale + saturated_scale_factor = 1.f; + } else if (C < hilim) { + // S-curve transition between low and high limit + float x = (C - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim + + if (x < 0.5f) { + x = 2.f * SQR(x); + } else { + x = 1.f - 2.f * SQR(1 - x); + } + + saturated_scale_factor = (1.f - x) + saturated_scale_factor * x; + } else { + // do nothing, high saturation color, keep scale factor + } + + cmul *= saturated_scale_factor; + } + + { + // increase chroma scaling slightly of shadows + float nL = Color::gamma2curve[newLuminance]; // apply gamma so we make comparison and transition with a more perceptual lightness scale + float dark_scale_factor = 1.20f; + //float dark_scale_factor = 1.0 + state.debug.p2 / 100.0f; + constexpr float lolim = 0.15f; + constexpr float hilim = 0.50f; + + if (nL < lolim) { + // do nothing, keep scale factor + } else if (nL < hilim) { + // S-curve transition + float x = (nL - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim + + if (x < 0.5f) { + x = 2.f * SQR(x); + } else { + x = 1.f - 2.f * SQR(1 - x); + } + + dark_scale_factor = dark_scale_factor * (1.0f - x) + x; + } else { + dark_scale_factor = 1.f; + } + + cmul *= dark_scale_factor; + } + + { + // to avoid strange CIECAM02 chroma errors on close-to-shadow-clipping colors we reduce chroma scaling towards 1.0 for black colors + float dark_scale_factor = 1.f / cmul; + constexpr float lolim = 4.f; + constexpr float hilim = 7.f; + + if (J < lolim) { + // do nothing, keep scale factor + } else if (J < hilim) { + // S-curve transition + float x = (J - lolim) / (hilim - lolim); + + if (x < 0.5f) { + x = 2.f * SQR(x); + } else { + x = 1.f - 2.f * SQR(1 - x); + } + + dark_scale_factor = dark_scale_factor * (1.f - x) + x; + } else { + dark_scale_factor = 1.f; + } + + cmul *= dark_scale_factor; + } + + C *= cmul; + + Ciecam02::jch2xyz_ciecam02float( x, y, z, + J, C, h, + xw, yw, zw, + c, nc, 1, pow1, nbb, ncb, fl, cz, d, aw ); + + if (!isfinite(x) || !isfinite(y) || !isfinite(z)) { + // can happen for colours on the rim of being outside gamut, that worked without chroma scaling but not with. Then we return only the curve's result. + if (!state.isProphoto) { + float newr = state.Prophoto2Working[0][0] * r + state.Prophoto2Working[0][1] * g + state.Prophoto2Working[0][2] * b; + float newg = state.Prophoto2Working[1][0] * r + state.Prophoto2Working[1][1] * g + state.Prophoto2Working[1][2] * b; + float newb = state.Prophoto2Working[2][0] * r + state.Prophoto2Working[2][1] * g + state.Prophoto2Working[2][2] * b; + r = newr; + g = newg; + b = newb; + } + + rc[i] = r; + gc[i] = g; + bc[i] = b; + + continue; + } + + Color::xyz2Prophoto(x, y, z, r, g, b); + r *= 655.35f; + g *= 655.35f; + b *= 655.35f; + r = LIM(r, 0.f, 65535.f); + g = LIM(g, 0.f, 65535.f); + b = LIM(b, 0.f, 65535.f); + + { + // limit saturation increase in rgb space to avoid severe clipping and flattening in extreme highlights + + // we use the RGB-HSV hue-stable "Adobe" curve as reference. For S-curve contrast it increases + // saturation greatly, but desaturates extreme highlights and thus provide a smooth transition to + // the white point. However the desaturation effect is quite strong so we make a weighting + const float as = Color::rgb2s(ar, ag, ab); + const float s = Color::rgb2s(r, g, b); + + const float sat_scale = as <= 0.f ? 1.f : s / as; // saturation scale compared to Adobe curve + float keep = 0.2f; + constexpr float lolim = 1.00f; // only mix in the Adobe curve if we have increased saturation compared to it + constexpr float hilim = 1.20f; + + if (sat_scale < lolim) { + // saturation is low enough, don't desaturate + keep = 1.f; + } else if (sat_scale < hilim) { + // S-curve transition + float x = (sat_scale - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim + + if (x < 0.5f) { + x = 2.f * SQR(x); + } else { + x = 1.f - 2.f * SQR(1 - x); + } + + keep = (1.f - x) + keep * x; + } else { + // do nothing, very high increase, keep minimum amount + } + + if (keep < 1.f) { + // mix in some of the Adobe curve result + r = intp(keep, r, ar); + g = intp(keep, g, ag); + b = intp(keep, b, ab); + } + } + if (!state.isProphoto) { float newr = state.Prophoto2Working[0][0] * r + state.Prophoto2Working[0][1] * g + state.Prophoto2Working[0][2] * b; float newg = state.Prophoto2Working[1][0] * r + state.Prophoto2Working[1][1] * g + state.Prophoto2Working[1][2] * b; @@ -2571,175 +2749,11 @@ void PerceptualToneCurve::Apply(float &r, float &g, float &b, PerceptualToneCurv g = newg; b = newb; } - - return; - } - - float cmul = state.cmul_contrast; // chroma scaling factor - - // depending on color, the chroma scaling factor can be fine-tuned below - - { - // decrease chroma scaling sligthly of extremely saturated colors - float saturated_scale_factor = 0.95f; - const float lolim = 35.f; // lower limit, below this chroma all colors will keep original chroma scaling factor - const float hilim = 60.f; // high limit, above this chroma the chroma scaling factor is multiplied with the saturated scale factor value above - - if (C < lolim) { - // chroma is low enough, don't scale - saturated_scale_factor = 1.f; - } else if (C < hilim) { - // S-curve transition between low and high limit - float x = (C - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim - - if (x < 0.5f) { - x = 2.f * SQR(x); - } else { - x = 1.f - 2.f * SQR(1 - x); - } - - saturated_scale_factor = (1.f - x) + saturated_scale_factor * x; - } else { - // do nothing, high saturation color, keep scale factor - } - - cmul *= saturated_scale_factor; - } - - { - // increase chroma scaling slightly of shadows - float nL = Color::gamma2curve[newLuminance]; // apply gamma so we make comparison and transition with a more perceptual lightness scale - float dark_scale_factor = 1.20f; - //float dark_scale_factor = 1.0 + state.debug.p2 / 100.0f; - const float lolim = 0.15f; - const float hilim = 0.50f; - - if (nL < lolim) { - // do nothing, keep scale factor - } else if (nL < hilim) { - // S-curve transition - float x = (nL - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim - - if (x < 0.5f) { - x = 2.f * SQR(x); - } else { - x = 1.f - 2.f * SQR(1 - x); - } - - dark_scale_factor = dark_scale_factor * (1.0f - x) + x; - } else { - dark_scale_factor = 1.f; - } - - cmul *= dark_scale_factor; - } - - { - // to avoid strange CIECAM02 chroma errors on close-to-shadow-clipping colors we reduce chroma scaling towards 1.0 for black colors - float dark_scale_factor = 1.f / cmul; - const float lolim = 4.f; - const float hilim = 7.f; - - if (J < lolim) { - // do nothing, keep scale factor - } else if (J < hilim) { - // S-curve transition - float x = (J - lolim) / (hilim - lolim); - - if (x < 0.5f) { - x = 2.f * SQR(x); - } else { - x = 1.f - 2.f * SQR(1 - x); - } - - dark_scale_factor = dark_scale_factor * (1.f - x) + x; - } else { - dark_scale_factor = 1.f; - } - - cmul *= dark_scale_factor; - } - - C *= cmul; - - Ciecam02::jch2xyz_ciecam02float(x, y, z, - J, C, h, - xw, yw, zw, - c, nc, 1, pow1, nbb, ncb, fl, cz, d, aw); - - if (!isfinite(x) || !isfinite(y) || !isfinite(z)) { - // can happen for colors on the rim of being outside gamut, that worked without chroma scaling but not with. Then we return only the curve's result. - if (!state.isProphoto) { - float newr = state.Prophoto2Working[0][0] * r + state.Prophoto2Working[0][1] * g + state.Prophoto2Working[0][2] * b; - float newg = state.Prophoto2Working[1][0] * r + state.Prophoto2Working[1][1] * g + state.Prophoto2Working[1][2] * b; - float newb = state.Prophoto2Working[2][0] * r + state.Prophoto2Working[2][1] * g + state.Prophoto2Working[2][2] * b; - r = newr; - g = newg; - b = newb; - } - - return; - } - - Color::xyz2Prophoto(x, y, z, r, g, b); - r *= 655.35f; - g *= 655.35f; - b *= 655.35f; - r = LIM (r, 0.f, 65535.f); - g = LIM (g, 0.f, 65535.f); - b = LIM (b, 0.f, 65535.f); - - { - // limit saturation increase in rgb space to avoid severe clipping and flattening in extreme highlights - - // we use the RGB-HSV hue-stable "Adobe" curve as reference. For S-curve contrast it increases - // saturation greatly, but desaturates extreme highlights and thus provide a smooth transition to - // the white point. However the desaturation effect is quite strong so we make a weighting - float ah, as, av, h, s, v; - Color::rgb2hsv(ar, ag, ab, ah, as, av); - Color::rgb2hsv(r, g, b, h, s, v); - - float sat_scale = as <= 0.f ? 1.f : s / as; // saturation scale compared to Adobe curve - float keep = 0.2f; - const float lolim = 1.00f; // only mix in the Adobe curve if we have increased saturation compared to it - const float hilim = 1.20f; - - if (sat_scale < lolim) { - // saturation is low enough, don't desaturate - keep = 1.f; - } else if (sat_scale < hilim) { - // S-curve transition - float x = (sat_scale - lolim) / (hilim - lolim); // x = [0..1], 0 at lolim, 1 at hilim - - if (x < 0.5f) { - x = 2.f * SQR(x); - } else { - x = 1.f - 2.f * SQR(1 - x); - } - - keep = (1.f - x) + keep * x; - } else { - // do nothing, very high increase, keep minimum amount - } - - if (keep < 1.f) { - // mix in some of the Adobe curve result - r = r * keep + (1.f - keep) * ar; - g = g * keep + (1.f - keep) * ag; - b = b * keep + (1.f - keep) * ab; - } - } - - if (!state.isProphoto) { - float newr = state.Prophoto2Working[0][0] * r + state.Prophoto2Working[0][1] * g + state.Prophoto2Working[0][2] * b; - float newg = state.Prophoto2Working[1][0] * r + state.Prophoto2Working[1][1] * g + state.Prophoto2Working[1][2] * b; - float newb = state.Prophoto2Working[2][0] * r + state.Prophoto2Working[2][1] * g + state.Prophoto2Working[2][2] * b; - r = newr; - g = newg; - b = newb; + rc[i] = r; + gc[i] = g; + bc[i] = b; } } - float PerceptualToneCurve::cf_range[2]; float PerceptualToneCurve::cf[1000]; float PerceptualToneCurve::f, PerceptualToneCurve::c, PerceptualToneCurve::nc, PerceptualToneCurve::yb, PerceptualToneCurve::la, PerceptualToneCurve::xw, PerceptualToneCurve::yw, PerceptualToneCurve::zw, PerceptualToneCurve::gamut; diff --git a/rtengine/curves.h b/rtengine/curves.h index f75cfabc6..22c873fee 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -981,8 +981,12 @@ class WeightedStdToneCurve : public ToneCurve { private: float Triangle(float refX, float refY, float X2) const; +#if defined( __SSE2__ ) && defined( __x86_64__ ) + vfloat Triangle(vfloat refX, vfloat refY, vfloat X2) const; +#endif public: void Apply(float& r, float& g, float& b) const; + void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b) const; }; class LuminanceToneCurve : public ToneCurve @@ -1021,7 +1025,7 @@ private: public: static void init(); void initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const; - void Apply(float& r, float& g, float& b, PerceptualToneCurveState & state) const; + void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b, const PerceptualToneCurveState &state) const; }; // Standard tone curve @@ -1162,6 +1166,17 @@ inline float WeightedStdToneCurve::Triangle(float a, float a1, float b) const return a1; } +#if defined( __SSE2__ ) && defined( __x86_64__ ) +inline vfloat WeightedStdToneCurve::Triangle(vfloat a, vfloat a1, vfloat b) const +{ + vfloat a2 = a1 - a; + vmask cmask = vmaskf_lt(b, a); + vfloat b3 = vself(cmask, b, F2V(65535.f) - b); + vfloat a3 = vself(cmask, a, F2V(65535.f) - a); + return b + a2 * b3 / a3; +} +#endif + // Tone curve modifying the value channel only, preserving hue and saturation // values in 0xffff space inline void WeightedStdToneCurve::Apply(float& r, float& g, float& b) const @@ -1169,6 +1184,9 @@ inline void WeightedStdToneCurve::Apply(float& r, float& g, float& b) const assert(lutToneCurve); + r = CLIP(r); + g = CLIP(g); + b = CLIP(b); float r1 = lutToneCurve[r]; float g1 = Triangle(r, r1, g); float b1 = Triangle(r, r1, b); @@ -1181,11 +1199,70 @@ inline void WeightedStdToneCurve::Apply(float& r, float& g, float& b) const float r3 = Triangle(b, b3, r); float g3 = Triangle(b, b3, g); - r = CLIP (r1 * 0.50f + r2 * 0.25f + r3 * 0.25f); + r = CLIP(r1 * 0.50f + r2 * 0.25f + r3 * 0.25f); g = CLIP (g1 * 0.25f + g2 * 0.50f + g3 * 0.25f); b = CLIP (b1 * 0.25f + b2 * 0.25f + b3 * 0.50f); } +inline void WeightedStdToneCurve::BatchApply(const size_t start, const size_t end, float *r, float *g, float *b) const { + assert (lutToneCurve); + assert (lutToneCurve.getClip() & LUT_CLIP_BELOW); + assert (lutToneCurve.getClip() & LUT_CLIP_ABOVE); + + // All pointers must have the same alignment for SSE usage. In the loop body below, + // we will only check `r`, assuming that the same result would hold for `g` and `b`. + assert (reinterpret_cast(r) % 16 == reinterpret_cast(g) % 16); + assert (reinterpret_cast(g) % 16 == reinterpret_cast(b) % 16); + + size_t i = start; + while (true) { + if (i >= end) { + // If we get to the end before getting to an aligned address, just return. + // (Or, for non-SSE mode, if we get to the end.) + return; +#if defined( __SSE2__ ) && defined( __x86_64__ ) + } else if (reinterpret_cast(&r[i]) % 16 == 0) { + // Otherwise, we get to the first aligned address; go to the SSE part. + break; +#endif + } + Apply(r[i], g[i], b[i]); + i++; + } + +#if defined( __SSE2__ ) && defined( __x86_64__ ) + const vfloat c65535v = F2V(65535.f); + const vfloat zd5v = F2V(0.5f); + const vfloat zd25v = F2V(0.25f); + + for (; i + 3 < end; i += 4) { + vfloat r_val = LIMV(LVF(r[i]), ZEROV, c65535v); + vfloat g_val = LIMV(LVF(g[i]), ZEROV, c65535v); + vfloat b_val = LIMV(LVF(b[i]), ZEROV, c65535v); + vfloat r1 = lutToneCurve[r_val]; + vfloat g1 = Triangle(r_val, r1, g_val); + vfloat b1 = Triangle(r_val, r1, b_val); + + vfloat g2 = lutToneCurve[g_val]; + vfloat r2 = Triangle(g_val, g2, r_val); + vfloat b2 = Triangle(g_val, g2, b_val); + + vfloat b3 = lutToneCurve[b_val]; + vfloat r3 = Triangle(b_val, b3, r_val); + vfloat g3 = Triangle(b_val, b3, g_val); + + STVF(r[i], LIMV(r1 * zd5v + r2 * zd25v + r3 * zd25v, ZEROV, c65535v)); + STVF(g[i], LIMV(g1 * zd25v + g2 * zd5v + g3 * zd25v, ZEROV, c65535v)); + STVF(b[i], LIMV(b1 * zd25v + b2 * zd25v + b3 * zd5v, ZEROV, c65535v)); + } + + // Remainder in non-SSE. + for (; i < end; ++i) { + Apply(r[i], g[i], b[i]); + } +#endif +} + // Tone curve modifying the value channel only, preserving hue and saturation // values in 0xffff space inline void SatAndValueBlendingToneCurve::Apply(float& r, float& g, float& b) const @@ -1193,31 +1270,29 @@ inline void SatAndValueBlendingToneCurve::Apply(float& r, float& g, float& b) co assert(lutToneCurve); + r = CLIP(r); + g = CLIP(g); + b = CLIP(b); + + const float lum = (r + g + b) / 3.f; + const float newLum = lutToneCurve[lum]; + float h, s, v; - float lum = (r + g + b) / 3.f; - //float lum = Color::rgbLuminance(r, g, b); - float newLum = lutToneCurve[lum]; - - if (newLum == lum) { - return; - } - - Color::rgb2hsv(r, g, b, h, s, v); + Color::rgb2hsvtc(r, g, b, h, s, v); float dV; if (newLum > lum) { // Linearly targeting Value = 1 and Saturation = 0 - float coef = (newLum - lum) / (65535.f - lum); + const float coef = (newLum - lum) / (65535.f - lum); dV = (1.f - v) * coef; s *= 1.f - coef; } else { // Linearly targeting Value = 0 - float coef = (newLum - lum) / lum ; + const float coef = (newLum - lum) / lum ; dV = v * coef; } - - Color::hsv2rgb(h, s, v + dV, r, g, b); + Color::hsv2rgbdcp(h, s, v + dV, r, g, b); } } diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 3cb29cae7..5b4600869 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -214,39 +214,28 @@ void customToneCurve(const ToneCurve &customToneCurve, ToneCurveParams::TcMode c { if (curveMode == ToneCurveParams::TcMode::STD) { // Standard + const StandardToneCurve& userToneCurve = static_cast (customToneCurve); for (int i = istart, ti = 0; i < tH; i++, ti++) { - const StandardToneCurve& userToneCurve = static_cast(customToneCurve); - userToneCurve.BatchApply( - 0, tW - jstart, - &rtemp[ti * tileSize], >emp[ti * tileSize], &btemp[ti * tileSize]); + userToneCurve.BatchApply(0, tW - jstart, &rtemp[ti * tileSize], >emp[ti * tileSize], &btemp[ti * tileSize]); } } else if (curveMode == ToneCurveParams::TcMode::FILMLIKE) { // Adobe like + const AdobeToneCurve& userToneCurve = static_cast (customToneCurve); for (int i = istart, ti = 0; i < tH; i++, ti++) { for (int j = jstart, tj = 0; j < tW; j++, tj++) { - const AdobeToneCurve& userToneCurve = static_cast(customToneCurve); userToneCurve.Apply(rtemp[ti * tileSize + tj], gtemp[ti * tileSize + tj], btemp[ti * tileSize + tj]); } } } else if (curveMode == ToneCurveParams::TcMode::SATANDVALBLENDING) { // apply the curve on the saturation and value channels + const SatAndValueBlendingToneCurve& userToneCurve = static_cast (customToneCurve); for (int i = istart, ti = 0; i < tH; i++, ti++) { for (int j = jstart, tj = 0; j < tW; j++, tj++) { - const SatAndValueBlendingToneCurve& userToneCurve = static_cast(customToneCurve); - rtemp[ti * tileSize + tj] = CLIP (rtemp[ti * tileSize + tj]); - gtemp[ti * tileSize + tj] = CLIP (gtemp[ti * tileSize + tj]); - btemp[ti * tileSize + tj] = CLIP (btemp[ti * tileSize + tj]); userToneCurve.Apply(rtemp[ti * tileSize + tj], gtemp[ti * tileSize + tj], btemp[ti * tileSize + tj]); } } } else if (curveMode == ToneCurveParams::TcMode::WEIGHTEDSTD) { // apply the curve to the rgb channels, weighted const WeightedStdToneCurve& userToneCurve = static_cast(customToneCurve); - for (int i = istart, ti = 0; i < tH; i++, ti++) { - for (int j = jstart, tj = 0; j < tW; j++, tj++) { - rtemp[ti * tileSize + tj] = CLIP (rtemp[ti * tileSize + tj]); - gtemp[ti * tileSize + tj] = CLIP (gtemp[ti * tileSize + tj]); - btemp[ti * tileSize + tj] = CLIP (btemp[ti * tileSize + tj]); - userToneCurve.Apply(rtemp[ti * tileSize + tj], gtemp[ti * tileSize + tj], btemp[ti * tileSize + tj]); - } + userToneCurve.BatchApply(0, tW - jstart, &rtemp[ti * tileSize], >emp[ti * tileSize], &btemp[ti * tileSize]); } } else if (curveMode == ToneCurveParams::TcMode::LUMINANCE) { // apply the curve to the luminance channel const LuminanceToneCurve& userToneCurve = static_cast(customToneCurve); @@ -261,14 +250,8 @@ void customToneCurve(const ToneCurve &customToneCurve, ToneCurveParams::TcMode c } } else if (curveMode == ToneCurveParams::TcMode::PERCEPTUAL) { // apply curve while keeping color appearance constant const PerceptualToneCurve& userToneCurve = static_cast(customToneCurve); - for (int i = istart, ti = 0; i < tH; i++, ti++) { - for (int j = jstart, tj = 0; j < tW; j++, tj++) { - rtemp[ti * tileSize + tj] = CLIP (rtemp[ti * tileSize + tj]); - gtemp[ti * tileSize + tj] = CLIP (gtemp[ti * tileSize + tj]); - btemp[ti * tileSize + tj] = CLIP (btemp[ti * tileSize + tj]); - userToneCurve.Apply(rtemp[ti * tileSize + tj], gtemp[ti * tileSize + tj], btemp[ti * tileSize + tj], ptcApplyState); - } + userToneCurve.BatchApply(0, tW - jstart, &rtemp[ti * tileSize], >emp[ti * tileSize], &btemp[ti * tileSize], ptcApplyState); } } } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 735a222e9..162e84f08 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1524,7 +1524,7 @@ CropParams::CropParams() : w(15000), h(15000), fixratio(true), - ratio("3:2"), + ratio("As Image"), orientation("As Image"), guide("Frame") { diff --git a/rtengine/rt_math.h b/rtengine/rt_math.h index 17a292618..4bdfe6f06 100644 --- a/rtengine/rt_math.h +++ b/rtengine/rt_math.h @@ -14,6 +14,7 @@ constexpr double MAXVALD = static_cast(MAXVAL); // double version of MAX constexpr double RT_PI = 3.14159265358979323846; // pi constexpr double RT_PI_2 = 1.57079632679489661923; // pi/2 +constexpr double RT_PI_180 = 0.017453292519943295769; // pi/180 constexpr double RT_1_PI = 0.31830988618379067154; // 1/pi constexpr double RT_2_PI = 0.63661977236758134308; // 2/pi constexpr double RT_SQRT1_2 = 0.70710678118654752440; // 1/sqrt(2) @@ -23,6 +24,7 @@ constexpr double RT_NAN = std::numeric_limits::quiet_NaN(); constexpr float RT_PI_F = RT_PI; constexpr float RT_PI_F_2 = RT_PI_2; +constexpr float RT_PI_F_180 = RT_PI_180; constexpr float RT_INFINITY_F = std::numeric_limits::infinity(); constexpr float RT_NAN_F = std::numeric_limits::quiet_NaN(); diff --git a/rtgui/batchqueuepanel.cc b/rtgui/batchqueuepanel.cc index fcccdf08a..054160d91 100644 --- a/rtgui/batchqueuepanel.cc +++ b/rtgui/batchqueuepanel.cc @@ -46,29 +46,21 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) batchQueue = Gtk::manage( new BatchQueue(aFileCatalog) ); - // construct batch queue panel with the extra "start" and "stop" button Gtk::VBox* batchQueueButtonBox = Gtk::manage (new Gtk::VBox); batchQueueButtonBox->set_name("BatchQueueButtons"); - start = Gtk::manage (new Gtk::ToggleButton ()); - stop = Gtk::manage (new Gtk::ToggleButton ()); - autoStart = Gtk::manage (new Gtk::CheckButton (M("BATCHQUEUE_AUTOSTART"))); - start->set_tooltip_markup (M("FILEBROWSER_STARTPROCESSINGHINT")); - stop->set_tooltip_markup (M("FILEBROWSER_STOPPROCESSINGHINT")); - autoStart->set_tooltip_text (M("FILEBROWSER_TOOLTIP_STOPPROCESSING")); - start->set_active (false); - stop->set_active (true); - autoStart->set_active (options.procQueueEnabled); + qStartStop = Gtk::manage (new Gtk::Switch()); + qStartStop->set_tooltip_markup (M("BATCHQUEUE_STARTSTOPHINT")); + qStartStopConn = qStartStop->property_active().signal_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::startOrStopBatchProc)); - start->set_image (*Gtk::manage (new RTImage ("gtk-media-play.png"))); - start->get_style_context()->add_class("BIG"); - startConnection = start->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::startBatchProc)); - stop->set_image (*Gtk::manage (new RTImage ("gtk-media-stop.png"))); - stop->get_style_context()->add_class("BIG"); - stopConnection = stop->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::stopBatchProc)); - batchQueueButtonBox->pack_start (*start, Gtk::PACK_SHRINK, 4); - batchQueueButtonBox->pack_start (*stop, Gtk::PACK_SHRINK, 4); - batchQueueButtonBox->pack_start (*autoStart, Gtk::PACK_SHRINK, 4); + qAutoStart = Gtk::manage (new Gtk::CheckButton (M("BATCHQUEUE_AUTOSTART"))); + qAutoStart->set_tooltip_text (M("BATCHQUEUE_AUTOSTARTHINT")); + qAutoStart->set_active (options.procQueueEnabled); + + batchQueueButtonBox->pack_start (*qStartStop, Gtk::PACK_SHRINK, 4); + batchQueueButtonBox->pack_start (*qAutoStart, Gtk::PACK_SHRINK, 4); + Gtk::Frame *bbox = Gtk::manage(new Gtk::Frame(M("MAIN_FRAME_BATCHQUEUE"))); + bbox->add(*batchQueueButtonBox); // Output directory selection fdir = Gtk::manage (new Gtk::Frame (M("PREFERENCES_OUTDIR"))); @@ -141,7 +133,7 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) pack_start (*topBox, Gtk::PACK_SHRINK); topBox->set_name("BatchQueueButtonsMainContainer"); - topBox->pack_start (*batchQueueButtonBox, Gtk::PACK_SHRINK, 4); + topBox->pack_start (*bbox, Gtk::PACK_SHRINK, 4); topBox->pack_start (*fdir, Gtk::PACK_EXPAND_WIDGET, 4); topBox->pack_start (*fformat, Gtk::PACK_EXPAND_WIDGET, 4); @@ -216,7 +208,7 @@ void BatchQueuePanel::updateTab (int qsize, int forceOrientation) if(!qsize ) { grid->attach_next_to(*Gtk::manage (new RTImage ("processing.png")), Gtk::POS_TOP, 1, 1); l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")) ); - } else if( start->get_active () ) { + } else if (qStartStop->get_active()) { grid->attach_next_to(*Gtk::manage (new RTImage ("processing-play.png")), Gtk::POS_TOP, 1, 1); l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]")); } else { @@ -236,7 +228,7 @@ void BatchQueuePanel::updateTab (int qsize, int forceOrientation) if (!qsize ) { grid->attach_next_to(*Gtk::manage (new RTImage ("processing.png")), Gtk::POS_RIGHT, 1, 1); grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )), Gtk::POS_RIGHT, 1, 1); - } else if ( start->get_active () ) { + } else if (!qStartStop->get_active()) { grid->attach_next_to(*Gtk::manage (new RTImage ("processing-play.png")), Gtk::POS_RIGHT, 1, 1); grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); } else { @@ -257,6 +249,12 @@ void BatchQueuePanel::queueSizeChanged (int qsize, bool queueEmptied, bool queue { updateTab ( qsize); + if (qsize == 0 || (qsize == 1 && !fdir->get_sensitive())) { + qStartStop->set_sensitive(false); + } else { + qStartStop->set_sensitive(true); + } + if (queueEmptied || queueError) { stopBatchProc (); fdir->set_sensitive (true); @@ -271,19 +269,29 @@ void BatchQueuePanel::queueSizeChanged (int qsize, bool queueEmptied, bool queue } } +void BatchQueuePanel::startOrStopBatchProc() +{ + bool state = qStartStop->get_state(); + if (state) { + startBatchProc(); + } else { + stopBatchProc(); + } +} + void BatchQueuePanel::startBatchProc () { - - stopConnection.block (true); - startConnection.block (true); - stop->set_active (false); - start->set_active (true); - stopConnection.block (false); - startConnection.block (false); + // Update switch when queue started programmatically + qStartStopConn.block (true); + qStartStop->set_active(true); + qStartStopConn.block (false); if (batchQueue->hasJobs()) { fdir->set_sensitive (false); fformat->set_sensitive (false); + if (batchQueue->getEntries().size() == 1) { + qStartStop->set_sensitive(false); + } saveOptions(); batchQueue->startProcessing (); } else { @@ -295,13 +303,11 @@ void BatchQueuePanel::startBatchProc () void BatchQueuePanel::stopBatchProc () { + // Update switch when queue started programmatically + qStartStopConn.block (true); + qStartStop->set_active(false); + qStartStopConn.block (false); - stopConnection.block (true); - startConnection.block (true); - stop->set_active (true); - start->set_active (false); - stopConnection.block (false); - startConnection.block (false); updateTab (batchQueue->getEntries().size()); } @@ -310,7 +316,7 @@ void BatchQueuePanel::addBatchQueueJobs ( std::vector &entries batchQueue->addEntries (entries, head); - if (stop->get_active () && autoStart->get_active ()) { + if (!qStartStop->get_active() && qAutoStart->get_active()) { startBatchProc (); } } @@ -318,7 +324,7 @@ void BatchQueuePanel::addBatchQueueJobs ( std::vector &entries bool BatchQueuePanel::canStartNext () { - if (start->get_active ()) { + if (qStartStop->get_active()) { return true; } else { fdir->set_sensitive (true); @@ -332,7 +338,7 @@ void BatchQueuePanel::saveOptions () options.savePathTemplate = outdirTemplate->get_text(); options.saveUsePathTemplate = useTemplate->get_active(); - options.procQueueEnabled = autoStart->get_active (); + options.procQueueEnabled = qAutoStart->get_active(); } void BatchQueuePanel::pathFolderButtonPressed () @@ -375,7 +381,7 @@ bool BatchQueuePanel::handleShortcutKey (GdkEventKey* event) if (ctrl) { switch(event->keyval) { case GDK_KEY_s: - if (start->get_active()) { + if (qStartStop->get_active()) { stopBatchProc(); } else { startBatchProc(); diff --git a/rtgui/batchqueuepanel.h b/rtgui/batchqueuepanel.h index a4d6ed244..497bc166e 100644 --- a/rtgui/batchqueuepanel.h +++ b/rtgui/batchqueuepanel.h @@ -34,11 +34,9 @@ class BatchQueuePanel : public Gtk::VBox, Gtk::Button* zoomInButton; Gtk::Button* zoomOutButton; - Gtk::ToggleButton* start; - Gtk::ToggleButton* stop; - Gtk::CheckButton* autoStart; - sigc::connection startConnection; - sigc::connection stopConnection; + Gtk::Switch* qStartStop; + sigc::connection qStartStopConn; + Gtk::CheckButton* qAutoStart; Gtk::Entry* outdirTemplate; MyFileChooserButton* outdirFolder; @@ -69,6 +67,7 @@ public: void startBatchProc (); void stopBatchProc (); + void startOrStopBatchProc(); void saveOptions (); void pathFolderChanged (); diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 546d910ba..29c64501d 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -57,6 +57,7 @@ int notifyListenerUI (void* data) Crop::Crop(): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true), crop_ratios{ + {M("GENERAL_ASIMAGE"), 0.0}, {"3:2", 3.0 / 2.0}, // L1.5, P0.666... {"4:3", 4.0 / 3.0}, // L1.333..., P0.75 {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625 @@ -292,10 +293,14 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) setDimensions (pp->crop.x + pp->crop.w, pp->crop.y + pp->crop.h); } - ratio->set_active_text (pp->crop.ratio); + if (pp->crop.ratio == "As Image") { + ratio->set_active(0); + } else { + ratio->set_active_text (pp->crop.ratio); + } fixr->set_active (pp->crop.fixratio); - const bool flip_orientation = pp->crop.fixratio && crop_ratios[ratio->get_active_row_number()].value < 1.0; + const bool flip_orientation = pp->crop.fixratio && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0; if (pp->crop.orientation == "Landscape") { orientation->set_active (flip_orientation ? 1 : 0); @@ -390,7 +395,7 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited) pp->crop.ratio = ratio->get_active_text (); // for historical reasons we store orientation different if ratio is written as 2:3 instead of 3:2, but in GUI 'landscape' is always long side horizontal regardless of the ratio is written short or long side first. - const bool flip_orientation = fixr->get_active() && crop_ratios[ratio->get_active_row_number()].value < 1.0; + const bool flip_orientation = fixr->get_active() && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0; if (orientation->get_active_row_number() == 0) { pp->crop.orientation = flip_orientation ? "Portrait" : "Landscape"; @@ -1265,6 +1270,9 @@ double Crop::getRatio () } r = crop_ratios[ratio->get_active_row_number()].value; + if (!r) { + r = maxh <= maxw ? float(maxh)/float(maxw) : float(maxw)/float(maxh); + } if (r < 1.0) { r = 1.0 / r; // convert to long side first (eg 4:5 becomes 5:4) diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index f4510682e..001805362 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -312,8 +312,10 @@ void CropWindow::buttonPress (int button, int type, int bstate, int x, int y) screenCoordToImage (x, y, action_x, action_y); changeZoom (zoom11index, true, action_x, action_y); fitZoom = false; + } else if (options.cropAutoFit) { + zoomFitCrop(); } else { - zoomFit (); + zoomFit(); } } else { zoom11 (); @@ -612,6 +614,10 @@ void CropWindow::buttonRelease (int button, int num, int bstate, int x, int y) } needRedraw = true; + + if (fitZoom && options.cropAutoFit) { + zoomFitCrop(); + } } else if (state == SCropWinMove) { if (iarea->showColorPickers () && !colorPickers.empty()) { needRedraw = true; @@ -722,6 +728,10 @@ void CropWindow::buttonRelease (int button, int num, int bstate, int x, int y) cropgl->cropManipReady (); iarea->setToolHand (); needRedraw = true; + + if (fitZoom && options.cropAutoFit) { + zoomFitCrop(); + } } if (decorated) { @@ -1356,6 +1366,21 @@ void CropWindow::expose (Cairo::RefPtr cr) drawObservedFrame (cr); } } else { + CropParams cropParams = cropHandler.cropParams; + if (state == SNormal) { + switch (options.cropGuides) { + case Options::CROP_GUIDE_NONE: + cropParams.guide = "None"; + break; + case Options::CROP_GUIDE_FRAME: + cropParams.guide = "Frame"; + break; + default: + break; + } + } + bool useBgColor = (state == SNormal); + if (cropHandler.cropPixbuf) { imgW = cropHandler.cropPixbuf->get_width (); imgH = cropHandler.cropPixbuf->get_height (); @@ -1772,7 +1797,7 @@ void CropWindow::expose (Cairo::RefPtr cr) if (cropHandler.cropParams.enabled) { int cropX, cropY; cropHandler.getPosition (cropX, cropY); - drawCrop (cr, x + imgAreaX + imgX, y + imgAreaY + imgY, imgW, imgH, cropX, cropY, zoomSteps[cropZoom].zoom, cropHandler.cropParams, (this == iarea->mainCropWindow), true, cropHandler.isFullDisplay ()); + drawCrop (cr, x + imgAreaX + imgX, y + imgAreaY + imgY, imgW, imgH, cropX, cropY, zoomSteps[cropZoom].zoom, cropParams, (this == iarea->mainCropWindow), useBgColor, cropHandler.isFullDisplay ()); } if (observedCropWin) { @@ -1853,7 +1878,7 @@ void CropWindow::expose (Cairo::RefPtr cr) cr->fill(); if (cropHandler.cropParams.enabled) { - drawCrop (cr, x + imgAreaX + imgX, y + imgAreaY + imgY, rough->get_width(), rough->get_height(), cropX, cropY, zoomSteps[cropZoom].zoom, cropHandler.cropParams, (this == iarea->mainCropWindow), true, cropHandler.isFullDisplay ()); + drawCrop (cr, x + imgAreaX + imgX, y + imgAreaY + imgY, rough->get_width(), rough->get_height(), cropX, cropY, zoomSteps[cropZoom].zoom, cropParams, (this == iarea->mainCropWindow), useBgColor, cropHandler.isFullDisplay ()); } if (observedCropWin) { @@ -2097,7 +2122,7 @@ void CropWindow::zoomFitCrop () centerY = cropHandler.cropParams.y + cropHandler.cropParams.h / 2; setCropAnchorPosition(centerX, centerY); changeZoom (cz, true, centerX, centerY); - fitZoom = false; + fitZoom = options.cropAutoFit; } else { zoomFit(); } diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index c3adae3aa..cb3844687 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -168,6 +168,16 @@ void FileBrowserEntry::customBackBufferUpdate (Cairo::RefPtr c) drawCrop (c, prex, prey, prew, preh, 0, 0, scale, cropParams, true, false); } else { rtengine::procparams::CropParams cparams = thumbnail->getProcParams().crop; + switch (options.cropGuides) { + case Options::CROP_GUIDE_NONE: + cparams.guide = "None"; + break; + case Options::CROP_GUIDE_FRAME: + cparams.guide = "Frame"; + break; + default: + break; + } if (cparams.enabled && !thumbnail->isQuick()) { // Quick thumb have arbitrary sizes, so don't apply the crop drawCrop (c, prex, prey, prew, preh, 0, 0, scale, cparams, true, false); diff --git a/rtgui/imagearea.cc b/rtgui/imagearea.cc index c0d334482..4c4f78a38 100644 --- a/rtgui/imagearea.cc +++ b/rtgui/imagearea.cc @@ -638,7 +638,11 @@ void ImageArea::initialImageArrived (CropWindow* cw) if (mainCropWindow) { if(firstOpen || options.prevdemo != PD_Sidecar || (!options.rememberZoomAndPan) ) { - mainCropWindow->zoomFit (); + if (options.cropAutoFit || options.bgcolor != 0) { + mainCropWindow->zoomFitCrop(); + } else { + mainCropWindow->zoomFit(); + } firstOpen = false; mainCropWindow->cropHandler.getFullImageSize(fullImageWidth, fullImageHeight); } else { @@ -646,7 +650,11 @@ void ImageArea::initialImageArrived (CropWindow* cw) mainCropWindow->cropHandler.getFullImageSize(w, h); if(w != fullImageWidth || h != fullImageHeight) { - mainCropWindow->zoomFit (); + if (options.cropAutoFit) { + mainCropWindow->zoomFitCrop(); + } else { + mainCropWindow->zoomFit(); + } } fullImageWidth = w; diff --git a/rtgui/options.cc b/rtgui/options.cc index 9052b5cc2..7bfdb983a 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -631,6 +631,8 @@ void Options::setDefaults () gimpPluginShowInfoDialog = true; maxRecentFolders = 15; rtSettings.lensfunDbDirectory = ""; // set also in main.cc and main-cli.cc + cropGuides = CROP_GUIDE_FULL; + cropAutoFit = false; } Options* Options::copyFrom (Options* other) @@ -1436,6 +1438,12 @@ void Options::readFromFile (Glib::ustring fname) if (keyFile.has_key ("Crop Settings", "PPI")) { cropPPI = keyFile.get_integer ("Crop Settings", "PPI"); } + if (keyFile.has_key("Crop Settings", "GuidesMode")) { + cropGuides = CropGuidesMode(std::max(int(CROP_GUIDE_NONE), std::min(keyFile.get_integer("Crop Settings", "GuidesMode"), int(CROP_GUIDE_FULL)))); + } + if (keyFile.has_key("Crop Settings", "AutoFit")) { + cropAutoFit = keyFile.get_boolean("Crop Settings", "AutoFit"); + } } if (keyFile.has_group ("Color Management")) { @@ -2080,6 +2088,8 @@ void Options::saveToFile (Glib::ustring fname) //keyFile.set_integer_list ("GUI", "CurvePanelsExpanded", crvopen); keyFile.set_integer ("Crop Settings", "PPI", cropPPI); + keyFile.set_integer("Crop Settings", "GuidesMode", cropGuides); + keyFile.set_boolean("Crop Settings", "AutoFit", cropAutoFit); keyFile.set_string ("Color Management", "PrinterProfile", rtSettings.printerProfile); keyFile.set_integer ("Color Management", "PrinterIntent", rtSettings.printerIntent); diff --git a/rtgui/options.h b/rtgui/options.h index 10ef4fcec..631a22fe4 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -193,7 +193,6 @@ public: int showFilePanelState; // 0: normal, 1: maximized, 2: normal, 3: hidden bool showInfo; bool mainNBVertical; // main notebook vertical tabs? - int cropPPI; bool showClippedHighlights; bool showClippedShadows; int highlightThreshold; @@ -264,6 +263,12 @@ public: bool showFilmStripToolBar; bool showdelimspot; + // cropping options + int cropPPI; + enum CropGuidesMode { CROP_GUIDE_NONE, CROP_GUIDE_FRAME, CROP_GUIDE_FULL }; + CropGuidesMode cropGuides; + bool cropAutoFit; + // Performance options Glib::ustring clutsDir; int rgbDenoiseThreadLimit; // maximum number of threads for the denoising tool ; 0 = use the maximum available diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index bd9510584..d970c78f3 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -600,6 +600,22 @@ Gtk::Widget* Preferences::getProcParamsPanel() cdf->add(*dirgrid); mvbpp->pack_start(*cdf, Gtk::PACK_SHRINK, 4); + // Crop + Gtk::Frame *cropframe = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CROP"))); + Gtk::VBox *cropvb = Gtk::manage(new Gtk::VBox()); + Gtk::HBox *crophb = Gtk::manage(new Gtk::HBox()); + cropGuides = Gtk::manage(new Gtk::ComboBoxText()); + cropGuides->append(M("PREFERENCES_CROP_GUIDES_NONE")); + cropGuides->append(M("PREFERENCES_CROP_GUIDES_FRAME")); + cropGuides->append(M("PREFERENCES_CROP_GUIDES_FULL")); + crophb->pack_start(*Gtk::manage(new Gtk::Label(M("PREFERENCES_CROP_GUIDES") + ": ")), Gtk::PACK_SHRINK, 4); + crophb->pack_start(*cropGuides); + cropvb->pack_start(*crophb); + cropAutoFit = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_CROP_AUTO_FIT"))); + cropvb->pack_start(*cropAutoFit); + cropframe->add(*cropvb); + mvbpp->pack_start(*cropframe, Gtk::PACK_SHRINK, 4); + return mvbpp; } @@ -1852,6 +1868,9 @@ void Preferences::storePreferences() moptions.sndLngEditProcDone = txtSndLngEditProcDone->get_text(); moptions.sndLngEditProcDoneSecs = spbSndLngEditProcDoneSecs->get_value(); #endif + + moptions.cropGuides = Options::CropGuidesMode(cropGuides->get_active_row_number()); + moptions.cropAutoFit = cropAutoFit->get_active(); } void Preferences::fillPreferences() @@ -2085,6 +2104,9 @@ void Preferences::fillPreferences() } } + cropGuides->set_active(moptions.cropGuides); + cropAutoFit->set_active(moptions.cropAutoFit); + addc.block(false); setc.block(false); cpfconn.block(false); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index c8e08c9fe..ce5210f6c 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -208,6 +208,9 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener DynamicProfilePanel *dynProfilePanel; + Gtk::ComboBoxText *cropGuides; + Gtk::CheckButton *cropAutoFit; + Glib::ustring storedValueRaw; Glib::ustring storedValueImg; diff --git a/rtgui/previewwindow.cc b/rtgui/previewwindow.cc index cd4e0c75c..06ce3ad18 100644 --- a/rtgui/previewwindow.cc +++ b/rtgui/previewwindow.cc @@ -86,7 +86,18 @@ void PreviewWindow::updatePreviewImage () cc->fill(); if (previewHandler->getCropParams().enabled) { - drawCrop (cc, imgX, imgY, imgW, imgH, 0, 0, zoom, previewHandler->getCropParams(), true, false); + rtengine::CropParams cparams = previewHandler->getCropParams(); + switch (options.cropGuides) { + case Options::CROP_GUIDE_NONE: + cparams.guide = "None"; + break; + case Options::CROP_GUIDE_FRAME: + cparams.guide = "Frame"; + break; + default: + break; + } + drawCrop (cc, imgX, imgY, imgW, imgH, 0, 0, zoom, cparams, true, false); } } }