From ccc882dbcff710778c09724e7a044bfebbc0233a Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 24 Oct 2018 17:12:11 +0200 Subject: [PATCH 01/21] Review idle_register.add() calls: wavelets, ciecam02, colortoning --- rtengine/improccoordinator.cc | 4 +- rtengine/rtengine.h | 2 +- rtgui/colorappearance.cc | 87 +++++++++++++++-------------------- rtgui/colorappearance.h | 5 -- rtgui/colortoning.cc | 49 +++++++------------- rtgui/colortoning.h | 6 +-- rtgui/wavelet.cc | 44 +++++++----------- rtgui/wavelet.h | 2 - 8 files changed, 75 insertions(+), 124 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 5cc93d3c7..4a0072bea 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -611,7 +611,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (actListener && params.colorToning.enabled) { if (params.blackwhite.enabled && params.colorToning.autosat) { - actListener->autoColorTonChanged(0, satTH, satPR); //hide sliders only if autosat + actListener->autoColorTonChanged(satTH, satPR); //hide sliders only if autosat indi = 0; } else { if (params.colorToning.autosat) { @@ -656,7 +656,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) printf("ImProcCoordinator / Auto CT: indi=%d satH=%d satPR=%d\n", indi, (int)colourToningSatLimit, (int) colourToningSatLimitOpacity); } - actListener->autoColorTonChanged(indi, (int) colourToningSatLimit, (int)colourToningSatLimitOpacity); //change sliders autosat + actListener->autoColorTonChanged((int) colourToningSatLimit, (int)colourToningSatLimitOpacity); //change sliders autosat } // correct GUI black and white with value diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index bc8c12fec..b47620ee9 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -347,7 +347,7 @@ class AutoColorTonListener { public: virtual ~AutoColorTonListener() = default; - virtual void autoColorTonChanged(int bwct, int satthres, int satprot) = 0; + virtual void autoColorTonChanged(int satthres, int satprot) = 0; }; class AutoBWListener diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 094c6fc5d..14e630f3c 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1451,75 +1451,64 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit void ColorAppearance::autoCamChanged (double ccam, double ccamout) { - nextCcam = ccam; - nextCcamout = ccamout; + struct Data { + ColorAppearance *me; + double ccam; + double ccamout; + }; - const auto func = [] (gpointer data) -> gboolean { - static_cast (data)->autoCamComputed_(); + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + ColorAppearance *me = d->me; + me->disableListener(); + me->degree->setValue(d->ccam); + me->degreeout->setValue(d->ccamout); + me->enableListener(); + delete d; return FALSE; }; - idle_register.add (func, this); -} - -bool ColorAppearance::autoCamComputed_ () -{ - - disableListener (); -// degree->setEnabled (true); - degree->setValue (nextCcam); - degreeout->setValue (nextCcamout); - enableListener (); - - return false; + idle_register.add(func, new Data { this, ccam, ccamout }); } void ColorAppearance::adapCamChanged (double cadap) { - nextCadap = cadap; + struct Data { + ColorAppearance *me; + double cadap; + }; - const auto func = [] (gpointer data) -> gboolean { - static_cast (data)->adapCamComputed_(); + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + ColorAppearance *me = d->me; + me->disableListener(); + me->adapscen->setValue(d->cadap); + me->enableListener(); + delete d; return FALSE; }; - idle_register.add (func, this); -} - -bool ColorAppearance::adapCamComputed_ () -{ - - disableListener (); -// degree->setEnabled (true); - adapscen->setValue (nextCadap); -// ybscen->setValue (nextYbscn); - enableListener (); - - return false; + idle_register.add(func, new Data { this, cadap }); } void ColorAppearance::ybCamChanged (int ybsc) { - nextYbscn = ybsc; + struct Data { + ColorAppearance *me; + int ybsc; + }; - const auto func = [] (gpointer data) -> gboolean { - static_cast (data)->ybCamComputed_(); + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + ColorAppearance *me = d->me; + me->disableListener(); + me->ybscen->setValue(d->ybsc); + me->enableListener(); + delete d; return FALSE; }; - idle_register.add (func, this); -} - -bool ColorAppearance::ybCamComputed_ () -{ - - disableListener (); -// degree->setEnabled (true); -// adapscen->setValue (nextCadap); - ybscen->setValue (nextYbscn); - enableListener (); - - return false; + idle_register.add(func, new Data { this, ybsc }); } void ColorAppearance::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 5dd8a2e82..98947b5a5 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -59,11 +59,8 @@ public: void tonecie_toggled (); // void sharpcie_toggled (); void autoCamChanged (double ccam, double ccamout); - bool autoCamComputed_ (); void adapCamChanged (double cadap); - bool adapCamComputed_ (); void ybCamChanged (int yb); - bool ybCamComputed_ (); void curveChanged (CurveEditor* ce); void curveMode1Changed (); @@ -160,8 +157,6 @@ private: DiagonalCurveEditor* shape; DiagonalCurveEditor* shape2; DiagonalCurveEditor* shape3; - double nextCcam, nextCcamout, nextCadap; - int nextYbscn; bool lastAutoDegree; bool lastAutoAdapscen; bool lastAutoDegreeout; diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index 8b357c3f9..2f32d9b0b 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -13,7 +13,6 @@ using namespace rtengine::procparams; ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLORTONING_LABEL"), false, true) { - nextbw = 0; CurveListener::setMulti(true); //---------------method @@ -688,40 +687,26 @@ void ColorToning::setAdjusterBehavior (bool splitAdd, bool satThresholdAdd, bool } -void ColorToning::autoColorTonChanged(int bwct, int satthres, int satprot) +void ColorToning::autoColorTonChanged(int satthres, int satprot) { - nextbw = bwct; - nextsatth = satthres; - nextsatpr = satprot; + struct Data { + ColorToning *me; + int satthres; + int satprot; + }; - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->CTComp_(); - return FALSE; - }; + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + ColorToning *me = d->me; + me->disableListener(); + me->satProtectionThreshold->setValue(d->satthres); + me->saturatedOpacity->setValue(d->satprot); + me->enableListener (); + delete d; + return FALSE; + }; - idle_register.add(func, this); -} - -bool ColorToning::CTComp_ () -{ - - disableListener (); - saturatedOpacity->setValue (nextsatpr); - satProtectionThreshold->setValue (nextsatth); - /* if(nextbw==1) { - saturatedOpacity->show(); - satProtectionThreshold->show(); - autosat->show(); - } - else { - saturatedOpacity->hide(); - satProtectionThreshold->hide(); - autosat->hide(); - } - */ - enableListener (); - - return false; + idle_register.add(func, new Data { this, satthres, satprot }); } void ColorToning::adjusterChanged (ThresholdAdjuster* a, double newBottom, double newTop) diff --git a/rtgui/colortoning.h b/rtgui/colortoning.h index cb021e242..5ee5d5ec9 100644 --- a/rtgui/colortoning.h +++ b/rtgui/colortoning.h @@ -36,8 +36,7 @@ public: void setAdjusterBehavior (bool splitAdd, bool satThresholdAdd, bool satOpacityAdd, bool strprotectAdd, bool balanceAdd); void neutral_pressed (); //void neutralCurves_pressed (); - void autoColorTonChanged (int bwct, int satthres, int satprot); - bool CTComp_ (); + void autoColorTonChanged (int satthres, int satprot); void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop); void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight); @@ -99,9 +98,6 @@ private: Gtk::Button* neutral; Gtk::HBox* neutrHBox; - int nextbw; - int nextsatth; - int nextsatpr; Glib::ustring nextbalcolor; Glib::ustring balcolor; sigc::connection neutralconn, twocconn; //, neutralcurvesconn; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 81fc282ab..7aa03050a 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -144,7 +144,6 @@ Wavelet::Wavelet() : neutrHBox(Gtk::manage(new Gtk::HBox())) { CurveListener::setMulti(true); - nextnlevel = 7.; expsettings->signal_button_release_event().connect_notify( sigc::bind( sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings) ); @@ -886,36 +885,25 @@ Wavelet::~Wavelet () } void Wavelet::wavChanged (double nlevel) -{ - nextnlevel = nlevel; - - const auto func = [](gpointer data) -> gboolean { - GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected - static_cast(data)->wavComputed_(); - - return FALSE; - }; - - idle_register.add(func, this); -} - -bool Wavelet::wavComputed_ () -{ - disableListener (); - enableListener (); - updatewavLabel (); - return false; -} - -void Wavelet::updatewavLabel () { if (!batchMode) { - float lv; - lv = nextnlevel; - wavLabels->set_text( + struct Data { + Wavelet *me; + double nlevel; + }; + + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + Wavelet *me = d->me; + me->wavLabels->set_text( Glib::ustring::compose(M("TP_WAVELET_LEVLABEL"), - Glib::ustring::format(std::fixed, std::setprecision(0), lv)) - ); + Glib::ustring::format(std::fixed, std::setprecision(0), d->nlevel)) + ); + delete d; + return FALSE; + }; + + idle_register.add(func, new Data { this, nlevel }); } } diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 5cbb5bfe3..4146fa17d 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -93,7 +93,6 @@ private: void neutral_pressed (); void neutralchPressed (); void tmrToggled (); - void updatewavLabel (); void wavChanged (double nlevel); void HSmethodUpdateUI(); @@ -252,7 +251,6 @@ private: sigc::connection neutralchPressedConn; bool lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab; - int nextnlevel; IdleRegister idle_register; }; From 7038104a204a8ff355d51d748ea921af94621c0d Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 24 Oct 2018 23:56:25 +0200 Subject: [PATCH 02/21] Review idle_register.add() calls: denoise --- rtgui/dirpyrdenoise.cc | 207 ++++++++++++++--------------------------- rtgui/dirpyrdenoise.h | 68 +++++--------- 2 files changed, 92 insertions(+), 183 deletions(-) diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc index c2fb31902..81d7cff9a 100644 --- a/rtgui/dirpyrdenoise.cc +++ b/rtgui/dirpyrdenoise.cc @@ -30,11 +30,6 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP { std::vector milestones; CurveListener::setMulti(true); - nextnresid = 0.; - nexthighresid = 0.; - nextchroma = 15.; - nextred = 0.; - nextblue = 0.; std::vector defaultCurve; @@ -44,8 +39,6 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP Gtk::VBox * lumaVBox = Gtk::manage ( new Gtk::VBox()); lumaVBox->set_spacing(2); - - ctboxL = Gtk::manage (new Gtk::HBox ()); Gtk::Label* labmL = Gtk::manage (new Gtk::Label (M("TP_DIRPYRDENOISE_LUMINANCE_CONTROL") + ":")); ctboxL->pack_start (*labmL, Gtk::PACK_SHRINK, 1); @@ -66,11 +59,10 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP lshape->setIdentityValue(0.); lshape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve); - //lshape->setEditID(EUID_Lab_LCurve, BT_SINGLEPLANE_FLOAT); milestones.push_back( GradientMilestone(0., 0., 0., 0.) ); milestones.push_back( GradientMilestone(1., 1., 1., 1.) ); lshape->setBottomBarBgGradient(milestones); - //lshape->setLeftBarBgGradient(milestones); + milestones.push_back( GradientMilestone(0., 0., 0., 0.) ); milestones.push_back( GradientMilestone(1., 1., 1., 1.) ); NoiscurveEditorG->curveListComplete(); @@ -107,7 +99,6 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP C2method->set_active(0); C2methodconn = C2method->signal_changed().connect ( sigc::mem_fun(*this, &DirPyrDenoise::C2methodChanged) ); - NoiseLabels = Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER)); NoiseLabels->set_tooltip_text(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEWRESIDUAL_INFO_TOOLTIP")); @@ -129,7 +120,6 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP hb1->pack_end (*dmethod, Gtk::PACK_EXPAND_WIDGET, 1); pack_start(*hb1, Gtk::PACK_SHRINK, 1); - dmethodconn = dmethod->signal_changed().connect ( sigc::mem_fun(*this, &DirPyrDenoise::dmethodChanged) ); luma->setAdjusterListener (this); @@ -150,9 +140,6 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP CCcurveEditorG->curveListComplete(); - - //----------------------------------------- - luma->hide(); Ldetail->show(); @@ -162,8 +149,6 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP chroma->show(); redchro->show(); bluechro->show(); -// perform->show(); -// perform->set_active (true); // ---- Median FIltering ---- @@ -225,10 +210,7 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP smethod = Gtk::manage (new MyComboBoxText ()); smethod->append (M("TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE")); -// smethod->append (M("TP_DIRPYRDENOISE_MAIN_MODE_SHBI")); smethod->append (M("TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE")); -// smethod->append (M("TP_DIRPYRDENOISE_MAIN_MODE_SHALAL")); -// smethod->append (M("TP_DIRPYRDENOISE_MAIN_MODE_SHBIBI")); smethod->set_active(1); hb11->pack_start (*smethod, Gtk::PACK_EXPAND_WIDGET, 1); pack_start( *hb11, Gtk::PACK_SHRINK, 1); @@ -272,17 +254,9 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP chromaFrame->add(*chromaVBox); pack_start (*chromaFrame); -// pack_start( *hb11, Gtk::PACK_SHRINK, 4); - -// pack_start (*median); - ctboxm->pack_start (*methodmed); ctbox->pack_start (*medmethod); ctboxrgb->pack_start (*rgbmethod); -// pack_start (*ctboxm); -// pack_start (*ctbox); -// pack_start (*ctboxrgb); -// pack_start (*passes,Gtk::PACK_SHRINK, 1); medianVBox->pack_start (*ctboxm); medianVBox->pack_start (*ctbox); @@ -309,136 +283,97 @@ DirPyrDenoise::~DirPyrDenoise () void DirPyrDenoise::chromaChanged (double autchroma, double autred, double autblue) { - nextchroma = autchroma; - nextred = autred; - nextblue = autblue; - - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->chromaComputed_(); - return false; + struct Data { + DirPyrDenoise *me; + double autchroma; + double autred; + double autblue; }; - idle_register.add(func, this); -} + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + DirPyrDenoise *me = d->me; + me->disableListener(); + me->chroma->setValue(d->autchroma); + me->redchro->setValue(d->autred); + me->bluechro->setValue(d->autblue); + me->enableListener(); + delete d; + return FALSE; + }; -bool DirPyrDenoise::chromaComputed_ () -{ - - disableListener (); - chroma->setValue (nextchroma); - redchro->setValue (nextred); - bluechro->setValue (nextblue); - enableListener (); - updateNoiseLabel (); - return false; + idle_register.add(func, new Data { this, autchroma, autred, autblue }); } void DirPyrDenoise::noiseTilePrev (int tileX, int tileY, int prevX, int prevY, int sizeT, int sizeP) -{ - nexttileX = tileX; - nexttileY = tileY; - nextprevX = prevX; - nextprevY = prevY; - nextsizeT = sizeT; - nextsizeP = sizeP; - - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->TilePrevComputed_(); - return false; - }; - - idle_register.add(func, this); -} - -bool DirPyrDenoise::TilePrevComputed_ () -{ - - disableListener (); - enableListener (); - updateTileLabel (); - updatePrevLabel (); - return false; -} - -void DirPyrDenoise::updateTileLabel () { if (!batchMode) { - float sT; - float nX, nY; - sT = nextsizeT; - nX = nexttileX; - nY = nexttileY; - { - TileLabels->set_text( + struct Data { + DirPyrDenoise *me; + int tileX; + int tileY; + int prevX; + int prevY; + int sizeT; + int sizeP; + }; + + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + DirPyrDenoise *me = d->me; + me->TileLabels->set_text( Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO"), - Glib::ustring::format(std::fixed, std::setprecision(0), sT), - Glib::ustring::format(std::fixed, std::setprecision(0), nX), - Glib::ustring::format(std::fixed, std::setprecision(0), nY)) + Glib::ustring::format(std::fixed, std::setprecision(0), d->sizeT), + Glib::ustring::format(std::fixed, std::setprecision(0), d->tileX), + Glib::ustring::format(std::fixed, std::setprecision(0), d->tileY)) ); - } - } -} -void DirPyrDenoise::updatePrevLabel () -{ - if (!batchMode) { - float sP; - float pX, pY; - sP = nextsizeP; - pX = nextprevX; - pY = nextprevY; - { - PrevLabels->set_text( + me->PrevLabels->set_text( Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_INFO"), - Glib::ustring::format(std::fixed, std::setprecision(0), sP), - Glib::ustring::format(std::fixed, std::setprecision(0), pX), - Glib::ustring::format(std::fixed, std::setprecision(0), pY)) + Glib::ustring::format(std::fixed, std::setprecision(0), d->sizeP), + Glib::ustring::format(std::fixed, std::setprecision(0), d->prevX), + Glib::ustring::format(std::fixed, std::setprecision(0), d->prevY)) ); - } + delete d; + return FALSE; + }; + + idle_register.add(func, new Data { this, tileX, tileY, prevX, prevY, sizeT, sizeP }); } } void DirPyrDenoise::noiseChanged (double nresid, double highresid) -{ - nextnresid = nresid; - nexthighresid = highresid; - - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->noiseComputed_(); - return false; - }; - - idle_register.add(func, this); -} - -bool DirPyrDenoise::noiseComputed_ () -{ - - disableListener (); - enableListener (); - updateNoiseLabel (); - return false; -} - -void DirPyrDenoise::updateNoiseLabel () { if (!batchMode) { - float nois, high; - nois = nextnresid; - high = nexthighresid; + struct Data { + DirPyrDenoise *me; + double nresid; + double highresid; + }; - if(nois == 0.f && high == 0.f) { - NoiseLabels->set_text(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY")); - } else { - NoiseLabels->set_text( - Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO"), - Glib::ustring::format(std::fixed, std::setprecision(0), nois), - Glib::ustring::format(std::fixed, std::setprecision(0), high)) - ); - } + const auto func = [](gpointer data) -> gboolean { + Data *d = static_cast(data); + DirPyrDenoise *me = d->me; + me->updateNoiseLabel(d->nresid, d->highresid); + delete d; + return FALSE; + }; + + idle_register.add(func, new Data { this, nresid, highresid }); } } - +void DirPyrDenoise::updateNoiseLabel (float nois, float high) +{ + if(nois == 0.f && high == 0.f) { + NoiseLabels->set_text(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY")); + } else { + NoiseLabels->set_text( + Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO"), + Glib::ustring::format(std::fixed, std::setprecision(0), nois), + Glib::ustring::format(std::fixed, std::setprecision(0), high)) + ); + } +} void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) { @@ -647,7 +582,7 @@ void DirPyrDenoise::read (const ProcParams* pp, const ParamsEdited* pedited) medmethodconn.block(false); rgbmethodconn.block(false); methodmedconn.block(false); - updateNoiseLabel (); + updateNoiseLabel(); enableListener (); diff --git a/rtgui/dirpyrdenoise.h b/rtgui/dirpyrdenoise.h index 26a55ba20..767fb4a7a 100644 --- a/rtgui/dirpyrdenoise.h +++ b/rtgui/dirpyrdenoise.h @@ -40,43 +40,23 @@ public: DirPyrDenoise (); ~DirPyrDenoise (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); - void setBatchMode (bool batchMode); - void curveChanged (CurveEditor* ce); - void setEditProvider (EditDataProvider *provider); - void autoOpenCurve (); - + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr); + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr); + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr); + void setBatchMode (bool batchMode); + void curveChanged (CurveEditor* ce); + void setEditProvider (EditDataProvider *provider); + void autoOpenCurve (); void adjusterChanged (Adjuster* a, double newval); void adjusterAutoToggled(Adjuster* a, bool newval); - void enabledChanged (); - void medianChanged (); + void enabledChanged (); void chromaChanged (double autchroma, double autred, double autblue); - bool chromaComputed_ (); void noiseChanged (double nresid, double highresid); - bool noiseComputed_ (); void noiseTilePrev (int tileX, int tileY, int prevX, int prevY, int sizeT, int sizeP); - bool TilePrevComputed_ (); - -// void perform_toggled (); - void updateNoiseLabel (); - void LmethodChanged (); - void CmethodChanged (); - void C2methodChanged (); - void updateTileLabel (); - void updatePrevLabel (); - - void dmethodChanged (); - void medmethodChanged (); - void methodmedChanged (); - void rgbmethodChanged (); - void smethodChanged (); + void updateNoiseLabel (float nois = 0.f, float high = 0.f); virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller); - void setAdjusterBehavior (bool lumaadd, bool lumdetadd, bool chromaadd, bool chromaredadd, bool chromablueadd, bool gammaadd, bool passesadd); - void trimValues (rtengine::procparams::ProcParams* pp); - Glib::ustring getSettingString (); + void trimValues (rtengine::procparams::ProcParams* pp); private: CurveEditorGroup* NoiscurveEditorG; @@ -90,17 +70,12 @@ private: Adjuster* passes; FlatCurveEditor* lshape; FlatCurveEditor* ccshape; - sigc::connection medianConn; Gtk::CheckButton* median; bool lastmedian; Gtk::Label* NoiseLabels; Gtk::Label* TileLabels; Gtk::Label* PrevLabels; - -// Gtk::CheckButton* perform; -// bool lastperform; -// sigc::connection perfconn; MyComboBoxText* dmethod; sigc::connection dmethodconn; MyComboBoxText* Lmethod; @@ -120,22 +95,21 @@ private: MyComboBoxText* rgbmethod; sigc::connection rgbmethodconn; Gtk::HBox* ctboxrgb; - double nextchroma; - double nextred; - double nextblue; - double nextnresid; - double nexthighresid; Gtk::HBox* ctboxL; Gtk::HBox* ctboxC; Gtk::HBox* ctboxC2; - int nexttileX; - int nexttileY; - int nextprevX; - int nextprevY; - int nextsizeT; - int nextsizeP; - IdleRegister idle_register; + + void LmethodChanged (); + void CmethodChanged (); + void C2methodChanged (); + void dmethodChanged (); + void medmethodChanged (); + void methodmedChanged (); + void rgbmethodChanged (); + void smethodChanged (); + void medianChanged (); + }; #endif From 5906329485d018c865d2d0eb96e7ceb581234d5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sun, 28 Oct 2018 13:12:01 +0100 Subject: [PATCH 03/21] Review `IdleRegister` (#4892) This turns `IdleRegister::add()` into a template function to make the provided function pointers type safe. It also adds a `delete_data` parameter to manage the provided data pointer even in `destroy()`. --- rtgui/batchqueue.cc | 32 ++++---- rtgui/batchqueuepanel.cc | 13 ++-- rtgui/bayerprocess.cc | 72 +++++++++--------- rtgui/blackwhite.cc | 12 +-- rtgui/colorappearance.cc | 68 ++++++++--------- rtgui/colortoning.cc | 32 ++++---- rtgui/crop.cc | 66 ++++++++--------- rtgui/crophandler.cc | 12 +-- rtgui/dirpyrdenoise.cc | 84 ++++++++++----------- rtgui/editorpanel.cc | 99 +++++++++++-------------- rtgui/filebrowser.cc | 42 +++++------ rtgui/filebrowserentry.cc | 38 +++++----- rtgui/filecatalog.cc | 39 +++++----- rtgui/filepanel.cc | 12 +-- rtgui/flatfield.cc | 25 ++++--- rtgui/guiutils.cc | 35 ++------- rtgui/guiutils.h | 54 +++++++++++++- rtgui/histogrampanel.cc | 108 +++++++++++++-------------- rtgui/mydiagonalcurve.cc | 32 ++++---- rtgui/previewhandler.cc | 152 ++++++++++++++++++-------------------- rtgui/resize.cc | 126 +++++++++++++++---------------- rtgui/retinex.cc | 16 ++-- rtgui/tonecurve.cc | 44 +++++------ rtgui/toolpanelcoord.cc | 112 ++++++++++++++-------------- rtgui/wavelet.cc | 24 +++--- rtgui/whitebalance.cc | 33 +++++---- rtgui/xtransprocess.cc | 23 +++--- 27 files changed, 708 insertions(+), 697 deletions(-) diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index 1d52c96e6..de9864226 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -50,12 +50,10 @@ struct NLParams { Glib::ustring queueErrorMessage; }; -int bqnotifylistenerUI (void* data) +bool bqnotifylistenerUI(NLParams* params) { - NLParams* params = static_cast(data); params->listener->queueSizeChanged (params->qsize, params->queueEmptied, params->queueError, params->queueErrorMessage); - delete params; - return 0; + return false; } } @@ -438,16 +436,12 @@ void BatchQueue::cancelItems (const std::vector& items) if (entry->thumbnail) entry->thumbnail->imageRemovedFromQueue (); - const auto func = [](gpointer data) -> gboolean { - const BatchQueueEntry* const bqe = static_cast(data); - + const auto func = [](BatchQueueEntry* bqe) -> bool { ::g_remove(bqe->savedParamsFile.c_str()); - delete bqe; - - return FALSE; + return false; }; - idle_register.add(func, entry); + idle_register.add(func, entry, true); } for (const auto entry : fd) @@ -608,12 +602,14 @@ void BatchQueue::setProgress(double p) } // No need to acquire the GUI, setProgressUI will do it - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->redraw(); - return FALSE; - }; + const auto func = + [](BatchQueue* bq) -> bool + { + bq->redraw(); + return false; + }; - idle_register.add(func, this); + idle_register.add(func, this, false); } void BatchQueue::setProgressStr(const Glib::ustring& str) @@ -643,7 +639,7 @@ void BatchQueue::error(const Glib::ustring& descr) params->queueEmptied = false; params->queueError = true; params->queueErrorMessage = descr; - idle_register.add(bqnotifylistenerUI, params); + idle_register.add(bqnotifylistenerUI, params, true); } } @@ -985,7 +981,7 @@ void BatchQueue::notifyListener (bool queueEmptied) } params->queueEmptied = queueEmptied; params->queueError = false; - idle_register.add(bqnotifylistenerUI, params); + idle_register.add(bqnotifylistenerUI, params, true); } } diff --git a/rtgui/batchqueuepanel.cc b/rtgui/batchqueuepanel.cc index bc03c2386..d718de677 100644 --- a/rtgui/batchqueuepanel.cc +++ b/rtgui/batchqueuepanel.cc @@ -170,13 +170,14 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) show_all (); if (batchQueue->loadBatchQueue()) { - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->resizeLoadedQueue(); + const auto func = + [](BatchQueue* bq) -> bool + { + bq->resizeLoadedQueue(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, batchQueue, G_PRIORITY_LOW); + idle_register.add(func, batchQueue, false, G_PRIORITY_LOW); } } diff --git a/rtgui/bayerprocess.cc b/rtgui/bayerprocess.cc index 2a65a158e..ad9db9c2c 100644 --- a/rtgui/bayerprocess.cc +++ b/rtgui/bayerprocess.cc @@ -723,49 +723,51 @@ void BayerProcess::FrameCountChanged(int n, int frameNum) int n; int frameNum; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - BayerProcess *me = d->me; - me->imageNumber->block (true); - int n = d->n; - int frameNum = d->frameNum; - me->imageNumber->remove_all(); - me->imageNumber->append("1"); - for(int i = 2; i <= std::min(n, 4); ++i) { - std::ostringstream entry; - entry << i; - me->imageNumber->append(entry.str()); - } - me->imageNumber->set_active(std::min(frameNum, n - 1)); - if(n == 1) { - me->imageNumberBox->hide(); - } else { - me->imageNumberBox->show(); - } - me->imageNumber->block (false); - delete d; - return FALSE; - }; + const auto func = + [](Data* d) -> bool + { + BayerProcess *me = d->me; + me->imageNumber->block (true); + int n = d->n; + int frameNum = d->frameNum; - idle_register.add(func, new Data { this, n, frameNum }); + me->imageNumber->remove_all(); + me->imageNumber->append("1"); + for(int i = 2; i <= std::min(n, 4); ++i) { + std::ostringstream entry; + entry << i; + me->imageNumber->append(entry.str()); + } + me->imageNumber->set_active(std::min(frameNum, n - 1)); + if(n == 1) { + me->imageNumberBox->hide(); + } else { + me->imageNumberBox->show(); + } + me->imageNumber->block (false); + return false; + }; + + idle_register.add(func, new Data{this, n, frameNum}, true); } void BayerProcess::autoContrastChanged (double autoContrast) { struct Data { - BayerProcess *me; + BayerProcess* self; double autoContrast; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - BayerProcess *me = d->me; - me->disableListener(); - me->dualDemosaicContrast->setValue(d->autoContrast); - me->enableListener(); - delete d; - return FALSE; - }; - idle_register.add(func, new Data { this, autoContrast }); + const auto func = + [](Data* data) -> bool + { + BayerProcess* const self = data->self; + self->disableListener(); + self->dualDemosaicContrast->setValue(data->autoContrast); + self->enableListener(); + return false; + }; + + idle_register.add(func, new Data{this, autoContrast}, true); } diff --git a/rtgui/blackwhite.cc b/rtgui/blackwhite.cc index 47ab24f5e..359207115 100644 --- a/rtgui/blackwhite.cc +++ b/rtgui/blackwhite.cc @@ -375,12 +375,14 @@ void BlackWhite::BWChanged (double redbw, double greenbw, double bluebw) nextgreenbw = greenbw; nextbluebw = bluebw; - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->BWComputed_(); - return FALSE; - }; + const auto func = + [](BlackWhite* self) -> bool + { + self->BWComputed_(); + return false; + }; - idle_register.add(func, this); + idle_register.add(func, this, false); } bool BlackWhite::BWComputed_ () diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 14e630f3c..489b793da 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1452,63 +1452,63 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit void ColorAppearance::autoCamChanged (double ccam, double ccamout) { struct Data { - ColorAppearance *me; + ColorAppearance* me; double ccam; double ccamout; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - ColorAppearance *me = d->me; - me->disableListener(); - me->degree->setValue(d->ccam); - me->degreeout->setValue(d->ccamout); - me->enableListener(); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + ColorAppearance* const self = data->me; + self->disableListener(); + self->degree->setValue(data->ccam); + self->degreeout->setValue(data->ccamout); + self->enableListener(); + return false; + }; - idle_register.add(func, new Data { this, ccam, ccamout }); + idle_register.add(func, new Data{this, ccam, ccamout}, true); } void ColorAppearance::adapCamChanged (double cadap) { struct Data { - ColorAppearance *me; + ColorAppearance* self; double cadap; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - ColorAppearance *me = d->me; - me->disableListener(); - me->adapscen->setValue(d->cadap); - me->enableListener(); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + ColorAppearance* const self = data->self; + self->disableListener(); + self->adapscen->setValue(data->cadap); + self->enableListener(); + return false; + }; - idle_register.add(func, new Data { this, cadap }); + idle_register.add(func, new Data{this, cadap}, true); } void ColorAppearance::ybCamChanged (int ybsc) { struct Data { - ColorAppearance *me; + ColorAppearance* self; int ybsc; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - ColorAppearance *me = d->me; - me->disableListener(); - me->ybscen->setValue(d->ybsc); - me->enableListener(); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + ColorAppearance* self = data->self; + self->disableListener(); + self->ybscen->setValue(data->ybsc); + self->enableListener(); + return false; + }; - idle_register.add(func, new Data { this, ybsc }); + idle_register.add(func, new Data{this, ybsc}, true); } void ColorAppearance::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index 2f32d9b0b..f1e11a945 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -689,24 +689,24 @@ void ColorToning::setAdjusterBehavior (bool splitAdd, bool satThresholdAdd, bool void ColorToning::autoColorTonChanged(int satthres, int satprot) { - struct Data { - ColorToning *me; - int satthres; - int satprot; + struct Data { + ColorToning *self; + int satthres; + int satprot; + }; + + const auto func = + [](Data* data) -> bool + { + ColorToning* const self = data->self; + self->disableListener(); + self->satProtectionThreshold->setValue(data->satthres); + self->saturatedOpacity->setValue(data->satprot); + self->enableListener(); + return false; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - ColorToning *me = d->me; - me->disableListener(); - me->satProtectionThreshold->setValue(d->satthres); - me->saturatedOpacity->setValue(d->satprot); - me->enableListener (); - delete d; - return FALSE; - }; - - idle_register.add(func, new Data { this, satthres, satprot }); + idle_register.add(func, new Data{this, satthres, satprot}, true); } void ColorToning::adjusterChanged (ThresholdAdjuster* a, double newBottom, double newTop) diff --git a/rtgui/crop.cc b/rtgui/crop.cc index d5b246107..edf76b6b1 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -38,18 +38,16 @@ public: : crop(_crop), notify(_notify) {} }; -int refreshSpinsUI (void* data) +bool refreshSpinsUI(RefreshSpinHelper* rsh) { - RefreshSpinHelper* rsh = static_cast(data); - rsh->crop->refreshSpins (rsh->notify); - delete rsh; - return 0; + rsh->crop->refreshSpins(rsh->notify); + return false; } -int notifyListenerUI (void* data) +bool notifyListenerUI(Crop* self) { - static_cast(data)->notifyListener(); - return 0; + self->notifyListener(); + return false; } } @@ -515,16 +513,14 @@ void Crop::enabledChanged () void Crop::hFlipCrop () { - nx = maxw - nx - nw; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::vFlipCrop () { - ny = maxh - ny - nh; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::rotateCrop (int deg, bool hflip, bool vflip) @@ -564,7 +560,7 @@ void Crop::rotateCrop (int deg, bool hflip, bool vflip) } lastRotationDeg = deg; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::positionChanged () @@ -578,7 +574,7 @@ void Crop::positionChanged () int W = nw; int H = nh; cropMoved (X, Y, W, H); - idle_register.add(notifyListenerUI, this); + idle_register.add(notifyListenerUI, this, false); } void Crop::widthChanged () @@ -591,7 +587,7 @@ void Crop::widthChanged () int W = (int)w->get_value (); int H = nh; cropWidth2Resized (X, Y, W, H); - idle_register.add(notifyListenerUI, this); + idle_register.add(notifyListenerUI, this, false); } void Crop::heightChanged () @@ -604,7 +600,7 @@ void Crop::heightChanged () int W = nw; int H = (int)h->get_value (); cropHeight2Resized (X, Y, W, H); - idle_register.add(notifyListenerUI, this); + idle_register.add(notifyListenerUI, this, false); } // Fixed ratio toggle button @@ -656,7 +652,7 @@ void Crop::adjustCropToRatio() } // This will save the options - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, true)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, true), true); } void Crop::refreshSize () @@ -742,14 +738,14 @@ void Crop::sizeChanged(int x, int y, int ow, int oh) y }; - const auto func = [](gpointer data) -> gboolean { - Params* const params = static_cast(data); - params->crop->setDimensions(params->x, params->y); - delete params; - return FALSE; - }; + const auto func = + [](Params* params) -> bool + { + params->crop->setDimensions(params->x, params->y); + return false; + }; - idle_register.add(func, params); + idle_register.add(func, params, true); } bool Crop::refreshSpins (bool notify) @@ -813,7 +809,7 @@ void Crop::cropMoved (int &X, int &Y, int &W, int &H) nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); // Glib::signal_idle().connect (sigc::mem_fun(*this, &Crop::refreshSpins)); } @@ -857,7 +853,7 @@ void Crop::cropWidth1Resized (int &X, int &Y, int &W, int &H, float custom_ratio nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropWidth2Resized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -897,7 +893,7 @@ void Crop::cropWidth2Resized (int &X, int &Y, int &W, int &H, float custom_ratio nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropHeight1Resized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -940,7 +936,7 @@ void Crop::cropHeight1Resized (int &X, int &Y, int &W, int &H, float custom_rati nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropHeight2Resized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -980,7 +976,7 @@ void Crop::cropHeight2Resized (int &X, int &Y, int &W, int &H, float custom_rati nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropTopLeftResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1022,7 +1018,7 @@ void Crop::cropTopLeftResized (int &X, int &Y, int &W, int &H, float custom_rati nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropTopRightResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1062,7 +1058,7 @@ void Crop::cropTopRightResized (int &X, int &Y, int &W, int &H, float custom_rat nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropBottomLeftResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1102,7 +1098,7 @@ void Crop::cropBottomLeftResized (int &X, int &Y, int &W, int &H, float custom_r nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropBottomRightResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1139,7 +1135,7 @@ void Crop::cropBottomRightResized (int &X, int &Y, int &W, int &H, float custom_ nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropInit (int &x, int &y, int &w, int &h) @@ -1253,12 +1249,12 @@ void Crop::cropResized (int &x, int &y, int& x2, int& y2) nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false)); + idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); } void Crop::cropManipReady () { - idle_register.add(notifyListenerUI, this); + idle_register.add(notifyListenerUI, this, false); } double Crop::getRatio () const diff --git a/rtgui/crophandler.cc b/rtgui/crophandler.cc index c00cccf6c..579d9af5b 100644 --- a/rtgui/crophandler.cc +++ b/rtgui/crophandler.cc @@ -338,9 +338,9 @@ void CropHandler::setDetailedCrop( bool expected = false; if (redraw_needed.compare_exchange_strong(expected, true)) { - const auto func = [](gpointer data) -> gboolean { - CropHandler* const self = static_cast(data); - + const auto func = + [](CropHandler* self) -> bool + { self->cimg.lock (); if (self->redraw_needed.exchange(false)) { @@ -350,7 +350,7 @@ void CropHandler::setDetailedCrop( self->cropimg.clear(); self->cropimgtrue.clear(); self->cimg.unlock (); - return FALSE; + return false; } if (!self->cropimg.empty()) { @@ -398,10 +398,10 @@ void CropHandler::setDetailedCrop( self->cimg.unlock(); } - return FALSE; + return false; }; - idle_register.add(func, this/*, G_PRIORITY_HIGH_IDLE*/); + idle_register.add(func, this, false); } } diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc index 81d7cff9a..72360b1de 100644 --- a/rtgui/dirpyrdenoise.cc +++ b/rtgui/dirpyrdenoise.cc @@ -284,32 +284,32 @@ DirPyrDenoise::~DirPyrDenoise () void DirPyrDenoise::chromaChanged (double autchroma, double autred, double autblue) { struct Data { - DirPyrDenoise *me; + DirPyrDenoise* self; double autchroma; double autred; double autblue; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - DirPyrDenoise *me = d->me; - me->disableListener(); - me->chroma->setValue(d->autchroma); - me->redchro->setValue(d->autred); - me->bluechro->setValue(d->autblue); - me->enableListener(); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + DirPyrDenoise* const self = data->self; + self->disableListener(); + self->chroma->setValue(data->autchroma); + self->redchro->setValue(data->autred); + self->bluechro->setValue(data->autblue); + self->enableListener(); + return false; + }; - idle_register.add(func, new Data { this, autchroma, autred, autblue }); + idle_register.add(func, new Data{this, autchroma, autred, autblue}, true); } void DirPyrDenoise::noiseTilePrev (int tileX, int tileY, int prevX, int prevY, int sizeT, int sizeP) { if (!batchMode) { struct Data { - DirPyrDenoise *me; + DirPyrDenoise* self; int tileX; int tileY; int prevX; @@ -318,26 +318,26 @@ void DirPyrDenoise::noiseTilePrev (int tileX, int tileY, int prevX, int prevY, i int sizeP; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - DirPyrDenoise *me = d->me; - me->TileLabels->set_text( - Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO"), - Glib::ustring::format(std::fixed, std::setprecision(0), d->sizeT), - Glib::ustring::format(std::fixed, std::setprecision(0), d->tileX), - Glib::ustring::format(std::fixed, std::setprecision(0), d->tileY)) - ); - me->PrevLabels->set_text( - Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_INFO"), - Glib::ustring::format(std::fixed, std::setprecision(0), d->sizeP), - Glib::ustring::format(std::fixed, std::setprecision(0), d->prevX), - Glib::ustring::format(std::fixed, std::setprecision(0), d->prevY)) - ); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + DirPyrDenoise* self = data->self; + self->TileLabels->set_text( + Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO"), + Glib::ustring::format(std::fixed, std::setprecision(0), data->sizeT), + Glib::ustring::format(std::fixed, std::setprecision(0), data->tileX), + Glib::ustring::format(std::fixed, std::setprecision(0), data->tileY)) + ); + self->PrevLabels->set_text( + Glib::ustring::compose(M("TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_INFO"), + Glib::ustring::format(std::fixed, std::setprecision(0), data->sizeP), + Glib::ustring::format(std::fixed, std::setprecision(0), data->prevX), + Glib::ustring::format(std::fixed, std::setprecision(0), data->prevY)) + ); + return false; + }; - idle_register.add(func, new Data { this, tileX, tileY, prevX, prevY, sizeT, sizeP }); + idle_register.add(func, new Data{this, tileX, tileY, prevX, prevY, sizeT, sizeP}, true); } } @@ -345,20 +345,20 @@ void DirPyrDenoise::noiseChanged (double nresid, double highresid) { if (!batchMode) { struct Data { - DirPyrDenoise *me; + DirPyrDenoise* self; double nresid; double highresid; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - DirPyrDenoise *me = d->me; - me->updateNoiseLabel(d->nresid, d->highresid); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + DirPyrDenoise* const self = data->self; + self->updateNoiseLabel(data->nresid, data->highresid); + return false; + }; - idle_register.add(func, new Data { this, nresid, highresid }); + idle_register.add(func, new Data{this, nresid, highresid}, true); } } diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 1f46d60e7..d86612c9f 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -45,10 +45,8 @@ struct spparams { Glib::RefPtr cssProvider; }; -int setprogressStrUI ( void *p ) +bool setprogressStrUI(spparams* s) { - spparams *s = static_cast (p); - if ( ! s->str.empty() ) { s->pProgress->set_text ( M (s->str) ); } @@ -67,8 +65,7 @@ int setprogressStrUI ( void *p ) } } - delete s; - return FALSE; + return false; } @@ -498,7 +495,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) // build left side panel leftbox = new Gtk::Paned (Gtk::ORIENTATION_VERTICAL); - + // make a subbox to allow resizing of the histogram (if it's on the left) leftsubbox = new Gtk::Box (Gtk::ORIENTATION_VERTICAL); leftsubbox->set_size_request (230, 250); @@ -520,7 +517,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) leftsubbox->pack_start (*history); leftsubbox->show_all (); - + leftbox->pack2 (*leftsubbox, true, true); leftbox->show_all (); @@ -638,14 +635,14 @@ EditorPanel::EditorPanel (FilePanel* filePanel) // build right side panel vboxright = new Gtk::Paned (Gtk::ORIENTATION_VERTICAL); - + vsubboxright = new Gtk::Box (Gtk::ORIENTATION_VERTICAL, 0); vsubboxright->set_size_request (300, 250); vsubboxright->pack_start (*ppframe, Gtk::PACK_SHRINK, 2); // main notebook vsubboxright->pack_start (*tpc->toolPanelNotebook); - + vboxright->pack2 (*vsubboxright, true, true); // Save buttons @@ -862,7 +859,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) if (tbTopPanel_1) { tbTopPanel_1->signal_toggled().connect ( sigc::mem_fun (*this, &EditorPanel::tbTopPanel_1_toggled) ); } - + } EditorPanel::~EditorPanel () @@ -1192,7 +1189,7 @@ void EditorPanel::setProgress(double p) spparams *s = new spparams; s->val = p; s->pProgress = progressLabel; - idle_register.add(setprogressStrUI, s); + idle_register.add(setprogressStrUI, s, true); } void EditorPanel::setProgressStr(const Glib::ustring& str) @@ -1201,7 +1198,7 @@ void EditorPanel::setProgressStr(const Glib::ustring& str) s->str = str; s->val = -1; s->pProgress = progressLabel; - idle_register.add(setprogressStrUI, s); + idle_register.add(setprogressStrUI, s, true); } void EditorPanel::setProgressState(bool inProcessing) @@ -1217,30 +1214,27 @@ void EditorPanel::setProgressState(bool inProcessing) p->inProcessing = inProcessing; p->epih = epih; - const auto func = [] (gpointer data) -> gboolean { - spsparams* const p = static_cast (data); - - if (p->epih->destroyed) + const auto func = + [](spsparams* p) -> bool { - if (p->epih->pending == 1) { - delete p->epih; - } else { - p->epih->pending--; + if (p->epih->destroyed) + { + if (p->epih->pending == 1) { + delete p->epih; + } else { + p->epih->pending--; + } + + return false; } - delete p; + p->epih->epanel->refreshProcessingState (p->inProcessing); + p->epih->pending--; - return 0; - } + return false; + }; - p->epih->epanel->refreshProcessingState (p->inProcessing); - p->epih->pending--; - delete p; - - return FALSE; - }; - - idle_register.add (func, p); + idle_register.add(func, p, true); } void EditorPanel::error(const Glib::ustring& descr) @@ -1261,30 +1255,27 @@ void EditorPanel::error(const Glib::ustring& title, const Glib::ustring& descr) p->title = title; p->epih = epih; - const auto func = [] (gpointer data) -> gboolean { - errparams* const p = static_cast (data); - - if (p->epih->destroyed) + const auto func = + [](errparams* p) -> bool { - if (p->epih->pending == 1) { - delete p->epih; - } else { - p->epih->pending--; + if (p->epih->destroyed) + { + if (p->epih->pending == 1) { + delete p->epih; + } else { + p->epih->pending--; + } + + return false; } - delete p; + p->epih->epanel->displayError (p->title, p->descr); + p->epih->pending--; - return 0; - } + return false; + }; - p->epih->epanel->displayError (p->title, p->descr); - p->epih->pending--; - delete p; - - return FALSE; - }; - - idle_register.add (func, p); + idle_register.add(func, p, true); } void EditorPanel::displayError(const Glib::ustring& title, const Glib::ustring& descr) @@ -2376,7 +2367,7 @@ void EditorPanel::updateHistogramPosition (int oldPosition, int newPosition) leftbox->pack1(*histogramPanel, false, false); histogramPanel->unreference(); } - + leftbox->set_position(options.histogramHeight); histogramPanel->reorder (Gtk::POS_LEFT); break; @@ -2396,14 +2387,14 @@ void EditorPanel::updateHistogramPosition (int oldPosition, int newPosition) vboxright->pack1 (*histogramPanel, false, false); histogramPanel->unreference(); } - - vboxright->set_position(options.histogramHeight); + + vboxright->set_position(options.histogramHeight); histogramPanel->reorder (Gtk::POS_RIGHT); break; } iareapanel->imageArea->setPointerMotionHListener (histogramPanel); - + } diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index f83e39146..f2ce2cb79 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -568,31 +568,30 @@ void FileBrowser::doubleClicked (ThumbBrowserEntryBase* entry) void FileBrowser::addEntry (FileBrowserEntry* entry) { struct addparams { - FileBrowser *browser; - FileBrowserEntry *entry; + FileBrowser* self; + FileBrowserEntry* entry; unsigned int session_id; }; addparams* const ap = new addparams; entry->setParent (this); - ap->browser = this; + ap->self = this; ap->entry = entry; ap->session_id = session_id(); - const auto func = [](gpointer data) -> gboolean { - addparams* const ap = static_cast(data); - if (ap->session_id != ap->browser->session_id()) { - delete ap->entry; - delete ap; - } else { - ap->browser->addEntry_(ap->entry); - delete ap; - } + const auto func = + [](addparams* ap) -> bool + { + if (ap->session_id != ap->self->session_id()) { + delete ap->entry; + } else { + ap->self->addEntry_(ap->entry); + } - return FALSE; - }; + return false; + }; - idle_register.add(func, ap); + idle_register.add(func, ap, true); } void FileBrowser::addEntry_ (FileBrowserEntry* entry) @@ -1935,13 +1934,14 @@ void FileBrowser::_thumbRearrangementNeeded () void FileBrowser::thumbRearrangementNeeded () { - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->_thumbRearrangementNeeded(); + const auto func = + [](FileBrowser* self) -> bool + { + self->_thumbRearrangementNeeded(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } void FileBrowser::selectionChanged () diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index c91f95912..5d47a54ea 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -233,31 +233,29 @@ void FileBrowserEntry::updateImage(rtengine::IImage8* img, double scale, const r const gint priority = G_PRIORITY_LOW; - const auto func = [](gpointer data) -> gboolean { - tiupdate* const params = static_cast(data); - FileBrowserEntryIdleHelper* const feih = params->feih; + const auto func = + [](tiupdate* params) -> bool + { + FileBrowserEntryIdleHelper* const feih = params->feih; - if (feih->destroyed) { - if (feih->pending == 1) { - delete feih; - } else { - feih->pending--; + if (feih->destroyed) { + if (feih->pending == 1) { + delete feih; + } else { + feih->pending--; + } + + params->img->free (); + return false; } - params->img->free (); - delete params; - return 0; - } + feih->fbentry->_updateImage (params->img, params->scale, params->cropParams); + feih->pending--; - feih->fbentry->_updateImage (params->img, params->scale, params->cropParams); - feih->pending--; + return false; + }; - delete params; - - return FALSE; - }; - - idle_register.add(func, param, priority); + idle_register.add(func, param, true, priority); } void FileBrowserEntry::_updateImage(rtengine::IImage8* img, double s, const rtengine::procparams::CropParams& cropParams) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 55e293718..e9d1720b9 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -873,13 +873,14 @@ void FileCatalog::previewsFinished (int dir_id) currentEFS = dirEFS; } - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->previewsFinishedUI(); + const auto func = + [](FileCatalog* self) -> bool + { + self->previewsFinishedUI(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } void FileCatalog::setEnabled (bool e) @@ -941,24 +942,22 @@ struct FCOIParams { std::vector tmb; }; -int openRequestedUI (void* p) +bool openRequestedUI(FCOIParams* params) { - FCOIParams* params = static_cast(p); params->catalog->_openImage (params->tmb); - delete params; - - return 0; + return false; } void FileCatalog::filterApplied() { - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->_refreshProgressBar(); + const auto func = + [](FileCatalog* self) -> bool + { + self->_refreshProgressBar(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } void FileCatalog::openRequested(const std::vector& tmb) @@ -971,7 +970,7 @@ void FileCatalog::openRequested(const std::vector& tmb) tmb[i]->increaseRef (); } - idle_register.add(openRequestedUI, params); + idle_register.add(openRequestedUI, params, true); } void FileCatalog::deleteRequested(const std::vector& tbe, bool inclBatchProcessed) @@ -1229,7 +1228,7 @@ void FileCatalog::developRequested(const std::vector& tbe, bo params.resize.width = options.fastexport_resize_width; params.resize.height = options.fastexport_resize_height; } - + params.resize.enabled = options.fastexport_resize_enabled; params.resize.scale = options.fastexport_resize_scale; params.resize.appliesTo = options.fastexport_resize_appliesTo; @@ -1903,7 +1902,7 @@ void FileCatalog::addAndOpenFile (const Glib::ustring& fname) params->catalog = this; params->tmb.push_back (tmb); tmb->increaseRef (); - idle_register.add(openRequestedUI, params); + idle_register.add(openRequestedUI, params, true); } catch(Gio::Error&) {} } diff --git a/rtgui/filepanel.cc b/rtgui/filepanel.cc index f75983ac0..c842dad66 100644 --- a/rtgui/filepanel.cc +++ b/rtgui/filepanel.cc @@ -139,12 +139,14 @@ FilePanel::FilePanel () : parent(nullptr), error(0) fileCatalog->setFileSelectionListener (this); - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->init(); - return FALSE; - }; + const auto func = + [](FilePanel* self) -> bool + { + self->init(); + return false; + }; - idle_register.add(func, this); + idle_register.add(func, this, false); show_all (); } diff --git a/rtgui/flatfield.cc b/rtgui/flatfield.cc index 057ce731c..ae94255a7 100644 --- a/rtgui/flatfield.cc +++ b/rtgui/flatfield.cc @@ -412,18 +412,19 @@ void FlatField::setShortcutPath(const Glib::ustring& path) void FlatField::flatFieldAutoClipValueChanged(int n) { struct Data { - FlatField *me; + FlatField* self; int n; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - FlatField *me = d->me; - me->disableListener(); - me->flatFieldClipControl->setValue (d->n); - me->enableListener(); - delete d; - return FALSE; - }; - idle_register.add(func, new Data { this, n }); -} \ No newline at end of file + const auto func = + [](Data* data) -> bool + { + FlatField* const self = data->self; + self->disableListener(); + self->flatFieldClipControl->setValue (data->n); + self->enableListener(); + return false; + }; + + idle_register.add(func, new Data{this, n}, true); +} diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index f8129b0fb..257927b0c 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -43,39 +43,14 @@ IdleRegister::~IdleRegister() destroy(); } -void IdleRegister::add(GSourceFunc function, gpointer data, gint priority) -{ - const auto dispatch = [](gpointer data) -> gboolean { - DataWrapper* const data_wrapper = static_cast(data); - - if (!data_wrapper->function(data_wrapper->data)) { - data_wrapper->self->mutex.lock(); - data_wrapper->self->ids.erase(data_wrapper); - data_wrapper->self->mutex.unlock(); - - delete data_wrapper; - return FALSE; - } - - return TRUE; - }; - - DataWrapper* const data_wrapper = new DataWrapper{ - this, - function, - data - }; - - mutex.lock(); - ids[data_wrapper] = gdk_threads_add_idle_full(priority, dispatch, data_wrapper, nullptr); - mutex.unlock(); -} - void IdleRegister::destroy() { mutex.lock(); for (const auto& id : ids) { g_source_remove(id.second); + if (id.first->deleter) { + id.first->deleter(id.first->data); + } delete id.first; } ids.clear(); @@ -1278,7 +1253,7 @@ MyFileChooserButton::MyFileChooserButton(const Glib::ustring &title, Gtk::FileCh if (GTK_MINOR_VERSION < 20) { set_border_width(2); // margin doesn't work on GTK < 3.20 } - + set_name("MyFileChooserButton"); } @@ -1368,7 +1343,7 @@ std::vector> MyFileChooserButton::list_filters() return file_filters_; } - + bool MyFileChooserButton::set_current_folder(const std::string &filename) { current_folder_ = filename; diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 8816eca4f..2cb7ca77e 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -50,7 +50,54 @@ class IdleRegister final : public: ~IdleRegister(); - void add(GSourceFunc function, gpointer data, gint priority = G_PRIORITY_DEFAULT_IDLE); + template + void add(bool (*function)(DATA*), DATA* data, bool delete_data, gint priority = G_PRIORITY_DEFAULT_IDLE) + { + const auto dispatch = + [](gpointer data) -> gboolean + { + DataWrapper* const data_wrapper = static_cast(data); + + // This is safe as per https://en.cppreference.com/w/cpp/language/reinterpret_cast item 7) + if (!reinterpret_cast(data_wrapper->function)(static_cast(data_wrapper->data))) { + data_wrapper->self->mutex.lock(); + data_wrapper->self->ids.erase(data_wrapper); + data_wrapper->self->mutex.unlock(); + + if (data_wrapper->deleter) { + data_wrapper->deleter(data_wrapper->data); + } + + delete data_wrapper; + return FALSE; + } + + return TRUE; + }; + + DataWrapper* const data_wrapper = new DataWrapper{ + this, + reinterpret_cast(function), + data, + [delete_data]() -> GSourceFunc + { + if (delete_data) { + return + [](gpointer data) -> gboolean + { + delete static_cast(data); + return TRUE; + }; + } + return nullptr; + }() + }; + + mutex.lock(); + ids[data_wrapper] = gdk_threads_add_idle_full(priority, dispatch, data_wrapper, nullptr); + mutex.unlock(); + } + void destroy(); private: @@ -58,6 +105,7 @@ private: IdleRegister* const self; GSourceFunc function; gpointer data; + GSourceFunc deleter; }; std::map ids; @@ -399,7 +447,7 @@ public: sigc::signal &signal_selection_changed(); sigc::signal &signal_file_set(); - + std::string get_filename() const; bool set_filename(const std::string &filename); @@ -407,7 +455,7 @@ public: void remove_filter(const Glib::RefPtr &filter); void set_filter(const Glib::RefPtr &filter); std::vector> list_filters(); - + bool set_current_folder(const std::string &filename); std::string get_current_folder() const; diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index 7c136cbfe..007e1187d 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -44,11 +44,11 @@ HistogramPanel::HistogramPanel () histogramArea = Gtk::manage (new HistogramArea (this)); setExpandAlignProperties(histogramArea, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); - + histogramRGBArea = Gtk::manage (new HistogramRGBArea ()); setExpandAlignProperties(histogramRGBArea, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_END); histogramRGBArea->show(); - + // connecting the two childs histogramArea->signal_factor_changed().connect( sigc::mem_fun(*histogramRGBArea, &HistogramRGBArea::factorChanged) ); @@ -78,7 +78,7 @@ HistogramPanel::HistogramPanel () chroImage_g = new RTImage ("histogram-gold-off-small.png"); rawImage_g = new RTImage ("histogram-bayer-off-small.png"); barImage_g = new RTImage ("histogram-bar-off-small.png"); - + mode0Image = new RTImage ("histogram-mode-linear-small.png"); mode1Image = new RTImage ("histogram-mode-logx-small.png"); mode2Image = new RTImage ("histogram-mode-logxy-small.png"); @@ -226,9 +226,9 @@ void HistogramPanel::resized (Gtk::Allocation& req) histogramRGBArea->updateBackBuffer(-1, -1, -1); histogramRGBArea->queue_draw (); - // Store current height of the histogram + // Store current height of the histogram options.histogramHeight = get_height(); - + } void HistogramPanel::red_toggled () @@ -346,7 +346,7 @@ void HistogramPanel::reorder (Gtk::PositionType align) // DrawModeListener interface: void HistogramPanel::toggleButtonMode () -{ +{ if (options.histogramDrawMode == 0) showMode->set_image(*mode0Image); else if (options.histogramDrawMode == 1) @@ -562,28 +562,28 @@ void HistogramRGBArea::update (int valh, int rh, int gh, int bh) harih->pending++; - const auto func = [](gpointer data) -> gboolean { - HistogramRGBAreaIdleHelper* const harih = static_cast(data); + const auto func = + [](HistogramRGBAreaIdleHelper* harih) -> bool + { + if (harih->destroyed) { + if (harih->pending == 1) { + delete harih; + } else { + harih->pending--; + } - if (harih->destroyed) { - if (harih->pending == 1) { - delete harih; - } else { - harih->pending--; + return false; } - return 0; - } + harih->harea->updateBackBuffer(-1, -1, -1); + harih->harea->queue_draw (); - harih->harea->updateBackBuffer(-1, -1, -1); - harih->harea->queue_draw (); + harih->pending--; - harih->pending--; + return false; + }; - return FALSE; - }; - - idle_register.add(func, harih); + idle_register.add(func, harih, false); } void HistogramRGBArea::updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, bool bar) @@ -655,7 +655,7 @@ void HistogramRGBArea::factorChanged (double newFactor) // // // HistogramArea -HistogramArea::HistogramArea (DrawModeListener *fml) : +HistogramArea::HistogramArea (DrawModeListener *fml) : valid(false), drawMode(options.histogramDrawMode), myDrawModeListener(fml), oldwidth(-1), oldheight(-1), needRed(options.histogramRed), needGreen(options.histogramGreen), needBlue(options.histogramBlue), @@ -703,14 +703,14 @@ void HistogramArea::get_preferred_height_vfunc (int &minimum_height, int &natura void HistogramArea::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - + minimum_width = 200; natural_width = 400; } void HistogramArea::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { - + minimum_height = 0; natural_height = 0; } @@ -722,7 +722,7 @@ void HistogramArea::get_preferred_width_for_height_vfunc (int height, int &minim void HistogramArea::updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, int mode) { - + options.histogramRed = needRed = r; options.histogramGreen = needGreen = g; options.histogramBlue = needBlue = b; @@ -761,29 +761,29 @@ void HistogramArea::update( haih->pending++; // Can be done outside of the GUI thread - const auto func = [](gpointer data) -> gboolean { - HistogramAreaIdleHelper* const haih = static_cast(data); + const auto func = + [](HistogramAreaIdleHelper* haih) -> bool + { + if (haih->destroyed) { + if (haih->pending == 1) { + delete haih; + } else { + haih->pending--; + } - if (haih->destroyed) { - if (haih->pending == 1) { - delete haih; - } else { - haih->pending--; + return false; } - return 0; - } + haih->harea->setDirty (true); + haih->harea->updateBackBuffer (); + haih->harea->queue_draw (); - haih->harea->setDirty (true); - haih->harea->updateBackBuffer (); - haih->harea->queue_draw (); + haih->pending--; - haih->pending--; + return false; + }; - return FALSE; - }; - - idle_register.add(func, haih); + idle_register.add(func, haih, false); } void HistogramArea::updateBackBuffer () @@ -889,7 +889,7 @@ void HistogramArea::updateBackBuffer () // Compute the highest point of the histogram for scaling // Values at far left and right end (0 and 255) are handled differently - + unsigned int histheight = 0; for (int i = 1; i < 255; i++) { @@ -915,7 +915,7 @@ void HistogramArea::updateBackBuffer () } int realhistheight = histheight; - + if (realhistheight < winh - 2) { realhistheight = winh - 2; } @@ -960,7 +960,7 @@ void HistogramArea::updateBackBuffer () cr->stroke (); drawMarks(cr, bhchanged, realhistheight, w, ui, oi); } - + } // Draw the frame's border @@ -1044,16 +1044,16 @@ bool HistogramArea::on_button_press_event (GdkEventButton* event) { isPressed = true; movingPosition = event->x; - + if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { - + drawMode = (drawMode + 1) % 3; options.histogramDrawMode = (options.histogramDrawMode + 1) % 3; - + if (myDrawModeListener) { myDrawModeListener->toggleButtonMode (); } - + updateBackBuffer (); queue_draw (); } @@ -1072,19 +1072,19 @@ bool HistogramArea::on_motion_notify_event (GdkEventMotion* event) if (isPressed) { double mod = 1 + (event->x - movingPosition) / get_width(); - + factor /= mod; if (factor < 1.0) factor = 1.0; if (factor > 100.0) factor = 100.0; - + sigFactorChanged.emit(factor); - + setDirty(true); queue_draw (); } - + return true; } diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index 0bc58f28e..d07ce5943 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -1516,28 +1516,28 @@ void MyDiagonalCurve::updateBackgroundHistogram (LUTu & hist) mcih->pending++; - const auto func = [](gpointer data) -> gboolean { - MyCurveIdleHelper* const mcih = static_cast(data); + const auto func = + [](MyCurveIdleHelper* mcih) -> bool + { + if (mcih->destroyed) { + if (mcih->pending == 1) { + delete mcih; + } else { + mcih->pending--; + } - if (mcih->destroyed) { - if (mcih->pending == 1) { - delete mcih; - } else { - mcih->pending--; + return false; } - return 0; - } + mcih->clearPixmap (); + mcih->myCurve->queue_draw (); - mcih->clearPixmap (); - mcih->myCurve->queue_draw (); + mcih->pending--; - mcih->pending--; + return false; + }; - return FALSE; - }; - - idle_register.add(func, mcih); + idle_register.add(func, mcih, false); } void MyDiagonalCurve::reset(const std::vector &resetCurve, double identityValue) diff --git a/rtgui/previewhandler.cc b/rtgui/previewhandler.cc index a251986bf..5029397a0 100644 --- a/rtgui/previewhandler.cc +++ b/rtgui/previewhandler.cc @@ -67,40 +67,38 @@ void PreviewHandler::setImage(rtengine::IImage8* i, double scale, const rtengine iap->scale = scale; iap->cp = cp; - const auto func = [](gpointer data) -> gboolean { - iaimgpar* const iap = static_cast(data); - PreviewHandlerIdleHelper* const pih = iap->pih; + const auto func = + [](iaimgpar* iap) -> bool + { + PreviewHandlerIdleHelper* const pih = iap->pih; - if (pih->destroyed) { - if (pih->pending == 1) { - delete pih; - } else { - pih->pending--; + if (pih->destroyed) { + if (pih->pending == 1) { + delete pih; + } else { + pih->pending--; + } + + return false; } - delete iap; + if (pih->phandler->image) { + IImage8* const oldImg = pih->phandler->image; + oldImg->getMutex().lock (); + pih->phandler->image = iap->image; + oldImg->getMutex().unlock (); + } else { + pih->phandler->image = iap->image; + } - return FALSE; - } + pih->phandler->cropParams = iap->cp; + pih->phandler->previewScale = iap->scale; + pih->pending--; - if (pih->phandler->image) { - IImage8* const oldImg = pih->phandler->image; - oldImg->getMutex().lock (); - pih->phandler->image = iap->image; - oldImg->getMutex().unlock (); - } else { - pih->phandler->image = iap->image; - } + return false; + }; - pih->phandler->cropParams = iap->cp; - pih->phandler->previewScale = iap->scale; - pih->pending--; - delete iap; - - return FALSE; - }; - - idle_register.add(func, iap); + idle_register.add(func, iap, true); } @@ -112,41 +110,39 @@ void PreviewHandler::delImage(IImage8* i) iap->image = i; iap->pih = pih; - const auto func = [](gpointer data) -> gboolean { - iaimgpar* iap = static_cast(data); - PreviewHandlerIdleHelper* pih = iap->pih; + const auto func = + [](iaimgpar* iap) -> bool + { + PreviewHandlerIdleHelper* const pih = iap->pih; - if (pih->destroyed) { - if (pih->pending == 1) { - delete pih; - } else { - pih->pending--; + if (pih->destroyed) { + if (pih->pending == 1) { + delete pih; + } else { + pih->pending--; + } + + return false; } - delete iap; + if (pih->phandler->image) { + IImage8* oldImg = pih->phandler->image; + oldImg->getMutex().lock (); + pih->phandler->image = nullptr; + oldImg->getMutex().unlock (); + } - return FALSE; - } + iap->image->free (); + pih->phandler->previewImgMutex.lock (); + pih->phandler->previewImg.clear (); + pih->phandler->previewImgMutex.unlock (); - if (pih->phandler->image) { - IImage8* oldImg = pih->phandler->image; - oldImg->getMutex().lock (); - pih->phandler->image = nullptr; - oldImg->getMutex().unlock (); - } + pih->pending--; - iap->image->free (); - pih->phandler->previewImgMutex.lock (); - pih->phandler->previewImg.clear (); - pih->phandler->previewImgMutex.unlock (); + return false; + }; - pih->pending--; - delete iap; - - return FALSE; - }; - - idle_register.add(func, iap); + idle_register.add(func, iap, true); } void PreviewHandler::imageReady(const rtengine::procparams::CropParams& cp) @@ -156,34 +152,32 @@ void PreviewHandler::imageReady(const rtengine::procparams::CropParams& cp) iap->pih = pih; iap->cp = cp; - const auto func = [](gpointer data) -> gboolean { - iaimgpar* const iap = static_cast(data); - PreviewHandlerIdleHelper* pih = iap->pih; + const auto func = + [](iaimgpar* iap) -> bool + { + PreviewHandlerIdleHelper* const pih = iap->pih; - if (pih->destroyed) { - if (pih->pending == 1) { - delete pih; - } else { - pih->pending--; + if (pih->destroyed) { + if (pih->pending == 1) { + delete pih; + } else { + pih->pending--; + } + + return false; } - delete iap; + pih->phandler->previewImgMutex.lock (); + pih->phandler->previewImg = Gdk::Pixbuf::create_from_data (pih->phandler->image->getData(), Gdk::COLORSPACE_RGB, false, 8, pih->phandler->image->getWidth(), pih->phandler->image->getHeight(), 3 * pih->phandler->image->getWidth()); + pih->phandler->previewImgMutex.unlock (); + pih->phandler->cropParams = iap->cp; + pih->phandler->previewImageChanged (); + pih->pending--; - return FALSE; - } + return false; + }; - pih->phandler->previewImgMutex.lock (); - pih->phandler->previewImg = Gdk::Pixbuf::create_from_data (pih->phandler->image->getData(), Gdk::COLORSPACE_RGB, false, 8, pih->phandler->image->getWidth(), pih->phandler->image->getHeight(), 3 * pih->phandler->image->getWidth()); - pih->phandler->previewImgMutex.unlock (); - pih->phandler->cropParams = iap->cp; - pih->phandler->previewImageChanged (); - pih->pending--; - delete iap; - - return FALSE; - }; - - idle_register.add(func, iap); + idle_register.add(func, iap, true); } Glib::RefPtr PreviewHandler::getRoughImage (int x, int y, int w, int h, double zoom) diff --git a/rtgui/resize.cc b/rtgui/resize.cc index 0de1f7db0..c57ff236a 100644 --- a/rtgui/resize.cc +++ b/rtgui/resize.cc @@ -95,7 +95,7 @@ Resize::Resize () : FoldableToolPanel(this, "resize", M("TP_RESIZE_LABEL"), fals allowUpscaling = Gtk::manage(new Gtk::CheckButton(M("TP_RESIZE_ALLOW_UPSCALING"))); sizeBox->pack_start(*allowUpscaling); allowUpscaling->signal_toggled().connect(sigc::mem_fun(*this, &Resize::allowUpscalingChanged)); - + sizeBox->show_all (); sizeBox->reference (); @@ -366,76 +366,76 @@ void Resize::sizeChanged(int mw, int mh, int ow, int oh) void Resize::setDimensions () { - const auto func = [](gpointer data) -> gboolean { - Resize* const self = static_cast(data); + const auto func = + [](Resize* self) -> bool + { + self->wconn.block(true); + self->hconn.block(true); + self->scale->block(true); - self->wconn.block(true); - self->hconn.block(true); - self->scale->block(true); + int refw, refh; - int refw, refh; - - if (self->appliesTo->get_active_row_number() == 0 && self->cropw) { - // Applies to Cropped area - refw = self->cropw; - refh = self->croph; - } else { - // Applies to Full image or crop is disabled - refw = self->maxw; - refh = self->maxh; - } - - self->w->set_range(32, MAX_SCALE * refw); - self->h->set_range(32, MAX_SCALE * refh); - - switch (self->spec->get_active_row_number()) { - case 0: { - // Scale mode - self->w->set_value(static_cast(static_cast(static_cast(refw) * self->scale->getValue() + 0.5))); - self->h->set_value(static_cast(static_cast(static_cast(refh) * self->scale->getValue() + 0.5))); - break; + if (self->appliesTo->get_active_row_number() == 0 && self->cropw) { + // Applies to Cropped area + refw = self->cropw; + refh = self->croph; + } else { + // Applies to Full image or crop is disabled + refw = self->maxw; + refh = self->maxh; } - case 1: { - // Width mode - const double tmp_scale = self->w->get_value() / static_cast(refw); - self->scale->setValue(tmp_scale); - self->h->set_value(static_cast(static_cast(static_cast(refh) * tmp_scale + 0.5))); - break; + self->w->set_range(32, MAX_SCALE * refw); + self->h->set_range(32, MAX_SCALE * refh); + + switch (self->spec->get_active_row_number()) { + case 0: { + // Scale mode + self->w->set_value(static_cast(static_cast(static_cast(refw) * self->scale->getValue() + 0.5))); + self->h->set_value(static_cast(static_cast(static_cast(refh) * self->scale->getValue() + 0.5))); + break; + } + + case 1: { + // Width mode + const double tmp_scale = self->w->get_value() / static_cast(refw); + self->scale->setValue(tmp_scale); + self->h->set_value(static_cast(static_cast(static_cast(refh) * tmp_scale + 0.5))); + break; + } + + case 2: { + // Height mode + const double tmp_scale = self->h->get_value() / static_cast(refh); + self->scale->setValue(tmp_scale); + self->w->set_value(static_cast(static_cast(static_cast(refw) * tmp_scale + 0.5))); + break; + } + + case 3: { + // Bounding box mode + const double tmp_scale = + self->w->get_value() / self->h->get_value() < static_cast(refw) / static_cast(refh) + ? self->w->get_value() / static_cast(refw) + : self->h->get_value() / static_cast(refh); + + self->scale->setValue(tmp_scale); + break; + } + + default: { + break; + } } - case 2: { - // Height mode - const double tmp_scale = self->h->get_value() / static_cast(refh); - self->scale->setValue(tmp_scale); - self->w->set_value(static_cast(static_cast(static_cast(refw) * tmp_scale + 0.5))); - break; - } + self->scale->block(false); + self->wconn.block(false); + self->hconn.block(false); - case 3: { - // Bounding box mode - const double tmp_scale = - self->w->get_value() / self->h->get_value() < static_cast(refw) / static_cast(refh) - ? self->w->get_value() / static_cast(refw) - : self->h->get_value() / static_cast(refh); + return false; + }; - self->scale->setValue(tmp_scale); - break; - } - - default: { - break; - } - } - - self->scale->block(false); - self->wconn.block(false); - self->hconn.block(false); - - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } void Resize::fitBoxScale() diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index 08883708e..0e2bddbda 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -673,14 +673,16 @@ void Retinex::minmaxChanged (double cdma, double cdmin, double mini, double maxi nextminT = Tmin; nextmaxT = Tmax; - const auto func = [] (gpointer data) -> gboolean { - GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected - static_cast (data)->minmaxComputed_(); + const auto func = + [](Retinex* self) -> bool + { + GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected + // FIXME: The above can't be true?! + self->minmaxComputed_(); + return false; + }; - return FALSE; - }; - - idle_register.add (func, this); + idle_register.add(func, this, false); } bool Retinex::minmaxComputed_ () diff --git a/rtgui/tonecurve.cc b/rtgui/tonecurve.cc index 06abe1fd2..d4c9e8ab6 100644 --- a/rtgui/tonecurve.cc +++ b/rtgui/tonecurve.cc @@ -45,7 +45,7 @@ ToneCurve::ToneCurve () : FoldableToolPanel(this, "tonecurve", M("TP_EXPOSURE_LA pack_start(*clampOOG); pack_start (*Gtk::manage (new Gtk::HSeparator())); clampOOG->signal_toggled().connect(sigc::mem_fun(*this, &ToneCurve::clampOOGChanged)); - + //----------- Auto Levels ---------------------------------- abox = Gtk::manage (new Gtk::HBox ()); abox->set_spacing (10); @@ -238,7 +238,7 @@ void ToneCurve::read (const ProcParams* pp, const ParamsEdited* pedited) if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } - + if (!hlcompr->getAddMode() && !batchMode) { hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect } @@ -604,7 +604,7 @@ void ToneCurve::adjusterChanged(Adjuster* a, double newval) if (a != expcomp && a != hlcompr && a != hlcomprthresh) { setHistmatching(false); } - + Glib::ustring costr; if (a == expcomp) { @@ -629,7 +629,7 @@ void ToneCurve::adjusterChanged(Adjuster* a, double newval) listener->panelChanged (EvSaturation, costr); } else if (a == hlcompr) { listener->panelChanged (EvHLCompr, costr); - + if (!hlcompr->getAddMode() && !batchMode) { hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect } @@ -650,7 +650,7 @@ void ToneCurve::neutral_pressed () // and sets neutral values to params in exposure panel setHistmatching(false); - + if (batchMode) { autolevels->set_inconsistent (false); autoconn.block (true); @@ -680,7 +680,7 @@ void ToneCurve::neutral_pressed () if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } - + if (!hlcompr->getAddMode() && !batchMode) { hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect } @@ -754,7 +754,7 @@ void ToneCurve::autolevels_toggled () if (!black->getAddMode()) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } - + if (!hlcompr->getAddMode() && !batchMode) { hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect } @@ -857,7 +857,7 @@ bool ToneCurve::autoExpComputed_ () if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } - + if (!hlcompr->getAddMode() && !batchMode) { hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect } @@ -979,7 +979,7 @@ bool ToneCurve::histmatchingComputed() if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue() == 0)); } - + if (!hlcompr->getAddMode() && !batchMode) { hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect } @@ -1013,13 +1013,14 @@ void ToneCurve::autoExpChanged(double expcomp, int bright, int contr, int black, nextHlcomprthresh = hlcomprthresh; nextHLRecons = hlrecons; - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->autoExpComputed_(); + const auto func = + [](ToneCurve* self) -> bool + { + self->autoExpComputed_(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } void ToneCurve::autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParams::TcMode curveMode, const std::vector& curve) @@ -1027,11 +1028,12 @@ void ToneCurve::autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParam nextToneCurveMode = curveMode; nextToneCurve = curve; - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->histmatchingComputed(); + const auto func = + [](ToneCurve* self) -> bool + { + self->histmatchingComputed(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 43aaeecd2..1c9b17a5a 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -263,74 +263,74 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt { if (isRaw) { if (isBayer) { - const auto func = [](gpointer data) -> gboolean { - ToolPanelCoordinator* const self = static_cast(data); + const auto func = + [](ToolPanelCoordinator* self) -> bool + { + self->rawPanelSW->set_sensitive (true); + self->sensorxtrans->FoldableToolPanel::hide(); + self->sensorbayer->FoldableToolPanel::show(); + self->preprocess->FoldableToolPanel::show(); + self->flatfield->FoldableToolPanel::show(); + self->retinex->FoldableToolPanel::setGrayedOut(false); - self->rawPanelSW->set_sensitive (true); - self->sensorxtrans->FoldableToolPanel::hide(); - self->sensorbayer->FoldableToolPanel::show(); - self->preprocess->FoldableToolPanel::show(); - self->flatfield->FoldableToolPanel::show(); - self->retinex->FoldableToolPanel::setGrayedOut(false); - - return FALSE; - }; - idle_register.add(func, this); + return false; + }; + idle_register.add(func, this, false); } else if (isXtrans) { - const auto func = [](gpointer data) -> gboolean { - ToolPanelCoordinator* const self = static_cast(data); + const auto func = + [](ToolPanelCoordinator* self) -> bool + { + self->rawPanelSW->set_sensitive (true); + self->sensorxtrans->FoldableToolPanel::show(); + self->sensorbayer->FoldableToolPanel::hide(); + self->preprocess->FoldableToolPanel::show(); + self->flatfield->FoldableToolPanel::show(); + self->retinex->FoldableToolPanel::setGrayedOut(false); - self->rawPanelSW->set_sensitive (true); - self->sensorxtrans->FoldableToolPanel::show(); - self->sensorbayer->FoldableToolPanel::hide(); - self->preprocess->FoldableToolPanel::show(); - self->flatfield->FoldableToolPanel::show(); - self->retinex->FoldableToolPanel::setGrayedOut(false); - - return FALSE; - }; - idle_register.add(func, this); + return false; + }; + idle_register.add(func, this, false); } else if (isMono) { - const auto func = [](gpointer data) -> gboolean { - ToolPanelCoordinator* const self = static_cast(data); + const auto func = + [](ToolPanelCoordinator* self) -> bool + { + self->rawPanelSW->set_sensitive (true); + self->sensorbayer->FoldableToolPanel::hide(); + self->sensorxtrans->FoldableToolPanel::hide(); + self->preprocess->FoldableToolPanel::hide(); + self->flatfield->FoldableToolPanel::show(); + self->retinex->FoldableToolPanel::setGrayedOut(false); - self->rawPanelSW->set_sensitive (true); - self->sensorbayer->FoldableToolPanel::hide(); - self->sensorxtrans->FoldableToolPanel::hide(); - self->preprocess->FoldableToolPanel::hide(); - self->flatfield->FoldableToolPanel::show(); - self->retinex->FoldableToolPanel::setGrayedOut(false); - - return FALSE; - }; - idle_register.add(func, this); + return false; + }; + idle_register.add(func, this, false); } else { - const auto func = [](gpointer data) -> gboolean { - ToolPanelCoordinator* const self = static_cast(data); + const auto func = + [](ToolPanelCoordinator* self) -> bool + { + self->rawPanelSW->set_sensitive (true); + self->sensorbayer->FoldableToolPanel::hide(); + self->sensorxtrans->FoldableToolPanel::hide(); + self->preprocess->FoldableToolPanel::hide(); + self->flatfield->FoldableToolPanel::hide(); + self->retinex->FoldableToolPanel::setGrayedOut(false); - self->rawPanelSW->set_sensitive (true); - self->sensorbayer->FoldableToolPanel::hide(); - self->sensorxtrans->FoldableToolPanel::hide(); - self->preprocess->FoldableToolPanel::hide(); - self->flatfield->FoldableToolPanel::hide(); - self->retinex->FoldableToolPanel::setGrayedOut(false); - - return FALSE; - }; - idle_register.add(func, this); + return false; + }; + idle_register.add(func, this, false); } } else { - const auto func = [](gpointer data) -> gboolean { - ToolPanelCoordinator* const self = static_cast(data); + const auto func = + [](ToolPanelCoordinator* self) -> bool + { + self->rawPanelSW->set_sensitive (false); + self->retinex->FoldableToolPanel::setGrayedOut(true); - self->rawPanelSW->set_sensitive (false); - self->retinex->FoldableToolPanel::setGrayedOut(true); - - return FALSE; - }; - idle_register.add(func, this); + return false; + }; + idle_register.add(func, this, false); } } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 7aa03050a..5b395fc91 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -888,22 +888,22 @@ void Wavelet::wavChanged (double nlevel) { if (!batchMode) { struct Data { - Wavelet *me; + Wavelet *self; double nlevel; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - Wavelet *me = d->me; - me->wavLabels->set_text( - Glib::ustring::compose(M("TP_WAVELET_LEVLABEL"), - Glib::ustring::format(std::fixed, std::setprecision(0), d->nlevel)) - ); - delete d; - return FALSE; - }; + const auto func = + [](Data* data) -> bool + { + Wavelet* self = data->self; + self->wavLabels->set_text( + Glib::ustring::compose(M("TP_WAVELET_LEVLABEL"), + Glib::ustring::format(std::fixed, std::setprecision(0), data->nlevel)) + ); + return false; + }; - idle_register.add(func, new Data { this, nlevel }); + idle_register.add(func, new Data{this, nlevel}, true); } } diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 1257a9c58..fcd983618 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -695,7 +695,7 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited) } green->setLogScale(10, green->getValue(), true); - + methconn.block (false); enableListener (); } @@ -915,22 +915,23 @@ void WhiteBalance::WBChanged(double temperature, double greenVal) double green_val; }; - const auto func = [](gpointer data) -> gboolean { - WhiteBalance* const self = static_cast(static_cast(data)->self); - const double temperature = static_cast(data)->temperature; - const double green_val = static_cast(data)->green_val; - delete static_cast(data); + const auto func = + [](Data* data) -> bool + { + WhiteBalance* const self = static_cast(data->self); + const double temperature = data->temperature; + const double green_val = data->green_val; - self->disableListener(); - self->setEnabled(true); - self->temp->setValue(temperature); - self->green->setValue(green_val); - self->temp->setDefault(temperature); - self->green->setDefault(green_val); - self->enableListener(); + self->disableListener(); + self->setEnabled(true); + self->temp->setValue(temperature); + self->green->setValue(green_val); + self->temp->setDefault(temperature); + self->green->setDefault(green_val); + self->enableListener(); - return FALSE; - }; + return false; + }; - idle_register.add(func, new Data{this, temperature, greenVal}); + idle_register.add(func, new Data{this, temperature, greenVal}, true); } diff --git a/rtgui/xtransprocess.cc b/rtgui/xtransprocess.cc index 47556e54f..72a2db2b0 100644 --- a/rtgui/xtransprocess.cc +++ b/rtgui/xtransprocess.cc @@ -255,18 +255,19 @@ void XTransProcess::checkBoxToggled (CheckBox* c, CheckValue newval) void XTransProcess::autoContrastChanged (double autoContrast) { struct Data { - XTransProcess *me; + XTransProcess* self; double autoContrast; }; - const auto func = [](gpointer data) -> gboolean { - Data *d = static_cast(data); - XTransProcess *me = d->me; - me->disableListener(); - me->dualDemosaicContrast->setValue(d->autoContrast); - me->enableListener(); - delete d; - return FALSE; - }; - idle_register.add(func, new Data { this, autoContrast }); + const auto func = + [](Data* data) -> bool + { + XTransProcess* self = data->self; + self->disableListener(); + self->dualDemosaicContrast->setValue(data->autoContrast); + self->enableListener(); + return false; + }; + + idle_register.add(func, new Data{this, autoContrast}, true); } From 1d0c128209650dfe56ae989206f8b22cd70ed328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sun, 28 Oct 2018 19:35:31 +0100 Subject: [PATCH 04/21] Fix Windows build (#4892) --- rtgui/batchqueue.cc | 10 ++++++---- rtgui/dirbrowser.cc | 13 +++++++------ rtgui/filecatalog.cc | 13 +++++++------ 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index de9864226..bd7c4b015 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -436,10 +436,12 @@ void BatchQueue::cancelItems (const std::vector& items) if (entry->thumbnail) entry->thumbnail->imageRemovedFromQueue (); - const auto func = [](BatchQueueEntry* bqe) -> bool { - ::g_remove(bqe->savedParamsFile.c_str()); - return false; - }; + const auto func = + [](BatchQueueEntry* bqe) -> bool + { + ::g_remove(bqe->savedParamsFile.c_str()); + return false; + }; idle_register.add(func, entry, true); } diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 501296860..47a8eb71a 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -248,13 +248,14 @@ int updateVolumesUI (void* br) void DirBrowser::winDirChanged () { - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->updateDirTreeRoot(); + const auto func = + [](DirBrowser* self) -> bool + { + self->updateDirTreeRoot(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } #endif diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index e9d1720b9..799e68350 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -1793,13 +1793,14 @@ void FileCatalog::reparseDirectory () void FileCatalog::winDirChanged () { - const auto func = [](gpointer data) -> gboolean { - static_cast(data)->reparseDirectory(); + const auto func = + [](FileCatalog* self) -> bool + { + self->reparseDirectory(); + return false; + }; - return FALSE; - }; - - idle_register.add(func, this); + idle_register.add(func, this, false); } #else From 00b62d2b652a2c6ef389a0c0243a41ad9ad8ba2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sun, 11 Nov 2018 20:32:01 +0100 Subject: [PATCH 05/21] Add @thirtythreeforty's `std::function<>` variant (#4892) Also convert `batchqueue.cc` where applicable. --- rtgui/batchqueue.cc | 69 +++++++++++++++++++-------------------------- rtgui/guiutils.cc | 13 +++++++++ rtgui/guiutils.h | 2 ++ 3 files changed, 44 insertions(+), 40 deletions(-) diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index bd7c4b015..2841c6811 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -39,25 +39,6 @@ using namespace std; using namespace rtengine; -namespace -{ - -struct NLParams { - BatchQueueListener* listener; - int qsize; - bool queueEmptied; - bool queueError; - Glib::ustring queueErrorMessage; -}; - -bool bqnotifylistenerUI(NLParams* params) -{ - params->listener->queueSizeChanged (params->qsize, params->queueEmptied, params->queueError, params->queueErrorMessage); - return false; -} - -} - BatchQueue::BatchQueue (FileCatalog* aFileCatalog) : processing(nullptr), fileCatalog(aFileCatalog), sequence(0), listener(nullptr) { @@ -604,14 +585,13 @@ void BatchQueue::setProgress(double p) } // No need to acquire the GUI, setProgressUI will do it - const auto func = - [](BatchQueue* bq) -> bool + idle_register.add( + [this]() -> bool { - bq->redraw(); + redraw(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void BatchQueue::setProgressStr(const Glib::ustring& str) @@ -636,12 +616,15 @@ void BatchQueue::error(const Glib::ustring& descr) } if (listener) { - NLParams* params = new NLParams; - params->listener = listener; - params->queueEmptied = false; - params->queueError = true; - params->queueErrorMessage = descr; - idle_register.add(bqnotifylistenerUI, params, true); + BatchQueueListener* const listener_copy = listener; + + idle_register.add( + [listener_copy, descr]() -> bool + { + listener_copy->queueSizeChanged(0, false, true, descr); + return false; + } + ); } } @@ -975,15 +958,21 @@ void BatchQueue::notifyListener (bool queueEmptied) { if (listener) { - NLParams* params = new NLParams; - params->listener = listener; - { - MYREADERLOCK(l, entryRW); - params->qsize = fd.size(); - } - params->queueEmptied = queueEmptied; - params->queueError = false; - idle_register.add(bqnotifylistenerUI, params, true); + BatchQueueListener* const listener_copy = listener; + const std::size_t queue_size = + [](MyRWMutex& mutex, const std::vector& fd) -> std::size_t + { + MYREADERLOCK(l, mutex); + return fd.size(); + }(entryRW, fd); + + idle_register.add( + [listener_copy, queue_size, queueEmptied]() -> bool + { + listener_copy->queueSizeChanged(queue_size, queueEmptied, false, {}); + return false; + } + ); } } diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 257927b0c..bd9828933 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -43,6 +43,19 @@ IdleRegister::~IdleRegister() destroy(); } +void IdleRegister::add(std::function function, gint priority) +{ + using Function = std::function; + + const auto func = + [](Function* function) + { + return (*function)(); + }; + + add(func, new Function(std::move(function)), true, priority); +} + void IdleRegister::destroy() { mutex.lock(); diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 2cb7ca77e..43f94e4db 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -19,6 +19,7 @@ #ifndef __GUI_UTILS_ #define __GUI_UTILS_ +#include #include #include @@ -98,6 +99,7 @@ public: mutex.unlock(); } + void add(std::function function, gint priority = G_PRIORITY_DEFAULT_IDLE); void destroy(); private: From b08fb04daefd7a04bb9bbbc26a9a82e862525bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Tue, 1 Jan 2019 15:53:39 +0100 Subject: [PATCH 06/21] Convert almost all `IdleRegister::add()` calls to `add(std::function<>)` --- rtgui/batchqueue.cc | 63 +++++------ rtgui/batchqueuepanel.cc | 12 +- rtgui/blackwhite.cc | 11 +- rtgui/colortoning.cc | 17 ++- rtgui/crop.cc | 236 ++++++++++++++++++++++++++------------- rtgui/crophandler.cc | 105 +++++++++-------- rtgui/dirpyrdenoise.cc | 58 +++++----- rtgui/editorpanel.cc | 102 +++++++---------- rtgui/filebrowser.cc | 16 +-- rtgui/filebrowser.h | 1 - rtgui/filecatalog.cc | 65 +++++------ rtgui/filecatalog.h | 2 +- rtgui/filepanel.cc | 11 +- rtgui/histogrampanel.cc | 33 +++--- rtgui/mydiagonalcurve.cc | 17 ++- rtgui/previewhandler.cc | 102 ++++++----------- rtgui/resize.cc | 61 +++++----- rtgui/retinex.cc | 24 ++-- rtgui/retinex.h | 1 - rtgui/tonecurve.cc | 151 +++++++++++-------------- rtgui/tonecurve.h | 4 +- rtgui/toolpanelcoord.cc | 92 +++++++-------- 22 files changed, 574 insertions(+), 610 deletions(-) diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index b0feeabb0..a995797f3 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -39,25 +39,6 @@ using namespace std; using namespace rtengine; -namespace -{ - -struct NLParams { - BatchQueueListener* listener; - int qsize; - bool queueRunning; - bool queueError; - Glib::ustring queueErrorMessage; -}; - -bool bqnotifylistenerUI(NLParams* params) -{ - params->listener->queueSizeChanged (params->qsize, params->queueRunning, params->queueError, params->queueErrorMessage); - return false; -} - -} - BatchQueue::BatchQueue (FileCatalog* aFileCatalog) : processing(nullptr), fileCatalog(aFileCatalog), sequence(0), listener(nullptr) { @@ -606,14 +587,13 @@ void BatchQueue::setProgress(double p) } // No need to acquire the GUI, setProgressUI will do it - const auto func = - [](BatchQueue* bq) -> bool + idle_register.add( + [this]() -> bool { - bq->redraw(); + redraw(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void BatchQueue::setProgressStr(const Glib::ustring& str) @@ -638,12 +618,15 @@ void BatchQueue::error(const Glib::ustring& descr) } if (listener) { - NLParams* params = new NLParams; - params->listener = listener; - params->queueRunning = false; - params->queueError = true; - params->queueErrorMessage = descr; - idle_register.add(bqnotifylistenerUI, params, true); + BatchQueueListener* const bql = listener; + + idle_register.add( + [bql, descr]() -> bool + { + bql->queueSizeChanged(0, false, true, descr); + return false; + } + ); } } @@ -974,15 +957,21 @@ void BatchQueue::notifyListener () { const bool queueRunning = processing; if (listener) { - NLParams* params = new NLParams; - params->listener = listener; + BatchQueueListener* const bql = listener; + + int qsize = 0; { MYREADERLOCK(l, entryRW); - params->qsize = fd.size(); + qsize = fd.size(); } - params->queueRunning = queueRunning; - params->queueError = false; - idle_register.add(bqnotifylistenerUI, params, true); + + idle_register.add( + [bql, qsize, queueRunning]() -> bool + { + bql->queueSizeChanged(qsize, queueRunning, false, {}); + return false; + } + ); } } diff --git a/rtgui/batchqueuepanel.cc b/rtgui/batchqueuepanel.cc index 4c21feebf..55aea5f4f 100644 --- a/rtgui/batchqueuepanel.cc +++ b/rtgui/batchqueuepanel.cc @@ -172,14 +172,14 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) show_all (); if (batchQueue->loadBatchQueue()) { - const auto func = - [](BatchQueue* bq) -> bool + idle_register.add( + [this]() -> bool { - bq->resizeLoadedQueue(); + batchQueue->resizeLoadedQueue(); return false; - }; - - idle_register.add(func, batchQueue, false, G_PRIORITY_LOW); + }, + G_PRIORITY_LOW + ); } } diff --git a/rtgui/blackwhite.cc b/rtgui/blackwhite.cc index 359207115..dcc5c7e01 100644 --- a/rtgui/blackwhite.cc +++ b/rtgui/blackwhite.cc @@ -375,14 +375,13 @@ void BlackWhite::BWChanged (double redbw, double greenbw, double bluebw) nextgreenbw = greenbw; nextbluebw = bluebw; - const auto func = - [](BlackWhite* self) -> bool + idle_register.add( + [this]() -> bool { - self->BWComputed_(); + BWComputed_(); return false; - }; - - idle_register.add(func, this, false); + } + ); } bool BlackWhite::BWComputed_ () diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index edff26ba5..025acb55f 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -891,17 +891,16 @@ void ColorToning::autoColorTonChanged(int bwct, int satthres, int satprot) nextsatth = satthres; nextsatpr = satprot; - const auto func = - [](ColorToning* self) -> bool + idle_register.add( + [this]() -> bool { - self->disableListener(); - self->saturatedOpacity->setValue(self->nextsatpr); - self->satProtectionThreshold->setValue(self->nextsatth); - self->enableListener(); + disableListener(); + saturatedOpacity->setValue(nextsatpr); + satProtectionThreshold->setValue(nextsatth); + enableListener(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void ColorToning::adjusterChanged (ThresholdAdjuster* a, double newBottom, double newTop) diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 52318fb79..1cd87b80a 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -28,29 +28,6 @@ extern Options options; namespace { -class RefreshSpinHelper -{ - -public: - Crop* crop; - bool notify; - RefreshSpinHelper (Crop* _crop, bool _notify) - : crop(_crop), notify(_notify) {} -}; - -bool refreshSpinsUI(RefreshSpinHelper* rsh) -{ - rsh->crop->refreshSpins(rsh->notify); - return false; -} - -bool notifyListenerUI(Crop* self) -{ - self->notifyListener(); - return false; -} - - inline void get_custom_ratio(int w, int h, double &rw, double &rh) { if (w < h) { @@ -120,28 +97,28 @@ Crop::Crop(): Gtk::Label* xlab = Gtk::manage (new Gtk::Label (M("TP_CROP_X") + ":")); setExpandAlignProperties(xlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - + x = Gtk::manage (new MySpinButton ()); setExpandAlignProperties(x, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); x->set_width_chars(6); Gtk::Label* ylab = Gtk::manage (new Gtk::Label (M("TP_CROP_Y") + ":")); setExpandAlignProperties(ylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - + y = Gtk::manage (new MySpinButton ()); setExpandAlignProperties(y, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); y->set_width_chars(6); - + Gtk::Label* wlab = Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ":")); setExpandAlignProperties(wlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - + w = Gtk::manage (new MySpinButton ()); setExpandAlignProperties(w, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); w->set_width_chars(6); Gtk::Label* hlab = Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ":")); setExpandAlignProperties(hlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - + h = Gtk::manage (new MySpinButton ()); setExpandAlignProperties(h, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); h->set_width_chars(6); @@ -155,7 +132,7 @@ Crop::Crop(): setExpandAlignProperties(resetCrop, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); resetCrop->get_style_context()->add_class("independent"); resetCrop->set_image (*Gtk::manage (new RTImage ("undo-small.png"))); - + methodgrid->attach (*xlab, 0, 0, 1, 1); methodgrid->attach (*x, 1, 0, 1, 1); methodgrid->attach (*ylab, 2, 0, 1, 1); @@ -167,7 +144,7 @@ Crop::Crop(): methodgrid->attach (*selectCrop, 0, 2, 2, 1); methodgrid->attach (*resetCrop, 2, 2, 2, 1); pack_start (*methodgrid, Gtk::PACK_EXPAND_WIDGET, 0 ); - + Gtk::HSeparator* methodseparator = Gtk::manage (new Gtk::HSeparator()); methodseparator->get_style_context()->add_class("grid-row-separator"); pack_start (*methodseparator, Gtk::PACK_SHRINK, 0); @@ -179,7 +156,7 @@ Crop::Crop(): fixr = Gtk::manage (new Gtk::CheckButton (M("TP_CROP_FIXRATIO"))); setExpandAlignProperties(fixr, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); fixr->set_active (1); - + Gtk::Grid* ratiogrid = Gtk::manage(new Gtk::Grid()); ratiogrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(ratiogrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); @@ -193,15 +170,15 @@ Crop::Crop(): customRatioLabel = Gtk::manage(new Gtk::Label("")); customRatioLabel->hide(); setExpandAlignProperties(customRatioLabel, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - + ratiogrid->set_column_homogeneous (true); ratiogrid->attach (*ratio, 0, 0, 1, 1); ratiogrid->attach (*customRatioLabel, 1, 0, 1, 1); ratiogrid->attach (*orientation, 1, 0, 1, 1); - + Gtk::Label* guidelab = Gtk::manage (new Gtk::Label (M("TP_CROP_GUIDETYPE"))); setExpandAlignProperties(guidelab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - + guide = Gtk::manage (new MyComboBoxText ()); setExpandAlignProperties(guide, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); @@ -220,27 +197,27 @@ Crop::Crop(): Gtk::HSeparator* ppiseparator = Gtk::manage (new Gtk::HSeparator()); ppiseparator->get_style_context()->add_class("grid-row-separator"); - + Gtk::Grid* ppisubgrid = Gtk::manage(new Gtk::Grid()); ppisubgrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(ppisubgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); Gtk::Label* ppilab = Gtk::manage (new Gtk::Label (M("TP_CROP_PPI"))); setExpandAlignProperties(ppilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - + ppi = Gtk::manage (new MySpinButton ()); setExpandAlignProperties(ppi, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER); ppi->set_width_chars(6); - + ppisubgrid->attach (*ppilab, 0, 0, 1, 1); ppisubgrid->attach (*ppi, 1, 0, 1, 1); sizecm = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " cm x " + M("GENERAL_NA") + " cm")); setExpandAlignProperties(sizecm, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - + sizein = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " in x " + M("GENERAL_NA") + " in")); setExpandAlignProperties(sizein, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - + ppigrid->attach (*ppiseparator, 0, 0, 2, 1); ppigrid->attach (*sizecm, 1, 1, 1, 1); ppigrid->attach (*sizein, 1, 2, 1, 1); @@ -326,7 +303,7 @@ Crop::Crop(): ppisubgrid->set_column_spacing(4); #endif //GTK318 - + show_all (); } @@ -423,7 +400,7 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) } else if (pp->crop.ratio == "Current") { ratio->set_active(1); updateCurrentRatio(); - customRatioLabel->show(); + customRatioLabel->show(); orientation->hide(); } else { ratio->set_active_text (pp->crop.ratio); @@ -589,7 +566,13 @@ void Crop::doresetCrop () int W = maxw; int H = maxh; cropResized (X, Y, W, H); - idle_register.add(notifyListenerUI, this, false); + idle_register.add( + [this]() -> bool + { + notifyListener(); + return false; + } + ); refreshSpins(); } @@ -628,13 +611,25 @@ void Crop::enabledChanged () void Crop::hFlipCrop () { nx = maxw - nx - nw; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::vFlipCrop () { ny = maxh - ny - nh; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::rotateCrop (int deg, bool hflip, bool vflip) @@ -674,7 +669,13 @@ void Crop::rotateCrop (int deg, bool hflip, bool vflip) } lastRotationDeg = deg; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::positionChanged () @@ -688,7 +689,13 @@ void Crop::positionChanged () int W = nw; int H = nh; cropMoved (X, Y, W, H); - idle_register.add(notifyListenerUI, this, false); + idle_register.add( + [this]() -> bool + { + notifyListener(); + return false; + } + ); } void Crop::widthChanged () @@ -701,7 +708,13 @@ void Crop::widthChanged () int W = (int)w->get_value (); int H = nh; cropWidth2Resized (X, Y, W, H); - idle_register.add(notifyListenerUI, this, false); + idle_register.add( + [this]() -> bool + { + notifyListener(); + return false; + } + ); } void Crop::heightChanged () @@ -714,7 +727,13 @@ void Crop::heightChanged () int W = nw; int H = (int)h->get_value (); cropHeight2Resized (X, Y, W, H); - idle_register.add(notifyListenerUI, this, false); + idle_register.add( + [this]() -> bool + { + notifyListener(); + return false; + } + ); } // Fixed ratio toggle button @@ -747,7 +766,7 @@ void Crop::ratioChanged () orientation->show(); customRatioLabel->hide(); } - + if (!fixr->get_active ()) { fixr->set_active(true); // will adjust ratio anyway } else { @@ -808,7 +827,13 @@ void Crop::adjustCropToRatio() } // This will save the options - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, true), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(true); + return false; + } + ); } void Crop::refreshSize () @@ -882,26 +907,13 @@ void Crop::setDimensions (int mw, int mh) void Crop::sizeChanged(int x, int y, int ow, int oh) { - struct Params { - Crop* crop; - int x; - int y; - }; - - Params* const params = new Params{ - this, - x, - y - }; - - const auto func = - [](Params* params) -> bool + idle_register.add( + [this, x, y]() -> bool { - params->crop->setDimensions(params->x, params->y); + setDimensions(x, y); return false; - }; - - idle_register.add(func, params, true); + } + ); } bool Crop::refreshSpins (bool notify) @@ -969,7 +981,13 @@ void Crop::cropMoved (int &X, int &Y, int &W, int &H) nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); // Glib::signal_idle().connect (sigc::mem_fun(*this, &Crop::refreshSpins)); } @@ -1013,7 +1031,13 @@ void Crop::cropWidth1Resized (int &X, int &Y, int &W, int &H, float custom_ratio nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropWidth2Resized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1053,7 +1077,13 @@ void Crop::cropWidth2Resized (int &X, int &Y, int &W, int &H, float custom_ratio nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropHeight1Resized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1096,7 +1126,13 @@ void Crop::cropHeight1Resized (int &X, int &Y, int &W, int &H, float custom_rati nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropHeight2Resized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1136,7 +1172,13 @@ void Crop::cropHeight2Resized (int &X, int &Y, int &W, int &H, float custom_rati nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropTopLeftResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1178,7 +1220,13 @@ void Crop::cropTopLeftResized (int &X, int &Y, int &W, int &H, float custom_rati nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropTopRightResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1218,7 +1266,13 @@ void Crop::cropTopRightResized (int &X, int &Y, int &W, int &H, float custom_rat nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropBottomLeftResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1258,7 +1312,13 @@ void Crop::cropBottomLeftResized (int &X, int &Y, int &W, int &H, float custom_r nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropBottomRightResized (int &X, int &Y, int &W, int &H, float custom_ratio) @@ -1295,7 +1355,13 @@ void Crop::cropBottomRightResized (int &X, int &Y, int &W, int &H, float custom_ nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropInit (int &x, int &y, int &w, int &h) @@ -1409,12 +1475,24 @@ void Crop::cropResized (int &x, int &y, int& x2, int& y2) nw = W; nh = H; - idle_register.add(refreshSpinsUI, new RefreshSpinHelper(this, false), true); + idle_register.add( + [this]() -> bool + { + refreshSpins(false); + return false; + } + ); } void Crop::cropManipReady () { - idle_register.add(notifyListenerUI, this, false); + idle_register.add( + [this]() -> bool + { + notifyListener(); + return false; + } + ); } double Crop::getRatio () const diff --git a/rtgui/crophandler.cc b/rtgui/crophandler.cc index 579d9af5b..fdb920269 100644 --- a/rtgui/crophandler.cc +++ b/rtgui/crophandler.cc @@ -338,70 +338,69 @@ void CropHandler::setDetailedCrop( bool expected = false; if (redraw_needed.compare_exchange_strong(expected, true)) { - const auto func = - [](CropHandler* self) -> bool + idle_register.add( + [this]() -> bool { - self->cimg.lock (); + cimg.lock (); - if (self->redraw_needed.exchange(false)) { - self->cropPixbuf.clear (); + if (redraw_needed.exchange(false)) { + cropPixbuf.clear (); - if (!self->enabled) { - self->cropimg.clear(); - self->cropimgtrue.clear(); - self->cimg.unlock (); - return false; - } - - if (!self->cropimg.empty()) { - if (self->cix == self->cropX && self->ciy == self->cropY && self->ciw == self->cropW && self->cih == self->cropH && self->cis == (self->zoom >= 1000 ? 1 : self->zoom / 10)) { - // calculate final image size - float czoom = self->zoom >= 1000 ? - self->zoom / 1000.f : - float((self->zoom/10) * 10) / float(self->zoom); - int imw = self->cropimg_width * czoom; - int imh = self->cropimg_height * czoom; - - if (imw > self->ww) { - imw = self->ww; - } - - if (imh > self->wh) { - imh = self->wh; - } - - Glib::RefPtr tmpPixbuf = Gdk::Pixbuf::create_from_data (self->cropimg.data(), Gdk::COLORSPACE_RGB, false, 8, self->cropimg_width, self->cropimg_height, 3 * self->cropimg_width); - self->cropPixbuf = Gdk::Pixbuf::create (Gdk::COLORSPACE_RGB, false, 8, imw, imh); - tmpPixbuf->scale (self->cropPixbuf, 0, 0, imw, imh, 0, 0, czoom, czoom, Gdk::INTERP_TILES); - tmpPixbuf.clear (); - - Glib::RefPtr tmpPixbuftrue = Gdk::Pixbuf::create_from_data (self->cropimgtrue.data(), Gdk::COLORSPACE_RGB, false, 8, self->cropimg_width, self->cropimg_height, 3 * self->cropimg_width); - self->cropPixbuftrue = Gdk::Pixbuf::create (Gdk::COLORSPACE_RGB, false, 8, imw, imh); - tmpPixbuftrue->scale (self->cropPixbuftrue, 0, 0, imw, imh, 0, 0, czoom, czoom, Gdk::INTERP_TILES); - tmpPixbuftrue.clear (); + if (!enabled) { + cropimg.clear(); + cropimgtrue.clear(); + cimg.unlock (); + return false; } - self->cropimg.clear(); - self->cropimgtrue.clear(); - } + if (!cropimg.empty()) { + if (cix == cropX && ciy == cropY && ciw == cropW && cih == cropH && cis == (zoom >= 1000 ? 1 : zoom / 10)) { + // calculate final image size + float czoom = zoom >= 1000 ? + zoom / 1000.f : + float((zoom/10) * 10) / float(zoom); + int imw = cropimg_width * czoom; + int imh = cropimg_height * czoom; - self->cimg.unlock (); + if (imw > ww) { + imw = ww; + } - if (self->displayHandler) { - self->displayHandler->cropImageUpdated (); + if (imh > wh) { + imh = wh; + } - if (self->initial.exchange(false)) { - self->displayHandler->initialImageArrived (); + Glib::RefPtr tmpPixbuf = Gdk::Pixbuf::create_from_data (cropimg.data(), Gdk::COLORSPACE_RGB, false, 8, cropimg_width, cropimg_height, 3 * cropimg_width); + cropPixbuf = Gdk::Pixbuf::create (Gdk::COLORSPACE_RGB, false, 8, imw, imh); + tmpPixbuf->scale (cropPixbuf, 0, 0, imw, imh, 0, 0, czoom, czoom, Gdk::INTERP_TILES); + tmpPixbuf.clear (); + + Glib::RefPtr tmpPixbuftrue = Gdk::Pixbuf::create_from_data (cropimgtrue.data(), Gdk::COLORSPACE_RGB, false, 8, cropimg_width, cropimg_height, 3 * cropimg_width); + cropPixbuftrue = Gdk::Pixbuf::create (Gdk::COLORSPACE_RGB, false, 8, imw, imh); + tmpPixbuftrue->scale (cropPixbuftrue, 0, 0, imw, imh, 0, 0, czoom, czoom, Gdk::INTERP_TILES); + tmpPixbuftrue.clear (); + } + + cropimg.clear(); + cropimgtrue.clear(); } + + cimg.unlock (); + + if (displayHandler) { + displayHandler->cropImageUpdated (); + + if (initial.exchange(false)) { + displayHandler->initialImageArrived (); + } + } + } else { + cimg.unlock(); } - } else { - self->cimg.unlock(); + + return false; } - - return false; - }; - - idle_register.add(func, this, false); + ); } } diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc index 2e77bbaa9..613dc8d44 100644 --- a/rtgui/dirpyrdenoise.cc +++ b/rtgui/dirpyrdenoise.cc @@ -289,19 +289,18 @@ void DirPyrDenoise::chromaChanged (double autchroma, double autred, double autbl nextred = autred; nextblue = autblue; - const auto func = - [](DirPyrDenoise* self) -> bool + idle_register.add( + [this]() -> bool { - self->disableListener(); - self->chroma->setValue(self->nextchroma); - self->redchro->setValue(self->nextred); - self->bluechro->setValue(self->nextblue); - self->enableListener(); - self->updateNoiseLabel(); + disableListener(); + chroma->setValue(nextchroma); + redchro->setValue(nextred); + bluechro->setValue(nextblue); + enableListener(); + updateNoiseLabel(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void DirPyrDenoise::noiseTilePrev (int tileX, int tileY, int prevX, int prevY, int sizeT, int sizeP) @@ -313,17 +312,16 @@ void DirPyrDenoise::noiseTilePrev (int tileX, int tileY, int prevX, int prevY, i nextsizeT = sizeT; nextsizeP = sizeP; - const auto func = - [](DirPyrDenoise* self) -> bool + idle_register.add( + [this]() -> bool { - self->disableListener(); - self->enableListener(); - self->updateTileLabel(); - self->updatePrevLabel(); + disableListener(); + enableListener(); + updateTileLabel(); + updatePrevLabel(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void DirPyrDenoise::updateTileLabel () @@ -361,16 +359,18 @@ void DirPyrDenoise::updatePrevLabel () void DirPyrDenoise::noiseChanged (double nresid, double highresid) { - const auto func = - [](DirPyrDenoise* self) -> bool - { - self->disableListener(); - self->enableListener(); - self->updateNoiseLabel(); - return false; - }; + nextnresid = nresid; + nexthighresid = highresid; - idle_register.add(func, this, false); + idle_register.add( + [this]() -> bool + { + disableListener(); + enableListener(); + updateNoiseLabel(); + return false; + } + ); } void DirPyrDenoise::updateNoiseLabel() diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 84890bf87..b0e945ce1 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -38,34 +38,15 @@ using namespace rtengine::procparams; namespace { -struct spparams { - double val; - Glib::ustring str; - MyProgressBar *pProgress; - Glib::RefPtr cssProvider; -}; - -bool setprogressStrUI(spparams* s) +void setprogressStrUI(double val, const Glib::ustring str, MyProgressBar* pProgress) { - if ( ! s->str.empty() ) { - s->pProgress->set_text ( M (s->str) ); + if (!str.empty()) { + pProgress->set_text(M(str)); } - if ( s->val >= 0 ) { - s->pProgress->set_fraction ( s->val ); - - if (s->cssProvider) { - if ( s->val < 1.0 ) { - s->cssProvider->load_from_data ("ProgressBar { background-color: red }"); - } else { - s->cssProvider->load_from_data ("ProgressBar { background-color: grey }"); - } - - s->pProgress->get_style_context()->set_background (s->pProgress->get_window()); - } + if (val >= 0.0) { + pProgress->set_fraction(val); } - - return false; } @@ -1186,19 +1167,28 @@ void EditorPanel::clearParamChanges() void EditorPanel::setProgress(double p) { - spparams *s = new spparams; - s->val = p; - s->pProgress = progressLabel; - idle_register.add(setprogressStrUI, s, true); + MyProgressBar* const pl = progressLabel; + + idle_register.add( + [p, pl]() -> bool + { + setprogressStrUI(p, {}, pl); + return false; + } + ); } void EditorPanel::setProgressStr(const Glib::ustring& str) { - spparams *s = new spparams; - s->str = str; - s->val = -1; - s->pProgress = progressLabel; - idle_register.add(setprogressStrUI, s, true); + MyProgressBar* const pl = progressLabel; + + idle_register.add( + [str, pl]() -> bool + { + setprogressStrUI(-1.0, str, pl); + return false; + } + ); } void EditorPanel::setProgressState(bool inProcessing) @@ -1243,39 +1233,27 @@ void EditorPanel::error(const Glib::ustring& descr) void EditorPanel::error(const Glib::ustring& title, const Glib::ustring& descr) { - struct errparams { - Glib::ustring descr; - Glib::ustring title; - EditorPanelIdleHelper* epih; - }; - epih->pending++; - errparams* const p = new errparams; - p->descr = descr; - p->title = title; - p->epih = epih; - const auto func = - [](errparams* p) -> bool + idle_register.add( + [this, descr, title]() -> bool { - if (p->epih->destroyed) - { - if (p->epih->pending == 1) { - delete p->epih; + if (epih->destroyed) { + if (epih->pending == 1) { + delete epih; } else { - p->epih->pending--; + --epih->pending; } return false; } - p->epih->epanel->displayError (p->title, p->descr); - p->epih->pending--; + epih->epanel->displayError(title, descr); + --epih->pending; return false; - }; - - idle_register.add(func, p, true); + } + ); } void EditorPanel::displayError(const Glib::ustring& title, const Glib::ustring& descr) @@ -1296,16 +1274,16 @@ void EditorPanel::displayError(const Glib::ustring& title, const Glib::ustring& // This is only called from the ThreadUI, so within the gtk thread void EditorPanel::refreshProcessingState (bool inProcessingP) { - spparams *s = new spparams; - s->pProgress = progressLabel; + double val; + Glib::ustring str; if (inProcessingP) { if (processingStartedTime == 0) { processingStartedTime = ::time (nullptr); } - s->str = "PROGRESSBAR_PROCESSING"; - s->val = 1.0; + val = 1.0; + str = "PROGRESSBAR_PROCESSING"; } else { // Set proc params of thumbnail. It saves it into the cache and updates the file browser. if (ipc && openThm && tpc->getChangedState()) { @@ -1326,8 +1304,8 @@ void EditorPanel::refreshProcessingState (bool inProcessingP) } // Set progress bar "done" - s->str = "PROGRESSBAR_READY"; - s->val = 0.0; + val = 0.0; + str = "PROGRESSBAR_READY"; #ifdef WIN32 @@ -1342,7 +1320,7 @@ void EditorPanel::refreshProcessingState (bool inProcessingP) isProcessing = inProcessingP; - setprogressStrUI (s); + setprogressStrUI(val, str, progressLabel); } void EditorPanel::info_toggled () diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index d6362036a..20cb3350f 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -1925,21 +1925,15 @@ void FileBrowser::openNextPreviousEditorImage (Glib::ustring fname, eRTNav nextP } } -void FileBrowser::_thumbRearrangementNeeded () -{ - refreshThumbImages (); // arrangeFiles is NOT enough -} - void FileBrowser::thumbRearrangementNeeded () { - const auto func = - [](FileBrowser* self) -> bool + idle_register.add( + [this]() -> bool { - self->_thumbRearrangementNeeded(); + refreshThumbImages();// arrangeFiles is NOT enough return false; - }; - - idle_register.add(func, this, false); + } + ); } void FileBrowser::selectionChanged () diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index f15c7c5e8..209399135 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -192,7 +192,6 @@ public: #endif void thumbRearrangementNeeded () override; - void _thumbRearrangementNeeded (); void selectionChanged () override; diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 66f76bb61..aebd0f990 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -855,14 +855,13 @@ void FileCatalog::previewsFinished (int dir_id) currentEFS = dirEFS; } - const auto func = - [](FileCatalog* self) -> bool + idle_register.add( + [this]() -> bool { - self->previewsFinishedUI(); + previewsFinishedUI(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void FileCatalog::setEnabled (bool e) @@ -901,10 +900,9 @@ void FileCatalog::refreshHeight () set_size_request(0, newHeight + 2); // HOMBRE: yeah, +2, there's always 2 pixels missing... sorry for this dirty hack O:) } -void FileCatalog::_openImage (std::vector tmb) +void FileCatalog::_openImage(const std::vector& tmb) { - - if (enabled && listener != nullptr) { + if (enabled && listener) { bool continueToLoad = true; for (size_t i = 0; i < tmb.size() && continueToLoad; i++) { @@ -919,40 +917,30 @@ void FileCatalog::_openImage (std::vector tmb) } } -struct FCOIParams { - FileCatalog* catalog; - std::vector tmb; -}; - -bool openRequestedUI(FCOIParams* params) -{ - params->catalog->_openImage (params->tmb); - return false; -} - void FileCatalog::filterApplied() { - const auto func = - [](FileCatalog* self) -> bool + idle_register.add( + [this]() -> bool { - self->_refreshProgressBar(); + _refreshProgressBar(); return false; - }; - - idle_register.add(func, this, false); + } + ); } void FileCatalog::openRequested(const std::vector& tmb) { - FCOIParams* params = new FCOIParams; - params->catalog = this; - params->tmb = tmb; - - for (size_t i = 0; i < tmb.size(); i++) { - tmb[i]->increaseRef (); + for (auto thumb : tmb) { + thumb->increaseRef(); } - idle_register.add(openRequestedUI, params, true); + idle_register.add( + [this, tmb]() -> bool + { + _openImage(tmb); + return false; + } + ); } void FileCatalog::deleteRequested(const std::vector& tbe, bool inclBatchProcessed) @@ -1821,11 +1809,14 @@ void FileCatalog::addAndOpenFile (const Glib::ustring& fname) FileBrowserEntry* entry = new FileBrowserEntry (tmb, file->get_parse_name ()); previewReady (selectedDirectoryId, entry); // open the file - FCOIParams* params = new FCOIParams; - params->catalog = this; - params->tmb.push_back (tmb); tmb->increaseRef (); - idle_register.add(openRequestedUI, params, true); + idle_register.add( + [this, tmb]() -> bool + { + _openImage({tmb}); + return false; + } + ); } catch(Gio::Error&) {} } diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 7e613a2b4..8b5b14ed2 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -239,7 +239,7 @@ public: void on_realize() override; void reparseDirectory (); - void _openImage (std::vector tmb); + void _openImage (const std::vector& tmb); void zoomIn (); void zoomOut (); diff --git a/rtgui/filepanel.cc b/rtgui/filepanel.cc index 3df10d9df..5a344c8ba 100644 --- a/rtgui/filepanel.cc +++ b/rtgui/filepanel.cc @@ -139,14 +139,13 @@ FilePanel::FilePanel () : parent(nullptr), error(0) fileCatalog->setFileSelectionListener (this); - const auto func = - [](FilePanel* self) -> bool + idle_register.add( + [this]() -> bool { - self->init(); + init(); return false; - }; - - idle_register.add(func, this, false); + } + ); show_all (); } diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index 007e1187d..b6756a59c 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -562,14 +562,14 @@ void HistogramRGBArea::update (int valh, int rh, int gh, int bh) harih->pending++; - const auto func = - [](HistogramRGBAreaIdleHelper* harih) -> bool + idle_register.add( + [this]() -> bool { if (harih->destroyed) { if (harih->pending == 1) { delete harih; } else { - harih->pending--; + --harih->pending; } return false; @@ -578,12 +578,11 @@ void HistogramRGBArea::update (int valh, int rh, int gh, int bh) harih->harea->updateBackBuffer(-1, -1, -1); harih->harea->queue_draw (); - harih->pending--; + --harih->pending; return false; - }; - - idle_register.add(func, harih, false); + } + ); } void HistogramRGBArea::updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, bool bar) @@ -760,30 +759,30 @@ void HistogramArea::update( } haih->pending++; + // Can be done outside of the GUI thread - const auto func = - [](HistogramAreaIdleHelper* haih) -> bool + idle_register.add( + [this]() -> bool { if (haih->destroyed) { if (haih->pending == 1) { delete haih; } else { - haih->pending--; + --haih->pending; } return false; } - haih->harea->setDirty (true); - haih->harea->updateBackBuffer (); - haih->harea->queue_draw (); + haih->harea->setDirty(true); + haih->harea->updateBackBuffer(); + haih->harea->queue_draw(); - haih->pending--; + --haih->pending; return false; - }; - - idle_register.add(func, haih, false); + } + ); } void HistogramArea::updateBackBuffer () diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index 8a2e08d1a..4980f9bd9 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -1518,28 +1518,27 @@ void MyDiagonalCurve::updateBackgroundHistogram (LUTu & hist) mcih->pending++; - const auto func = - [](MyCurveIdleHelper* mcih) -> bool + idle_register.add( + [this]() -> bool { if (mcih->destroyed) { if (mcih->pending == 1) { delete mcih; } else { - mcih->pending--; + --mcih->pending; } return false; } - mcih->clearPixmap (); - mcih->myCurve->queue_draw (); + mcih->clearPixmap(); + mcih->myCurve->queue_draw(); - mcih->pending--; + --mcih->pending; return false; - }; - - idle_register.add(func, mcih, false); + } + ); } void MyDiagonalCurve::reset(const std::vector &resetCurve, double identityValue) diff --git a/rtgui/previewhandler.cc b/rtgui/previewhandler.cc index 5029397a0..2315b8c91 100644 --- a/rtgui/previewhandler.cc +++ b/rtgui/previewhandler.cc @@ -23,18 +23,6 @@ using namespace rtengine; using namespace rtengine::procparams; -namespace -{ - -struct iaimgpar { - IImage8* image; - PreviewHandlerIdleHelper* pih; - double scale; - CropParams cp; -}; - -} - PreviewHandler::PreviewHandler () : image(nullptr), previewScale(1.) { @@ -61,22 +49,14 @@ void PreviewHandler::setImage(rtengine::IImage8* i, double scale, const rtengine { pih->pending++; - iaimgpar* iap = new iaimgpar; - iap->image = i; - iap->pih = pih; - iap->scale = scale; - iap->cp = cp; - - const auto func = - [](iaimgpar* iap) -> bool + idle_register.add( + [this, i, scale, cp]() -> bool { - PreviewHandlerIdleHelper* const pih = iap->pih; - if (pih->destroyed) { if (pih->pending == 1) { delete pih; } else { - pih->pending--; + --pih->pending; } return false; @@ -84,21 +64,21 @@ void PreviewHandler::setImage(rtengine::IImage8* i, double scale, const rtengine if (pih->phandler->image) { IImage8* const oldImg = pih->phandler->image; - oldImg->getMutex().lock (); - pih->phandler->image = iap->image; - oldImg->getMutex().unlock (); + + oldImg->getMutex().lock(); + pih->phandler->image = i; + oldImg->getMutex().unlock(); } else { - pih->phandler->image = iap->image; + pih->phandler->image = i; } - pih->phandler->cropParams = iap->cp; - pih->phandler->previewScale = iap->scale; - pih->pending--; + pih->phandler->cropParams = cp; + pih->phandler->previewScale = scale; + --pih->pending; return false; - }; - - idle_register.add(func, iap, true); + } + ); } @@ -106,20 +86,14 @@ void PreviewHandler::delImage(IImage8* i) { pih->pending++; - iaimgpar* iap = new iaimgpar; - iap->image = i; - iap->pih = pih; - - const auto func = - [](iaimgpar* iap) -> bool + idle_register.add( + [this, i]() -> bool { - PreviewHandlerIdleHelper* const pih = iap->pih; - if (pih->destroyed) { if (pih->pending == 1) { delete pih; } else { - pih->pending--; + --pih->pending; } return false; @@ -127,57 +101,51 @@ void PreviewHandler::delImage(IImage8* i) if (pih->phandler->image) { IImage8* oldImg = pih->phandler->image; - oldImg->getMutex().lock (); + oldImg->getMutex().lock(); pih->phandler->image = nullptr; - oldImg->getMutex().unlock (); + oldImg->getMutex().unlock(); } - iap->image->free (); - pih->phandler->previewImgMutex.lock (); - pih->phandler->previewImg.clear (); - pih->phandler->previewImgMutex.unlock (); + i->free(); + pih->phandler->previewImgMutex.lock(); + pih->phandler->previewImg.clear(); + pih->phandler->previewImgMutex.unlock(); - pih->pending--; + --pih->pending; return false; - }; - - idle_register.add(func, iap, true); + } + ); } void PreviewHandler::imageReady(const rtengine::procparams::CropParams& cp) { pih->pending++; - iaimgpar* iap = new iaimgpar; - iap->pih = pih; - iap->cp = cp; - const auto func = - [](iaimgpar* iap) -> bool + idle_register.add( + [this, cp]() -> bool { - PreviewHandlerIdleHelper* const pih = iap->pih; - if (pih->destroyed) { if (pih->pending == 1) { delete pih; } else { - pih->pending--; + --pih->pending; } return false; } - pih->phandler->previewImgMutex.lock (); - pih->phandler->previewImg = Gdk::Pixbuf::create_from_data (pih->phandler->image->getData(), Gdk::COLORSPACE_RGB, false, 8, pih->phandler->image->getWidth(), pih->phandler->image->getHeight(), 3 * pih->phandler->image->getWidth()); + pih->phandler->previewImgMutex.lock(); + pih->phandler->previewImg = Gdk::Pixbuf::create_from_data(pih->phandler->image->getData(), Gdk::COLORSPACE_RGB, false, 8, pih->phandler->image->getWidth(), pih->phandler->image->getHeight(), 3 * pih->phandler->image->getWidth()); pih->phandler->previewImgMutex.unlock (); - pih->phandler->cropParams = iap->cp; + + pih->phandler->cropParams = cp; pih->phandler->previewImageChanged (); - pih->pending--; + --pih->pending; return false; - }; - - idle_register.add(func, iap, true); + } + ); } Glib::RefPtr PreviewHandler::getRoughImage (int x, int y, int w, int h, double zoom) diff --git a/rtgui/resize.cc b/rtgui/resize.cc index c57ff236a..fc0f51191 100644 --- a/rtgui/resize.cc +++ b/rtgui/resize.cc @@ -366,60 +366,60 @@ void Resize::sizeChanged(int mw, int mh, int ow, int oh) void Resize::setDimensions () { - const auto func = - [](Resize* self) -> bool + idle_register.add( + [this]() -> bool { - self->wconn.block(true); - self->hconn.block(true); - self->scale->block(true); + wconn.block(true); + hconn.block(true); + scale->block(true); int refw, refh; - if (self->appliesTo->get_active_row_number() == 0 && self->cropw) { + if (appliesTo->get_active_row_number() == 0 && cropw) { // Applies to Cropped area - refw = self->cropw; - refh = self->croph; + refw = cropw; + refh = croph; } else { // Applies to Full image or crop is disabled - refw = self->maxw; - refh = self->maxh; + refw = maxw; + refh = maxh; } - self->w->set_range(32, MAX_SCALE * refw); - self->h->set_range(32, MAX_SCALE * refh); + w->set_range(32, MAX_SCALE * refw); + h->set_range(32, MAX_SCALE * refh); - switch (self->spec->get_active_row_number()) { + switch (spec->get_active_row_number()) { case 0: { // Scale mode - self->w->set_value(static_cast(static_cast(static_cast(refw) * self->scale->getValue() + 0.5))); - self->h->set_value(static_cast(static_cast(static_cast(refh) * self->scale->getValue() + 0.5))); + w->set_value(static_cast(static_cast(static_cast(refw) * scale->getValue() + 0.5))); + h->set_value(static_cast(static_cast(static_cast(refh) * scale->getValue() + 0.5))); break; } case 1: { // Width mode - const double tmp_scale = self->w->get_value() / static_cast(refw); - self->scale->setValue(tmp_scale); - self->h->set_value(static_cast(static_cast(static_cast(refh) * tmp_scale + 0.5))); + const double tmp_scale = w->get_value() / static_cast(refw); + scale->setValue(tmp_scale); + h->set_value(static_cast(static_cast(static_cast(refh) * tmp_scale + 0.5))); break; } case 2: { // Height mode - const double tmp_scale = self->h->get_value() / static_cast(refh); - self->scale->setValue(tmp_scale); - self->w->set_value(static_cast(static_cast(static_cast(refw) * tmp_scale + 0.5))); + const double tmp_scale = h->get_value() / static_cast(refh); + scale->setValue(tmp_scale); + w->set_value(static_cast(static_cast(static_cast(refw) * tmp_scale + 0.5))); break; } case 3: { // Bounding box mode const double tmp_scale = - self->w->get_value() / self->h->get_value() < static_cast(refw) / static_cast(refh) - ? self->w->get_value() / static_cast(refw) - : self->h->get_value() / static_cast(refh); + w->get_value() / h->get_value() < static_cast(refw) / static_cast(refh) + ? w->get_value() / static_cast(refw) + : h->get_value() / static_cast(refh); - self->scale->setValue(tmp_scale); + scale->setValue(tmp_scale); break; } @@ -428,14 +428,13 @@ void Resize::setDimensions () } } - self->scale->block(false); - self->wconn.block(false); - self->hconn.block(false); + scale->block(false); + wconn.block(false); + hconn.block(false); return false; - }; - - idle_register.add(func, this, false); + } + ); } void Resize::fitBoxScale() diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index c74f977c8..544ace535 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -672,28 +672,20 @@ void Retinex::minmaxChanged (double cdma, double cdmin, double mini, double maxi nextminT = Tmin; nextmaxT = Tmax; - const auto func = - [](Retinex* self) -> bool + idle_register.add( + [this]() -> bool { GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected // FIXME: The above can't be true?! - self->minmaxComputed_(); + disableListener(); + enableListener(); + updateLabel(); + updateTrans(); return false; - }; - - idle_register.add(func, this, false); + } + ); } -bool Retinex::minmaxComputed_ () -{ - - disableListener (); - enableListener (); - updateLabel (); - updateTrans (); - return false; - -} void Retinex::updateLabel () { if (!batchMode) { diff --git a/rtgui/retinex.h b/rtgui/retinex.h index b9ed3c927..8703ec607 100644 --- a/rtgui/retinex.h +++ b/rtgui/retinex.h @@ -108,7 +108,6 @@ public: void autoOpenCurve () override; void medianmapChanged (); void minmaxChanged (double cdma, double cdmin, double mini, double maxi, double Tmean, double Tsigma, double Tmin, double Tmax) override; - bool minmaxComputed_ (); void updateLabel (); void updateTrans (); void neutral_pressed (); diff --git a/rtgui/tonecurve.cc b/rtgui/tonecurve.cc index 5769386ef..b4157e58a 100644 --- a/rtgui/tonecurve.cc +++ b/rtgui/tonecurve.cc @@ -832,41 +832,6 @@ void ToneCurve::enableAll () histmatching->set_sensitive(true); } -bool ToneCurve::autoExpComputed_ () -{ - - GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected - disableListener (); - enableAll (); - expcomp->setValue (nextExpcomp); - brightness->setValue (nextBrightness); - contrast->setValue (nextContrast); - black->setValue (nextBlack); - hlcompr->setValue (nextHlcompr); - hlcomprthresh->setValue (nextHlcomprthresh); - enaconn.block (true); - hrenabled->set_active (nextHLRecons); - enaconn.block (false); - - if (nextHLRecons) { - hlrbox->show(); - } else if (!batchMode) { - hlrbox->hide(); - } - - if (!black->getAddMode() && !batchMode) { - shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect - } - - if (!hlcompr->getAddMode() && !batchMode) { - hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect - } - - enableListener (); - - return false; -} - void ToneCurve::setBatchMode (bool batchMode) { ToolPanel::setBatchMode (batchMode); @@ -967,42 +932,6 @@ void ToneCurve::histmatchingToggled() } } -bool ToneCurve::histmatchingComputed() -{ - GThreadLock lock; - disableListener(); - enableAll(); - brightness->setValue(0); - contrast->setValue(0); - black->setValue(0); - - if (!black->getAddMode() && !batchMode) { - shcompr->set_sensitive(!((int)black->getValue() == 0)); - } - - if (!hlcompr->getAddMode() && !batchMode) { - hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect - } - - if (autolevels->get_active() ) { - expcomp->setValue(0); - autoconn.block(true); - autolevels->set_active(false); - autoconn.block(false); - autolevels->set_inconsistent(false); - } - - toneCurveMode->set_active(rtengine::toUnderlying(nextToneCurveMode)); - shape->setCurve(nextToneCurve); - shape2->setCurve({ DCT_Linear }); - shape->openIfNonlinear(); - - enableListener(); - fromHistMatching = true; - - return false; -} - void ToneCurve::autoExpChanged(double expcomp, int bright, int contr, int black, int hlcompr, int hlcomprthresh, bool hlrecons) { nextBlack = black; @@ -1013,14 +942,41 @@ void ToneCurve::autoExpChanged(double expcomp, int bright, int contr, int black, nextHlcomprthresh = hlcomprthresh; nextHLRecons = hlrecons; - const auto func = - [](ToneCurve* self) -> bool + idle_register.add( + [this]() -> bool { - self->autoExpComputed_(); - return false; - }; + GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected + // FIXME: We don't need the GThreadLock, don't we? + disableListener(); + enableAll(); + this->expcomp->setValue(nextExpcomp); + brightness->setValue(nextBrightness); + contrast->setValue(nextContrast); + this->black->setValue(nextBlack); + this->hlcompr->setValue(nextHlcompr); + this->hlcomprthresh->setValue(nextHlcomprthresh); + enaconn.block(true); + hrenabled->set_active(nextHLRecons); + enaconn.block(false); - idle_register.add(func, this, false); + if (nextHLRecons) { + hlrbox->show(); + } else if (!batchMode) { + hlrbox->hide(); + } + + if (!this->black->getAddMode() && !batchMode) { + shcompr->set_sensitive(static_cast(this->black->getValue())); //at black=0 shcompr value has no effect + } + + if (!this->hlcompr->getAddMode() && !batchMode) { + this->hlcomprthresh->set_sensitive(static_cast(this->hlcompr->getValue())); //at hlcompr=0 hlcomprthresh value has no effect + } + + enableListener(); + return false; + } + ); } void ToneCurve::autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParams::TcMode curveMode, const std::vector& curve) @@ -1028,12 +984,41 @@ void ToneCurve::autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParam nextToneCurveMode = curveMode; nextToneCurve = curve; - const auto func = - [](ToneCurve* self) -> bool + idle_register.add( + [this]() -> bool { - self->histmatchingComputed(); - return false; - }; + GThreadLock lock; // FIXME: Obsolete + disableListener(); + enableAll(); + brightness->setValue(0); + contrast->setValue(0); + black->setValue(0); - idle_register.add(func, this, false); + if (!black->getAddMode() && !batchMode) { + shcompr->set_sensitive(static_cast(black->getValue())); + } + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(static_cast(hlcompr->getValue())); //at hlcompr=0 hlcomprthresh value has no effect + } + + if (autolevels->get_active() ) { + expcomp->setValue(0); + autoconn.block(true); + autolevels->set_active(false); + autoconn.block(false); + autolevels->set_inconsistent(false); + } + + toneCurveMode->set_active(rtengine::toUnderlying(nextToneCurveMode)); + shape->setCurve(nextToneCurve); + shape2->setCurve({DCT_Linear}); + shape->openIfNonlinear(); + + enableListener(); + fromHistMatching = true; + + return false; + } + ); } diff --git a/rtgui/tonecurve.h b/rtgui/tonecurve.h index d95049d1c..2cf7b9d12 100644 --- a/rtgui/tonecurve.h +++ b/rtgui/tonecurve.h @@ -72,7 +72,7 @@ protected: rtengine::ProcEvent EvHistMatching; rtengine::ProcEvent EvHistMatchingBatch; rtengine::ProcEvent EvClampOOG; - + // used temporarily in eventing double nextExpcomp; int nextBrightness; @@ -108,7 +108,6 @@ public: void clip_changed (); bool clip_changed_ (); void waitForAutoExp (); - bool autoExpComputed_ (); void enableAll (); void curveChanged (CurveEditor* ce) override; void curveMode1Changed (); @@ -131,7 +130,6 @@ public: ); void histmatchingToggled(); - bool histmatchingComputed(); void autoExpChanged(double expcomp, int bright, int contr, int black, int hlcompr, int hlcomprthresh, bool hlrecons) override; void autoMatchedToneCurveChanged(rtengine::procparams::ToneCurveParams::TcMode curveMode, const std::vector& curve) override; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 00a220c89..dce59dbce 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -297,74 +297,74 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt { if (isRaw) { if (isBayer) { - const auto func = - [](ToolPanelCoordinator* self) -> bool + idle_register.add( + [this]() -> bool { - self->rawPanelSW->set_sensitive (true); - self->sensorxtrans->FoldableToolPanel::hide(); - self->sensorbayer->FoldableToolPanel::show(); - self->preprocess->FoldableToolPanel::show(); - self->flatfield->FoldableToolPanel::show(); - self->retinex->FoldableToolPanel::setGrayedOut(false); + rawPanelSW->set_sensitive(true); + sensorxtrans->FoldableToolPanel::hide(); + sensorbayer->FoldableToolPanel::show(); + preprocess->FoldableToolPanel::show(); + flatfield->FoldableToolPanel::show(); + retinex->FoldableToolPanel::setGrayedOut(false); return false; - }; - idle_register.add(func, this, false); + } + ); } else if (isXtrans) { - const auto func = - [](ToolPanelCoordinator* self) -> bool + idle_register.add( + [this]() -> bool { - self->rawPanelSW->set_sensitive (true); - self->sensorxtrans->FoldableToolPanel::show(); - self->sensorbayer->FoldableToolPanel::hide(); - self->preprocess->FoldableToolPanel::show(); - self->flatfield->FoldableToolPanel::show(); - self->retinex->FoldableToolPanel::setGrayedOut(false); + rawPanelSW->set_sensitive(true); + sensorxtrans->FoldableToolPanel::show(); + sensorbayer->FoldableToolPanel::hide(); + preprocess->FoldableToolPanel::show(); + flatfield->FoldableToolPanel::show(); + retinex->FoldableToolPanel::setGrayedOut(false); return false; - }; - idle_register.add(func, this, false); + } + ); } else if (isMono) { - const auto func = - [](ToolPanelCoordinator* self) -> bool + idle_register.add( + [this]() -> bool { - self->rawPanelSW->set_sensitive (true); - self->sensorbayer->FoldableToolPanel::hide(); - self->sensorxtrans->FoldableToolPanel::hide(); - self->preprocess->FoldableToolPanel::hide(); - self->flatfield->FoldableToolPanel::show(); - self->retinex->FoldableToolPanel::setGrayedOut(false); + rawPanelSW->set_sensitive(true); + sensorbayer->FoldableToolPanel::hide(); + sensorxtrans->FoldableToolPanel::hide(); + preprocess->FoldableToolPanel::hide(); + flatfield->FoldableToolPanel::show(); + retinex->FoldableToolPanel::setGrayedOut(false); return false; - }; - idle_register.add(func, this, false); + } + ); } else { - const auto func = - [](ToolPanelCoordinator* self) -> bool + idle_register.add( + [this]() -> bool { - self->rawPanelSW->set_sensitive (true); - self->sensorbayer->FoldableToolPanel::hide(); - self->sensorxtrans->FoldableToolPanel::hide(); - self->preprocess->FoldableToolPanel::hide(); - self->flatfield->FoldableToolPanel::hide(); - self->retinex->FoldableToolPanel::setGrayedOut(false); + rawPanelSW->set_sensitive(true); + sensorbayer->FoldableToolPanel::hide(); + sensorxtrans->FoldableToolPanel::hide(); + preprocess->FoldableToolPanel::hide(); + flatfield->FoldableToolPanel::hide(); + retinex->FoldableToolPanel::setGrayedOut(false); return false; - }; - idle_register.add(func, this, false); + } + ); } } else { - const auto func = - [](ToolPanelCoordinator* self) -> bool + idle_register.add( + [this]() -> bool { - self->rawPanelSW->set_sensitive (false); - self->retinex->FoldableToolPanel::setGrayedOut(true); + rawPanelSW->set_sensitive(false); + retinex->FoldableToolPanel::setGrayedOut(true); return false; - }; - idle_register.add(func, this, false); + } + ); } } From b9942422e76b98a73269bc2455ccfffd870dc792 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 1 Jan 2019 17:36:17 +0100 Subject: [PATCH 07/21] Change microcontrast uniformity adjuster range, fixes #5129 --- rtdata/profiles/Pixel Shift/PS ISO Low.pp3 | 2 +- rtdata/profiles/Pixel Shift/PS No Motion.pp3 | 2 +- rtengine/ipsharpen.cc | 2 +- rtengine/procparams.cc | 10 ++++++++-- rtengine/procparams.h | 2 +- rtgui/ppversion.h | 4 +++- rtgui/sharpenmicro.cc | 2 +- 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/rtdata/profiles/Pixel Shift/PS ISO Low.pp3 b/rtdata/profiles/Pixel Shift/PS ISO Low.pp3 index afd3b762c..5587b19e0 100644 --- a/rtdata/profiles/Pixel Shift/PS ISO Low.pp3 +++ b/rtdata/profiles/Pixel Shift/PS ISO Low.pp3 @@ -12,7 +12,7 @@ Enabled=true Contrast=15 Matrix=false Strength=20 -Uniformity=50 +Uniformity=5 [RAW] CA=true diff --git a/rtdata/profiles/Pixel Shift/PS No Motion.pp3 b/rtdata/profiles/Pixel Shift/PS No Motion.pp3 index af624912e..f1d889f97 100644 --- a/rtdata/profiles/Pixel Shift/PS No Motion.pp3 +++ b/rtdata/profiles/Pixel Shift/PS No Motion.pp3 @@ -12,7 +12,7 @@ Enabled=true Contrast=15 Matrix=false Strength=20 -Uniformity=50 +Uniformity=5 [RAW] CA=true diff --git a/rtengine/ipsharpen.cc b/rtengine/ipsharpen.cc index 8437fae47..84068ced9 100644 --- a/rtengine/ipsharpen.cc +++ b/rtengine/ipsharpen.cc @@ -643,7 +643,7 @@ BENCHFUN const int k = params->sharpenMicro.matrix ? 1 : 2; // k=2 matrix 5x5 k=1 matrix 3x3 const int width = W, height = H; - const int unif = params->sharpenMicro.uniformity / 10.0f; //put unif between 0 to 10 + const int unif = params->sharpenMicro.uniformity; const float amount = (k == 1 ? 2.7f : 1.f) * params->sharpenMicro.amount / 1500.0f; //amount 2000.0 quasi no artifacts ==> 1500 = maximum, after artifacts, 25/9 if 3x3 if (settings->verbose) { diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 5c4596745..fe4512691 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1149,7 +1149,7 @@ SharpenMicroParams::SharpenMicroParams() : matrix(false), amount(20.0), contrast(20.0), - uniformity(50.0) + uniformity(5) { } @@ -3962,7 +3962,13 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) pedited->sharpenMicro.contrast = true; } } - assignFromKeyfile(keyFile, "SharpenMicro", "Uniformity", pedited, sharpenMicro.uniformity, pedited->sharpenMicro.uniformity); + if (ppVersion >= 346) { + assignFromKeyfile(keyFile, "SharpenMicro", "Uniformity", pedited, sharpenMicro.uniformity, pedited->sharpenMicro.uniformity); + } else { + double temp; + assignFromKeyfile(keyFile, "SharpenMicro", "Uniformity", pedited, temp, pedited->sharpenMicro.uniformity); + sharpenMicro.uniformity = temp / 10; + } } if (keyFile.has_group("Vibrance")) { diff --git a/rtengine/procparams.h b/rtengine/procparams.h index d1b70b9c2..50e77d32e 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -531,7 +531,7 @@ struct SharpenMicroParams { bool matrix; double amount; double contrast; - double uniformity; + int uniformity; SharpenMicroParams(); diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index 91a9633c0..89f93ed44 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -1,11 +1,13 @@ #pragma once // This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes -#define PPVERSION 345 +#define PPVERSION 346 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* Log of version changes + 346 2019-01-01 + changed microcontrast uniformity 345 2018-10-21 dual demosaic auto contrast threshold 344 2018-10-04 diff --git a/rtgui/sharpenmicro.cc b/rtgui/sharpenmicro.cc index 7e981db96..8686b747b 100644 --- a/rtgui/sharpenmicro.cc +++ b/rtgui/sharpenmicro.cc @@ -40,7 +40,7 @@ SharpenMicro::SharpenMicro () : FoldableToolPanel(this, "sharpenmicro", M("TP_SH amount->setAdjusterListener (this); amount->show(); - uniformity = Gtk::manage(new Adjuster (M("TP_SHARPENMICRO_UNIFORMITY"), 0, 100, 10, 50)); + uniformity = Gtk::manage(new Adjuster (M("TP_SHARPENMICRO_UNIFORMITY"), 0, 10, 1, 5)); uniformity->setAdjusterListener (this); uniformity->show(); From 732bbf1a554dd2e218b8947f70d9abf083cb0c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Tue, 1 Jan 2019 17:55:36 +0100 Subject: [PATCH 08/21] Convert `BatchQueue::cancelItems()` to functional `IdleRegister::add()` --- rtgui/batchqueue.cc | 50 ++++++++++++++++++++++++++++++++++---------- rtgui/batchqueue.h | 15 +++++++++---- rtgui/filecatalog.cc | 2 +- 3 files changed, 51 insertions(+), 16 deletions(-) diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index a995797f3..f6c598df7 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -86,6 +86,17 @@ BatchQueue::BatchQueue (FileCatalog* aFileCatalog) : processing(nullptr), fileCa BatchQueue::~BatchQueue () { + std::set removable_bqes; + + mutex_removable_batch_queue_entries.lock(); + removable_batch_queue_entries.swap(removable_bqes); + mutex_removable_batch_queue_entries.unlock(); + + for (const auto entry : removable_bqes) { + ::g_remove(entry->savedParamsFile.c_str()); + delete entry; + } + idle_register.destroy(); MYWRITERLOCK(l, entryRW); @@ -395,6 +406,8 @@ Glib::ustring BatchQueue::getTempFilenameForParams( const Glib::ustring &filenam void BatchQueue::cancelItems (const std::vector& items) { + std::set removable_bqes; + { MYWRITERLOCK(l, entryRW); @@ -417,14 +430,7 @@ void BatchQueue::cancelItems (const std::vector& items) if (entry->thumbnail) entry->thumbnail->imageRemovedFromQueue (); - const auto func = - [](BatchQueueEntry* bqe) -> bool - { - ::g_remove(bqe->savedParamsFile.c_str()); - return false; - }; - - idle_register.add(func, entry, true); + removable_bqes.insert(entry); } for (const auto entry : fd) @@ -434,6 +440,30 @@ void BatchQueue::cancelItems (const std::vector& items) selected.clear (); } + if (!removable_bqes.empty()) { + mutex_removable_batch_queue_entries.lock(); + removable_batch_queue_entries.insert(removable_bqes.begin(), removable_bqes.end()); + mutex_removable_batch_queue_entries.unlock(); + + idle_register.add( + [this]() -> bool + { + std::set removable_bqes; + + mutex_removable_batch_queue_entries.lock(); + removable_batch_queue_entries.swap(removable_bqes); + mutex_removable_batch_queue_entries.unlock(); + + for (const auto entry : removable_bqes) { + ::g_remove(entry->savedParamsFile.c_str()); + delete entry; + } + + return false; + } + ); + } + saveBatchQueue (); redraw (); @@ -940,9 +970,7 @@ Glib::ustring BatchQueue::autoCompleteFileName (const Glib::ustring& fileName, c void BatchQueue::buttonPressed (LWButton* button, int actionCode, void* actionData) { - - std::vector bqe; - bqe.push_back (static_cast(actionData)); + const std::vector bqe = {static_cast(actionData)}; if (actionCode == 10) { // cancel cancelItems (bqe); diff --git a/rtgui/batchqueue.h b/rtgui/batchqueue.h index c05ca54fe..7751ec176 100644 --- a/rtgui/batchqueue.h +++ b/rtgui/batchqueue.h @@ -18,12 +18,16 @@ #ifndef _BATCHQUEUE_ #define _BATCHQUEUE_ +#include + #include -#include "threadutils.h" -#include "batchqueueentry.h" + #include "../rtengine/rtengine.h" -#include "options.h" + +#include "batchqueueentry.h" #include "lwbuttonset.h" +#include "options.h" +#include "threadutils.h" #include "thumbbrowserbase.h" class BatchQueueListener @@ -85,7 +89,7 @@ public: static Glib::ustring calcAutoFileNameBase (const Glib::ustring& origFileName, int sequence = 0); static int calcMaxThumbnailHeight(); -protected: +private: int getMaxThumbnailHeight() const override; void saveThumbnailHeight (int height) override; int getThumbnailHeight () override; @@ -111,6 +115,9 @@ protected: BatchQueueListener* listener; + std::set removable_batch_queue_entries; + MyMutex mutex_removable_batch_queue_entries; + IdleRegister idle_register; }; diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index aebd0f990..5ebac5e12 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -930,7 +930,7 @@ void FileCatalog::filterApplied() void FileCatalog::openRequested(const std::vector& tmb) { - for (auto thumb : tmb) { + for (const auto thumb : tmb) { thumb->increaseRef(); } From b21d910573e951ad51b4058bb5ecedc63c8bde57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Tue, 1 Jan 2019 20:58:26 +0100 Subject: [PATCH 09/21] Remove legacy `IdleRegister::add<>()` --- rtgui/bayerprocess.cc | 59 +++++++++++++--------------------- rtgui/colorappearance.cc | 66 +++++++++++++-------------------------- rtgui/editorpanel.cc | 30 ++++++------------ rtgui/filebrowser.cc | 27 ++++++---------- rtgui/filebrowserentry.cc | 36 ++++++--------------- rtgui/flatfield.cc | 21 +++++-------- rtgui/guiutils.cc | 31 ++++++++++++------ rtgui/guiutils.h | 52 +----------------------------- rtgui/wavelet.cc | 23 ++++++-------- rtgui/whitebalance.cc | 29 +++++++---------- rtgui/xtransprocess.cc | 21 +++++-------- 11 files changed, 128 insertions(+), 267 deletions(-) diff --git a/rtgui/bayerprocess.cc b/rtgui/bayerprocess.cc index ad9db9c2c..74cf27dde 100644 --- a/rtgui/bayerprocess.cc +++ b/rtgui/bayerprocess.cc @@ -718,56 +718,39 @@ void BayerProcess::pixelShiftMotionMethodChanged () void BayerProcess::FrameCountChanged(int n, int frameNum) { - struct Data { - BayerProcess *me; - int n; - int frameNum; - }; - - const auto func = - [](Data* d) -> bool + idle_register.add( + [this, n, frameNum]() -> bool { - BayerProcess *me = d->me; - me->imageNumber->block (true); - int n = d->n; - int frameNum = d->frameNum; + imageNumber->block(true); - me->imageNumber->remove_all(); - me->imageNumber->append("1"); - for(int i = 2; i <= std::min(n, 4); ++i) { + imageNumber->remove_all(); + imageNumber->append("1"); + for (int i = 2; i <= std::min(n, 4); ++i) { std::ostringstream entry; entry << i; - me->imageNumber->append(entry.str()); + imageNumber->append(entry.str()); } - me->imageNumber->set_active(std::min(frameNum, n - 1)); - if(n == 1) { - me->imageNumberBox->hide(); + imageNumber->set_active(std::min(frameNum, n - 1)); + if (n == 1) { + imageNumberBox->hide(); } else { - me->imageNumberBox->show(); + imageNumberBox->show(); } - me->imageNumber->block (false); + imageNumber->block (false); return false; - }; - - idle_register.add(func, new Data{this, n, frameNum}, true); + } + ); } void BayerProcess::autoContrastChanged (double autoContrast) { - struct Data { - BayerProcess* self; - double autoContrast; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, autoContrast]() -> bool { - BayerProcess* const self = data->self; - self->disableListener(); - self->dualDemosaicContrast->setValue(data->autoContrast); - self->enableListener(); + disableListener(); + dualDemosaicContrast->setValue(autoContrast); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, autoContrast}, true); + } + ); } diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index bbf5ed5d7..dea55ced4 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1447,64 +1447,42 @@ void ColorAppearance::setDefaults (const ProcParams* defParams, const ParamsEdit void ColorAppearance::autoCamChanged (double ccam, double ccamout) { - struct Data { - ColorAppearance* me; - double ccam; - double ccamout; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, ccam, ccamout]() -> bool { - ColorAppearance* const self = data->me; - self->disableListener(); - self->degree->setValue(data->ccam); - self->degreeout->setValue(data->ccamout); - self->enableListener(); + disableListener(); + degree->setValue(ccam); + degreeout->setValue(ccamout); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, ccam, ccamout}, true); + } + ); } void ColorAppearance::adapCamChanged (double cadap) { - struct Data { - ColorAppearance* self; - double cadap; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, cadap]() -> bool { - ColorAppearance* const self = data->self; - self->disableListener(); - self->adapscen->setValue(data->cadap); - self->enableListener(); + disableListener(); + adapscen->setValue(cadap); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, cadap}, true); + } + ); } void ColorAppearance::ybCamChanged (int ybsc) { - struct Data { - ColorAppearance* self; - int ybsc; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, ybsc]() -> bool { - ColorAppearance* self = data->self; - self->disableListener(); - self->ybscen->setValue(data->ybsc); - self->enableListener(); + disableListener(); + ybscen->setValue(ybsc); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, ybsc}, true); + } + ); } void ColorAppearance::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index b0e945ce1..cfd2d0486 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -1193,38 +1193,28 @@ void EditorPanel::setProgressStr(const Glib::ustring& str) void EditorPanel::setProgressState(bool inProcessing) { - struct spsparams { - bool inProcessing; - EditorPanelIdleHelper* epih; - }; - epih->pending++; - spsparams* p = new spsparams; - p->inProcessing = inProcessing; - p->epih = epih; - - const auto func = - [](spsparams* p) -> bool + idle_register.add( + [this, inProcessing]() -> bool { - if (p->epih->destroyed) + if (epih->destroyed) { - if (p->epih->pending == 1) { - delete p->epih; + if (epih->pending == 1) { + delete epih; } else { - p->epih->pending--; + --epih->pending; } return false; } - p->epih->epanel->refreshProcessingState (p->inProcessing); - p->epih->pending--; + epih->epanel->refreshProcessingState(inProcessing); + --epih->pending; return false; - }; - - idle_register.add(func, p, true); + } + ); } void EditorPanel::error(const Glib::ustring& descr) diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index 20cb3350f..d489bb1d3 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -565,31 +565,22 @@ void FileBrowser::doubleClicked (ThumbBrowserEntryBase* entry) void FileBrowser::addEntry (FileBrowserEntry* entry) { - struct addparams { - FileBrowser* self; - FileBrowserEntry* entry; - unsigned int session_id; - }; + entry->setParent(this); - addparams* const ap = new addparams; - entry->setParent (this); - ap->self = this; - ap->entry = entry; - ap->session_id = session_id(); + const unsigned int sid = session_id(); - const auto func = - [](addparams* ap) -> bool + idle_register.add( + [this, entry, sid]() -> bool { - if (ap->session_id != ap->self->session_id()) { - delete ap->entry; + if (sid != session_id()) { + delete entry; } else { - ap->self->addEntry_(ap->entry); + addEntry_(entry); } return false; - }; - - idle_register.add(func, ap, true); + } + ); } void FileBrowser::addEntry_ (FileBrowserEntry* entry) diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index 5d47a54ea..70d2fc128 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -217,45 +217,27 @@ void FileBrowserEntry::updateImage(rtengine::IImage8* img, double scale, const r redrawRequests++; feih->pending++; - struct tiupdate { - FileBrowserEntryIdleHelper* feih; - rtengine::IImage8* img; - double scale; - rtengine::procparams::CropParams cropParams; - }; - - tiupdate* param = new tiupdate{ - feih, - img, - scale, - cropParams - }; - - const gint priority = G_PRIORITY_LOW; - - const auto func = - [](tiupdate* params) -> bool + idle_register.add( + [this, img, scale, cropParams]() -> bool { - FileBrowserEntryIdleHelper* const feih = params->feih; - if (feih->destroyed) { if (feih->pending == 1) { delete feih; } else { - feih->pending--; + --feih->pending; } - params->img->free (); + img->free(); return false; } - feih->fbentry->_updateImage (params->img, params->scale, params->cropParams); - feih->pending--; + feih->fbentry->_updateImage(img, scale, cropParams); + --feih->pending; return false; - }; - - idle_register.add(func, param, true, priority); + }, + G_PRIORITY_LOW + ); } void FileBrowserEntry::_updateImage(rtengine::IImage8* img, double s, const rtengine::procparams::CropParams& cropParams) diff --git a/rtgui/flatfield.cc b/rtgui/flatfield.cc index ae94255a7..86d27aacf 100644 --- a/rtgui/flatfield.cc +++ b/rtgui/flatfield.cc @@ -411,20 +411,13 @@ void FlatField::setShortcutPath(const Glib::ustring& path) void FlatField::flatFieldAutoClipValueChanged(int n) { - struct Data { - FlatField* self; - int n; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, n]() -> bool { - FlatField* const self = data->self; - self->disableListener(); - self->flatFieldClipControl->setValue (data->n); - self->enableListener(); + disableListener(); + flatFieldClipControl->setValue(n); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, n}, true); + } + ); } diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index bd9828933..a645846d1 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -45,15 +45,31 @@ IdleRegister::~IdleRegister() void IdleRegister::add(std::function function, gint priority) { - using Function = std::function; - - const auto func = - [](Function* function) + const auto dispatch = + [](gpointer data) -> gboolean { - return (*function)(); + DataWrapper* const data_wrapper = static_cast(data); + + if (!data_wrapper->function()) { + data_wrapper->self->mutex.lock(); + data_wrapper->self->ids.erase(data_wrapper); + data_wrapper->self->mutex.unlock(); + + delete data_wrapper; + return FALSE; + } + + return TRUE; }; - add(func, new Function(std::move(function)), true, priority); + DataWrapper* const data_wrapper = new DataWrapper{ + this, + std::move(function) + }; + + mutex.lock(); + ids[data_wrapper] = gdk_threads_add_idle_full(priority, dispatch, data_wrapper, nullptr); + mutex.unlock(); } void IdleRegister::destroy() @@ -61,9 +77,6 @@ void IdleRegister::destroy() mutex.lock(); for (const auto& id : ids) { g_source_remove(id.second); - if (id.first->deleter) { - id.first->deleter(id.first->data); - } delete id.first; } ids.clear(); diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 309965520..a5705630f 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -51,63 +51,13 @@ class IdleRegister final : public: ~IdleRegister(); - template - void add(bool (*function)(DATA*), DATA* data, bool delete_data, gint priority = G_PRIORITY_DEFAULT_IDLE) - { - const auto dispatch = - [](gpointer data) -> gboolean - { - DataWrapper* const data_wrapper = static_cast(data); - - // This is safe as per https://en.cppreference.com/w/cpp/language/reinterpret_cast item 7) - if (!reinterpret_cast(data_wrapper->function)(static_cast(data_wrapper->data))) { - data_wrapper->self->mutex.lock(); - data_wrapper->self->ids.erase(data_wrapper); - data_wrapper->self->mutex.unlock(); - - if (data_wrapper->deleter) { - data_wrapper->deleter(data_wrapper->data); - } - - delete data_wrapper; - return FALSE; - } - - return TRUE; - }; - - DataWrapper* const data_wrapper = new DataWrapper{ - this, - reinterpret_cast(function), - data, - [delete_data]() -> GSourceFunc - { - if (delete_data) { - return - [](gpointer data) -> gboolean - { - delete static_cast(data); - return TRUE; - }; - } - return nullptr; - }() - }; - - mutex.lock(); - ids[data_wrapper] = gdk_threads_add_idle_full(priority, dispatch, data_wrapper, nullptr); - mutex.unlock(); - } - void add(std::function function, gint priority = G_PRIORITY_DEFAULT_IDLE); void destroy(); private: struct DataWrapper { IdleRegister* const self; - GSourceFunc function; - gpointer data; - GSourceFunc deleter; + std::function function; }; std::map ids; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 5b395fc91..60915fa02 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -887,23 +887,18 @@ Wavelet::~Wavelet () void Wavelet::wavChanged (double nlevel) { if (!batchMode) { - struct Data { - Wavelet *self; - double nlevel; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, nlevel]() -> bool { - Wavelet* self = data->self; - self->wavLabels->set_text( - Glib::ustring::compose(M("TP_WAVELET_LEVLABEL"), - Glib::ustring::format(std::fixed, std::setprecision(0), data->nlevel)) + wavLabels->set_text( + Glib::ustring::compose( + M("TP_WAVELET_LEVLABEL"), + Glib::ustring::format(std::fixed, std::setprecision(0), nlevel) + ) ); return false; - }; - - idle_register.add(func, new Data{this, nlevel}, true); + } + ); } } diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index dbb65867f..02fb8d793 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -913,25 +913,18 @@ inline Gtk::TreeRow WhiteBalance::getActiveMethod () void WhiteBalance::WBChanged(double temperature, double greenVal) { - struct Data { - WhiteBalance* self; - double temperature; - double green_val; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, temperature, greenVal]() -> bool { - data->self->disableListener(); - data->self->setEnabled(true); - data->self->temp->setValue(data->temperature); - data->self->green->setValue(data->green_val); - data->self->temp->setDefault(data->temperature); - data->self->green->setDefault(data->green_val); - data->self->enableListener(); + disableListener(); + setEnabled(true); + temp->setValue(temperature); + green->setValue(greenVal); + temp->setDefault(temperature); + green->setDefault(greenVal); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, temperature, greenVal}, true); + } + ); } diff --git a/rtgui/xtransprocess.cc b/rtgui/xtransprocess.cc index 72a2db2b0..9639ce29d 100644 --- a/rtgui/xtransprocess.cc +++ b/rtgui/xtransprocess.cc @@ -254,20 +254,13 @@ void XTransProcess::checkBoxToggled (CheckBox* c, CheckValue newval) void XTransProcess::autoContrastChanged (double autoContrast) { - struct Data { - XTransProcess* self; - double autoContrast; - }; - - const auto func = - [](Data* data) -> bool + idle_register.add( + [this, autoContrast]() -> bool { - XTransProcess* self = data->self; - self->disableListener(); - self->dualDemosaicContrast->setValue(data->autoContrast); - self->enableListener(); + disableListener(); + dualDemosaicContrast->setValue(autoContrast); + enableListener(); return false; - }; - - idle_register.add(func, new Data{this, autoContrast}, true); + } + ); } From de6ee457e6eaee984a1185c111d81cdebb62a608 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 4 Jan 2019 14:02:24 +0100 Subject: [PATCH 10/21] Revert "MultiLangMgr::getOSUserLanguage (): get rid of special windows code" This reverts commit 562ed3b22a964b6561fcb2bc18dd5a0322a580ce. --- rtgui/multilangmgr.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/rtgui/multilangmgr.cc b/rtgui/multilangmgr.cc index a439c0602..8d2985436 100644 --- a/rtgui/multilangmgr.cc +++ b/rtgui/multilangmgr.cc @@ -209,6 +209,27 @@ Glib::ustring MultiLangMgr::getOSUserLanguage () { Glib::ustring langName ("default"); +#if defined (WIN32) + + const LCID localeID = GetUserDefaultLCID (); + TCHAR localeName[18]; + + const int langLen = GetLocaleInfo (localeID, LOCALE_SISO639LANGNAME, localeName, 9); + if (langLen <= 0) { + return langName; + } + + localeName[langLen - 1] = '-'; + + const int countryLen = GetLocaleInfo (localeID, LOCALE_SISO3166CTRYNAME, &localeName[langLen], 9); + if (countryLen <= 0) { + return langName; + } + + langName = localeToLang (localeName); + +#elif defined (__linux__) || defined (__APPLE__) + // Query the current locale and force decimal point to dot. const char *locale = getenv("LANG"); if (locale || (locale = setlocale (LC_CTYPE, ""))) { @@ -217,5 +238,7 @@ Glib::ustring MultiLangMgr::getOSUserLanguage () setlocale (LC_NUMERIC, "C"); +#endif + return langName; } From 769d2e6abc4caa78dee593cff3797672e1964e52 Mon Sep 17 00:00:00 2001 From: Gregory Reshetniak Date: Wed, 9 Jan 2019 22:46:30 +0100 Subject: [PATCH 11/21] WIP: Ukrainian translation (#5127) --- rtdata/languages/Ukrainian | 2262 ++++++++++++++++++++++++++++++++++++ 1 file changed, 2262 insertions(+) create mode 100644 rtdata/languages/Ukrainian diff --git a/rtdata/languages/Ukrainian b/rtdata/languages/Ukrainian new file mode 100644 index 000000000..b84516877 --- /dev/null +++ b/rtdata/languages/Ukrainian @@ -0,0 +1,2262 @@ +#01 2019-01-04 Gregory Reshetniak + +ABOUT_TAB_BUILD;Версія +ABOUT_TAB_CREDITS;Розробники +ABOUT_TAB_LICENSE;Ліцензія +ABOUT_TAB_RELEASENOTES;Примітки до релізу +ABOUT_TAB_SPLASH;Екран привітання +BATCHQUEUE_AUTOSTART;Автостарт +BATCHQUEUE_AUTOSTARTHINT;Автоматично почати обробку якщо додано завдання +BATCHQUEUE_DESTFILENAME;Шлях до каталогу і назва файлу +BATCH_PROCESSING;Пакетна обробка +CURVEEDITOR_CURVE;Крива +CURVEEDITOR_CURVES;Криві +CURVEEDITOR_CUSTOM;Власна +CURVEEDITOR_DARKS;Темні +CURVEEDITOR_HIGHLIGHTS;Найсвітліші +CURVEEDITOR_LIGHTS;Світлі +CURVEEDITOR_LINEAR;Лінійна +CURVEEDITOR_LOADDLGLABEL;Відкрити файл кривої... +CURVEEDITOR_MINMAXCPOINTS;Еквалізація +CURVEEDITOR_NURBS;NURBS +CURVEEDITOR_PARAMETRIC;Параметрична +CURVEEDITOR_SAVEDLGLABEL;Записати файл кривої... +CURVEEDITOR_SHADOWS;Найтемніші +CURVEEDITOR_TOOLTIPCOPY;Скопіювати криву до буферу +CURVEEDITOR_TOOLTIPLINEAR;Повернути криву до лінії +CURVEEDITOR_TOOLTIPLOAD;Відкрити файл кривої +CURVEEDITOR_TOOLTIPPASTE;Вставити криву з буферу +CURVEEDITOR_TOOLTIPSAVE;Записати криву до файлу +CURVEEDITOR_TYPE;Тип: +DIRBROWSER_FOLDERS;Каталоги +EDITWINDOW_TITLE;Редактор зображень +EDIT_OBJECT_TOOLTIP;Показати віджет у вікні передпоказу +EDIT_PIPETTE_TOOLTIP;Щоб додати точку на кривій потрібно тримати Ctrl натискаючи ліву клавішу миші на цьому регіоні зображення.\nЩоб пересунути точку тимайте Ctrl, натисніть лівою клавішею миші, відпустіть Ctrl і, тримаючи ліву клавішу миші пересуньте курсор на нову позицію. +EXIFFILTER_APERTURE;Діафрагма +EXIFFILTER_CAMERA;Камера +EXIFFILTER_EXPOSURECOMPENSATION;Корекція експозиції +EXIFFILTER_FILETYPE;Тип файлу +EXIFFILTER_FOCALLEN;Фокусна відстань +EXIFFILTER_ISO;ISO +EXIFFILTER_LENS;Об'єктив +EXIFFILTER_METADATAFILTER;Увімкнути фільтри метаданих +EXIFFILTER_SHUTTER;Затвор +EXIFPANEL_ADDEDIT;Додати/Змінити +EXIFPANEL_ADDEDITHINT;Додати теѓ або змінити теѓ +EXIFPANEL_ADDTAGDLG_ENTERVALUE;Впиши значення +EXIFPANEL_ADDTAGDLG_SELECTTAG;Вибрати теѓ +EXIFPANEL_ADDTAGDLG_TITLE;Додати/Змінити теѓ +EXIFPANEL_KEEP;Запам'ятати +EXIFPANEL_KEEPHINT;Записати теѓи після запису вихідного файлу +EXIFPANEL_REMOVE;Видалити +EXIFPANEL_REMOVEHINT;Усунути теѓи після запису вихідного файлу +EXIFPANEL_RESET;Відновити +EXIFPANEL_RESETALL;Відновити всі +EXIFPANEL_RESETALLHINT;Повернути значення теѓів +EXIFPANEL_RESETHINT;Повернути початкові значення теѓів +EXIFPANEL_SUBDIRECTORY;Підкаталог +EXPORT_BYPASS_ALL;Вибрати / Вибрати всі +EXPORT_BYPASS_DEFRINGE;Не усувати віньетування +EXPORT_BYPASS_DIRPYRDENOISE;Не усувати шуми +EXPORT_BYPASS_DIRPYREQUALIZER;Не додавати контраст в деталях +EXPORT_BYPASS_RAW_CA;Не усувати хроматичні аберації (raw) +EXPORT_BYPASS_RAW_CCSTEPS;Не виправляти баланс кольорів (raw) +EXPORT_BYPASS_RAW_DCB_ENHANCE;Не виправляти DCB (raw) +EXPORT_BYPASS_RAW_DCB_ITERATIONS;Не ітерувати DCB (raw) +EXPORT_BYPASS_RAW_DF;Не використовувати темний кадр (raw) +EXPORT_BYPASS_RAW_FF;Не використовувати пустий кадр (raw) +EXPORT_BYPASS_RAW_GREENTHRESH;Не вирівнювати зелені тони (raw) +EXPORT_BYPASS_RAW_LINENOISE;Не зменшувати лінійні шуми (raw) +EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Не виправляти LMMSE [raw] +EXPORT_BYPASS_SHARPENEDGE;Не збільшувати детальність країв +EXPORT_BYPASS_SHARPENING;Не збільшувати детальність +EXPORT_BYPASS_SHARPENMICRO;Не збільшувати мікроконтраст +EXPORT_BYPASS_SH_HQ;Не коректувати світло-тінь +EXPORT_FASTEXPORTOPTIONS;Опції швидкого експорту +EXPORT_INSTRUCTIONS;Опції швидкого експорту дозволяють встановити налаштування для пришвидшеної генерації зображень. +EXPORT_MAXHEIGHT;Максимальна висота: +EXPORT_MAXWIDTH;Максимальна широта: +EXPORT_PUTTOQUEUEFAST; Додати до черги швидкого експорту +EXPORT_RAW_DMETHOD;Алгоритм демозаїзації +EXTPROGTARGET_1;raw +EXTPROGTARGET_2;виконано в черзі +FILEBROWSER_ADDDELTEMPLATE;Додати/Усунути шаблон... +FILEBROWSER_APPLYPROFILE;Застосувати профіль +FILEBROWSER_APPLYPROFILE_PARTIAL;Застосувати частковий профіль +FILEBROWSER_AUTODARKFRAME;Автоматично уживати темні кадри +FILEBROWSER_AUTOFLATFIELD;Автоматично уживати пусті кадри +FILEBROWSER_BROWSEPATHBUTTONHINT;Показати вибрану стежку +FILEBROWSER_BROWSEPATHHINT;Показати вибрану стежку\n Комбінація \nCtrl-o для підсвічення тексту стежки\nEnter / Ctrl-Enter Для переходу стежкою;\nEscДля відмови від змін\nShift-Esc Для зняття фокусу.\n\n ~ є символом домашьного каталогу користувача. \n! є символом каталогу зображень користувача. +FILEBROWSER_CACHE;Кеш +FILEBROWSER_CLEARPROFILE;Очистити профіль +FILEBROWSER_COLORLABEL_TOOLTIP;Колорові теѓи\n\nУживання:\nShift-Ctrl-0 Без кольору\nShift-Ctrl-1 Червоний\nShift-Ctrl-2 Жовтий\nShift-Ctrl-3 Зелений\nShift-Ctrl-4 Синій\nShift-Ctrl-5 Фіолетовий +FILEBROWSER_COPYPROFILE;Копіювати профіль +FILEBROWSER_CURRENT_NAME;Існуюча назва: +FILEBROWSER_DARKFRAME;Темний кадр +FILEBROWSER_DELETEDLGLABEL;Підтвердження усування файлу +FILEBROWSER_DELETEDLGMSG;Справді видалити зазначені %1 файл(и)? +FILEBROWSER_DELETEDLGMSGINCLPROC;Справді видалити зазначені %1 файл(и) разом з версією створеною в черзі? +FILEBROWSER_EMPTYTRASH;Очистити сміттєвий кошик +FILEBROWSER_EMPTYTRASHHINT;Очистити сміттєвий кошик без відновлення +FILEBROWSER_EXTPROGMENU;Відкрити за допомогою +FILEBROWSER_FLATFIELD;Пусте поле +FILEBROWSER_MOVETODARKFDIR;Перемістити до каталогу з темними кадрами +FILEBROWSER_MOVETOFLATFIELDDIR;Перемістити до каталогу з пустими кадрами +FILEBROWSER_NEW_NAME;Нова назва: +FILEBROWSER_OPENDEFAULTVIEWER;Відкрити в стандартній програмі перегляду +FILEBROWSER_PARTIALPASTEPROFILE;Частково вставити +FILEBROWSER_PASTEPROFILE;Вставити профіль +FILEBROWSER_POPUPCANCELJOB;Анулювати завдання +FILEBROWSER_POPUPCOLORLABEL;Кольоровий маркер +FILEBROWSER_POPUPCOLORLABEL0;Маркер: Без кольору +FILEBROWSER_POPUPCOLORLABEL1;Маркер: Червоний +FILEBROWSER_POPUPCOLORLABEL2;Маркер: Жовтий +FILEBROWSER_POPUPCOLORLABEL3;Маркер: Зелений +FILEBROWSER_POPUPCOLORLABEL4;Маркер: Синій +FILEBROWSER_POPUPCOLORLABEL5;Маркер: Фіолетовий +FILEBROWSER_POPUPCOPYTO;Копіювати до... +FILEBROWSER_POPUPFILEOPERATIONS;Операції з файлами +FILEBROWSER_POPUPMOVEEND;Перенести на кінець черги +FILEBROWSER_POPUPMOVEHEAD;Перенести на початок черги +FILEBROWSER_POPUPMOVETO;Перенести до... +FILEBROWSER_POPUPOPEN;Відкрити +FILEBROWSER_POPUPOPENINEDITOR;Відкрити в редакторі +FILEBROWSER_POPUPPROCESS;Додати до черги на обробку +FILEBROWSER_POPUPPROCESSFAST;Додати до черги швидкого експорту +FILEBROWSER_POPUPPROFILEOPERATIONS;Профілі обробки +FILEBROWSER_POPUPRANK;Оцінка +FILEBROWSER_POPUPRANK0;Прибрати оцінку +FILEBROWSER_POPUPRANK1;Оцінка 1 * +FILEBROWSER_POPUPRANK2;Оцінка 2 ** +FILEBROWSER_POPUPRANK3;Оцінка 3 *** +FILEBROWSER_POPUPRANK4;Оцінка 4 **** +FILEBROWSER_POPUPRANK5;Оцінка 5 ***** +FILEBROWSER_POPUPREMOVE;Знищити на диску +FILEBROWSER_POPUPREMOVEINCLPROC;Знищити на диску разом з результатами обробки +FILEBROWSER_POPUPRENAME;Змінити назву +FILEBROWSER_POPUPSELECTALL;Вибрати всі +FILEBROWSER_POPUPTRASH;Перенести до смітника +FILEBROWSER_POPUPUNRANK;Прибрати оцінку +FILEBROWSER_POPUPUNTRASH;Забрати з смітника +FILEBROWSER_QUERYBUTTONHINT;Очистити пошук +FILEBROWSER_QUERYHINT;Впиши частину назви щоб знайти файл. Відділяй слова комами, np.\n1001,1004,1199\n\nСлова що потрібно виключити з пошуку відмічай !=\nnp.\n!=1001,1004,1199\n\nКоманди:\nCtrl-f - перейти до поля "Пошук",\nEnter - шукати,\nEsc - очистити поле "Пошук",\nShift-Esc - вийти з поля "Пошук". +FILEBROWSER_QUERYLABEL; Пошук: +FILEBROWSER_RANK1_TOOLTIP;Оцінка 1 *\nКоманда: Shift-1 +FILEBROWSER_RANK2_TOOLTIP;Оцінка 2 *\nКоманда: Shift-2 +FILEBROWSER_RANK3_TOOLTIP;Оцінка 3 *\nКоманда: Shift-3 +FILEBROWSER_RANK4_TOOLTIP;Оцінка 4 *\nКоманда: Shift-4 +FILEBROWSER_RANK5_TOOLTIP;Оцінка 5 *\nКоманда: Shift-5 +FILEBROWSER_RENAMEDLGLABEL;Змінити назву файлу +FILEBROWSER_SELECTDARKFRAME;Вибрати темний кадр... +FILEBROWSER_SELECTFLATFIELD;Вибрати пустий кадр... +FILEBROWSER_SHOWCOLORLABEL1HINT;Показати фото з червоним теѓом.\nКоманда: Alt-1 +FILEBROWSER_SHOWCOLORLABEL2HINT;Показати фото з жовтим теѓом.\nКоманда: Alt-2 +FILEBROWSER_SHOWCOLORLABEL3HINT;Показати фото з зеленим теѓом.\nКоманда: Alt-3 +FILEBROWSER_SHOWCOLORLABEL4HINT;Показати фото з синім теѓом.\nКоманда: Alt-4 +FILEBROWSER_SHOWCOLORLABEL5HINT;Показати фото з фіолетовим теѓом.\nКоманда: Alt-5 +FILEBROWSER_SHOWDIRHINT;Wyłącza wyszstkie filtry.\nКоманда: d +FILEBROWSER_SHOWEDITEDHINT;Pokazuje edytowane zdjęcia.\nКоманда: 7 +FILEBROWSER_SHOWEDITEDNOTHINT;Pokazuje nieedytowane zdjęcia.\nКоманда: 6 +FILEBROWSER_SHOWEXIFINFO;Pokaż dane Exif.\n\nКоманди:\ni - Tryb wielu zakładek,\nAlt-i - Tryb jednej zakładki. +FILEBROWSER_SHOWRANK1HINT;Показати фото з оцінкою 1 зірочка.\nКоманда: 1 +FILEBROWSER_SHOWRANK2HINT;Показати фото з оцінкою 2 зірочки.\nКоманда: 2 +FILEBROWSER_SHOWRANK3HINT;Показати фото з оцінкою 3 зірочки.\nКоманда: 3 +FILEBROWSER_SHOWRANK4HINT;Показати фото з оцінкою 4 зірочки.\nКоманда: 4 +FILEBROWSER_SHOWRANK5HINT;Показати фото з оцінкою 5 зірочок.\nКоманда: 5 +FILEBROWSER_SHOWRECENTLYSAVEDHINT;Показати записані фото.\nКоманда: Alt-7 +FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Показати незаписані фото.\nКоманда: Alt-6 +FILEBROWSER_SHOWTRASHHINT;Показати вміст кошика.\nКоманда: Ctrl-t +FILEBROWSER_SHOWUNCOLORHINT;Показати фото без кольорових теѓів.\nКоманда: Alt-0 +FILEBROWSER_SHOWUNRANKHINT;Показати фото без оцінок.\nКоманда: 0 +FILEBROWSER_THUMBSIZE;Розмір мініатюрок +FILEBROWSER_UNRANK_TOOLTIP;Усунути оцінку.\nКоманда: Shift-0 +FILEBROWSER_ZOOMINHINT;Збільшити мініатюрки.\n\nКоманди:\n+ - Режим кількох закладок,\nAlt-+ - Режим однієї закладки. +FILEBROWSER_ZOOMOUTHINT;Зменшити мініатюрки.\n\nКоманди:\n- - Режим кількох закладок,\nAlt-- - Режим однієї закладки. +GENERAL_ABOUT;Про програму +GENERAL_AFTER;Після +GENERAL_AUTO;Автоматично +GENERAL_BEFORE;Перед +GENERAL_CANCEL;Відмінити +GENERAL_CLOSE;Закрити +GENERAL_DISABLE;Вимкнути +GENERAL_DISABLED;Вимкнуто +GENERAL_ENABLE;Ввімкнути +GENERAL_ENABLED;Ввімкнуто +GENERAL_FILE;Файл +GENERAL_LANDSCAPE;Горизонтальний режим +GENERAL_NA;н/д +GENERAL_NO;Ні +GENERAL_NONE;Немає +GENERAL_OK;OK +GENERAL_PORTRAIT;Вертикальний режим +GENERAL_SAVE;Зберегти +GENERAL_UNCHANGED;(Без змін) +GENERAL_WARNING;Попередження +HISTOGRAM_TOOLTIP_B;Показати/Сховати гістограму синіх тонів. +HISTOGRAM_TOOLTIP_BAR;Pokazuje/Ukrywa wskaźnik RGB.\nKliknięcie prawym przyciskiem myszy na podglądzie zdjęcia blokuje/odblokowuje. +HISTOGRAM_TOOLTIP_CHRO;Pokaż/Ukryj histogram chromatyczności. +HISTOGRAM_TOOLTIP_FULL;Змінити гістограму. +HISTOGRAM_TOOLTIP_G;Показати/Сховати гістограму зелених тонів. +HISTOGRAM_TOOLTIP_L;Показати/Сховати гістограму люмінації CIELab. +HISTOGRAM_TOOLTIP_R;Показати/Сховати гістограму червоних тонів. +HISTOGRAM_TOOLTIP_RAW;Показати/Сховати гістограму raw. +HISTORY_CHANGED;Змінено +HISTORY_CUSTOMCURVE;Власна крива +HISTORY_FROMCLIPBOARD;З буферу +HISTORY_LABEL;Історія +HISTORY_MSG_1;Фотографію завантажено +HISTORY_MSG_2;Профіль завантажено +HISTORY_MSG_3;Профіль змінено +HISTORY_MSG_4;Перегляд історії +HISTORY_MSG_5;Światłość +HISTORY_MSG_6;Контраст +HISTORY_MSG_7;Чорний +HISTORY_MSG_8;Компенсація експозиції +HISTORY_MSG_9;Компенсація світла +HISTORY_MSG_10;Компресія тіней +HISTORY_MSG_11;Тональна крива +HISTORY_MSG_12;Автоматична експозиція +HISTORY_MSG_13;Зменшення експозиції +HISTORY_MSG_14;L*a*b* - Світло +HISTORY_MSG_15;L*a*b* - Контраст +HISTORY_MSG_16;- +HISTORY_MSG_17;- +HISTORY_MSG_18;- +HISTORY_MSG_19;Крива L* +HISTORY_MSG_20;Wyostrzanie +HISTORY_MSG_21;USM - Promień +HISTORY_MSG_22;USM - Siła +HISTORY_MSG_23;USM - Próg wyostrzania +HISTORY_MSG_24;USM - Wyostrz tylko krawędzie +HISTORY_MSG_25;USM - Promień detekcji krawędzi +HISTORY_MSG_26;USM - Tolerancja krawędzi +HISTORY_MSG_27;USM - Kontrola poświaty +HISTORY_MSG_28;USM - Stopień kontroli poświaty +HISTORY_MSG_29;Metoda wyostrzania +HISTORY_MSG_30;RLD - Promień +HISTORY_MSG_31;RLD - Siła +HISTORY_MSG_32;RLD - Tłumienie +HISTORY_MSG_33;RLD - Powtórzenia +HISTORY_MSG_34;LCP - Korekcja dystorsji +HISTORY_MSG_35;LCP - Korekcja winietowania +HISTORY_MSG_36;LCP - Korekcja aberacji +HISTORY_MSG_37;Automatyczna ekspozycja +HISTORY_MSG_38;Metoda balansu bieli +HISTORY_MSG_39;BB - Температура +HISTORY_MSG_40;BB - Відтінок +HISTORY_MSG_41;Tryb krzywej 1 +HISTORY_MSG_42;Крива 1 +HISTORY_MSG_43;Tryb krzywej 2 +HISTORY_MSG_44;Світлове відшумлення - Promień +HISTORY_MSG_45;Світлове відшумлення - Tolerancja krawędzi +HISTORY_MSG_46;Відшумлення кольору +HISTORY_MSG_47;Змішування світла ICC з матрицею +HISTORY_MSG_48;Тональна крива DCP +HISTORY_MSG_49;Ілюмінант DCP +HISTORY_MSG_50;Тіні/Світло +HISTORY_MSG_51;C/P - Світло +HISTORY_MSG_52;C/P - Тіні +HISTORY_MSG_53;C/P - Тональний діапазон світла +HISTORY_MSG_54;C/P - Тональний діапазон тіней +HISTORY_MSG_55;C/P - Локальний контраст +HISTORY_MSG_56;C/P - Радіус +HISTORY_MSG_57;Обертання +HISTORY_MSG_58;Віддзеркалення по горизонталі +HISTORY_MSG_59;Віддзеркалення по вертикалі +HISTORY_MSG_60;Обертання +HISTORY_MSG_61;Авто-заповнення +HISTORY_MSG_62;Корекція дисторсії об'єктиву +HISTORY_MSG_63;Вибраний снепшот +HISTORY_MSG_64;Кадрування +HISTORY_MSG_65;Корекція хроматичної аберації +HISTORY_MSG_66;Реконструкція засвітлень +HISTORY_MSG_67;Реконструкція засвітлень - Величина +HISTORY_MSG_68;Реконструкція засвітлень - Спосіб +HISTORY_MSG_69;Робочий колірний простір +HISTORY_MSG_70;Вихідний колірний простір +HISTORY_MSG_71;Вхідний колірний простір +HISTORY_MSG_72;KW - Величина +HISTORY_MSG_73;Змішувач каналів +HISTORY_MSG_74;Зміна розміру - Пропорція +HISTORY_MSG_75;Зміна розміру - Спосіб +HISTORY_MSG_76;Метадані Exif +HISTORY_MSG_77;Метадані IPTC +HISTORY_MSG_78;- +HISTORY_MSG_79;Зміна розміру - Широта +HISTORY_MSG_80;Зміна розміру - Висота +HISTORY_MSG_81;Зміна розміру +HISTORY_MSG_82;Профіль змінено +HISTORY_MSG_83;S/H - Чітка маска +HISTORY_MSG_84;Корекція перспективи +HISTORY_MSG_85;LCP +HISTORY_MSG_86;Криві RGB - режим люмінації +HISTORY_MSG_87;Усування імпульсних шумів +HISTORY_MSG_88;Поріг усування імпульсних шумів +HISTORY_MSG_89;Усування шумів +HISTORY_MSG_90;Усування шумів - Світність +HISTORY_MSG_91;Усування шумів - Хромінація +HISTORY_MSG_92;Усування шумів - Гамма +HISTORY_MSG_93;CbDL - Значення +HISTORY_MSG_94;Контраст за рівнем деталей +HISTORY_MSG_96;Крива a* +HISTORY_MSG_97;Крива b* +HISTORY_MSG_98;Алгоритм демозаїзації +HISTORY_MSG_99;Фільтр "гарячих" пікселів +HISTORY_MSG_100;Насиченість RGB +HISTORY_MSG_101;HSV - Відтінок +HISTORY_MSG_102;HSV - Насиченість +HISTORY_MSG_103;HSV - Значення +HISTORY_MSG_104;Еквалайзер HSV +HISTORY_MSG_105;Усування віньєтування +HISTORY_MSG_106;Усування віньєтування - Радіус +HISTORY_MSG_107;Усування віньєтування - Поріг +HISTORY_MSG_108;Експозиція - поріг HLC +HISTORY_MSG_109;Зміна розміру - Розмір +HISTORY_MSG_110;Зміна розміру +HISTORY_MSG_111;L*a*b* - Unikaj przycinania koloru +HISTORY_MSG_112;- +HISTORY_MSG_113;L*a*b* - Ograniczenie nasyczenia +HISTORY_MSG_114;DCB - Кількість ітерацій +HISTORY_MSG_115;DCB - Запобігання зміні кольору +HISTORY_MSG_116;DCB - Покращення +HISTORY_MSG_117;Корекція аберації - Червоні тони +HISTORY_MSG_118;Корекція аберації - Сині тони +HISTORY_MSG_119;Зменшення лінійних шумів +HISTORY_MSG_120;Вирівняння зелених тонів +HISTORY_MSG_121;Авто-корекція хроматичної аберації +HISTORY_MSG_122;Czarna klatka - Auto-wybór +HISTORY_MSG_123;Czarna klatka - Wybór +HISTORY_MSG_124;Корекція білого +HISTORY_MSG_125;Збереження світлих тонів +HISTORY_MSG_126;Пустий кадр - Файл +HISTORY_MSG_127;Пустий кадр - Авто-вибір +HISTORY_MSG_128;Пустий кадр - Інтенсивність розмивання +HISTORY_MSG_129;Пустий кадр - Тип розмивання +HISTORY_MSG_130;Авто-корекція дисторсії +HISTORY_MSG_131;RS - Luma +HISTORY_MSG_132;RS - Chroma +HISTORY_MSG_133;Вихідна гамма +HISTORY_MSG_134;Вільна гамма +HISTORY_MSG_135;Вільна гамма +HISTORY_MSG_136;Кутовий коефіцієнт гами +HISTORY_MSG_137;Рівень чорного - Зелений 1 +HISTORY_MSG_138;Рівень чорного - Червоний +HISTORY_MSG_139;Рівень чорного - Синій +HISTORY_MSG_140;Рівень чорного - Зелений 2 +HISTORY_MSG_141;Рівень чорного - З'єднати зелені +HISTORY_MSG_142;ДК - Кількість ітерацій +HISTORY_MSG_143;ДК - Сила +HISTORY_MSG_144;Мікроконтраст - Сила +HISTORY_MSG_145;Мікроконтраст - Рівномірність +HISTORY_MSG_146;Деталі контурів +HISTORY_MSG_147;Деталі контурів - тільки люмінація +HISTORY_MSG_148;Мікроконтраст +HISTORY_MSG_149;Мікроконтраст - матриця 3×3 +HISTORY_MSG_150;Знешумлення і видалення артефактів демозаїзації +HISTORY_MSG_151;Світність +HISTORY_MSG_152;Світність - пастельні тони +HISTORY_MSG_153;Світність - насичені тони +HISTORY_MSG_154;Світність - збереження тонів шкіри +HISTORY_MSG_155;Світність - запобігання зміні кольорів +HISTORY_MSG_156;Світність - об'єднати пастельні та насичені +HISTORY_MSG_157;Світність - поріг розділення пастельних та насичених тонів +HISTORY_MSG_158;ТВ - Сила +HISTORY_MSG_159;ТВ - Пошук контурів +HISTORY_MSG_160;ТВ - Обшар +HISTORY_MSG_161;ТВ - Поправка при ітерації +HISTORY_MSG_162;Тональне відображення +HISTORY_MSG_163;Криві RGB - Червоний +HISTORY_MSG_164;Криві RGB - Зелений +HISTORY_MSG_165;Криві RGB - Синій +HISTORY_MSG_167;Алгоритм демозаїзації +HISTORY_MSG_168;L*a*b* - Крива CC +HISTORY_MSG_169;L*a*b* - Крива CH +HISTORY_MSG_170;Світність - Крива HH +HISTORY_MSG_171;L*a*b* - Крива LC +HISTORY_MSG_172;L*a*b* - Обмежити LC +HISTORY_MSG_174;CIECAM02 +HISTORY_MSG_175;CAM02 - Адаптація CAT02 +HISTORY_MSG_176;CAM02 - Оточення +HISTORY_MSG_177;CAM02 - Світність сцени +HISTORY_MSG_178;CAM02 - Світність відображення +HISTORY_MSG_179;CAM02 - Модель балансу білого +HISTORY_MSG_180;CAM02 - Lightness (J) +HISTORY_MSG_181;CAM02 - Хроматичність (C) +HISTORY_MSG_182;CAM02 - Автоматичне CAT02 +HISTORY_MSG_183;CAM02 - Контраст (J) +HISTORY_MSG_184;CAM02 - Оточення сцени +HISTORY_MSG_185;CAM02 - Котроль гамуту +HISTORY_MSG_186;CAM02 - Алгоритм +HISTORY_MSG_187;CAM02 - Збереження тонів шкіри і червоних тонів +HISTORY_MSG_188;CAM02 - Яскравість (Q) +HISTORY_MSG_189;CAM02 - Контраст (Q) +HISTORY_MSG_190;CAM02 - Насиченість (S) +HISTORY_MSG_191;CAM02 - Барвистість (M) +HISTORY_MSG_192;CAM02 - Відтінок (hue, h) +HISTORY_MSG_193;CAM02 - Тональна крива 1 +HISTORY_MSG_194;CAM02 - Тональна крива 2 +HISTORY_MSG_195;CAM02 - Тональна крива 1 +HISTORY_MSG_196;CAM02 - Тональна крива 2 +HISTORY_MSG_197;CAM02 - Крива кольору +HISTORY_MSG_198;CAM02 - Крива кольору +HISTORY_MSG_199;CAM02 - Визідні гістограми +HISTORY_MSG_200;CAMO2 - Тональне відображення +HISTORY_MSG_201;Усування шумів - Хроматичність - R&G +HISTORY_MSG_202;Усування шумів - Хроматичність - B&Y +HISTORY_MSG_204;Покрокове поліпшення LMMSE +HISTORY_MSG_205;CAM02 - Галячі/пошкоджені пікселі +HISTORY_MSG_206;CAT02 - Авто-світність сцени +HISTORY_MSG_207;Усування віньєтки - Крива відтінків +HISTORY_MSG_208;BB - Вирівнювач N/C +HISTORY_MSG_210;FP - Кут +HISTORY_MSG_211;Градієнтний фільтр +HISTORY_MSG_212;Віньєтування - Сила +HISTORY_MSG_213;Віньєтування +HISTORY_MSG_214;Чорно-біле (B&W) +HISTORY_MSG_215;B&W - CM - Червоний +HISTORY_MSG_216;B&W - CM - Зелений +HISTORY_MSG_217;B&W - CM - Синій +HISTORY_MSG_218;B&W - Гамма - Червоний +HISTORY_MSG_219;B&W - Гамма - Зелений +HISTORY_MSG_220;B&W - Гамма - Синій +HISTORY_MSG_221;B&W - Кольоровий фільтр +HISTORY_MSG_222;B&W - Налаштування +HISTORY_MSG_223;B&W - CM - Оранжевий +HISTORY_MSG_224;B&W - CM - Жовтий +HISTORY_MSG_225;B&W - CM - Ціановий +HISTORY_MSG_226;B&W - CM - Маджента +HISTORY_MSG_227;B&W - CM - Пурпуровий +HISTORY_MSG_228;B&W - Вирівнювач люмінації +HISTORY_MSG_229;B&W - Вирівнювач люмінації +HISTORY_MSG_230;B&W - Tryb +HISTORY_MSG_231;B&W - Крива 'перед' +HISTORY_MSG_232;B&W - Тип кривої 'перед' +HISTORY_MSG_233;B&W - Крива 'після' +HISTORY_MSG_234;B&W - Тип кривої 'після' +HISTORY_MSG_236;- +HISTORY_MSG_238;FP - Wtapianie +HISTORY_MSG_239;FP - Siła +HISTORY_MSG_240;FP - Środek +HISTORY_MSG_241;Віньєтування - Wtapianie +HISTORY_MSG_242;Віньєтування - Округлість +HISTORY_MSG_243;Віньєтування - Радіус +HISTORY_MSG_244;Віньєтування - Сила +HISTORY_MSG_245;Віньєтування - Środek +HISTORY_MSG_246;Крива CL +HISTORY_MSG_247;Крива LH +HISTORY_MSG_248;Крива HH +HISTORY_MSG_249;KwgPS - Próg +HISTORY_MSG_250;RS - Ulepszona +HISTORY_MSG_251;B&W - Алгоритм +HISTORY_MSG_252;KwgPS - Odcienie skóry +HISTORY_MSG_253;KwgPS - Redukcja błędów +HISTORY_MSG_254;KwgPS - Odcienie skóry +HISTORY_MSG_255;RS - Filtr mediana +HISTORY_MSG_257;Koloryzacja +HISTORY_MSG_258;Koloryzacja - Kolor +HISTORY_MSG_259;Koloryzacja - Przezroczystość +HISTORY_MSG_260;Koloryzacja - Przezroczystość a*[b*] +HISTORY_MSG_261;Koloryzacja - Metoda +HISTORY_MSG_262;Koloryzacja - Przezroczystość b* +HISTORY_MSG_263;Koloryzacja - Cienie - Червоний +HISTORY_MSG_264;Koloryzacja - Cienie - Зелений +HISTORY_MSG_265;Koloryzacja - Cienie - Niebiski +HISTORY_MSG_266;Koloryzacja - Þółcienie - Czerwone +HISTORY_MSG_267;Koloryzacja - Þółcienie - Zielone +HISTORY_MSG_268;Koloryzacja - Þółcienie - Синійe +HISTORY_MSG_269;Koloryzacja - Podświetlenia - Czerwone +HISTORY_MSG_270;Koloryzacja - Podświetlenia - Zielona +HISTORY_MSG_271;Koloryzacja - Podświetlenia - Синійe +HISTORY_MSG_272;Koloryzacja - Balans +HISTORY_MSG_274;Koloryzacja - Nasycenie cieni +HISTORY_MSG_275;Koloryzacja - Nasycenie jasnych +HISTORY_MSG_276;Koloryzacja - Przezroczystość +HISTORY_MSG_277;--unused-- +HISTORY_MSG_278;Koloryzacja - Zachowaj luminancję +HISTORY_MSG_279;Koloryzacja - Cienie +HISTORY_MSG_280;Koloryzacja - Tony jasne +HISTORY_MSG_281;Koloryzacja - Siła nasycenia +HISTORY_MSG_282;Koloryzacja - Próg nasycenia +HISTORY_MSG_283;Koloryzacja - Siła +HISTORY_MSG_284;Koloryzacja - Auto ochrona przesycenia +HISTORY_MSG_285;RS - Mediana - Metoda +HISTORY_MSG_286;RS - Mediana - Typ +HISTORY_MSG_287;RS - Mediana - Powtarzanie +HISTORY_MSG_288;Puste pole - Zabezp. przed obcinaniem +HISTORY_MSG_289;Puste pole - Auto-zabezp. przed obcinaniem +HISTORY_MSG_290;Próg czerni - Червоний +HISTORY_MSG_291;Próg czerni - Зелений +HISTORY_MSG_292;Próg czerni - Синій +HISTORY_MSG_293;Symulacja Kliszy +HISTORY_MSG_294;Symulacja Kliszy - Siła +HISTORY_MSG_295;Symulacja Kliszy - Klisza +HISTORY_MSG_296;RS - Modulacja люмінації +HISTORY_MSG_298;Filtrowanie martwych pikseli +HISTORY_NEWSNAPSHOT;Nowa migawka +HISTORY_NEWSNAPSHOT_TOOLTIP;Skrót: Alt-s +HISTORY_SNAPSHOT;Migawka +HISTORY_SNAPSHOTS;Migawki +IPTCPANEL_CATEGORY;Kategoria +IPTCPANEL_CITY;Miasto +IPTCPANEL_COPYHINT;Kopiuje ustawienia IPTC do schowka +IPTCPANEL_COUNTRY;Kraj +IPTCPANEL_CREDIT;Zasługa +IPTCPANEL_CREDITHINT;Identyfikuje dostawcę zdjęcia, niekoniecznie właściciela lub autora (Credit). +IPTCPANEL_DATECREATED;Data utworzenia +IPTCPANEL_EMBEDDED;Osadzony +IPTCPANEL_EMBEDDEDHINT;Resetuje dane IPTC do domyślnych ustawień osadzonych w orginalnym zdjęciu +IPTCPANEL_HEADLINE;Nagłówek +IPTCPANEL_INSTRUCTIONS;Instrukcje +IPTCPANEL_KEYWORDS;Słowa kluczowe +IPTCPANEL_PASTEHINT;Wstawia ustawienia IPTC ze schowka +IPTCPANEL_RESET;Reset +IPTCPANEL_RESETHINT;Resetuje do domyślnych ustawień profilu +IPTCPANEL_SOURCE;Źródło +IPTCPANEL_TITLE;Tytuł +MAIN_BUTTON_FULLSCREEN;Pełen ekran +MAIN_BUTTON_NAVNEXT_TOOLTIP;Przejdź do następnego zdjęcia względem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F4\n\nAby przejść do następnego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F4 +MAIN_BUTTON_NAVPREV_TOOLTIP;Przejdź do poprzedniego zdjęcia wzgledem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F3 \n\nAby przejść do poprzedniego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F3 +MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronizuj Nawigator Zdjęć z Edytorem aby ukazać miniaturkę obecnie otwartego zdjęcia, oraz usuń filtry w Nawigatorze Zdjęć.\nSkrót: x\n\nJak wyżej, ale bez usuwania filtrów:\nSkrót: y\n(Miniaturka otwartego zdjęcia nie zostanie wyświetlona jesli filtr ją ukrywa). +MAIN_BUTTON_PREFERENCES;Ustawienia +MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Dodaj bieżące zdjęcie do kolejki przetwarzania Ctrl+B +MAIN_BUTTON_SAVE_TOOLTIP;Zapisz bieżące zdjęcieCtrl+S +MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Otwórz bieżące zdjęcie w zewnętrznym edytorze.\nSkrót: Ctrl+e +MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Pokaż/Ukryj wszystkie panele boczne.\nSkrót: m +MAIN_BUTTON_UNFULLSCREEN;Zwolnij ekran +MAIN_FRAME_BATCHQUEUE;Kolejka +MAIN_FRAME_BATCHQUEUE_TOOLTIP;Przetwarzanie wsadowe\nSkrót: Ctrl-F3 +MAIN_FRAME_EDITOR;Edytor +MAIN_FRAME_EDITOR_TOOLTIP;Edytor.\nSkrót: Ctrl-F4 +MAIN_FRAME_FILEBROWSER;Przeglądarka plików +MAIN_FRAME_FILEBROWSER_TOOLTIP; Przeglądarka plików.\nSkrót: Ctrl-F2 +MAIN_FRAME_PLACES;Miejsca +MAIN_FRAME_PLACES_ADD;Dodaj +MAIN_FRAME_PLACES_DEL;Usuń +MAIN_FRAME_RECENT;Ostatnio używane foldery +MAIN_MSG_ALREADYEXISTS;Plik już istnieje. +MAIN_MSG_CANNOTLOAD;Nie można wczytać obrazu +MAIN_MSG_CANNOTSAVE;Błąd zapisu pliku +MAIN_MSG_CANNOTSTARTEDITOR;Nie mozna uruchomic edytora. +MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Proszę wprowadzić prawidłową ścieżkę w Ustawieniach. +MAIN_MSG_EMPTYFILENAME;Nie podano nazwy pliku! +MAIN_MSG_IMAGEUNPROCESSED;Ta komenda wymaga aby wszystkie wybrane zdjęcia były wpierw wywołane poprzez kolejkę. +MAIN_MSG_NAVIGATOR;Nawigator +MAIN_MSG_OPERATIONCANCELLED;Operację anulowano +MAIN_MSG_PATHDOESNTEXIST;Ścieżka\n\n%1\n\nnie istnieje. Wybierz przawidłową ścieżkę w Ustawieniach. +MAIN_MSG_QOVERWRITE;Zastąpić? +MAIN_MSG_SETPATHFIRST;Aby użyć tej funkcji należy wpierw wybrać odpowiednią ścieżkę docelową w Ustawieniach! +MAIN_MSG_WRITEFAILED;Zapis nie powiódł się:\n\n"%1"\n\nUpewnij się, że folder istnieje oraz że można do niego zapisywać. +MAIN_TAB_COLOR;Kolor +MAIN_TAB_COLOR_TOOLTIP;Skrót: Alt-c +MAIN_TAB_DETAIL;Szczegóły +MAIN_TAB_DETAIL_TOOLTIP;Skrót: Alt-d +MAIN_TAB_DEVELOP; Przetwarzanie +MAIN_TAB_EXIF;Exif +MAIN_TAB_EXPORT; Szybki eksport +MAIN_TAB_EXPOSURE;Ekspozycja +MAIN_TAB_EXPOSURE_TOOLTIP;Skrót: Alt-e +MAIN_TAB_FILTER; Filtr +MAIN_TAB_IPTC;IPTC +MAIN_TAB_METADATA;Метадані +MAIN_TAB_METADATA_TOOLTIP;Skrót: Alt-m +MAIN_TAB_RAW;Raw +MAIN_TAB_RAW_TOOLTIP;Skrót: Alt-r +MAIN_TAB_TRANSFORM;Transformacje +MAIN_TAB_TRANSFORM_TOOLTIP;Skrót: Alt-t +MAIN_TOOLTIP_BACKCOLOR0;Kolor tła podglądu: Tematyczny\nSkrót: 9 +MAIN_TOOLTIP_BACKCOLOR1;Kolor tła podglądu: Czarny\nSkrót: 9 +MAIN_TOOLTIP_BACKCOLOR2;Kolor tła podglądu: Biały\nSkrót: 9 +MAIN_TOOLTIP_BEFOREAFTERLOCK;Zablokuj / Odblokuj widok Przed\n\nZablokuj: nie zmieniaj widoku Przed - \nPrzydatne w porównywaniu zablokowanego obrazu z obrazem na ktorym wykonano wiele zmian.\n\nOdblokuj: widok Przed będzie śledził widok Po o jeden krok do tyłu, pokazując obraz przed efektem aktualnie użytego narzędzia. +MAIN_TOOLTIP_HIDEHP;Pokaż/ukryj lewy panel (razem z historią).\nSkrót: l +MAIN_TOOLTIP_INDCLIPPEDH;Pokaż obcięte prześwietlenia.\nSkrót: < +MAIN_TOOLTIP_INDCLIPPEDS;Pokaż obcięte niedoświetlenia.\nSkrót: > +MAIN_TOOLTIP_PREVIEWB;Podgląd kanału Синійego.\nSkrót: b +MAIN_TOOLTIP_PREVIEWFOCUSMASK;Podgląd maski ostrości.\nSkrót: Shift-f\n\nDokładniejsze w przypadku zdjęc o płytkiej głębi ostrości, niskim pozimie szumów i o większym przybliżeniu. W przypadku zdjęć o wyższym poziomie szumów maska ostrości będzie dokładniejsza przy mniejszym zoomie (10-30%). +MAIN_TOOLTIP_PREVIEWG;Podgląd kanału zielonego.\nSkrót: g +MAIN_TOOLTIP_PREVIEWL;Podgląd kanału jasności.\nSkrót: v\n\n0.299*R + 0.587*G + 0.114*B +MAIN_TOOLTIP_PREVIEWR;Podgląd kanału czerwonego.\nSkrót: r +MAIN_TOOLTIP_QINFO;Informacje o zdjęciu.\nSkrót: i +MAIN_TOOLTIP_SHOWHIDELP1;Pokaż/Ukryj lewy panel.\nSkrót: l +MAIN_TOOLTIP_SHOWHIDERP1;Pokaż/Ukryj prawy panel.\nSkrót: Alt-l +MAIN_TOOLTIP_SHOWHIDETP1;Pokaż/Ukryj górny panel.\nSkrót: Shift-l +MAIN_TOOLTIP_THRESHOLD;Próg +MAIN_TOOLTIP_TOGGLE;Przełącz widok Przed/Po.\nSkrót: Shift-b +NAVIGATOR_B;B: +NAVIGATOR_G;G: +NAVIGATOR_H;H: +NAVIGATOR_LAB_A;a*: +NAVIGATOR_LAB_B;b*: +NAVIGATOR_LAB_L;L*: +NAVIGATOR_NA; -- +NAVIGATOR_R;R: +NAVIGATOR_S;S: +NAVIGATOR_V;V: +NAVIGATOR_XY_FULL;Szerokość: %1, Wysokość: %2 +NAVIGATOR_XY_NA;x: --, y: -- +PARTIALPASTE_BASICGROUP;Podstawowe ustawienia +PARTIALPASTE_CACORRECTION;Korekcja aberacji chr. +PARTIALPASTE_CHANNELMIXER;Mieszacz kanałów +PARTIALPASTE_CHANNELMIXERBW;Czarno-białe +PARTIALPASTE_COARSETRANS;Obrót dyskretny / odbicie +PARTIALPASTE_COLORAPP;CIECAM02 +PARTIALPASTE_COLORGROUP;Ustawienia związane z kolorem +PARTIALPASTE_COLORTONING;Koloryzacja +PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-wypełnianie +PARTIALPASTE_COMPOSITIONGROUP;Ustawienia kompozycji +PARTIALPASTE_CROP;Kadrowanie +PARTIALPASTE_DARKFRAMEAUTOSELECT;Auto-wybór czarnej klatki +PARTIALPASTE_DARKFRAMEFILE;Wybór czarnej klatki +PARTIALPASTE_DEFRINGE;Usuwanie widma +PARTIALPASTE_DETAILGROUP;Ustawienia szczegółowe +PARTIALPASTE_DIALOGLABEL;Częściowe wklejenie profilu przetwarzania +PARTIALPASTE_DIRPYRDENOISE;Redukcja szumu +PARTIALPASTE_DIRPYREQUALIZER;Контраст wg. poziomu detali +PARTIALPASTE_DISTORTION;Korekcja zniekształcenia +PARTIALPASTE_EPD;Tone Mapping +PARTIALPASTE_EVERYTHING;Wszystko +PARTIALPASTE_EXIFCHANGES;Exif +PARTIALPASTE_EXPOSURE;Ekspozycja +PARTIALPASTE_FILMSIMULATION;Symulacja kliszy +PARTIALPASTE_FLATFIELDAUTOSELECT;Puste pole - Auto-wybór +PARTIALPASTE_FLATFIELDBLURRADIUS;Puste pole - Promień +PARTIALPASTE_FLATFIELDBLURTYPE;Puste pole - Typ +PARTIALPASTE_FLATFIELDCLIPCONTROL;Puste pole - Zabezp. przed obcinaniem +PARTIALPASTE_FLATFIELDFILE;Puste pole - Wybór +PARTIALPASTE_GRADIENT;Filtr połówkowy +PARTIALPASTE_HSVEQUALIZER;Ekwalizator HSV +PARTIALPASTE_ICMSETTINGS;Ustawienia ICM +PARTIALPASTE_IMPULSEDENOISE;Redukcja szumów impulsowych +PARTIALPASTE_IPTCINFO;IPTC +PARTIALPASTE_LABCURVE;Regulacje L*a*b* +PARTIALPASTE_LENSGROUP;Ustawienia związane z obiektywem +PARTIALPASTE_LENSPROFILE;Profil korekcji obiektywu LCP +PARTIALPASTE_METAGROUP;Метадані +PARTIALPASTE_PCVIGNETTE;Віньєтування +PARTIALPASTE_PERSPECTIVE;Perspektywa +PARTIALPASTE_PREPROCESS_DEADPIXFILT;Filtr martwych pikseli +PARTIALPASTE_PREPROCESS_GREENEQUIL;Wyrównanie zieleni +PARTIALPASTE_PREPROCESS_HOTPIXFILT;Filtr gorących pikseli +PARTIALPASTE_PREPROCESS_LINEDENOISE;Redukcja szumów liniowych +PARTIALPASTE_RAWCACORR_AUTO;Autokorekcja aberracji chr. +PARTIALPASTE_RAWEXPOS_BLACK;Poziomy czerni +PARTIALPASTE_RAWEXPOS_LINEAR;Korekcja punktu bieli +PARTIALPASTE_RAWEXPOS_PRESER;Zachowanie prześwietleń +PARTIALPASTE_RAWGROUP;Ustawienia raw +PARTIALPASTE_RAW_DCBENHANCE;Zastosuj poprawę DCB +PARTIALPASTE_RAW_DCBITERATIONS;Liczba powtórzeń DCB +PARTIALPASTE_RAW_DMETHOD;Алгоритм demozaikowania +PARTIALPASTE_RAW_FALSECOLOR;Tłumienie fałszowania koloru +PARTIALPASTE_RAW_LMMSEITERATIONS;Kroki poprawy LMMSE +PARTIALPASTE_RESIZE;Zmiana rozmiaru +PARTIALPASTE_RGBCURVES;Krzywe RGB +PARTIALPASTE_ROTATION;Obrót +PARTIALPASTE_SHADOWSHIGHLIGHTS;Cienie/Podświetlenia +PARTIALPASTE_SHARPENEDGE;Krawędzie +PARTIALPASTE_SHARPENING;Wyostrzanie +PARTIALPASTE_SHARPENMICRO;MikroКонтраст +PARTIALPASTE_VIBRANCE;Світність +PARTIALPASTE_VIGNETTING;Korekcja winietowania +PARTIALPASTE_WHITEBALANCE;Balans bieli +PREFERENCES_ADD;Dodaj +PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia +PREFERENCES_AUTOMONPROFILE;Automatycznie użyj systemowego profilu monitora +PREFERENCES_BATCH_PROCESSING;Przetwarzanie wsadowe +PREFERENCES_BEHADDALL;'Dodaj' wszystkie +PREFERENCES_BEHADDALLHINT;Ustaw wszystkie narzędzia w tryb Dodaj.\nZmiany parametrów w panelu edycji zbiorczej zostaną traktowane jako różnicę do poprzednich wartości. +PREFERENCES_BEHAVIOR;Zachowanie +PREFERENCES_BEHSETALL;'Ustaw' wszystkie +PREFERENCES_BEHSETALLHINT;Ustaw wszystkie narzędzia w tryb Ustaw.\nZmiany parametrów w panelu edycji zbiorczej zostaną traktowane jako absolutne, nie biorąc pod uwagę poprzednich wartości. +PREFERENCES_BLACKBODY;Wolfram +PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej +PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej +PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury +PREFERENCES_CIEART;CIECAM02 optymalizacja +PREFERENCES_CIEART_LABEL;Użyj precyzję zmiennoprzecinkową zamiast podwójną. +PREFERENCES_CIEART_TOOLTIP;Gdy umożliwione, kalkulacje CIECAM02 są wykonywane w notacji zmiennoprzecinkowej o pojedyńczej precyzji zamiast podwójnej. Skraca to czas egzekucji kosztem nieistotnej zmiany w jakości. +PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni +PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT +PREFERENCES_CUSTPROFBUILD;Zewnętrzny kreator profilów przetwarzania +PREFERENCES_CUSTPROFBUILDHINT;Plik wykonywalny (lub skrypt) uruchamiany kiedy trzeba wygenerować profil przetwarzania dla zdjęcia.\n\nScieżka pliku nośnego (w stylu *.ini czyli sekcje i klucze/parametry) występuje jako parametr wiersza poleceń. Plik ten zawiera przeróżne parametry oraz dane Exif dzięki którym odpowiedni program bądź skrypt może wygenerować plik PP3 według reguł.\n\nUWAGA: Twoją odpowiedzialnością jest prawidłowe użycie cudzysłowiów w przypadku ścieżek zawierających spacje i znaki specjalne. +PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy +PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nazwa +PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID +PREFERENCES_CUSTPROFBUILDPATH;Ścieżka pliku wykonywalnego +PREFERENCES_CUTOVERLAYBRUSH;Kolor/przezroczystość maski kadrowania +PREFERENCES_D50;5000K +PREFERENCES_D55;5500K +PREFERENCES_D60;6000K +PREFERENCES_D65;6500K +PREFERENCES_DARKFRAMEFOUND;Znaleziono +PREFERENCES_DARKFRAMESHOTS;zdjęć(ia) +PREFERENCES_DARKFRAMETEMPLATES;szablonów(ny) +PREFERENCES_DATEFORMAT;Format daty +PREFERENCES_DATEFORMATHINT;Dozwolone są następujące kody formatujące:\n%y - rok\n%m - miesiąc\n%d - dzień\n\nNa przykład według standardu ISO 8601 format daty wygląda następująco:\n%y-%m-%d +PREFERENCES_DIRDARKFRAMES;Katalog z czarnymi klatkami +PREFERENCES_DIRHOME;Katalog domowy +PREFERENCES_DIRLAST;Ostatnio odwiedzony katalog +PREFERENCES_DIROTHER;Inny +PREFERENCES_DIRSELECTDLG;Wybierz katalog z obrazami po uruchomieniu... +PREFERENCES_DIRSOFTWARE;Katalog instalacyjny +PREFERENCES_EDITORLAYOUT;Układ edytora +PREFERENCES_EXTERNALEDITOR;Zewnętrzny edytor +PREFERENCES_FBROWSEROPTS;Opcje przeglądarki plików +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Pojedynczy wiersz paska narzędzi (odznaczyć dla niskich rozdzielczości) +PREFERENCES_FILEFORMAT;Format pliku +PREFERENCES_FLATFIELDFOUND;Znaleziono +PREFERENCES_FLATFIELDSDIR;Katalog z pustymi polami +PREFERENCES_FLATFIELDSHOTS;kadry +PREFERENCES_FLATFIELDTEMPLATES;szablony +PREFERENCES_FLUOF2;Fluorescent F2 +PREFERENCES_FLUOF7;Fluorescent F7 +PREFERENCES_FLUOF11;Fluorescent F11 +PREFERENCES_FORIMAGE;Dla zdjęć innych niż raw +PREFERENCES_FORRAW;Dla zdjęć raw +PREFERENCES_GIMPPATH;Katalog, w którym zainstalowany jest GIMP +PREFERENCES_GREY;Світність Yb urządzenia wyjściowego (%) +PREFERENCES_GREY05;Yb=05 CIE L#30 +PREFERENCES_GREY10;Yb=10 CIE L#40 +PREFERENCES_GREY15;Yb=15 CIE L#45 +PREFERENCES_GREY18;Yb=18 CIE L#50 +PREFERENCES_GREY23;Yb=23 CIE L#55 +PREFERENCES_GREY30;Yb=30 CIE L#60 +PREFERENCES_GREY40;Yb=40 CIE L#70 +PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram w lewym panelu +PREFERENCES_HISTOGRAMWORKING;Zastosuj profil roboczy do obliczenia głównego histogramu i Nawigatora +PREFERENCES_HISTOGRAM_TOOLTIP;Jeśli opcja jest włączona profil roboczy jest użyty do obliczenia głównego histogramu oraz panelu Nawigatora, inaczej profil wyjściowy z korektą gamma zostanie użyty. +PREFERENCES_HLTHRESHOLD;Próg dla prześwietleń +PREFERENCES_ICCDIR;Katalog z profilami koloru ICC +PREFERENCES_IMPROCPARAMS;Domyślne parametry przetwarzania obrazu +PREFERENCES_INTENT_ABSOLUTE;Absolutnie kolorymetryczny +PREFERENCES_INTENT_PERCEPTUAL;Percepcyjny +PREFERENCES_INTENT_RELATIVE;Względnie kolorymetryczny +PREFERENCES_INTENT_SATURATION;Nasyceniowy +PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Pokaż osadzoną miniaturę JPEG jeśli plik raw jest nieedytowany +PREFERENCES_LANGAUTODETECT;Użyj języka systemowego +PREFERENCES_MENUGROUPEXTPROGS;Grupuj "Otwórz za pomocą" +PREFERENCES_MENUGROUPFILEOPERATIONS;Grupuj operacje plików +PREFERENCES_MENUGROUPLABEL;Grupuj operacje etykiet +PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupuj operacje profili przetwarzania +PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny +PREFERENCES_MENUOPTIONS;Opcje menu +PREFERENCES_METADATA;Метадані +PREFERENCES_MULTITAB;Tryb wielu zakładek +PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) +PREFERENCES_NAVGUIDEBRUSH;Kolor ramki Nawigatora +PREFERENCES_OUTDIR;Katalog wyjściowy +PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu +PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjęcia w wybranym katalogu +PREFERENCES_OUTDIRTEMPLATE;Użyj schemat +PREFERENCES_OUTDIRTEMPLATEHINT;Dozwolone są następujące kody formatujące:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nKody formatujące odnoszą się do różnych elementów ścieżki zdjęcia, atrybutów zdjęcia oraz do arbitralnego ciągu numerycznego operacji wsadowej.\n\nPrzykładowo, jeśli zdjęcie obrabiane ma następującą ścieżkę:\n/home/andrzej/zdjecia/2010-10-31/dsc0042.nef\nznaczenie kodów formatujących jest następujące:\n%d4 = home\n%d3 = andrzej\n%d2 = zdjecia\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/andrzej/zdjecia/\n%p3 = /home/andrzej/\n%p4 = /home/\n\n%r zostanie zastąpione oceną zdjęcia. Jeśli zdjęcie nie posiada oceny, %r zostanie zastąpione liczbą '0'. Jeśli zdjęcie leży w śmietniku, %r zostanie zastąpione znakiem 'x'.\n\n%s1, %s2, etc. zostanie zastąpione ciągniem numerycznym dopełnionym od jednej do dziewięciu cyfr. Ciąg ten zostanie rozpocznięty od "1" za każdym razem gdy kolejka przetwarzania zostanie uruchomiona, i liczba jest zwiększona o "1" dla każdego zapisanego obrazu.\n\nJeśli chcesz zapisać obraz wyjściowy obok obrazu wejściowego, napisz:\n%p1/%f\n\nJeśli chcesz zapisać obraz wyjściowy w folderze o nazwie "wywolane" znajdującego się w katalogu zawierającym otwarty obraz, napisz:\n%p1/wywolane/%f\n\nJeśli chcesz zapisać obraz wyjściowy w folderze o nazwie "/home/andrzej/zdjecia/wywolane/2010-10-31", napisz:\n%p2/wywolane/%d1/%f +PREFERENCES_OVERLAY_FILENAMES;Nakładaj nazwy pliku na miniatury +PREFERENCES_OVERWRITEOUTPUTFILE;Nadpisuj istniejące pliki +PREFERENCES_PANFACTORLABEL;Współczynnik +PREFERENCES_PARSEDEXT;Przetwarzane rozszerzenia +PREFERENCES_PARSEDEXTADD;Dodaj rozszerzenie +PREFERENCES_PARSEDEXTADDHINT;Proszę wprowadzić rozszerzenie i zatwierdzić przyciskiem, by dodać do listy +PREFERENCES_PARSEDEXTDELHINT;Skasuje wybrane rozszerzenie z listy +PREFERENCES_PROFILEHANDLING;Obsługa profili +PREFERENCES_PROFILELOADPR;Priorytet wczytywania profilu +PREFERENCES_PROFILEPRCACHE;Profil w pamięci podręcznej +PREFERENCES_PROFILEPRFILE;Profil przy pliku wejściowym +PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamięci podręcznej +PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejściowego +PREFERENCES_PROPERTY;Własność +PREFERENCES_PSPATH;Katalog w którym zainstalowany jest Adobe Photoshop +PREFERENCES_SELECTFONT;Wybierz czcionkę +PREFERENCES_SELECTLANG;Wybierz język +PREFERENCES_SELECTTHEME;Wybierz temat +PREFERENCES_SET;Ustaw +PREFERENCES_SHOWBASICEXIF;Pokaż podstawowe dane Exif +PREFERENCES_SHOWDATETIME;Pokaż datę i czas +PREFERENCES_SHOWEXPOSURECOMPENSATION;Pokaż korektę ekspozycji +PREFERENCES_SHTHRESHOLD;Próg dla niedoświetleń +PREFERENCES_SINGLETAB;Tryb pojedynczej zakładki +PREFERENCES_SINGLETABVERTAB;Tryb pojedynczej zakładki, pionowy układ +PREFERENCES_SND_BATCHQUEUEDONE;Zakończono przetwarzanie wsadowe +PREFERENCES_SND_HELP;Należy wprowadzić ścieżkę do pliku, bądź pozostawić niewypełnione (brak dźwięków).\nW systemie Windows można stosować "SystemDefault", "SystemAsterisk" itp. dla dźwięków systemowych.\nW systemie Linux można stosować "complete", "window-attention" etc. dla dzwięków systemowych. +PREFERENCES_SND_LNGEDITPROCDONE;Praca edytora wykonana +PREFERENCES_SND_THRESHOLDSECS;po sekundach +PREFERENCES_STARTUPIMDIR;Katalog startowy +PREFERENCES_TAB_BROWSER;Przeglądarka plików +PREFERENCES_TAB_COLORMGR;Zarządzanie kolorami +PREFERENCES_TAB_GENERAL;Ogólne +PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu +PREFERENCES_TAB_SOUND;Dźwięki +PREFERENCES_TP_LABEL;Panel narzędzi: +PREFERENCES_TP_VSCROLLBAR;Ukry pionowy pasek przesuwania +PREFERENCES_USEBUNDLEDPROFILES;Użyj załączone profile przetwarzania +PREFERENCES_VIEW;Balans bieli urządzenia wyjściowego (monitora, TV, projektora, widowni, etc.) +PREFERENCES_WORKFLOW;Tok pracy +PROFILEPANEL_COPYPPASTE;Parametry do skopiowania +PROFILEPANEL_GLOBALPROFILES;Załączone profile przetwarzania +PROFILEPANEL_LABEL;Profil przetwarzania +PROFILEPANEL_LOADDLGLABEL;Wczytaj profil przetwarzania końcowego... +PROFILEPANEL_LOADPPASTE;Parametry do załadowania +PROFILEPANEL_MODE_TIP;Tryb wypełnienia parametrów przetwarzania.\n\nWduszone: częściowe profile zostaną przetworzone w profile pełne; brakujące wartości zostana wypełnione domyślnymi, zakodowanymi w silniku RawTherapee.\n\nWyłączone: profile zostaną zastosowane takie, jakie są, zmieniając tylko te wartości, które zawierają. +PROFILEPANEL_MYPROFILES;Moje profile przetwarzania +PROFILEPANEL_PASTEPPASTE;Parametry do wklejenia +PROFILEPANEL_PCUSTOM;Własny +PROFILEPANEL_PFILE;Z pliku +PROFILEPANEL_PINTERNAL;Neutralny +PROFILEPANEL_PLASTSAVED;Ostatnio zapisany +PROFILEPANEL_SAVEDLGLABEL;Zapisz profil przetwarzania... +PROFILEPANEL_SAVEPPASTE;Parametry do zapisania +PROFILEPANEL_TOOLTIPCOPY;Skopiuj aktualny profil do schowka +PROFILEPANEL_TOOLTIPLOAD;Ładuj profil z pliku.\nCtrl+klik aby wybrać parametry do ładowania. +PROFILEPANEL_TOOLTIPPASTE;Wklej profil ze schowka.\nCtrl+klik aby wybrać parametry do wklejenia. +PROFILEPANEL_TOOLTIPSAVE;Zapisz aktualny profil.\nCtrl+klik aby wybrać parametry do zapisania. +PROGRESSBAR_LOADING;Wczytywanie obrazu... +PROGRESSBAR_LOADINGTHUMBS;Wczytywanie miniatur... +PROGRESSBAR_LOADJPEG;Ładowanie pliku JPEG... +PROGRESSBAR_LOADPNG;Ładowanie pliku PNG... +PROGRESSBAR_LOADTIFF;Ładowanie pliku TIFF... +PROGRESSBAR_NOIMAGES;Nie znaleziono żadnych obrazów +PROGRESSBAR_PROCESSING;Przetwarzanie obrazu... +PROGRESSBAR_PROCESSING_PROFILESAVED;Zapisano profil przetwarzania +PROGRESSBAR_READY;Gotowe +PROGRESSBAR_SAVEJPEG;Zapisywanie pliku JPEG... +PROGRESSBAR_SAVEPNG;Zapisywanie pliku PNG... +PROGRESSBAR_SAVETIFF;Zapisywanie pliku TIFF... +PROGRESSBAR_SNAPSHOT_ADDED;Dodano migawkę +PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmieniony w przeglądarce +QINFO_ISO;ISO +QINFO_NOEXIF;Dane Exif niedostępne. +SAVEDLG_AUTOSUFFIX;Automatycznie dodaj przyrostek, jeżeli plik już istnieje +SAVEDLG_FILEFORMAT;Format pliku +SAVEDLG_FORCEFORMATOPTS;Wymuś opcje zapisu +SAVEDLG_JPEGQUAL;Jakość JPEG +SAVEDLG_PNGCOMPR;Kompresja PNG +SAVEDLG_PUTTOQUEUE;Umieść w kolejce przetwarzania +SAVEDLG_PUTTOQUEUEHEAD;Umieść na początku kolejki przetwarzania +SAVEDLG_PUTTOQUEUETAIL;Umieść na końcu kolejki przetwarzania +SAVEDLG_SAVEIMMEDIATELY;Zapisz natychmiast +SAVEDLG_SAVESPP;Zapisz parametry przetwarzania wraz z obrazem +SAVEDLG_SUBSAMP;Subsampling +SAVEDLG_SUBSAMP_1;Najlepsza kompresja +SAVEDLG_SUBSAMP_2;Pomiędzy +SAVEDLG_SUBSAMP_3;Najlepsza jakość +SAVEDLG_TIFFUNCOMPRESSED;Nieskompresowany TIFF +SAVEDLG_WARNFILENAME;Plik zostanie nazwany +SHCSELECTOR_TOOLTIP;Kliknij prawym przyciskiem myszki aby zresetować poycję trzech suwaków. +THRESHOLDSELECTOR_B;Dolny +THRESHOLDSELECTOR_BL;Dolny lewy +THRESHOLDSELECTOR_BR;Dolny prawy +THRESHOLDSELECTOR_HINT;Użyj Shift aby przesuwać poszczególne punkty kontrolne. +THRESHOLDSELECTOR_T;Top +THRESHOLDSELECTOR_TL;Górny lewy +THRESHOLDSELECTOR_TR;Górny prawy +TOOLBAR_TOOLTIP_CROP;Kadruj.\nSkrót: c\nMożna przesuwać obszar kadrowania za pomocą Shift-przeciągnięcia myszki +TOOLBAR_TOOLTIP_HAND;Przesuń.\nSkrót: h +TOOLBAR_TOOLTIP_STRAIGHTEN;Wyprostuj / obróć.\nSkrót: s\n\nWyznacz pionową lub poziomą poprzez narysowanie linii prowadnicy na podglądzie. Kąt obrotu zostanie pokazany obok linii prowadnicy. Punktem obrotu jest geometryczny środek obrazu. +TOOLBAR_TOOLTIP_WB;Wskaż balans bieli.\nSkrót: w +TP_BWMIX_ALGO;Алгоритм PZCRM +TP_BWMIX_ALGO_LI;Liniowy +TP_BWMIX_ALGO_SP;Efekty specjalne +TP_BWMIX_ALGO_TOOLTIP;Liniowy: mieszanie kanałów liniowo.\nEfekty specjalne: kanały zostaną mieszane nieliniowo. +TP_BWMIX_AUTOCH;Auto +TP_BWMIX_CC_ENABLED;Dopasuj barwy dopełniające +TP_BWMIX_CC_TOOLTIP;Włącz aby umożliwić automatyczne dopasowanie barw dopełniających w trybie CPŻZCNPM. +TP_BWMIX_CHANNEL;Ekwalizator люмінації +TP_BWMIX_CURVEEDITOR1;Крива 'Przed' +TP_BWMIX_CURVEEDITOR2;Крива 'Po' +TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Крива po konwersji obrazu na czarnobiały. +TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Крива przed konwersją obrazu na czarnobiały.\nWspółczynniki koloru mogą mieć wpływ. +TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Світність według odcieni (hue) L=f(H).\nNależy zwrócić uwagę na ekstremalne ustawienia ponieważ mogą pojawić się zniekształcenia sygnału w obrazie. +TP_BWMIX_FILTER;Filtr barwny +TP_BWMIX_FILTER_BLUE;Синій +TP_BWMIX_FILTER_BLUEGREEN;Синій-Зелений +TP_BWMIX_FILTER_GREEN;Зелений +TP_BWMIX_FILTER_GREENYELLOW;Зелений-Жовтий +TP_BWMIX_FILTER_NONE;Brak +TP_BWMIX_FILTER_PURPLE;Пурпуровий +TP_BWMIX_FILTER_RED;Червоний +TP_BWMIX_FILTER_REDYELLOW;Червоний-Жовтий +TP_BWMIX_FILTER_TOOLTIP;Filtr barwny symuluje działanie prawdziwego filtru barwnego usytuowanego przed obiektywem. Filtry barwne obniżają transmitancję specyficznych kolorów a zatem mają wpływ na ich jasność, np. filtr Червоний przyciemnia Синійe niebo. +TP_BWMIX_FILTER_YELLOW;Жовтий +TP_BWMIX_GAMMA;Корекція гами +TP_BWMIX_GAM_TOOLTIP;Корекція для каналів RGB. +TP_BWMIX_LABEL;Чорно-білий +TP_BWMIX_MET;Метод +TP_BWMIX_MET_CHANMIX;Міксер каналів +TP_BWMIX_MET_DESAT;Знебарвлення +TP_BWMIX_MET_LUMEQUAL;Ekwalizator люмінації +TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% +TP_BWMIX_RGBLABEL_HINT;Ostateczne wartości RGB które uwzględniają wszystkie opcje mieszacza.\n"Total" wyświetla sumę wartości RGB:\n- zawsze 100% w trybie relatywnym,\n- ponad (jaśniej) lub poniżej (ciemniej) 100% w trybie absolutnym. +TP_BWMIX_RGB_TOOLTIP;Miesza kanały RGB. Kieruj się gotowymi ustawieniami.\nNależy zwrócić uwagę na ujemne wartości ponieważ mogą pojawić się zniekształcenia sygnału w obrazie lub działać w sposób nieprzewidywalny. +TP_BWMIX_SETTING;Gotowe ustawienia +TP_BWMIX_SETTING_TOOLTIP;Różne gotowe ustawienia (klisza, krajobraz, etc.) oraz ręcznie ustawienia mieszacza kanałów. +TP_BWMIX_SET_HIGHCONTAST;Високий контраст +TP_BWMIX_SET_HIGHSENSIT;Висока чутливість +TP_BWMIX_SET_HYPERPANCHRO;Гіпер панхроматичний +TP_BWMIX_SET_INFRARED;Інфрачервоний +TP_BWMIX_SET_LANDSCAPE;Горизонтально +TP_BWMIX_SET_LOWSENSIT;Низька чутливість +TP_BWMIX_SET_LUMINANCE;Світність +TP_BWMIX_SET_NORMCONTAST;Нормальний контраст +TP_BWMIX_SET_ORTHOCHRO;Ортохроматично +TP_BWMIX_SET_PANCHRO;Панхроматично +TP_BWMIX_SET_PORTRAIT;Вертикально +TP_BWMIX_SET_RGBABS;Абсолютний RGB +TP_BWMIX_SET_RGBREL;Відносний RGB +TP_BWMIX_SET_ROYGCBPMABS;Абсолютний ROYGCBPMABS +TP_BWMIX_SET_ROYGCBPMREL;Відносний ROYGCBPMABS +TP_BWMIX_TCMODE_FILMLIKE;B&W Klisza +TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Mieszanie Nasycenia i Mocy Światła Białego +TP_BWMIX_TCMODE_STANDARD;B&W Standardowa +TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Ważona Standardowa +TP_BWMIX_VAL;L +TP_CACORRECTION_BLUE;Синій +TP_CACORRECTION_LABEL;Korekcja aberracji chromatycznej +TP_CACORRECTION_RED;Червоний +TP_CHMIXER_BLUE;Синій +TP_CHMIXER_GREEN;Зелений +TP_CHMIXER_LABEL;Mieszacz kanałów +TP_CHMIXER_RED;Червоний +TP_CHROMATABERR_LABEL;Aberracja chromatyczna +TP_COARSETRAF_TOOLTIP_HFLIP;Odbij w poziomie +TP_COARSETRAF_TOOLTIP_ROTLEFT;Obróć w lewo.\n\nSkróty:\n[ - Tryb wielu zakładek,\nAlt-[ - Tryb jednej zakładki. +TP_COARSETRAF_TOOLTIP_ROTRIGHT;Obróć w prawo.\n\nSkróty:\n] - Tryb wielu zakładek,\nAlt-] - Tryb jednej zakładki. +TP_COARSETRAF_TOOLTIP_VFLIP;Odbij w pionie +TP_COLORAPP_ADAPTSCENE;люмінації sceny +TP_COLORAPP_ADAPTSCENE_TOOLTIP;Bezwzględna Світність sceny (cd/m²).\n1)Obliczona za pomocą Exif:\nCzas naświetlania - ISO - Przysłona - Korekcja ekspozycji EV w aparacie.\n2)Obliczona również na podstawie punktu bieli raw oraz korekty ekspozycji w RawTherapee +TP_COLORAPP_ADAPTVIEWING;люмінації widowni (cd/m²) +TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Bezwzględna Світність widowni\n(zazwyczaj 16cd/m²). +TP_COLORAPP_ADAP_AUTO_TOOLTIP;Jesli zaznaczone (polecamy), RawTherapee obliczy optymalną wartość na podstawie Exif.\nAby ustawic wartość ręcznie, należy wpierw odznaczyc pudło. +TP_COLORAPP_ALGO;Алгоритм +TP_COLORAPP_ALGO_ALL;Wszystkie +TP_COLORAPP_ALGO_JC;Światłość + Chroma (JC) +TP_COLORAPP_ALGO_JS;Światłość + Nasycenie (JS) +TP_COLORAPP_ALGO_QM;Jasność + Barwistość (QM) +TP_COLORAPP_ALGO_TOOLTIP;Umożliwia wybór wszystkich parametrów lub ich podzespół. +TP_COLORAPP_BADPIXSL;Filtr pikseli gorących/uszkodzonych +TP_COLORAPP_BADPIXSL_TOOLTIP;Usuwanie gorących/uszkodzonych (świecących) pikseli.\n0 = Wyłączone\n1 = Metodą Mediana\n2 = Metodą Gaussa.\nMożna również dostroić zdjęcie tak, aby unikać bardzo ciemnych miejsc.\n\nTe anomalie wynikają z limitacji CIECAM02. +TP_COLORAPP_BRIGHT;Jasność (Q) +TP_COLORAPP_BRIGHT_TOOLTIP;Jasność w CIECAM02 bierze pod uwagę luminancję bieli i różni się od jasności L*a*b* oraz RGB. +TP_COLORAPP_CHROMA;Chroma (C) +TP_COLORAPP_CHROMA_M;Barwistość (M) +TP_COLORAPP_CHROMA_M_TOOLTIP;Barwistość w CIECAM02 różni się od barwistości L*a*b* oraz RGB. +TP_COLORAPP_CHROMA_S;Nasycenie (S) +TP_COLORAPP_CHROMA_S_TOOLTIP;Nasycenie w CIECAM02 różni się od nasycenia L*a*b* oraz RGB. +TP_COLORAPP_CHROMA_TOOLTIP;Chroma w CIECAM02 różni się od chromy L*a*b* oraz RGB. +TP_COLORAPP_CIECAT_DEGREE;Adaptacja CAT02 +TP_COLORAPP_CONTRAST;Контраст (J) +TP_COLORAPP_CONTRAST_Q;Контраст (Q) +TP_COLORAPP_CONTRAST_Q_TOOLTIP;Контраст w CIECAM02 dla suwaka Q różni się od Контрастu L*a*b* oraz RGB. +TP_COLORAPP_CONTRAST_TOOLTIP;Контраст w CIECAM02 dla suwaka J różni się od Контрастu L*a*b* oraz RGB. +TP_COLORAPP_CURVEEDITOR1;Крива тональна 1 +TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Pokazuje histogram L* (L*a*b*) przed CIECAM02.\nJeśli opcja "Pokaż histogramy wyjściowe CIECAM02 za krzywymi" jest włączona, pokazuje histogram J i Q po CIECAM02.\n\nJ i Q nie są pokazywane w głównym histogramie.\n\nEfekt końcowy jest przedstawiony w głównym histogramie. +TP_COLORAPP_CURVEEDITOR2;Крива тональна 2 +TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Tak samo działa jak Крива тональна 1. +TP_COLORAPP_CURVEEDITOR3;Крива koloru +TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ustawienie chromy, nasycenia bądź barwistości.\n\nPokazuje histogram chromatyczności (L*a*b*) przed CIECAM02.\nJeśli opcja "Pokaż histogramy wyjściowe CIECAM02 za krzywymi" jest włączona, pokazuje histogram C, s bądź M po CIECAM02.\n\nC, s oraz M nie są pokazywane w głównym histogramie.\nEfekt końcowy jest przedstawiony w głównym histogramie. +TP_COLORAPP_DATACIE;Pokaż histogramy wyjściowe CIECAM02 za krzywymi +TP_COLORAPP_DATACIE_TOOLTIP;Kiedy opcja jest włączona, histogramy za krzywymi CIECAM02 pokazują przybliżone wartości/zakresy J lub Q, oraz C, s lub M po korekcjach CIECAM02.\nTen wybór nie ma wpływu na główny histogram.\n\nKiedy opcja jest wyłączona, histogramy za krzywymi CIECAM02 pokazują wartości L*a*b* przed korekcjami CIECAM02. +TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Jeśli opcja jest zaznaczona (zalecane), RawTherapee kalkuluje wartość optymalną, która jest potem użyta przez CAT02 oraz przez całość CIECAM02.\nAby ustawić wartość ręcznie, odznacz wpierw opcję (wartości powyżej 65 zalecane). +TP_COLORAPP_DEGREE_TOOLTIP;Siła CIE Chromatic Adaptation Transform 2002 +TP_COLORAPP_GAMUT;Kontrola gamma (L*a*b*). +TP_COLORAPP_GAMUT_TOOLTIP;Włącz kontrolę gamma w trybie L*a*b*. +TP_COLORAPP_HUE;Відтінок (hue, h) +TP_COLORAPP_HUE_TOOLTIP;Відтінок (hue, h) - kąt pomiędzy 0° a 360°. +TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 +TP_COLORAPP_LABEL_CAM02;Ustawienia Obrazu +TP_COLORAPP_LABEL_SCENE;Ustawienia Sceny +TP_COLORAPP_LABEL_VIEWING;Własności Widowni +TP_COLORAPP_LIGHT;Światłość (J) +TP_COLORAPP_LIGHT_TOOLTIP;Światłość w CIECAM02 różni się od światłości CIELab oraz RGB +TP_COLORAPP_MODEL;Model PB +TP_COLORAPP_MODEL_TOOLTIP;Model punktu bieli.\n\nBB [RT] + [wyjściowy]:\nBalans bieli RawTherapee jest użyty dla sceny, CIECAM02 jest ustawione na D50, i balans bieli urządzenia wyjściowego ustawiony jest w Ustawieniach > Zarządzanie Kolorami\n\nBB [RT+CAT02] + [wyjściowe]:\nUstawienia balansu bieli RawTherapee są używane przez CAT02, i balans bieli urządzenia wyjściowego jest ustawione w Ustawieniach > Zarządzanie Kolorami. +TP_COLORAPP_RSTPRO;Ochrona odcieni skóry i czerwieni +TP_COLORAPP_RSTPRO_TOOLTIP;Ochrona odcieni skóry i czerwieni (suwaki i krzywe) +TP_COLORAPP_SHARPCIE;- +TP_COLORAPP_SHARPCIE_TOOLTIP;- +TP_COLORAPP_SURROUND;Otoczenie +TP_COLORAPP_SURROUND_AVER;Średnie +TP_COLORAPP_SURROUND_DARK;Ciemne +TP_COLORAPP_SURROUND_DIM;Przyćmione +TP_COLORAPP_SURROUND_EXDARK;Bardzo Ciemne (Cut-sheet) +TP_COLORAPP_SURROUND_TOOLTIP;Zmienia barwy i kolory aby wziąć pod uwagę własności widowni urządzenia wyjściowego.\n\nŚrednie:\nŚrednie światło otoczenia (standardowe). Obraz się nie zmieni.\n\nPrzyćmione:\nPrzyćmione otoczenie (TV). Obraz stanie się troszkę ciemniejszy.\n\nCiemne:\nCiemne otoczenie (projektor). Obraz stanie się jeszczę ciemniejszy.\n\nBardzo Ciemne:\nBardzo ciemne otoczenie (cut-sheet). Obraz stanie się bardzo ciemny. +TP_COLORAPP_SURSOURCE;Ciemne otoczenie +TP_COLORAPP_SURSOURCE_TOOLTIP;Można użyć kiedy np. obraz wejściowy ma ciemne krawędzie. +TP_COLORAPP_TCMODE_BRIGHTNESS;Jasność +TP_COLORAPP_TCMODE_CHROMA;Chroma +TP_COLORAPP_TCMODE_COLORF;Barwistość +TP_COLORAPP_TCMODE_LABEL1;Tryb krzywej 1 +TP_COLORAPP_TCMODE_LABEL2;Tryb krzywej 2 +TP_COLORAPP_TCMODE_LABEL3;Tryb krzywej chromy +TP_COLORAPP_TCMODE_LIGHTNESS;Światłość +TP_COLORAPP_TCMODE_SATUR;Nasycenie +TP_COLORAPP_TONECIE;Tone mapping za pomocą jasności CIECAM02 (Q) +TP_COLORAPP_TONECIE_TOOLTIP;Jeśli ta opcja jest wyłączona, tone mapping odbywa się w przestrzeni kolorów L*a*b*, zaś jeśli jest włączona, w przestrzeni kolorów CIECAM02.\nNarzędzie Tone Mapping musi być włączone aby to utawienie działało. +TP_COLORAPP_WBCAM;BB [RT+CAT02] + [wyjściowy] +TP_COLORAPP_WBRT;BB [RT] + [wyjściowy] +TP_COLORTONING_AB;o C/L +TP_COLORTONING_AUTOSAT;Automatyczna +TP_COLORTONING_BALANCE;Balans +TP_COLORTONING_BY;o C/L +TP_COLORTONING_CHROMAC;Przezroczystość +TP_COLORTONING_COLOR;Kolor +TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Przezroczystość chromy według люмінації oC=f(L) +TP_COLORTONING_HIGHLIGHT;Podświetlenia +TP_COLORTONING_HUE;Відтінок (hue) +TP_COLORTONING_LAB;Mieszanie L*a*b* +TP_COLORTONING_LABEL;Koloryzacja +TP_COLORTONING_LUMA;Світність +TP_COLORTONING_LUMAMODE;Zachowaj luminancję +TP_COLORTONING_LUMAMODE_TOOLTIP;Світність zostanie zachowana przy zmianie kolorów. +TP_COLORTONING_METHOD;Metoda +TP_COLORTONING_METHOD_TOOLTIP;"Mieszanie L*a*b*", "Suwaki RGB" oraz "Krzywe RGB" stosują interpolację do mieszania kolorów.\n"Balansowanie kolorów (cienie, półcienie, podświetlenia)" oraz "Nasycenie - Dwa Kolory" stosują kolory bezpośrednio.\n\nNarzędzie "Czarno-białe" można używac jednocześnie z narzędziem "Koloryzacji", co umożliwi tonowanie zdjęcia. +TP_COLORTONING_MIDTONES;Półcienie +TP_COLORTONING_NEUTRAL;Zresetuj suwaki +TP_COLORTONING_NEUTRAL_TIP;Zresetuj wszystkie wartości (cienie, półcienie, podświetlenia) na domyślne. +TP_COLORTONING_OPACITY;Przezroczystość +TP_COLORTONING_RGBCURVES;RGB - Krzywe +TP_COLORTONING_RGBSLIDERS;RGB - Suwaki +TP_COLORTONING_SA;Ochrona przed przesyceniem +TP_COLORTONING_SATURATEDOPACITY;Śiła +TP_COLORTONING_SATURATIONTHRESHOLD;Próg +TP_COLORTONING_SHADOWS;Cienie +TP_COLORTONING_SPLITCO;Cienie/półcienie/podświetlenia +TP_COLORTONING_SPLITCOCO;Balans kolorów - cienie/półcienie/podświetlenia +TP_COLORTONING_SPLITLR;Nasycenie - dwa kolory +TP_COLORTONING_STR;Siła +TP_COLORTONING_STRENGTH;Siła +TP_COLORTONING_TWO2;Specjalna chroma 'dwa kolory' +TP_COLORTONING_TWOALL;Specjalna chroma +TP_COLORTONING_TWOBY;Specjalne a* i b* +TP_COLORTONING_TWOCOLOR_TOOLTIP;Standardowa chroma:\nLiniowe mieszanie kanałów, a* = b*.\n\nSpecjalna chroma:\nLiniowe mieszanie kanałów, a* = b*, ale nieograniczone - spróbuj krzywą zagiąc pod przekątną.\n\nSpecialne a* i b*:\nLiniowe nieograniczone mieszanie kanałów z osobnymi krzywymi dla a* i b*. Przeznaczone dla efektów specjalnych.\n\nSpecjalna chroma - dwa kolory:\nBardziej nieprzewidywalne. +TP_COLORTONING_TWOSTD;Standardowa chroma +TP_CROP_FIXRATIO;Zablokuj proporcje +TP_CROP_GTDIAGONALS;Przekątna +TP_CROP_GTEPASSPORT;Paszport biometryczny +TP_CROP_GTFRAME;Ramka +TP_CROP_GTGRID;Siatka +TP_CROP_GTNONE;Nic +TP_CROP_GTRULETHIRDS;Trójpodział +TP_CROP_GUIDETYPE;Typ pomocy: +TP_CROP_H;Wysokość +TP_CROP_LABEL;Kadrowanie +TP_CROP_PPI;PPI= +TP_CROP_SELECTCROP;Wybierz kadr +TP_CROP_W;Szerokość +TP_CROP_X;X +TP_CROP_Y;Y +TP_DARKFRAME_AUTOSELECT;Autowybór +TP_DARKFRAME_LABEL;Czarna klatka +TP_DEFRINGE_LABEL;Usuwanie widma +TP_DEFRINGE_RADIUS;Promień +TP_DEFRINGE_THRESHOLD;Próg +TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominancja - Błękit-żółć +TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Chrominancja - Główna +TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominancja - Czerwień-zieleń +TP_DIRPYRDENOISE_ENH;Tryb ulepszony +TP_DIRPYRDENOISE_ENH_TOOLTIP;Ulepsza jakość usuwania szumów kosztem około 20% wzrostu czasu przetwarzania. +TP_DIRPYRDENOISE_LUMINANCE_CURVE;Крива люмінації +TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegółowość люмінації +TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminacja +TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metoda +TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Redukcja szumu +TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB +TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Dla obrazów raw można używać metody RGB oraz L*a*b*.\n\nDla obrazów nie-raw metoda L*a*b* zostanie użyta niezależnie od wyboru. +TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma +TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma skupia siłę redukcji szumów na danym predziale zakresu tonalnego. Mniejsze wartości gamma powodują skupienie na ciemniejszych barwach, natomiast większe wartości rozciągną zakres działania również na barwy jasne. +TP_DIRPYRDENOISE_MAIN_MODE;Jakość +TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Wysoka +TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standardowa +TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Jakość może zostać dopasowana do wzoru szumów. Ustawienie "wysoka" ulepsza odszumianie około 20% wzrostu czasu przetwarzania. +TP_DIRPYRDENOISE_MEDIAN_METHOD;Metoda mediana +TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* +TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Filtr Mediana +TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Tylko Світність +TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB +TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;Przy użyciu metod "tylko Світність" oraz "L*a*b*", filtrowanie mediana zostanie wykonane prosto po funkcji falki w procesie odszumiania.\nW trybie "RGB" filtrowanie to zostanie wykonana pod koniec calego procesu. +TP_DIRPYRDENOISE_MEDIAN_PASSES;Liczba powtórzeń mediana +TP_DIRPYRDENOISE_MEDIAN_TYPE;Rodzaj mediana +TP_DIRPYREQUALIZER_ALGO;Zakres odcieni skóry +TP_DIRPYREQUALIZER_ALGO_TOOLTIP;- +TP_DIRPYREQUALIZER_HUESKIN;Відтінок skóry +TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;Piramida wyznacza zakres kolorów uważany jako zakres odcieni skóry. Większość odcieni skóry - białej, czarnej, i pomiędzy - ma tę samą Відтінок. Małe poprawki są dopuszczalne, jednak jeśli potrzebna jest większa zmiana w lewo lub prawo, lub jeśli są widoczne artefakty, to najprawdopobniej balans bieli jest niepoprawny. +TP_DIRPYREQUALIZER_LABEL;Контраст wg. precyzji detali +TP_DIRPYREQUALIZER_LUMACOARSEST;Zgrubne +TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Контраст- +TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Контраст+ +TP_DIRPYREQUALIZER_LUMAFINEST;Delikatne +TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutralne +TP_DIRPYREQUALIZER_SKIN;Ochrona/celowanie odcieni skóry +TP_DIRPYREQUALIZER_SKIN_TOOLTIP;Przy -100 oddziaływanie efektu odbywa się wyłącznie na odcieniach skóry.\nPrzy 0 oddziaływanie efektu odbywa się jednakowo na wszystkich odcieniach.\nPrzy +100 odcienie skóry są pomijane podczas gdy oddziaływanie odbywa się na wszystkich pozostałych odcieniach. +TP_DIRPYREQUALIZER_THRESHOLD;Próg +TP_DIRPYREQUALIZER_TOOLTIP;Zapobiega artefaktom w strefach przejścia pomiędzy odcieniom skóry (hue, chrominancja, Світність) a pozostałym odcieniom. +TP_DISTORTION_AMOUNT;Siła +TP_DISTORTION_LABEL;Dystorsja +TP_EPD_EDGESTOPPING;Wyszukiwanie krawędzi +TP_EPD_LABEL;Tone Mapping +TP_EPD_REWEIGHTINGITERATES;Powtarzanie rozważania +TP_EPD_SCALE;Skala +TP_EPD_STRENGTH;Siła +TP_EPD_TOOLTIP;Tone mapping może się odbyć w przestrzeni kolorów L*a*b* (domyślnie) oraz CIECAM02.\n\nAby wykonać tone mapping w przestrzeni CIECAM02 należy włączyć następujące ustawienia:\n1. CIECAM02\n2. Алгоритм="Jasność + Barwistość (QM)"\n3. "Tone mapping za pomocą jasności CIECAM02 (Q)" +TP_EXPOSURE_AUTOLEVELS;Wyrównaj poziomy +TP_EXPOSURE_AUTOLEVELS_TIP;Dokonaj automatycznego ustawienia parametrów ekspozycji na podstawie analizy obrazu +TP_EXPOSURE_BLACKLEVEL;Czerń +TP_EXPOSURE_BRIGHTNESS;Jasność +TP_EXPOSURE_CLIP;Przytnij % +TP_EXPOSURE_CLIP_TIP;Ułamek pikseli ktore mają zostać rozjaśnione do punktu prześwietlenia podczas automatycznego wyrównania poziomów. +TP_EXPOSURE_COMPRHIGHLIGHTS;Kompresja podświetleń +TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Próg kompresji podświetleń +TP_EXPOSURE_COMPRSHADOWS;Kompresja cieni +TP_EXPOSURE_CONTRAST;Контраст +TP_EXPOSURE_CURVEEDITOR;Крива тональна +TP_EXPOSURE_CURVEEDITOR1;Крива тональна 1 +TP_EXPOSURE_CURVEEDITOR2;Крива тональна 2 +TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Więcej informacji na temat optymalnego wykorzystania obu krzywych jest dostępne w podręczniku (RawTherapee Manual) w dziale:\nThe Toolbox > Exposure Tab > Exposure Panel > Tone Curve\n(Narzędzie > Zakładka Ekspozycji > Krzywe Tonalne) +TP_EXPOSURE_EXPCOMP;Korekcja ekspozycji (EV) +TP_EXPOSURE_LABEL;Ekspozycja +TP_EXPOSURE_SATURATION;Nasycenie +TP_EXPOSURE_TCMODE_FILMLIKE;Klisza +TP_EXPOSURE_TCMODE_LABEL1;Tryb krzywej 1 +TP_EXPOSURE_TCMODE_LABEL2;Tryb krzywej 2 +TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Mieszanie nasycenia i mocy światła białego +TP_EXPOSURE_TCMODE_STANDARD;Standardowa +TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Ważona standardowa +TP_EXPOS_BLACKPOINT_LABEL;Punkt czerni raw +TP_EXPOS_WHITEPOINT_LABEL;Punkt bieli raw +TP_FILMSIMULATION_LABEL;Symulacja Kliszy +TP_FILMSIMULATION_STRENGTH;Siła +TP_FILMSIMULATION_ZEROCLUTSFOUND;Ustaw folder HaldCLUT w Ustawieniach +TP_FLATFIELD_AUTOSELECT;Autowybór +TP_FLATFIELD_BLURRADIUS;Promień rozmycia +TP_FLATFIELD_BLURTYPE;Typ rozmycia +TP_FLATFIELD_BT_AREA;Obszar +TP_FLATFIELD_BT_HORIZONTAL;Poziomy +TP_FLATFIELD_BT_VERTHORIZ;Poziomy + pionowy +TP_FLATFIELD_BT_VERTICAL;Pionowy +TP_FLATFIELD_CLIPCONTROL;Zabezpieczenie przed obcinaniem +TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Funkcja ta chroni przed obcinaniem podświetleń które może zaistnieć przy stosowaniu obrazów type "puste pole". Należy zachować ostrożność, ponieważ jeśli obcięte rejony istnieją przed zastosowaniem pustego pola, funkcja ta może spowodować zabarwienie tych rejonów które powinny być białe. +TP_FLATFIELD_LABEL;Puste pole +TP_GAMMA_CURV;Gamma +TP_GAMMA_FREE;Dowolna gamma +TP_GAMMA_OUTPUT;Wyjściowa gamma +TP_GAMMA_SLOP;Nachylenie (liniowy) +TP_GENERAL_11SCALE_TOOLTIP;Efekty tego narzędzia są widoczne bądź poprawne przy przybliżeniu 100% lub więcej. +TP_GRADIENT_CENTER;Środek +TP_GRADIENT_CENTER_X;Środek X +TP_GRADIENT_CENTER_X_TOOLTIP;Przesuń filtr do lewej (ujemne wartości) lub prawej (dodatne wartości). +TP_GRADIENT_CENTER_Y;Środek Y +TP_GRADIENT_CENTER_Y_TOOLTIP;Przesuń filtr do góry (ujemne wartości) lub do dołu (dodatne wartości). +TP_GRADIENT_DEGREE;Kąt +TP_GRADIENT_DEGREE_TOOLTIP;Kąt obrotu filtra w stopniach. +TP_GRADIENT_FEATHER;Wtapianie +TP_GRADIENT_FEATHER_TOOLTIP;Szerokośc nachylenia zbocza w procentach przekątnej. +TP_GRADIENT_LABEL;Filtr Połówkowy +TP_GRADIENT_STRENGTH;Siła +TP_GRADIENT_STRENGTH_TOOLTIP;Śiła filtru w jednostkach EV. +TP_HLREC_BLEND;Mieszanie +TP_HLREC_CIELAB;Mieszanie koloru CIELab +TP_HLREC_COLOR;Propagacja koloru +TP_HLREC_ENA_TOOLTIP;Może zostać automatycznie włączone w skutek działania automatycznej ekspozycji +TP_HLREC_LABEL;Odzyskiwanie prześwietleń +TP_HLREC_LUMINANCE;Odzyskiwanie люмінації +TP_HLREC_METHOD;Metoda: +TP_HSVEQUALIZER_CHANNEL;Kanał +TP_HSVEQUALIZER_HUE;H +TP_HSVEQUALIZER_LABEL;Ekwalizator HSV +TP_HSVEQUALIZER_SAT;S +TP_HSVEQUALIZER_VAL;V +TP_ICM_BLENDCMSMATRIX;Tłumienie prześwietleń danymi z matrycy +TP_ICM_BLENDCMSMATRIX_TOOLTIP;Włącz odzyskiwanie prześwietlonych regionow jesli profil ICC wykorzystuje LUT (tablicowanie). +TP_ICM_DCPILLUMINANT;Iluminant +TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolowany +TP_ICM_DCPILLUMINANT_TOOLTIP;Wybierz który osadzony iluminant DCP należy użyć. Domyślną opcją jest "interpolowany", czyli wartość jest mieszaniną pomiędzy dwoma osadzonymi wartościami iluminantu zależnie od balansu bieli. Ten wybór jest możliwy jedynie kiedy DCP zawiera dwa iluminanty z możliwościa interpolacji. +TP_ICM_INPUTCAMERA;Domyślny aparatu +TP_ICM_INPUTCAMERAICC;Domyślny aparatu lub ICC +TP_ICM_INPUTCAMERAICC_TOOLTIP;Uzyj profil ICC stworzony specjalnie na potrzeby RawTherapee. Jest bardziej dokładny niż domyślny matrycowy profil ICC, lecz dostępny tylko dla niektórych aparatów. +TP_ICM_INPUTCAMERA_TOOLTIP;Użyj prostej domyślnej matrycy kolorów z DCRAW bądź zapisanej w DNG. +TP_ICM_INPUTCUSTOM;Własny +TP_ICM_INPUTCUSTOM_TOOLTIP;Wczytaj własny profil ICC z pliku. +TP_ICM_INPUTDLGLABEL;Wybierz wejściowy profil ICC... +TP_ICM_INPUTEMBEDDED;Jeśli to możliwe, użyj osadzonego +TP_ICM_INPUTEMBEDDED_TOOLTIP;Użyj profil ICC zapisany w plikach innych niż raw. +TP_ICM_INPUTNONE;Bez profilu +TP_ICM_INPUTNONE_TOOLTIP;Nie używaj żadnego profilu kolorów. Pożyteczne jedynie w wyjątkowych przypadkach. +TP_ICM_INPUTPROFILE;Profil wejściowy +TP_ICM_LABEL;ICM +TP_ICM_NOICM;Brak ICM: Wyjście sRGB +TP_ICM_OUTPUTPROFILE;Profil wyjściowy +TP_ICM_SAVEREFERENCE_TOOLTIP;Zapisz liniowy obraz TIFF zanim profil wejściowy zostanie zastosowany. Obraz ten można użyć do kalibracji oraz do wytworzenia profilu aparatu. +TP_ICM_TONECURVE;Użyj krzywą tonalną z DCP +TP_ICM_TONECURVE_TOOLTIP;Włącz aby użyć krzywą tonalną znajdującą się w profilu DCP. Opcja ta jest tylko aktywna jeśli profil DCP zawiera krzywą tonalną. +TP_ICM_WORKINGPROFILE;Profil roboczy +TP_IMPULSEDENOISE_LABEL;Redukcja Szumów Impulsowych +TP_IMPULSEDENOISE_THRESH;Próg +TP_LABCURVE_AVOIDCOLORSHIFT;Zapobiegaj zmianom koloru +TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Umieszcza kolory w gamie roboczej przestrzeni kolorów i stosuje korektę Munsell'a +TP_LABCURVE_BRIGHTNESS;Światłość +TP_LABCURVE_CHROMATICITY;Chromatyczność +TP_LABCURVE_CHROMA_TOOLTIP;Aby zastosować tonowanie zdjęcia B&W, ustaw chromatyczność na -100. +TP_LABCURVE_CONTRAST;Контраст +TP_LABCURVE_CURVEEDITOR;Крива luminacji +TP_LABCURVE_CURVEEDITOR_A_RANGE1;Zielone Nasycone +TP_LABCURVE_CURVEEDITOR_A_RANGE2;Zielone Pastelowe +TP_LABCURVE_CURVEEDITOR_A_RANGE3;Czerwone Pastelowe +TP_LABCURVE_CURVEEDITOR_A_RANGE4;Czerwone Nasycone +TP_LABCURVE_CURVEEDITOR_B_RANGE1;Синійe Nasycone +TP_LABCURVE_CURVEEDITOR_B_RANGE2;Синійe Pastelowe +TP_LABCURVE_CURVEEDITOR_B_RANGE3;Żółte Pastelowe +TP_LABCURVE_CURVEEDITOR_B_RANGE4;Żółte Nasycone +TP_LABCURVE_CURVEEDITOR_CC;CC +TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutralne +TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Mętne +TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastelowe +TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Nasycone +TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromatyczność według chromatyczności C=f(C). +TP_LABCURVE_CURVEEDITOR_CH;CH +TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromatyczność według odcieni (hue) C=f(H) +TP_LABCURVE_CURVEEDITOR_CL;CL +TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromatyczność według люмінації C=f(L) +TP_LABCURVE_CURVEEDITOR_HH;HH +TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Відтінок (hue) według odcieni H=f(H) +TP_LABCURVE_CURVEEDITOR_LC;LC +TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Світність według chromatyczności L=f(C) +TP_LABCURVE_CURVEEDITOR_LH;LH +TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance według odcieni (hue) L=f(H) +TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Світність według люмінації L=f(L) +TP_LABCURVE_LABEL;Regulacja L*a*b* +TP_LABCURVE_LCREDSK;Ogranicz LC do odcieni skóry oraz czerwieni +TP_LABCURVE_LCREDSK_TIP;Kiedy opcja jest włączona, wpływ krzywej LC (Світність według chromatyczności) jest ograniczony do odcieni skóry oraz czerwieni.\nKiedy opcja jest wyłączona, Крива LC wpływa na wszystkie barwy. +TP_LABCURVE_RSTPROTECTION;Ochrona skóry oraz czerwieni +TP_LABCURVE_RSTPRO_TOOLTIP;Ma wpływ na suwak Chromatyczności oraz na krzywą CC. +TP_LENSGEOM_AUTOCROP;Auto-kadrowanie +TP_LENSGEOM_FILL;Auto-wypełnienie +TP_LENSGEOM_LABEL;Obiektyw / Geometria +TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP +TP_LENSPROFILE_USECA;Korekja aberacji chromatycznej +TP_LENSPROFILE_USEDIST;Korekcja dystorsji +TP_LENSPROFILE_USEVIGN;Korekcja winietowania +TP_NEUTRAL_TIP;Zresetuj ustawienia do wartości neutralnych.\nDziała na tych samych suwakach na których funkcja "Wyrównaj poziomy" działa, niezależnie od tego czy funkcja ta była użyta czy nie. +TP_PCVIGNETTE_FEATHER;Wtapianie +TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pół drogi do środka,\n100 = aż do środka. +TP_PCVIGNETTE_LABEL;Віньєтування +TP_PCVIGNETTE_ROUNDNESS;Okrągłość +TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Okrągłość:\n0 = prostokąt,\n50 = dopasowana elipsa,\n100 = okrąg. +TP_PCVIGNETTE_STRENGTH;Śiła +TP_PCVIGNETTE_STRENGTH_TOOLTIP;Siła filtru w kątach w jednostkach EV. +TP_PERSPECTIVE_HORIZONTAL;Pozioma +TP_PERSPECTIVE_LABEL;Perspektywa +TP_PERSPECTIVE_VERTICAL;Pionowa +TP_PFCURVE_CURVEEDITOR_CH;Відтінок +TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Ogranicza natężenie usuwania widma według kolorów.\nWyżej = bardziej,\nNiżej = mniej. +TP_PREPROCESS_DEADPIXFILT;Filtr martwych pikseli +TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Łata martwe piksele (pojedyńcze czarne piksele). +TP_PREPROCESS_GREENEQUIL;Wyrównanie zieleni +TP_PREPROCESS_HOTPIXFILT;Filtr gorących pikseli +TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Łata gorące piksele (pojedyńcze świecące, przesycone piksele). +TP_PREPROCESS_LABEL;Przetwarzanie początkowe +TP_PREPROCESS_LINEDENOISE;Filtr zakłóceń liniowych +TP_PREPROCESS_NO_FOUND;Nic nie znaleziono +TP_RAWCACORR_AUTO;Autokorekcja +TP_RAWCACORR_CABLUE;Синій +TP_RAWCACORR_CARED;Червоний +TP_RAWEXPOS_BLACKS;Poziomy czerni +TP_RAWEXPOS_BLACK_0;Зелений 1 (główny) +TP_RAWEXPOS_BLACK_1;Червоний +TP_RAWEXPOS_BLACK_2;Синій +TP_RAWEXPOS_BLACK_3;Зелений 2 +TP_RAWEXPOS_BLACK_BLUE;Синій +TP_RAWEXPOS_BLACK_GREEN;Зелений +TP_RAWEXPOS_BLACK_RED;Червоний +TP_RAWEXPOS_LINEAR;Liniowy współczynnik korekcji +TP_RAWEXPOS_PRESER;Zachowanie prześwietleń +TP_RAWEXPOS_RGB;Червоний, Зелений, Синій +TP_RAWEXPOS_TWOGREEN;Połącz obie zielenie +TP_RAW_DCBENHANCE;Zastosuj poprawę DCB +TP_RAW_DCBITERATIONS;Liczba powtórzeń DCB +TP_RAW_DMETHOD;Metoda +TP_RAW_DMETHOD_PROGRESSBAR;Demozaikowanie %1... +TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Udoskonalanie demozaikowania... +TP_RAW_DMETHOD_TOOLTIP;IGV oraz LMMSE są przeznaczone dla zdjęć raw o wysokim poziomie szumów (wysokie ISO) aby zapobiec utworzeniu się wzorków w kształcie małych labiryntów, posteryzacji oraz mydlanego wyglądu. +TP_RAW_FALSECOLOR;Kroki zapobiegające fałszowaniu kolorów +TP_RAW_LABEL;Demozaikowanie +TP_RAW_LMMSEITERATIONS;Ilość kroków udoskonalenia LMMSE +TP_RAW_LMMSE_TOOLTIP;Aby zmniejszyć ilość artefaktów i poprawić stosunek sygnału do szumów, można wykorzystać następujące ustawienia:\n1: Gamma\n2-4: Średnia mediana\n5-6: Rafinowanie +TP_RAW_SENSOR_BAYER_LABEL;Matryca z filtrem Bayera +TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Trzy powtórzenia prowadzą do najlepszych rezultatów (zalecane dla zdjęć o niskim ISO).\nJedno powtórzenie jest prawie nie do odróżnienia od trzech dla zdjęć o wysokim ISO a jest znacznie szybsze. +TP_RAW_SENSOR_XTRANS_LABEL;Matryca z filtrem X-Trans +TP_RESIZE_APPLIESTO;Dotyczy: +TP_RESIZE_CROPPEDAREA;Obszaru kadrowanego +TP_RESIZE_FITBOX;Wymiary obwodu +TP_RESIZE_FULLIMAGE;Całego zdjęcia +TP_RESIZE_H;Wysokość: +TP_RESIZE_HEIGHT;Wysokość +TP_RESIZE_LABEL;Zmiana rozmiaru +TP_RESIZE_LANCZOS;Lanczos +TP_RESIZE_METHOD;Metoda: +TP_RESIZE_NEAREST;Najbliższa +TP_RESIZE_SCALE;Skalę +TP_RESIZE_SPECIFY;Określ: +TP_RESIZE_W;Szerokość +TP_RESIZE_WIDTH;Szerokość +TP_RGBCURVES_BLUE;B +TP_RGBCURVES_CHANNEL;Kanał +TP_RGBCURVES_GREEN;G +TP_RGBCURVES_LABEL;Krzywe RGB +TP_RGBCURVES_LUMAMODE;Tryb люмінації +TP_RGBCURVES_LUMAMODE_TOOLTIP;Tryb люмінації pozwala na zmianę wpływu kanałów R, G i B na luminancję obrazu bez zmian kolorów. +TP_RGBCURVES_RED;R +TP_ROTATE_DEGREE;Stopnie +TP_ROTATE_LABEL;Obrót +TP_ROTATE_SELECTLINE;Wyprostuj obraz +TP_SAVEDIALOG_OK_TIP;Skrót: Ctrl-Enter +TP_SHADOWSHLIGHTS_HIGHLIGHTS;Podświetlenia +TP_SHADOWSHLIGHTS_HLTONALW;Szerokość тональна +TP_SHADOWSHLIGHTS_LABEL;Cienie/Podświetlenia +TP_SHADOWSHLIGHTS_LOCALCONTR;Контраст lokalny +TP_SHADOWSHLIGHTS_RADIUS;Promień +TP_SHADOWSHLIGHTS_SHADOWS;Cienie +TP_SHADOWSHLIGHTS_SHARPMASK;Ostra maska +TP_SHADOWSHLIGHTS_SHTONALW;Szerokość тональна +TP_SHARPENEDGE_AMOUNT;Siła +TP_SHARPENEDGE_LABEL;Krawędzie +TP_SHARPENEDGE_PASSES;Powtórzenia +TP_SHARPENEDGE_THREE;Tylko Світність +TP_SHARPENING_AMOUNT;Siła +TP_SHARPENING_EDRADIUS;Promień +TP_SHARPENING_EDTOLERANCE;Tolerancja krawędzi +TP_SHARPENING_HALOCONTROL;Kontrola poświaty +TP_SHARPENING_HCAMOUNT;Siła +TP_SHARPENING_LABEL;Wyostrzanie +TP_SHARPENING_METHOD;Metoda +TP_SHARPENING_ONLYEDGES;Wyostrz tylko krawędzie +TP_SHARPENING_RADIUS;Promień +TP_SHARPENING_RLD;Dekonwolucja RL +TP_SHARPENING_RLD_AMOUNT;Siła +TP_SHARPENING_RLD_DAMPING;Tłumienie +TP_SHARPENING_RLD_ITERATIONS;Powtórzenia +TP_SHARPENING_THRESHOLD;Próg +TP_SHARPENING_USM;Maska wyostrzająca +TP_SHARPENMICRO_AMOUNT;Siła +TP_SHARPENMICRO_LABEL;MikroКонтраст +TP_SHARPENMICRO_MATRIX;Matryca 3×3 zamiast 5×5 +TP_SHARPENMICRO_UNIFORMITY;Jednolitość +TP_VIBRANCE_AVOIDCOLORSHIFT;Zapobiegaj przesunięcia kolorów +TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH +TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Odcienie skóry +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Czerwone/Purpurowe +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Czerwone +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Czerwone/Żółte +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Żółte +TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Відтінок (hue) według odcieni H=f(H) +TP_VIBRANCE_LABEL;Світність +TP_VIBRANCE_PASTELS;Odcienie pastelowe +TP_VIBRANCE_PASTSATTOG;Połącz odcienie pastelowe i nasycone +TP_VIBRANCE_PROTECTSKINS;Zachowaj odcienie skóry +TP_VIBRANCE_PSTHRESHOLD;Próg odcieni pastelowych/nasyconych +TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Próg nasycenia +TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;Oś pionowa odpowiada barwą pastelowym na dole oraz nasyconym na górze.\nOś pozioma przedstawia zakres nasycenia. +TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Ważenie przejścia barw pastelowych/nasyconych +TP_VIBRANCE_SATURATED;Odcienie nasycone +TP_VIGNETTING_AMOUNT;Ilość +TP_VIGNETTING_CENTER;Środek +TP_VIGNETTING_CENTER_X;Środek X +TP_VIGNETTING_CENTER_Y;Środek Y +TP_VIGNETTING_LABEL;Korekcja winietowania +TP_VIGNETTING_RADIUS;Promień +TP_VIGNETTING_STRENGTH;Siła +TP_WBALANCE_AUTO;Auto +TP_WBALANCE_CAMERA;Z aparatu +TP_WBALANCE_CLOUDY;Pochmurnie +TP_WBALANCE_CUSTOM;Własny +TP_WBALANCE_DAYLIGHT;Światło dzienne (słonecznie) +TP_WBALANCE_EQBLUERED;Ekwalizator niebieskości/czerwieni +TP_WBALANCE_EQBLUERED_TOOLTIP;Pozwala na odchyłkę od typowego użytku balansu bieli poprzez modulację balansu niebieskości/czerwieni.\nJest to przydatne kiedy:\na) warunki miejsca fotografii są oddalone od standardowego iluminantu (światła o określonych parametrach za pomocą którego kalibruje się profil wejściowy aparatu), np. zdjęcia robione pod wodą,\nb) warunki fotografii są oddalone od warunków pod którymi kalibracje zostały wykonane,\nc) macierze oraz profile ICC/DCP są z jakiegos powodu nieodpowiednie. +TP_WBALANCE_FLASH55;Leica +TP_WBALANCE_FLASH60;Standardowe, Canon, Pentax, Olympus +TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta +TP_WBALANCE_FLASH_HEADER;Flash +TP_WBALANCE_FLUO1;F1 - Światło dzienne +TP_WBALANCE_FLUO2;F2 - Chłodne białe +TP_WBALANCE_FLUO3;F3 - Białe +TP_WBALANCE_FLUO4;F4 - Ciepłe białe +TP_WBALANCE_FLUO5;F5 - Światło dzienne +TP_WBALANCE_FLUO6;F6 - Białe Lite +TP_WBALANCE_FLUO7;F7 - D65 Symulator światła dziennego +TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design +TP_WBALANCE_FLUO9;F9 - Chłodne białe deluxe +TP_WBALANCE_FLUO10;F10 - Philips TL85 +TP_WBALANCE_FLUO11;F11 - Philips TL84 +TP_WBALANCE_FLUO12;F12 - Philips TL83 +TP_WBALANCE_FLUO_HEADER;Jarzeniowe +TP_WBALANCE_GREEN;Відтінок +TP_WBALANCE_GTI;GTI +TP_WBALANCE_HMI;HMI +TP_WBALANCE_JUDGEIII;JudgeIII +TP_WBALANCE_LABEL;Balans bieli +TP_WBALANCE_LAMP_HEADER;Lamp +TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 +TP_WBALANCE_LED_HEADER;LED +TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +TP_WBALANCE_METHOD;Metoda +TP_WBALANCE_SHADE;Ćień +TP_WBALANCE_SIZE;Wielkość: +TP_WBALANCE_SOLUX35;Solux 3500K +TP_WBALANCE_SOLUX41;Solux 4100K +TP_WBALANCE_SOLUX47;Solux 4700K (vendor) +TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) +TP_WBALANCE_SPOTWB;Punktowy +TP_WBALANCE_TEMPERATURE;Temperatura +TP_WBALANCE_TUNGSTEN;Wolfram +TP_WBALANCE_WATER1;Pod wodą 1 +TP_WBALANCE_WATER2;Pod wodą 2 +TP_WBALANCE_WATER_HEADER;Pod wodą +ZOOMPANEL_100;(100%) +ZOOMPANEL_NEWCROPWINDOW;Otwórz (nową) lupę +ZOOMPANEL_ZOOM100;Powiększ do 100%\nSkrót: z +ZOOMPANEL_ZOOMFITCROPSCREEN;Dopasuj kadr do ekranu\nSkrót: f +ZOOMPANEL_ZOOMFITSCREEN;Dopasuj cały obraz do ekranu\nSkrót: Alt-f +ZOOMPANEL_ZOOMIN;Przybliż\nSkrót: + +ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - + +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. +!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: +!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. +!DONT_SHOW_AGAIN;Don't show this message again. +!DYNPROFILEEDITOR_DELETE;Delete +!DYNPROFILEEDITOR_EDIT;Edit +!DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule +!DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. +!DYNPROFILEEDITOR_MOVE_DOWN;Move Down +!DYNPROFILEEDITOR_MOVE_UP;Move Up +!DYNPROFILEEDITOR_NEW;New +!DYNPROFILEEDITOR_NEW_RULE;New Dynamic Profile Rule +!DYNPROFILEEDITOR_PROFILE;Processing Profile +!EXIFFILTER_IMAGETYPE;Image type +!EXIFPANEL_SHOWALL;Show all +!EXPORT_BYPASS;Processing steps to bypass +!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels +!EXPORT_PIPELINE;Processing pipeline +!EXPORT_USE_FAST_PIPELINE;Dedicated (full processing on resized image) +!EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality. +!EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) +!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default +!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!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. +!FILECHOOSER_FILTER_ANY;All files +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) +!FILECHOOSER_FILTER_CURVE;Curve files +!FILECHOOSER_FILTER_LCP;Lens correction profiles +!FILECHOOSER_FILTER_PP;Processing profiles +!FILECHOOSER_FILTER_SAME;Same format as current photo +!FILECHOOSER_FILTER_TIFF;TIFF files +!GENERAL_APPLY;Apply +!GENERAL_ASIMAGE;As Image +!GENERAL_OPEN;Open +!GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... +!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. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. +!HISTORY_MSG_166;Exposure - Reset +!HISTORY_MSG_173;NR - Detail recovery +!HISTORY_MSG_203;NR - Color space +!HISTORY_MSG_235;B&W - CM - Auto +!HISTORY_MSG_237;B&W - CM +!HISTORY_MSG_256;NR - Median - Type +!HISTORY_MSG_273;CT - Color Balance SMH +!HISTORY_MSG_297;NR - Mode +!HISTORY_MSG_299;NR - Chrominance curve +!HISTORY_MSG_300;- +!HISTORY_MSG_301;NR - Luma control +!HISTORY_MSG_302;NR - Chroma method +!HISTORY_MSG_303;NR - Chroma method +!HISTORY_MSG_304;W - Contrast levels +!HISTORY_MSG_305;Wavelet Levels +!HISTORY_MSG_306;W - Process +!HISTORY_MSG_307;W - Process +!HISTORY_MSG_308;W - Process direction +!HISTORY_MSG_309;W - ES - Detail +!HISTORY_MSG_310;W - Residual - Sky tar/prot +!HISTORY_MSG_311;W - Wavelet levels +!HISTORY_MSG_312;W - Residual - Shadows threshold +!HISTORY_MSG_313;W - Chroma - Sat/past +!HISTORY_MSG_314;W - Gamut - Reduce artifacts +!HISTORY_MSG_315;W - Residual - Contrast +!HISTORY_MSG_316;W - Gamut - Skin tar/prot +!HISTORY_MSG_317;W - Gamut - Skin hue +!HISTORY_MSG_318;W - Contrast - Highlight levels +!HISTORY_MSG_319;W - Contrast - Highlight range +!HISTORY_MSG_320;W - Contrast - Shadow range +!HISTORY_MSG_321;W - Contrast - Shadow levels +!HISTORY_MSG_322;W - Gamut - Avoid color shift +!HISTORY_MSG_323;W - ES - Local contrast +!HISTORY_MSG_324;W - Chroma - Pastel +!HISTORY_MSG_325;W - Chroma - Saturated +!HISTORY_MSG_326;W - Chroma - Method +!HISTORY_MSG_327;W - Contrast - Apply to +!HISTORY_MSG_328;W - Chroma - Link strength +!HISTORY_MSG_329;W - Toning - Opacity RG +!HISTORY_MSG_330;W - Toning - Opacity BY +!HISTORY_MSG_331;W - Contrast levels - Extra +!HISTORY_MSG_332;W - Tiling method +!HISTORY_MSG_333;W - Residual - Shadows +!HISTORY_MSG_334;W - Residual - Chroma +!HISTORY_MSG_335;W - Residual - Highlights +!HISTORY_MSG_336;W - Residual - Highlights threshold +!HISTORY_MSG_337;W - Residual - Sky hue +!HISTORY_MSG_338;W - ES - Radius +!HISTORY_MSG_339;W - ES - Strength +!HISTORY_MSG_340;W - Strength +!HISTORY_MSG_341;W - Edge performance +!HISTORY_MSG_342;W - ES - First level +!HISTORY_MSG_343;W - Chroma levels +!HISTORY_MSG_344;W - Meth chroma sl/cur +!HISTORY_MSG_345;W - ES - Local contrast +!HISTORY_MSG_346;W - ES - Local contrast method +!HISTORY_MSG_347;W - Denoise - Level 1 +!HISTORY_MSG_348;W - Denoise - Level 2 +!HISTORY_MSG_349;W - Denoise - Level 3 +!HISTORY_MSG_350;W - ES - Edge detection +!HISTORY_MSG_351;W - Residual - HH curve +!HISTORY_MSG_352;W - Background +!HISTORY_MSG_353;W - ES - Gradient sensitivity +!HISTORY_MSG_354;W - ES - Enhanced +!HISTORY_MSG_355;W - ES - Threshold low +!HISTORY_MSG_356;W - ES - Threshold high +!HISTORY_MSG_357;W - Denoise - Link with ES +!HISTORY_MSG_358;W - Gamut - CH +!HISTORY_MSG_359;Hot/Dead - Threshold +!HISTORY_MSG_360;TM - Gamma +!HISTORY_MSG_361;W - Final - Chroma balance +!HISTORY_MSG_362;W - Residual - Compression method +!HISTORY_MSG_363;W - Residual - Compression strength +!HISTORY_MSG_364;W - Final - Contrast balance +!HISTORY_MSG_365;W - Final - Delta balance +!HISTORY_MSG_366;W - Residual - Compression gamma +!HISTORY_MSG_367;W - Final - 'After' contrast curve +!HISTORY_MSG_368;W - Final - Contrast balance +!HISTORY_MSG_369;W - Final - Balance method +!HISTORY_MSG_370;W - Final - Local contrast curve +!HISTORY_MSG_371;Post-Resize Sharpening +!HISTORY_MSG_372;PRS USM - Radius +!HISTORY_MSG_373;PRS USM - Amount +!HISTORY_MSG_374;PRS USM - Threshold +!HISTORY_MSG_375;PRS USM - Sharpen only edges +!HISTORY_MSG_376;PRS USM - Edge detection radius +!HISTORY_MSG_377;PRS USM - Edge tolerance +!HISTORY_MSG_378;PRS USM - Halo control +!HISTORY_MSG_379;PRS USM - Halo control amount +!HISTORY_MSG_380;PRS - Method +!HISTORY_MSG_381;PRS RLD - Radius +!HISTORY_MSG_382;PRS RLD - Amount +!HISTORY_MSG_383;PRS RLD - Damping +!HISTORY_MSG_384;PRS RLD - Iterations +!HISTORY_MSG_385;W - Residual - Color Balance +!HISTORY_MSG_386;W - Residual - CB green high +!HISTORY_MSG_387;W - Residual - CB blue high +!HISTORY_MSG_388;W - Residual - CB green mid +!HISTORY_MSG_389;W - Residual - CB blue mid +!HISTORY_MSG_390;W - Residual - CB green low +!HISTORY_MSG_391;W - Residual - CB blue low +!HISTORY_MSG_392;W - Residual - Color Balance +!HISTORY_MSG_393;DCP - Look table +!HISTORY_MSG_394;DCP - Baseline exposure +!HISTORY_MSG_395;DCP - Base table +!HISTORY_MSG_396;W - Contrast sub-tool +!HISTORY_MSG_397;W - Chroma sub-tool +!HISTORY_MSG_398;W - ES sub-tool +!HISTORY_MSG_399;W - Residual sub-tool +!HISTORY_MSG_400;W - Final sub-tool +!HISTORY_MSG_401;W - Toning sub-tool +!HISTORY_MSG_402;W - Denoise sub-tool +!HISTORY_MSG_403;W - ES - Edge sensitivity +!HISTORY_MSG_404;W - ES - Base amplification +!HISTORY_MSG_405;W - Denoise - Level 4 +!HISTORY_MSG_406;W - ES - Neighboring pixels +!HISTORY_MSG_407;Retinex - Method +!HISTORY_MSG_408;Retinex - Radius +!HISTORY_MSG_409;Retinex - Contrast +!HISTORY_MSG_410;Retinex - Offset +!HISTORY_MSG_411;Retinex - Strength +!HISTORY_MSG_412;Retinex - Gaussian gradient +!HISTORY_MSG_413;Retinex - Contrast +!HISTORY_MSG_414;Retinex - Histogram - Lab +!HISTORY_MSG_415;Retinex - Transmission +!HISTORY_MSG_416;Retinex +!HISTORY_MSG_417;Retinex - Transmission median +!HISTORY_MSG_418;Retinex - Threshold +!HISTORY_MSG_419;Retinex - Color space +!HISTORY_MSG_420;Retinex - Histogram - HSL +!HISTORY_MSG_421;Retinex - Gamma +!HISTORY_MSG_422;Retinex - Gamma +!HISTORY_MSG_423;Retinex - Gamma slope +!HISTORY_MSG_424;Retinex - HL threshold +!HISTORY_MSG_425;Retinex - Log base +!HISTORY_MSG_426;Retinex - Hue equalizer +!HISTORY_MSG_427;Output rendering intent +!HISTORY_MSG_428;Monitor rendering intent +!HISTORY_MSG_429;Retinex - Iterations +!HISTORY_MSG_430;Retinex - Transmission gradient +!HISTORY_MSG_431;Retinex - Strength gradient +!HISTORY_MSG_432;Retinex - M - Highlights +!HISTORY_MSG_433;Retinex - M - Highlights TW +!HISTORY_MSG_434;Retinex - M - Shadows +!HISTORY_MSG_435;Retinex - M - Shadows TW +!HISTORY_MSG_436;Retinex - M - Radius +!HISTORY_MSG_437;Retinex - M - Method +!HISTORY_MSG_438;Retinex - M - Equalizer +!HISTORY_MSG_439;Retinex - Process +!HISTORY_MSG_440;CbDL - Method +!HISTORY_MSG_441;Retinex - Gain transmission +!HISTORY_MSG_442;Retinex - Scale +!HISTORY_MSG_443;Output black point compensation +!HISTORY_MSG_444;WB - Temp bias +!HISTORY_MSG_445;Raw sub-image +!HISTORY_MSG_449;PS - ISO adaption +!HISTORY_MSG_452;PS - Show motion +!HISTORY_MSG_453;PS - Show mask only +!HISTORY_MSG_457;PS - Check red/blue +!HISTORY_MSG_462;PS - Check green +!HISTORY_MSG_464;PS - Blur motion mask +!HISTORY_MSG_465;PS - Blur radius +!HISTORY_MSG_468;PS - Fill holes +!HISTORY_MSG_469;PS - Median +!HISTORY_MSG_471;PS - Motion correction +!HISTORY_MSG_472;PS - Smooth transitions +!HISTORY_MSG_473;PS - Use LMMSE +!HISTORY_MSG_474;PS - Equalize +!HISTORY_MSG_475;PS - Equalize channel +!HISTORY_MSG_476;CAM02 - Temp out +!HISTORY_MSG_477;CAM02 - Green out +!HISTORY_MSG_478;CAM02 - Yb out +!HISTORY_MSG_479;CAM02 - CAT02 adaptation out +!HISTORY_MSG_480;CAM02 - Automatic CAT02 out +!HISTORY_MSG_481;CAM02 - Temp scene +!HISTORY_MSG_482;CAM02 - Green scene +!HISTORY_MSG_483;CAM02 - Yb scene +!HISTORY_MSG_484;CAM02 - Auto Yb scene +!HISTORY_MSG_485;Lens Correction +!HISTORY_MSG_486;Lens Correction - Camera +!HISTORY_MSG_487;Lens Correction - Lens +!HISTORY_MSG_488;Dynamic Range Compression +!HISTORY_MSG_490;DRC - Amount +!HISTORY_MSG_491;White Balance +!HISTORY_MSG_492;RGB Curves +!HISTORY_MSG_493;L*a*b* Adjustments +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors +!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction +!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method +!HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount +!HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness +!HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast +!HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Local Contrast - Lightness +!HISTORY_MSG_LOCALCONTRAST_RADIUS;Local Contrast - Radius +!HISTORY_MSG_METADATA_MODE;Metadata copy mode +!HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold +!HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion +!HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction +!HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength +!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: +!IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. +!IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. +!IPTCPANEL_COPYRIGHT;Copyright notice +!IPTCPANEL_COPYRIGHTHINT;Enter a Notice on the current owner of the Copyright for this image, such as ©2008 Jane Doe. +!IPTCPANEL_COUNTRYHINT;Enter the name of the country pictured in this image. +!IPTCPANEL_CREATOR;Creator +!IPTCPANEL_CREATORHINT;Enter the name of the person that created this image. +!IPTCPANEL_CREATORJOBTITLE;Creator's job title +!IPTCPANEL_CREATORJOBTITLEHINT;Enter the Job Title of the person listed in the Creator field. +!IPTCPANEL_DATECREATEDHINT;Enter the Date the image was taken. +!IPTCPANEL_DESCRIPTION;Description +!IPTCPANEL_DESCRIPTIONHINT;Enter a "caption" describing the who, what, and why of what is happening in this image, this might include names of people, and/or their role in the action that is taking place within the image. +!IPTCPANEL_DESCRIPTIONWRITER;Description writer +!IPTCPANEL_DESCRIPTIONWRITERHINT;Enter the name of the person involved in writing, editing or correcting the description of the image. +!IPTCPANEL_HEADLINEHINT;Enter a brief publishable synopsis or summary of the contents of the image. +!IPTCPANEL_INSTRUCTIONSHINT;Enter information about embargoes, or other restrictions not covered by the Copyright field. +!IPTCPANEL_KEYWORDSHINT;Enter any number of keywords, terms or phrases used to express the subject matter in the image. +!IPTCPANEL_PROVINCE;Province or state +!IPTCPANEL_PROVINCEHINT;Enter the name of the province or state pictured in this image. +!IPTCPANEL_SOURCEHINT;Enter or edit the name of a person or party who has a role in the content supply chain, such as a person or entity from whom you received this image from. +!IPTCPANEL_SUPPCATEGORIES;Supplemental categories +!IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image. +!IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. +!IPTCPANEL_TRANSREFERENCE;Job ID +!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. +!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters +!LENSPROFILE_CORRECTION_LCPFILE;LCP File +!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters +!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator +!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor +!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. +!MAIN_TAB_ADVANCED;Advanced +!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_INSPECT; Inspect +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MONITOR_PROFILE_SYSTEM;System default +!OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. +!OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. +!OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. +!PARTIALPASTE_ADVANCEDGROUP;Advanced Settings +!PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_LOCALCONTRAST;Local contrast +!PARTIALPASTE_METADATA;Metadata mode +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!PARTIALPASTE_PRSHARPENING;Post-resize sharpening +!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift +!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border +!PARTIALPASTE_RAW_IMAGENUM;Sub-image +!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift +!PARTIALPASTE_RETINEX;Retinex +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression +!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!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 +!PREFERENCES_CURVEBBOXPOS_LEFT;Left +!PREFERENCES_CURVEBBOXPOS_RIGHT;Right +!PREFERENCES_D50_OLD;5000K +!PREFERENCES_DIRECTORIES;Directories +!PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser +!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. +!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 +!PREFERENCES_GREYSC;Scene Yb luminance (%) +!PREFERENCES_GREYSC18;Yb=18 CIE L#50 +!PREFERENCES_GREYSCA;Automatic +!PREFERENCES_IMG_RELOAD_NEEDED;These changes require the image to be reloaded (or a new image to be opened) to take effect. +!PREFERENCES_INSPECT_LABEL;Inspect +!PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images +!PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. +!PREFERENCES_LANG;Language +!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders +!PREFERENCES_MONINTENT;Default rendering intent +!PREFERENCES_MONITOR;Monitor +!PREFERENCES_MONPROFILE;Default color profile +!PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. +!PREFERENCES_NAVIGATIONFRAME;Navigation +!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel +!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. +!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) +!PREFERENCES_PREVDEMO;Preview Demosaic Method +!PREFERENCES_PREVDEMO_FAST;Fast +!PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: +!PREFERENCES_PREVDEMO_SIDECAR;As in PP3 +!PREFERENCES_PRINTER;Printer (Soft-Proofing) +!PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file +!PREFERENCES_PROFILESAVELOCATION;Processing profile saving location +!PREFERENCES_PROFILE_NONE;None +!PREFERENCES_PRTINTENT;Rendering intent +!PREFERENCES_PRTPROFILE;Color profile +!PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset +!PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now +!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font +!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. +!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar +!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance +!PREFERENCES_THEME;Theme +!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview +!PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show +!PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering +!PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise +!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file +!PROFILEPANEL_PDYNAMIC;Dynamic +!QINFO_FRAMECOUNT;%2 frames +!QINFO_HDR;HDR / %2 frame(s) +!QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!SAMPLEFORMAT_0;Unknown data format +!SAMPLEFORMAT_1;8-bit unsigned +!SAMPLEFORMAT_2;16-bit unsigned +!SAMPLEFORMAT_4;24-bit LogLuv +!SAMPLEFORMAT_8;32-bit LogLuv +!SAMPLEFORMAT_16;16-bit floating-point +!SAMPLEFORMAT_32;24-bit floating-point +!SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point +!SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. +!SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. +!SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TP_BWMIX_MIXC;Channel Mixer +!TP_BWMIX_NEUTRAL;Reset +!TP_CBDL_AFT;After Black-and-White +!TP_CBDL_BEF;Before Black-and-White +!TP_CBDL_METHOD;Process located +!TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_NEUTRAL;Reset +!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values +!TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 +!TP_COLORAPP_YB;Yb% (mean luminance) +!TP_COLORAPP_YBSCENE;Yb% (mean luminance) +!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance +!TP_COLORTONING_LABGRID;L*a*b* color correction grid +!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 +!TP_CROP_GTHARMMEANS;Harmonic Means +!TP_CROP_GTTRIANGLE1;Golden Triangles 1 +!TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones +!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatic global +!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Try to evaluate chroma noise\nBe careful, this calculation is average, and is quite subjective ! +!TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Chrominance curve +!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_CHROMINANCE_FRAME;Chrominance +!TP_DIRPYRDENOISE_CHROMINANCE_MANUAL;Manual +!TP_DIRPYRDENOISE_CHROMINANCE_METHOD;Method +!TP_DIRPYRDENOISE_CHROMINANCE_METHODADVANCED_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. +!TP_DIRPYRDENOISE_CHROMINANCE_METHOD_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nAutomatic multi-zones\nNo preview - works only during saving, but using the "Preview" method by matching the tile size and center to the preview size and center you can get an idea of the expected results.\nThe image is divided into tiles (about 10 to 70 depending on image size) and each tile receives its own chrominance noise reduction settings.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. +!TP_DIRPYRDENOISE_CHROMINANCE_PMZ;Preview multi-zones +!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW;Preview +!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEWRESIDUAL_INFO_TOOLTIP;Displays the remaining noise levels of the part of the image visible in the preview after wavelet.\n\n>300 Very noisy\n100-300 Noisy\n50-100 A little noisy\n<50 Very low noise\n\nBeware, the values will differ between RGB and L*a*b* mode. The RGB values are less accurate because the RGB mode does not completely separate luminance and chrominance. +!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_INFO;Preview size=%1, Center: Px=%2 Py=%3 +!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Preview noise: Mean=%1 High=%2 +!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Preview noise: Mean= - High= - +!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Tile size=%1, Center: Tx=%2 Ty=%3 +!TP_DIRPYRDENOISE_LABEL;Noise Reduction +!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control +!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance +!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* +!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only +!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) +!TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Applying three median filter iterations with a 3×3 window size often leads to better results than using one median filter iteration with a 7×7 window size. +!TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Apply a median filter of the desired window size. The larger the window's size, the longer it takes.\n\n3×3 soft: treats 5 pixels in a 3×3 pixel window.\n3×3: treats 9 pixels in a 3×3 pixel window.\n5×5 soft: treats 13 pixels in a 5×5 pixel window.\n5×5: treats 25 pixels in a 5×5 pixel window.\n7×7: treats 49 pixels in a 7×7 pixel window.\n9×9: treats 81 pixels in a 9×9 pixel window.\n\nSometimes it is possible to achieve higher quality running several iterations with a smaller window size than one iteration with a larger one. +!TP_DIRPYRDENOISE_SLI;Slider +!TP_DIRPYRDENOISE_TYPE_3X3;3×3 +!TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 soft +!TP_DIRPYRDENOISE_TYPE_5X5;5×5 +!TP_DIRPYRDENOISE_TYPE_5X5SOFT;5×5 soft +!TP_DIRPYRDENOISE_TYPE_7X7;7×7 +!TP_DIRPYRDENOISE_TYPE_9X9;9×9 +!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts +!TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. +!TP_EPD_GAMMA;Gamma +!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors +!TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve +!TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. +!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance +!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual +!TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee is configured to look for Hald CLUT images, which are used for the Film Simulation tool, in a folder which is taking too long to load.\nGo to Preferences > Image Processing > Film Simulation\nto see which folder is being used. You should either point RawTherapee to a folder which contains only Hald CLUT images and nothing more, or to an empty folder if you don't want to use the Film Simulation tool.\n\nRead the Film Simulation article in RawPedia for more information.\n\nDo you want to cancel the scan now? +!TP_ICM_APPLYBASELINEEXPOSUREOFFSET;Baseline exposure +!TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Employ the embedded DCP baseline exposure offset. The setting is only available if the selected DCP has one. +!TP_ICM_APPLYHUESATMAP;Base table +!TP_ICM_APPLYHUESATMAP_TOOLTIP;Employ the embedded DCP base table (HueSatMap). The setting is only available if the selected DCP has one. +!TP_ICM_APPLYLOOKTABLE;Look table +!TP_ICM_APPLYLOOKTABLE_TOOLTIP;Employ the embedded DCP look table. The setting is only available if the selected DCP has one. +!TP_ICM_BPC;Black Point Compensation +!TP_ICM_PROFILEINTENT;Rendering Intent +!TP_ICM_SAVEREFERENCE;Save Reference Image +!TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance +!TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LOCALCONTRAST_AMOUNT;Amount +!TP_LOCALCONTRAST_DARKNESS;Darkness level +!TP_LOCALCONTRAST_LABEL;Local Contrast +!TP_LOCALCONTRAST_LIGHTNESS;Lightness level +!TP_LOCALCONTRAST_RADIUS;Radius +!TP_METADATA_EDIT;Apply modifications +!TP_METADATA_MODE;Metadata copy mode +!TP_METADATA_STRIP;Strip all metadata +!TP_METADATA_TUNNEL;Copy unchanged +!TP_NEUTRAL;Reset +!TP_PREPROCESS_LINEDENOISE_DIRECTION;Direction +!TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both +!TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Horizontal +!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows +!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical +!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. +!TP_PRSHARPENING_LABEL;Post-Resize Sharpening +!TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift +!TP_RAWCACORR_CASTR;Strength +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast +!TP_RAW_AHD;AHD +!TP_RAW_AMAZE;AMaZE +!TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border +!TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 +!TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold +!TP_RAW_EAHD;EAHD +!TP_RAW_FAST;Fast +!TP_RAW_HD;Threshold +!TP_RAW_HD_TOOLTIP;Lower values make hot/dead pixel detection more aggressive, but false positives may lead to artifacts. If you notice any artifacts appearing when enabling the Hot/Dead Pixel Filters, gradually increase the threshold value until they disappear. +!TP_RAW_HPHD;HPHD +!TP_RAW_IGV;IGV +!TP_RAW_IMAGENUM;Sub-image +!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. +!TP_RAW_LMMSE;LMMSE +!TP_RAW_MONO;Mono +!TP_RAW_NONE;None (Shows sensor pattern) +!TP_RAW_PIXELSHIFT;Pixel Shift +!TP_RAW_PIXELSHIFTBLUR;Blur motion mask +!TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion +!TP_RAW_PIXELSHIFTEPERISO;Sensitivity +!TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nHigher values increase sensitivity of motion detection.\nChange in small steps and watch the motion mask while changing.\nIncrease sensitivity for underexposed or high ISO images. +!TP_RAW_PIXELSHIFTEQUALBRIGHT;Equalize brightness of frames +!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel +!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels. +!TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to the brightness of the selected frame.\nIf there are overexposed areas in the frames select the brightest frame to avoid magenta color cast in overexposed areas or enable motion correction. +!TP_RAW_PIXELSHIFTGREEN;Check green channel for motion +!TP_RAW_PIXELSHIFTHOLEFILL;Fill holes in motion mask +!TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Fill holes in motion mask +!TP_RAW_PIXELSHIFTLMMSE;Use LMMSE for moving parts +!TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Use LMMSE instead of AMaZE for areas of motion.\nUseful for high ISO images. +!TP_RAW_PIXELSHIFTMEDIAN;Use median for moving parts +!TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use median of all frames instead of selected frame for regions with motion.\nRemoves objects which are at different places in all frames.\nGives motion effect on slow moving (overlapping) objects. +!TP_RAW_PIXELSHIFTMM_AUTO;Automatic +!TP_RAW_PIXELSHIFTMM_CUSTOM;Custom +!TP_RAW_PIXELSHIFTMM_OFF;Off +!TP_RAW_PIXELSHIFTMOTIONMETHOD;Motion Correction +!TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 means no motion detection.\n1 - 99 means motion will be detected according to this value. Increase value to increase detection rate.\n100 means the AMaZE-demosaiced frame will be used. +!TP_RAW_PIXELSHIFTNONGREENCROSS;Check red/blue channels for motion +!TP_RAW_PIXELSHIFTSHOWMOTION;Show motion mask +!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Show only motion mask +!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Shows the motion mask without the image. +!TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. +!TP_RAW_PIXELSHIFTSIGMA;Blur radius +!TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. +!TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions +!TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. +!TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 +!TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling +!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL +!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* +!TP_RETINEX_CONTEDIT_LH;Hue equalizer +!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CURVEEDITOR_CD;L=f(L) +!TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. +!TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) +!TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. +!TP_RETINEX_CURVEEDITOR_MAP;L=f(L) +!TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! +!TP_RETINEX_EQUAL;Equalizer +!TP_RETINEX_FREEGAMMA;Free gamma +!TP_RETINEX_GAIN;Gain +!TP_RETINEX_GAINOFFS;Gain and Offset (brightness) +!TP_RETINEX_GAINTRANSMISSION;Gain transmission +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. +!TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. +!TP_RETINEX_GAMMA;Gamma +!TP_RETINEX_GAMMA_FREE;Free +!TP_RETINEX_GAMMA_HIGH;High +!TP_RETINEX_GAMMA_LOW;Low +!TP_RETINEX_GAMMA_MID;Middle +!TP_RETINEX_GAMMA_NONE;None +!TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). +!TP_RETINEX_GRAD;Transmission gradient +!TP_RETINEX_GRADS;Strength gradient +!TP_RETINEX_GRADS_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Strength is reduced when iterations increase, and conversely. +!TP_RETINEX_GRAD_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Variance and Threshold are reduced when iterations increase, and conversely. +!TP_RETINEX_HIGH;High +!TP_RETINEX_HIGHLIG;Highlight +!TP_RETINEX_HIGHLIGHT;Highlight threshold +!TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. +!TP_RETINEX_HSLSPACE_LIN;HSL-Linear +!TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic +!TP_RETINEX_ITER;Iterations (Tone-mapping) +!TP_RETINEX_ITERF;Tone mapping +!TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. +!TP_RETINEX_LABEL;Retinex +!TP_RETINEX_LABEL_MASK;Mask +!TP_RETINEX_LABSPACE;L*a*b* +!TP_RETINEX_LOW;Low +!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP_GAUS;Gaussian mask +!TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) +!TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) +!TP_RETINEX_MAP_METHOD_TOOLTIP;Use the mask generated by the Gaussian function above (Radius, Method) to reduce halos and artifacts.\n\nCurve only: apply a diagonal contrast curve on the mask.\nBeware of artifacts!\n\nGaussian mask: generate and use a Gaussian blur of the original mask.\nQuick.\n\nSharp mask: generate and use a wavelet on the original mask.\nSlow. +!TP_RETINEX_MAP_NONE;None +!TP_RETINEX_MEDIAN;Transmission median filter +!TP_RETINEX_METHOD;Method +!TP_RETINEX_METHOD_TOOLTIP;Low = Reinforce low light.\nUniform = Equalize action.\nHigh = Reinforce high light.\nHighlights = Remove magenta in highlights. +!TP_RETINEX_MLABEL;Restored haze-free Min=%1 Max=%2 +!TP_RETINEX_MLABEL_TOOLTIP;Should be near min=0 max=32768\nRestored image with no mixture. +!TP_RETINEX_NEIGHBOR;Radius +!TP_RETINEX_NEUTRAL;Reset +!TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values. +!TP_RETINEX_OFFSET;Offset (brightness) +!TP_RETINEX_SCALES;Gaussian gradient +!TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely. +!TP_RETINEX_SETTINGS;Settings +!TP_RETINEX_SKAL;Scale +!TP_RETINEX_SLOPE;Free gamma slope +!TP_RETINEX_STRENGTH;Strength +!TP_RETINEX_THRESHOLD;Threshold +!TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss. +!TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4 +!TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 +!TP_RETINEX_TLABEL_TOOLTIP;Transmission map result.\nMin and Max are used by Variance.\nMean and Sigma.\nTm=Min TM=Max of transmission map. +!TP_RETINEX_TRANF;Transmission +!TP_RETINEX_TRANSMISSION;Transmission map +!TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. +!TP_RETINEX_UNIFORM;Uniform +!TP_RETINEX_VARIANCE;Contrast +!TP_RETINEX_VARIANCE_TOOLTIP;Low variance increase local contrast and saturation, but can lead to artifacts. +!TP_RETINEX_VIEW;Process +!TP_RETINEX_VIEW_MASK;Mask +!TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. +!TP_RETINEX_VIEW_NONE;Standard +!TP_RETINEX_VIEW_TRAN;Transmission - Auto +!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed +!TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_CONTRAST;Contrast threshold +!TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength +!TP_TM_FATTAL_AMOUNT;Amount +!TP_TM_FATTAL_ANCHOR;Anchor +!TP_TM_FATTAL_LABEL;Dynamic Range Compression +!TP_WAVELET_1;Level 1 +!TP_WAVELET_2;Level 2 +!TP_WAVELET_3;Level 3 +!TP_WAVELET_4;Level 4 +!TP_WAVELET_5;Level 5 +!TP_WAVELET_6;Level 6 +!TP_WAVELET_7;Level 7 +!TP_WAVELET_8;Level 8 +!TP_WAVELET_9;Level 9 +!TP_WAVELET_APPLYTO;Apply To +!TP_WAVELET_AVOID;Avoid color shift +!TP_WAVELET_B0;Black +!TP_WAVELET_B1;Grey +!TP_WAVELET_B2;Residual +!TP_WAVELET_BACKGROUND;Background +!TP_WAVELET_BACUR;Curve +!TP_WAVELET_BALANCE;Contrast balance d/v-h +!TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. +!TP_WAVELET_BALCHRO;Chroma balance +!TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. +!TP_WAVELET_BANONE;None +!TP_WAVELET_BASLI;Slider +!TP_WAVELET_BATYPE;Contrast balance method +!TP_WAVELET_CBENAB;Toning and Color Balance +!TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted +!TP_WAVELET_CCURVE;Local contrast +!TP_WAVELET_CH1;Whole chroma range +!TP_WAVELET_CH2;Saturated/pastel +!TP_WAVELET_CH3;Link contrast levels +!TP_WAVELET_CHCU;Curve +!TP_WAVELET_CHR;Chroma-contrast link strength +!TP_WAVELET_CHRO;Saturated/pastel threshold +!TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. +!TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" +!TP_WAVELET_CHSL;Sliders +!TP_WAVELET_CHTYPE;Chrominance method +!TP_WAVELET_COLORT;Opacity Red-Green +!TP_WAVELET_COMPCONT;Contrast +!TP_WAVELET_COMPGAMMA;Compression gamma +!TP_WAVELET_COMPGAMMA_TOOLTIP;Adjusting the gamma of the residual image allows you to equilibrate the data and histogram. +!TP_WAVELET_COMPTM;Tone mapping +!TP_WAVELET_CONTEDIT;'After' contrast curve +!TP_WAVELET_CONTR;Gamut +!TP_WAVELET_CONTRA;Contrast +!TP_WAVELET_CONTRAST_MINUS;Contrast - +!TP_WAVELET_CONTRAST_PLUS;Contrast + +!TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. +!TP_WAVELET_CTYPE;Chrominance control +!TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). +!TP_WAVELET_CURVEEDITOR_CH;Contrast levels=f(Hue) +!TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. +!TP_WAVELET_CURVEEDITOR_CL;L +!TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Applies a final contrast luminance curve at the end of the wavelet treatment. +!TP_WAVELET_CURVEEDITOR_HH;HH +!TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Modifies the residual image's hue as a function of hue. +!TP_WAVELET_DALL;All directions +!TP_WAVELET_DAUB;Edge performance +!TP_WAVELET_DAUB2;D2 - low +!TP_WAVELET_DAUB4;D4 - standard +!TP_WAVELET_DAUB6;D6 - standard plus +!TP_WAVELET_DAUB10;D10 - medium +!TP_WAVELET_DAUB14;D14 - high +!TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. +!TP_WAVELET_DONE;Vertical +!TP_WAVELET_DTHR;Diagonal +!TP_WAVELET_DTWO;Horizontal +!TP_WAVELET_EDCU;Curve +!TP_WAVELET_EDGCONT;Local contrast +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. +!TP_WAVELET_EDGE;Edge Sharpness +!TP_WAVELET_EDGEAMPLI;Base amplification +!TP_WAVELET_EDGEDETECT;Gradient sensitivity +!TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) +!TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) +!TP_WAVELET_EDGEDETECTTHR_TOOLTIP;This adjuster lets you target edge detection for example to avoid applying edge sharpness to fine details, such as noise in the sky. +!TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. +!TP_WAVELET_EDGESENSI;Edge sensitivity +!TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. +!TP_WAVELET_EDGTHRESH;Detail +!TP_WAVELET_EDGTHRESH_TOOLTIP;Change the repartition between the first levels and the others. The higher the threshold the more the action is centered on the first levels. Be careful with negative values, they increase the action of high levels and can introduce artifacts. +!TP_WAVELET_EDRAD;Radius +!TP_WAVELET_EDRAD_TOOLTIP;This radius adjustment is very different from those in other sharpening tools. Its value is compared to each level through a complex function. In this sense, a value of zero still has an effect. +!TP_WAVELET_EDSL;Threshold Sliders +!TP_WAVELET_EDTYPE;Local contrast method +!TP_WAVELET_EDVAL;Strength +!TP_WAVELET_FINAL;Final Touchup +!TP_WAVELET_FINEST;Finest +!TP_WAVELET_HIGHLIGHT;Highlight luminance range +!TP_WAVELET_HS1;Whole luminance range +!TP_WAVELET_HS2;Shadows/Highlights +!TP_WAVELET_HUESKIN;Skin hue +!TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. +!TP_WAVELET_HUESKY;Sky hue +!TP_WAVELET_HUESKY_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. +!TP_WAVELET_ITER;Delta balance levels +!TP_WAVELET_ITER_TOOLTIP;Left: increase low levels and reduce high levels,\nRight: reduce low levels and increase high levels. +!TP_WAVELET_LABEL;Wavelet Levels +!TP_WAVELET_LARGEST;Coarsest +!TP_WAVELET_LEVCH;Chroma +!TP_WAVELET_LEVDIR_ALL;All levels in all directions +!TP_WAVELET_LEVDIR_INF;Below or equal the level +!TP_WAVELET_LEVDIR_ONE;One level +!TP_WAVELET_LEVDIR_SUP;Above the level +!TP_WAVELET_LEVELS;Wavelet levels +!TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. +!TP_WAVELET_LEVF;Contrast +!TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 +!TP_WAVELET_LEVONE;Level 2 +!TP_WAVELET_LEVTHRE;Level 4 +!TP_WAVELET_LEVTWO;Level 3 +!TP_WAVELET_LEVZERO;Level 1 +!TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength +!TP_WAVELET_LIPST;Enhanced algoritm +!TP_WAVELET_LOWLIGHT;Shadow luminance range +!TP_WAVELET_MEDGREINF;First level +!TP_WAVELET_MEDI;Reduce artifacts in blue sky +!TP_WAVELET_MEDILEV;Edge detection +!TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. +!TP_WAVELET_NEUTRAL;Neutral +!TP_WAVELET_NOIS;Denoise +!TP_WAVELET_NOISE;Denoise and Refine +!TP_WAVELET_NPHIGH;High +!TP_WAVELET_NPLOW;Low +!TP_WAVELET_NPNONE;None +!TP_WAVELET_NPTYPE;Neighboring pixels +!TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. +!TP_WAVELET_OPACITY;Opacity Blue-Yellow +!TP_WAVELET_OPACITYW;Contrast balance d/v-h curve +!TP_WAVELET_OPACITYWL;Final local contrast +!TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. +!TP_WAVELET_PASTEL;Pastel chroma +!TP_WAVELET_PROC;Process +!TP_WAVELET_RE1;Reinforced +!TP_WAVELET_RE2;Unchanged +!TP_WAVELET_RE3;Reduced +!TP_WAVELET_RESCHRO;Chroma +!TP_WAVELET_RESCON;Shadows +!TP_WAVELET_RESCONH;Highlights +!TP_WAVELET_RESID;Residual Image +!TP_WAVELET_SAT;Saturated chroma +!TP_WAVELET_SETTINGS;Wavelet Settings +!TP_WAVELET_SKIN;Skin targetting/protection +!TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. +!TP_WAVELET_SKY;Sky targetting/protection +!TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. +!TP_WAVELET_STREN;Strength +!TP_WAVELET_STRENGTH;Strength +!TP_WAVELET_SUPE;Extra +!TP_WAVELET_THR;Shadows threshold +!TP_WAVELET_THRESHOLD;Highlight levels +!TP_WAVELET_THRESHOLD2;Shadow levels +!TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). +!TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. +!TP_WAVELET_THRH;Highlights threshold +!TP_WAVELET_TILESBIG;Big tiles +!TP_WAVELET_TILESFULL;Full image +!TP_WAVELET_TILESIZE;Tiling method +!TP_WAVELET_TILESLIT;Little tiles +!TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. +!TP_WAVELET_TMSTRENGTH;Compression strength +!TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. +!TP_WAVELET_TMTYPE;Compression method +!TP_WAVELET_TON;Toning +!TP_WBALANCE_TEMPBIAS;AWB temperature bias +!TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". From b39b3e932fa3edfc0a5772c46ce630ad2595dabf Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 9 Jan 2019 22:50:07 +0100 Subject: [PATCH 12/21] generateTranslationDiffs --- rtdata/languages/Catala | 4 + rtdata/languages/Chinese (Simplified) | 4 + rtdata/languages/Chinese (Traditional) | 4 + rtdata/languages/Czech | 8 ++ rtdata/languages/Dansk | 4 + rtdata/languages/Deutsch | 8 ++ rtdata/languages/English (UK) | 4 + rtdata/languages/English (US) | 4 + rtdata/languages/Espanol | 4 + rtdata/languages/Euskara | 4 + rtdata/languages/Francais | 8 ++ rtdata/languages/Greek | 4 + rtdata/languages/Hebrew | 4 + rtdata/languages/Italiano | 4 + rtdata/languages/Japanese | 8 ++ rtdata/languages/Latvian | 4 + rtdata/languages/Magyar | 4 + rtdata/languages/Nederlands | 4 + rtdata/languages/Norsk BM | 4 + rtdata/languages/Polish | 4 + rtdata/languages/Polish (Latin Characters) | 4 + rtdata/languages/Portugues (Brasil) | 4 + rtdata/languages/Russian | 4 + rtdata/languages/Serbian (Cyrilic Characters) | 4 + rtdata/languages/Serbian (Latin Characters) | 4 + rtdata/languages/Slovak | 4 + rtdata/languages/Suomi | 4 + rtdata/languages/Swedish | 4 + rtdata/languages/Turkish | 4 + rtdata/languages/Ukrainian | 131 ++++++++++++++---- rtdata/languages/default | 4 +- 31 files changed, 238 insertions(+), 29 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index ce7e9e378..235f35401 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1358,6 +1358,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1442,6 +1443,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !MAIN_MSG_WRITEFAILED;Failed to write\n"%1"\n\nMake sure that the folder exists and that you have write permission to it. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -2132,6 +2135,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RGBCURVES_LUMAMODE_TOOLTIP;Luminosity mode allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color. !TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter !TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index f0d50ec3e..ad3104b5f 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1429,6 +1429,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1511,6 +1512,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !MAIN_MSG_WRITEFAILED;Failed to write\n"%1"\n\nMake sure that the folder exists and that you have write permission to it. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 !MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 !MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: white\nShortcut: 9 @@ -2102,6 +2105,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SHARPENMICRO_LABEL;Microcontrast diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index b6e4dedbc..8b3c23fbd 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -1026,6 +1026,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1125,6 +1126,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2067,6 +2070,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 56900e28b..fd61b1ab0 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2344,3 +2344,11 @@ ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit celý obrázek obrazovce\nZkratka: Alt< ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: + ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!TP_SHARPENING_BLUR;Blur radius diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 72b795c29..367747256 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -1021,6 +1021,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1121,6 +1122,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 4bf12cbed..5ec13a759 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2408,3 +2408,11 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen.\nTaste: Alt + f ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: + ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!TP_SHARPENING_BLUR;Blur radius diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index edde8946e..db2c57068 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -865,6 +865,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength @@ -1002,6 +1003,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE;Exposure !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_FILTER; Filter !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_IPTC;IPTC @@ -2044,6 +2047,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only !TP_SHARPENING_AMOUNT;Amount +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENING_EDRADIUS;Radius !TP_SHARPENING_EDTOLERANCE;Edge tolerance diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 078989905..dacd13b4f 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -776,6 +776,7 @@ !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -915,6 +916,8 @@ !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE;Exposure !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_FILTER; Filter !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_IPTC;IPTC @@ -2034,6 +2037,7 @@ !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only !TP_SHARPENING_AMOUNT;Amount +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENING_EDRADIUS;Radius !TP_SHARPENING_EDTOLERANCE;Edge tolerance diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 3260d167c..9cb020dcd 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -2459,3 +2459,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !!!!!!!!!!!!!!!!!!!!!!!!! !CURVEEDITOR_CATMULLROM;Flexible +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!TP_SHARPENING_BLUR;Blur radius diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 6d947cdd9..d763c24e3 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 987774546..7f63a8796 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -2333,3 +2333,11 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: Alt-f ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: + ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!TP_SHARPENING_BLUR;Blur radius diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index eba373871..94dba53b7 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -1021,6 +1021,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1121,6 +1122,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index faa279860..4fd30cfc0 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 0c0f66576..0ec22370d 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1605,6 +1605,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1681,6 +1682,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -2141,6 +2144,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index ad8996907..302a2ee75 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -2337,3 +2337,11 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!TP_SHARPENING_BLUR;Blur radius diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 83fd32895..a15ec130d 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index d13d6d5a4..19033e458 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1291,6 +1291,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1375,6 +1376,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !MAIN_MSG_WRITEFAILED;Failed to write\n"%1"\n\nMake sure that the folder exists and that you have write permission to it. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: theme-based\nShortcut: 9 !MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: black\nShortcut: 9 @@ -2124,6 +2127,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RGBCURVES_LUMAMODE_TOOLTIP;Luminosity mode allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color. !TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter !TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 225b3ecf4..8c91bf3c8 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2135,6 +2135,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -2185,6 +2186,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. @@ -2343,6 +2346,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_RETINEX_GAINTRANSMISSION;Gain transmission !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_MAP;Method +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 1fd3e18c1..245c3befc 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -1021,6 +1021,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1121,6 +1122,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 916ea2b90..d0ac7f833 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1687,6 +1687,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1763,6 +1764,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -2147,6 +2150,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 6b18c604e..b19183f5e 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -1687,6 +1687,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1763,6 +1764,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -2147,6 +2150,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 1b25b43dc..030e838ec 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2248,8 +2248,11 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift !PREFERENCES_APPEARANCE;Appearance @@ -2313,5 +2316,6 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_MAP;Method +!TP_SHARPENING_BLUR;Blur radius !TP_TM_FATTAL_THRESHOLD;Detail !TP_WBALANCE_PICKER;Pick diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index b440470a3..28231e869 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1770,6 +1770,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !ICCPROFCREATOR_COPYRIGHT;Copyright: @@ -1814,6 +1815,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default @@ -2158,6 +2161,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_WAVELET_1;Level 1 !TP_WAVELET_2;Level 2 !TP_WAVELET_3;Level 3 diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index d6e357068..29ec6210f 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1581,6 +1581,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1656,6 +1657,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -2142,6 +2145,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 4d833d202..35bbecbf0 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -1581,6 +1581,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1656,6 +1657,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -2142,6 +2145,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 0ceeab884..ff2051053 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -1083,6 +1083,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1177,6 +1178,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2075,6 +2078,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index 3c3cdc6c5..338107277 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -1023,6 +1023,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1123,6 +1124,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2066,6 +2069,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 5032496a3..f36493695 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1940,6 +1940,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -2015,6 +2016,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. @@ -2271,6 +2274,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. !TP_RETINEX_VIEW_MASK;Mask !TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index 39302869d..e89df45f0 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -1022,6 +1022,7 @@ TP_WBALANCE_TEMPERATURE;Isı !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light @@ -1122,6 +1123,8 @@ TP_WBALANCE_TEMPERATURE;Isı !MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d !MAIN_TAB_EXPORT; Fast Export !MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TAB_METADATA_TOOLTIP;Shortcut: Alt-m !MAIN_TAB_RAW;Raw @@ -2065,6 +2068,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_SHARPENEDGE_LABEL;Edges !TP_SHARPENEDGE_PASSES;Iterations !TP_SHARPENEDGE_THREE;Luminance only +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_AMOUNT;Quantity !TP_SHARPENMICRO_CONTRAST;Contrast threshold diff --git a/rtdata/languages/Ukrainian b/rtdata/languages/Ukrainian index b84516877..94c959fd5 100644 --- a/rtdata/languages/Ukrainian +++ b/rtdata/languages/Ukrainian @@ -1423,12 +1423,17 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: +!CURVEEDITOR_CATMULLROM;Flexible !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. !DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_DELETE;Delete !DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule !DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. +!DYNPROFILEEDITOR_IMGTYPE_ANY;Any +!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR +!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift +!DYNPROFILEEDITOR_IMGTYPE_STD;Standard !DYNPROFILEEDITOR_MOVE_DOWN;Move Down !DYNPROFILEEDITOR_MOVE_UP;Move Up !DYNPROFILEEDITOR_NEW;New @@ -1442,6 +1447,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !EXPORT_USE_FAST_PIPELINE;Dedicated (full processing on resized image) !EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality. !EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) +!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles +!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !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. @@ -1454,12 +1461,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILECHOOSER_FILTER_TIFF;TIFF files !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image +!GENERAL_CURRENT;Current !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !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. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. +!HISTORY_MSG_95;L*a*b* - Chromaticity !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -1642,13 +1651,32 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_486;Lens Correction - Camera !HISTORY_MSG_487;Lens Correction - Lens !HISTORY_MSG_488;Dynamic Range Compression +!HISTORY_MSG_489;DRC - Detail !HISTORY_MSG_490;DRC - Amount !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments !HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction -!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold +!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction +!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel +!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask +!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask +!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness +!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask +!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List +!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur +!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset +!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power +!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation +!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask +!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope +!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth +!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal +!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map +!HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength +!HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold +!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1671,7 +1699,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling +!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor @@ -1741,23 +1771,22 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters -!LENSPROFILE_CORRECTION_LCPFILE;LCP File -!LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters -!LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w +!MAIN_TAB_FAVORITES;Favorites +!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !PARTIALPASTE_ADVANCEDGROUP;Advanced Settings +!PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode @@ -1771,12 +1800,23 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting +!PREFERENCES_APPEARANCE;Appearance +!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font +!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color +!PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_THEME;Theme +!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit +!PREFERENCES_CACHECLEAR;Clear +!PREFERENCES_CACHECLEAR_ALL;Clear all cached files: +!PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: +!PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: +!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !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;Crop Editing +!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original @@ -1823,15 +1863,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now -!PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font -!PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar +!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now +!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings +!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files +!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. +!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1853,25 +1891,50 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen enabled:\nClick in the preview with left mouse button to add a color picker\nDrag it around while pressing the left mouse button\nDelete the color picker with a right mouse button click\nDelete all color pickers with Shift + Right mouse button click\nRight click away from any color picker to go back to the Hand tool +!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: Ctrl+Shift+right-click.\n- Revert to hand tool: right-click outside any picker. !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. +!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance +!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] +!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) !TP_COLORAPP_NEUTRAL;Reset !TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_YB;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE;Yb% (mean luminance) -!TP_COLORAPP_YBSCENE_TOOLTIP;If "auto" is enabled, Yb is calculated from the mean value of the actual image's luminance +!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 +!TP_COLORTONING_LABREGIONS;Color correction regions +!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 +!TP_COLORTONING_LABREGION_CHANNEL;Channel +!TP_COLORTONING_LABREGION_CHANNEL_ALL;All +!TP_COLORTONING_LABREGION_CHANNEL_B;Blue +!TP_COLORTONING_LABREGION_CHANNEL_G;Green +!TP_COLORTONING_LABREGION_CHANNEL_R;Red +!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C +!TP_COLORTONING_LABREGION_HUEMASK;H +!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness +!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L +!TP_COLORTONING_LABREGION_LIST_TITLE;Correction +!TP_COLORTONING_LABREGION_MASK;Mask +!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur +!TP_COLORTONING_LABREGION_OFFSET;Offset +!TP_COLORTONING_LABREGION_POWER;Power +!TP_COLORTONING_LABREGION_SATURATION;Saturation +!TP_COLORTONING_LABREGION_SHOWMASK;Show mask +!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 +!TP_CROP_RESETCROP;Reset +!TP_DEHAZE_DEPTH;Depth +!TP_DEHAZE_LABEL;Haze Removal +!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map +!TP_DEHAZE_STRENGTH;Strength !TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones !TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatic global !TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Try to evaluate chroma noise\nBe careful, this calculation is average, and is quite subjective ! @@ -1930,6 +1993,15 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically +!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file +!TP_LENSPROFILE_CORRECTION_MANUAL;Manually +!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. +!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: +!TP_LENSPROFILE_USE_CA;Chromatic aberration +!TP_LENSPROFILE_USE_GEOMETRIC;Geometric +!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: +!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1946,10 +2018,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) @@ -1962,6 +2034,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBVNG4;DCB+VNG4 +!TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold +!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2008,10 +2082,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer +!TP_RETINEX_CONTEDIT_HSL;HSL histogram +!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram +!TP_RETINEX_CONTEDIT_LH;Hue +!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) @@ -2049,7 +2123,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_LABEL_MASK;Mask !TP_RETINEX_LABSPACE;L*a*b* !TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method +!TP_RETINEX_MAP;Method !TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) @@ -2088,6 +2162,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_RETINEX_VIEW_UNSHARP;Unsharp mask +!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light @@ -2095,6 +2170,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression +!TP_TM_FATTAL_THRESHOLD;Detail !TP_WAVELET_1;Level 1 !TP_WAVELET_2;Level 2 !TP_WAVELET_3;Level 3 @@ -2258,5 +2334,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning +!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". diff --git a/rtdata/languages/default b/rtdata/languages/default index 343100124..fb024b3d5 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -908,8 +908,6 @@ MAIN_TAB_ADVANCED;Advanced MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w MAIN_TAB_COLOR;Color MAIN_TAB_COLOR_TOOLTIP;Shortcut: Alt-c -MAIN_TAB_FAVORITES;Favorites -MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u MAIN_TAB_DETAIL;Detail MAIN_TAB_DETAIL_TOOLTIP;Shortcut: Alt-d MAIN_TAB_DEVELOP; Batch Edit @@ -917,6 +915,8 @@ MAIN_TAB_EXIF;Exif MAIN_TAB_EXPORT; Fast Export MAIN_TAB_EXPOSURE;Exposure MAIN_TAB_EXPOSURE_TOOLTIP;Shortcut: Alt-e +MAIN_TAB_FAVORITES;Favorites +MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u MAIN_TAB_FILTER; Filter MAIN_TAB_INSPECT; Inspect MAIN_TAB_IPTC;IPTC From e1a467501d3705de2d1a0f6544b168c1b71fa901 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 9 Jan 2019 23:02:58 +0100 Subject: [PATCH 13/21] Removed invalid Ukrainian translation #5127 --- rtdata/languages/Ukrainian | 2339 ------------------------------------ 1 file changed, 2339 deletions(-) delete mode 100644 rtdata/languages/Ukrainian diff --git a/rtdata/languages/Ukrainian b/rtdata/languages/Ukrainian deleted file mode 100644 index 94c959fd5..000000000 --- a/rtdata/languages/Ukrainian +++ /dev/null @@ -1,2339 +0,0 @@ -#01 2019-01-04 Gregory Reshetniak - -ABOUT_TAB_BUILD;Версія -ABOUT_TAB_CREDITS;Розробники -ABOUT_TAB_LICENSE;Ліцензія -ABOUT_TAB_RELEASENOTES;Примітки до релізу -ABOUT_TAB_SPLASH;Екран привітання -BATCHQUEUE_AUTOSTART;Автостарт -BATCHQUEUE_AUTOSTARTHINT;Автоматично почати обробку якщо додано завдання -BATCHQUEUE_DESTFILENAME;Шлях до каталогу і назва файлу -BATCH_PROCESSING;Пакетна обробка -CURVEEDITOR_CURVE;Крива -CURVEEDITOR_CURVES;Криві -CURVEEDITOR_CUSTOM;Власна -CURVEEDITOR_DARKS;Темні -CURVEEDITOR_HIGHLIGHTS;Найсвітліші -CURVEEDITOR_LIGHTS;Світлі -CURVEEDITOR_LINEAR;Лінійна -CURVEEDITOR_LOADDLGLABEL;Відкрити файл кривої... -CURVEEDITOR_MINMAXCPOINTS;Еквалізація -CURVEEDITOR_NURBS;NURBS -CURVEEDITOR_PARAMETRIC;Параметрична -CURVEEDITOR_SAVEDLGLABEL;Записати файл кривої... -CURVEEDITOR_SHADOWS;Найтемніші -CURVEEDITOR_TOOLTIPCOPY;Скопіювати криву до буферу -CURVEEDITOR_TOOLTIPLINEAR;Повернути криву до лінії -CURVEEDITOR_TOOLTIPLOAD;Відкрити файл кривої -CURVEEDITOR_TOOLTIPPASTE;Вставити криву з буферу -CURVEEDITOR_TOOLTIPSAVE;Записати криву до файлу -CURVEEDITOR_TYPE;Тип: -DIRBROWSER_FOLDERS;Каталоги -EDITWINDOW_TITLE;Редактор зображень -EDIT_OBJECT_TOOLTIP;Показати віджет у вікні передпоказу -EDIT_PIPETTE_TOOLTIP;Щоб додати точку на кривій потрібно тримати Ctrl натискаючи ліву клавішу миші на цьому регіоні зображення.\nЩоб пересунути точку тимайте Ctrl, натисніть лівою клавішею миші, відпустіть Ctrl і, тримаючи ліву клавішу миші пересуньте курсор на нову позицію. -EXIFFILTER_APERTURE;Діафрагма -EXIFFILTER_CAMERA;Камера -EXIFFILTER_EXPOSURECOMPENSATION;Корекція експозиції -EXIFFILTER_FILETYPE;Тип файлу -EXIFFILTER_FOCALLEN;Фокусна відстань -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Об'єктив -EXIFFILTER_METADATAFILTER;Увімкнути фільтри метаданих -EXIFFILTER_SHUTTER;Затвор -EXIFPANEL_ADDEDIT;Додати/Змінити -EXIFPANEL_ADDEDITHINT;Додати теѓ або змінити теѓ -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Впиши значення -EXIFPANEL_ADDTAGDLG_SELECTTAG;Вибрати теѓ -EXIFPANEL_ADDTAGDLG_TITLE;Додати/Змінити теѓ -EXIFPANEL_KEEP;Запам'ятати -EXIFPANEL_KEEPHINT;Записати теѓи після запису вихідного файлу -EXIFPANEL_REMOVE;Видалити -EXIFPANEL_REMOVEHINT;Усунути теѓи після запису вихідного файлу -EXIFPANEL_RESET;Відновити -EXIFPANEL_RESETALL;Відновити всі -EXIFPANEL_RESETALLHINT;Повернути значення теѓів -EXIFPANEL_RESETHINT;Повернути початкові значення теѓів -EXIFPANEL_SUBDIRECTORY;Підкаталог -EXPORT_BYPASS_ALL;Вибрати / Вибрати всі -EXPORT_BYPASS_DEFRINGE;Не усувати віньетування -EXPORT_BYPASS_DIRPYRDENOISE;Не усувати шуми -EXPORT_BYPASS_DIRPYREQUALIZER;Не додавати контраст в деталях -EXPORT_BYPASS_RAW_CA;Не усувати хроматичні аберації (raw) -EXPORT_BYPASS_RAW_CCSTEPS;Не виправляти баланс кольорів (raw) -EXPORT_BYPASS_RAW_DCB_ENHANCE;Не виправляти DCB (raw) -EXPORT_BYPASS_RAW_DCB_ITERATIONS;Не ітерувати DCB (raw) -EXPORT_BYPASS_RAW_DF;Не використовувати темний кадр (raw) -EXPORT_BYPASS_RAW_FF;Не використовувати пустий кадр (raw) -EXPORT_BYPASS_RAW_GREENTHRESH;Не вирівнювати зелені тони (raw) -EXPORT_BYPASS_RAW_LINENOISE;Не зменшувати лінійні шуми (raw) -EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Не виправляти LMMSE [raw] -EXPORT_BYPASS_SHARPENEDGE;Не збільшувати детальність країв -EXPORT_BYPASS_SHARPENING;Не збільшувати детальність -EXPORT_BYPASS_SHARPENMICRO;Не збільшувати мікроконтраст -EXPORT_BYPASS_SH_HQ;Не коректувати світло-тінь -EXPORT_FASTEXPORTOPTIONS;Опції швидкого експорту -EXPORT_INSTRUCTIONS;Опції швидкого експорту дозволяють встановити налаштування для пришвидшеної генерації зображень. -EXPORT_MAXHEIGHT;Максимальна висота: -EXPORT_MAXWIDTH;Максимальна широта: -EXPORT_PUTTOQUEUEFAST; Додати до черги швидкого експорту -EXPORT_RAW_DMETHOD;Алгоритм демозаїзації -EXTPROGTARGET_1;raw -EXTPROGTARGET_2;виконано в черзі -FILEBROWSER_ADDDELTEMPLATE;Додати/Усунути шаблон... -FILEBROWSER_APPLYPROFILE;Застосувати профіль -FILEBROWSER_APPLYPROFILE_PARTIAL;Застосувати частковий профіль -FILEBROWSER_AUTODARKFRAME;Автоматично уживати темні кадри -FILEBROWSER_AUTOFLATFIELD;Автоматично уживати пусті кадри -FILEBROWSER_BROWSEPATHBUTTONHINT;Показати вибрану стежку -FILEBROWSER_BROWSEPATHHINT;Показати вибрану стежку\n Комбінація \nCtrl-o для підсвічення тексту стежки\nEnter / Ctrl-Enter Для переходу стежкою;\nEscДля відмови від змін\nShift-Esc Для зняття фокусу.\n\n ~ є символом домашьного каталогу користувача. \n! є символом каталогу зображень користувача. -FILEBROWSER_CACHE;Кеш -FILEBROWSER_CLEARPROFILE;Очистити профіль -FILEBROWSER_COLORLABEL_TOOLTIP;Колорові теѓи\n\nУживання:\nShift-Ctrl-0 Без кольору\nShift-Ctrl-1 Червоний\nShift-Ctrl-2 Жовтий\nShift-Ctrl-3 Зелений\nShift-Ctrl-4 Синій\nShift-Ctrl-5 Фіолетовий -FILEBROWSER_COPYPROFILE;Копіювати профіль -FILEBROWSER_CURRENT_NAME;Існуюча назва: -FILEBROWSER_DARKFRAME;Темний кадр -FILEBROWSER_DELETEDLGLABEL;Підтвердження усування файлу -FILEBROWSER_DELETEDLGMSG;Справді видалити зазначені %1 файл(и)? -FILEBROWSER_DELETEDLGMSGINCLPROC;Справді видалити зазначені %1 файл(и) разом з версією створеною в черзі? -FILEBROWSER_EMPTYTRASH;Очистити сміттєвий кошик -FILEBROWSER_EMPTYTRASHHINT;Очистити сміттєвий кошик без відновлення -FILEBROWSER_EXTPROGMENU;Відкрити за допомогою -FILEBROWSER_FLATFIELD;Пусте поле -FILEBROWSER_MOVETODARKFDIR;Перемістити до каталогу з темними кадрами -FILEBROWSER_MOVETOFLATFIELDDIR;Перемістити до каталогу з пустими кадрами -FILEBROWSER_NEW_NAME;Нова назва: -FILEBROWSER_OPENDEFAULTVIEWER;Відкрити в стандартній програмі перегляду -FILEBROWSER_PARTIALPASTEPROFILE;Частково вставити -FILEBROWSER_PASTEPROFILE;Вставити профіль -FILEBROWSER_POPUPCANCELJOB;Анулювати завдання -FILEBROWSER_POPUPCOLORLABEL;Кольоровий маркер -FILEBROWSER_POPUPCOLORLABEL0;Маркер: Без кольору -FILEBROWSER_POPUPCOLORLABEL1;Маркер: Червоний -FILEBROWSER_POPUPCOLORLABEL2;Маркер: Жовтий -FILEBROWSER_POPUPCOLORLABEL3;Маркер: Зелений -FILEBROWSER_POPUPCOLORLABEL4;Маркер: Синій -FILEBROWSER_POPUPCOLORLABEL5;Маркер: Фіолетовий -FILEBROWSER_POPUPCOPYTO;Копіювати до... -FILEBROWSER_POPUPFILEOPERATIONS;Операції з файлами -FILEBROWSER_POPUPMOVEEND;Перенести на кінець черги -FILEBROWSER_POPUPMOVEHEAD;Перенести на початок черги -FILEBROWSER_POPUPMOVETO;Перенести до... -FILEBROWSER_POPUPOPEN;Відкрити -FILEBROWSER_POPUPOPENINEDITOR;Відкрити в редакторі -FILEBROWSER_POPUPPROCESS;Додати до черги на обробку -FILEBROWSER_POPUPPROCESSFAST;Додати до черги швидкого експорту -FILEBROWSER_POPUPPROFILEOPERATIONS;Профілі обробки -FILEBROWSER_POPUPRANK;Оцінка -FILEBROWSER_POPUPRANK0;Прибрати оцінку -FILEBROWSER_POPUPRANK1;Оцінка 1 * -FILEBROWSER_POPUPRANK2;Оцінка 2 ** -FILEBROWSER_POPUPRANK3;Оцінка 3 *** -FILEBROWSER_POPUPRANK4;Оцінка 4 **** -FILEBROWSER_POPUPRANK5;Оцінка 5 ***** -FILEBROWSER_POPUPREMOVE;Знищити на диску -FILEBROWSER_POPUPREMOVEINCLPROC;Знищити на диску разом з результатами обробки -FILEBROWSER_POPUPRENAME;Змінити назву -FILEBROWSER_POPUPSELECTALL;Вибрати всі -FILEBROWSER_POPUPTRASH;Перенести до смітника -FILEBROWSER_POPUPUNRANK;Прибрати оцінку -FILEBROWSER_POPUPUNTRASH;Забрати з смітника -FILEBROWSER_QUERYBUTTONHINT;Очистити пошук -FILEBROWSER_QUERYHINT;Впиши частину назви щоб знайти файл. Відділяй слова комами, np.\n1001,1004,1199\n\nСлова що потрібно виключити з пошуку відмічай !=\nnp.\n!=1001,1004,1199\n\nКоманди:\nCtrl-f - перейти до поля "Пошук",\nEnter - шукати,\nEsc - очистити поле "Пошук",\nShift-Esc - вийти з поля "Пошук". -FILEBROWSER_QUERYLABEL; Пошук: -FILEBROWSER_RANK1_TOOLTIP;Оцінка 1 *\nКоманда: Shift-1 -FILEBROWSER_RANK2_TOOLTIP;Оцінка 2 *\nКоманда: Shift-2 -FILEBROWSER_RANK3_TOOLTIP;Оцінка 3 *\nКоманда: Shift-3 -FILEBROWSER_RANK4_TOOLTIP;Оцінка 4 *\nКоманда: Shift-4 -FILEBROWSER_RANK5_TOOLTIP;Оцінка 5 *\nКоманда: Shift-5 -FILEBROWSER_RENAMEDLGLABEL;Змінити назву файлу -FILEBROWSER_SELECTDARKFRAME;Вибрати темний кадр... -FILEBROWSER_SELECTFLATFIELD;Вибрати пустий кадр... -FILEBROWSER_SHOWCOLORLABEL1HINT;Показати фото з червоним теѓом.\nКоманда: Alt-1 -FILEBROWSER_SHOWCOLORLABEL2HINT;Показати фото з жовтим теѓом.\nКоманда: Alt-2 -FILEBROWSER_SHOWCOLORLABEL3HINT;Показати фото з зеленим теѓом.\nКоманда: Alt-3 -FILEBROWSER_SHOWCOLORLABEL4HINT;Показати фото з синім теѓом.\nКоманда: Alt-4 -FILEBROWSER_SHOWCOLORLABEL5HINT;Показати фото з фіолетовим теѓом.\nКоманда: Alt-5 -FILEBROWSER_SHOWDIRHINT;Wyłącza wyszstkie filtry.\nКоманда: d -FILEBROWSER_SHOWEDITEDHINT;Pokazuje edytowane zdjęcia.\nКоманда: 7 -FILEBROWSER_SHOWEDITEDNOTHINT;Pokazuje nieedytowane zdjęcia.\nКоманда: 6 -FILEBROWSER_SHOWEXIFINFO;Pokaż dane Exif.\n\nКоманди:\ni - Tryb wielu zakładek,\nAlt-i - Tryb jednej zakładki. -FILEBROWSER_SHOWRANK1HINT;Показати фото з оцінкою 1 зірочка.\nКоманда: 1 -FILEBROWSER_SHOWRANK2HINT;Показати фото з оцінкою 2 зірочки.\nКоманда: 2 -FILEBROWSER_SHOWRANK3HINT;Показати фото з оцінкою 3 зірочки.\nКоманда: 3 -FILEBROWSER_SHOWRANK4HINT;Показати фото з оцінкою 4 зірочки.\nКоманда: 4 -FILEBROWSER_SHOWRANK5HINT;Показати фото з оцінкою 5 зірочок.\nКоманда: 5 -FILEBROWSER_SHOWRECENTLYSAVEDHINT;Показати записані фото.\nКоманда: Alt-7 -FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Показати незаписані фото.\nКоманда: Alt-6 -FILEBROWSER_SHOWTRASHHINT;Показати вміст кошика.\nКоманда: Ctrl-t -FILEBROWSER_SHOWUNCOLORHINT;Показати фото без кольорових теѓів.\nКоманда: Alt-0 -FILEBROWSER_SHOWUNRANKHINT;Показати фото без оцінок.\nКоманда: 0 -FILEBROWSER_THUMBSIZE;Розмір мініатюрок -FILEBROWSER_UNRANK_TOOLTIP;Усунути оцінку.\nКоманда: Shift-0 -FILEBROWSER_ZOOMINHINT;Збільшити мініатюрки.\n\nКоманди:\n+ - Режим кількох закладок,\nAlt-+ - Режим однієї закладки. -FILEBROWSER_ZOOMOUTHINT;Зменшити мініатюрки.\n\nКоманди:\n- - Режим кількох закладок,\nAlt-- - Режим однієї закладки. -GENERAL_ABOUT;Про програму -GENERAL_AFTER;Після -GENERAL_AUTO;Автоматично -GENERAL_BEFORE;Перед -GENERAL_CANCEL;Відмінити -GENERAL_CLOSE;Закрити -GENERAL_DISABLE;Вимкнути -GENERAL_DISABLED;Вимкнуто -GENERAL_ENABLE;Ввімкнути -GENERAL_ENABLED;Ввімкнуто -GENERAL_FILE;Файл -GENERAL_LANDSCAPE;Горизонтальний режим -GENERAL_NA;н/д -GENERAL_NO;Ні -GENERAL_NONE;Немає -GENERAL_OK;OK -GENERAL_PORTRAIT;Вертикальний режим -GENERAL_SAVE;Зберегти -GENERAL_UNCHANGED;(Без змін) -GENERAL_WARNING;Попередження -HISTOGRAM_TOOLTIP_B;Показати/Сховати гістограму синіх тонів. -HISTOGRAM_TOOLTIP_BAR;Pokazuje/Ukrywa wskaźnik RGB.\nKliknięcie prawym przyciskiem myszy na podglądzie zdjęcia blokuje/odblokowuje. -HISTOGRAM_TOOLTIP_CHRO;Pokaż/Ukryj histogram chromatyczności. -HISTOGRAM_TOOLTIP_FULL;Змінити гістограму. -HISTOGRAM_TOOLTIP_G;Показати/Сховати гістограму зелених тонів. -HISTOGRAM_TOOLTIP_L;Показати/Сховати гістограму люмінації CIELab. -HISTOGRAM_TOOLTIP_R;Показати/Сховати гістограму червоних тонів. -HISTOGRAM_TOOLTIP_RAW;Показати/Сховати гістограму raw. -HISTORY_CHANGED;Змінено -HISTORY_CUSTOMCURVE;Власна крива -HISTORY_FROMCLIPBOARD;З буферу -HISTORY_LABEL;Історія -HISTORY_MSG_1;Фотографію завантажено -HISTORY_MSG_2;Профіль завантажено -HISTORY_MSG_3;Профіль змінено -HISTORY_MSG_4;Перегляд історії -HISTORY_MSG_5;Światłość -HISTORY_MSG_6;Контраст -HISTORY_MSG_7;Чорний -HISTORY_MSG_8;Компенсація експозиції -HISTORY_MSG_9;Компенсація світла -HISTORY_MSG_10;Компресія тіней -HISTORY_MSG_11;Тональна крива -HISTORY_MSG_12;Автоматична експозиція -HISTORY_MSG_13;Зменшення експозиції -HISTORY_MSG_14;L*a*b* - Світло -HISTORY_MSG_15;L*a*b* - Контраст -HISTORY_MSG_16;- -HISTORY_MSG_17;- -HISTORY_MSG_18;- -HISTORY_MSG_19;Крива L* -HISTORY_MSG_20;Wyostrzanie -HISTORY_MSG_21;USM - Promień -HISTORY_MSG_22;USM - Siła -HISTORY_MSG_23;USM - Próg wyostrzania -HISTORY_MSG_24;USM - Wyostrz tylko krawędzie -HISTORY_MSG_25;USM - Promień detekcji krawędzi -HISTORY_MSG_26;USM - Tolerancja krawędzi -HISTORY_MSG_27;USM - Kontrola poświaty -HISTORY_MSG_28;USM - Stopień kontroli poświaty -HISTORY_MSG_29;Metoda wyostrzania -HISTORY_MSG_30;RLD - Promień -HISTORY_MSG_31;RLD - Siła -HISTORY_MSG_32;RLD - Tłumienie -HISTORY_MSG_33;RLD - Powtórzenia -HISTORY_MSG_34;LCP - Korekcja dystorsji -HISTORY_MSG_35;LCP - Korekcja winietowania -HISTORY_MSG_36;LCP - Korekcja aberacji -HISTORY_MSG_37;Automatyczna ekspozycja -HISTORY_MSG_38;Metoda balansu bieli -HISTORY_MSG_39;BB - Температура -HISTORY_MSG_40;BB - Відтінок -HISTORY_MSG_41;Tryb krzywej 1 -HISTORY_MSG_42;Крива 1 -HISTORY_MSG_43;Tryb krzywej 2 -HISTORY_MSG_44;Світлове відшумлення - Promień -HISTORY_MSG_45;Світлове відшумлення - Tolerancja krawędzi -HISTORY_MSG_46;Відшумлення кольору -HISTORY_MSG_47;Змішування світла ICC з матрицею -HISTORY_MSG_48;Тональна крива DCP -HISTORY_MSG_49;Ілюмінант DCP -HISTORY_MSG_50;Тіні/Світло -HISTORY_MSG_51;C/P - Світло -HISTORY_MSG_52;C/P - Тіні -HISTORY_MSG_53;C/P - Тональний діапазон світла -HISTORY_MSG_54;C/P - Тональний діапазон тіней -HISTORY_MSG_55;C/P - Локальний контраст -HISTORY_MSG_56;C/P - Радіус -HISTORY_MSG_57;Обертання -HISTORY_MSG_58;Віддзеркалення по горизонталі -HISTORY_MSG_59;Віддзеркалення по вертикалі -HISTORY_MSG_60;Обертання -HISTORY_MSG_61;Авто-заповнення -HISTORY_MSG_62;Корекція дисторсії об'єктиву -HISTORY_MSG_63;Вибраний снепшот -HISTORY_MSG_64;Кадрування -HISTORY_MSG_65;Корекція хроматичної аберації -HISTORY_MSG_66;Реконструкція засвітлень -HISTORY_MSG_67;Реконструкція засвітлень - Величина -HISTORY_MSG_68;Реконструкція засвітлень - Спосіб -HISTORY_MSG_69;Робочий колірний простір -HISTORY_MSG_70;Вихідний колірний простір -HISTORY_MSG_71;Вхідний колірний простір -HISTORY_MSG_72;KW - Величина -HISTORY_MSG_73;Змішувач каналів -HISTORY_MSG_74;Зміна розміру - Пропорція -HISTORY_MSG_75;Зміна розміру - Спосіб -HISTORY_MSG_76;Метадані Exif -HISTORY_MSG_77;Метадані IPTC -HISTORY_MSG_78;- -HISTORY_MSG_79;Зміна розміру - Широта -HISTORY_MSG_80;Зміна розміру - Висота -HISTORY_MSG_81;Зміна розміру -HISTORY_MSG_82;Профіль змінено -HISTORY_MSG_83;S/H - Чітка маска -HISTORY_MSG_84;Корекція перспективи -HISTORY_MSG_85;LCP -HISTORY_MSG_86;Криві RGB - режим люмінації -HISTORY_MSG_87;Усування імпульсних шумів -HISTORY_MSG_88;Поріг усування імпульсних шумів -HISTORY_MSG_89;Усування шумів -HISTORY_MSG_90;Усування шумів - Світність -HISTORY_MSG_91;Усування шумів - Хромінація -HISTORY_MSG_92;Усування шумів - Гамма -HISTORY_MSG_93;CbDL - Значення -HISTORY_MSG_94;Контраст за рівнем деталей -HISTORY_MSG_96;Крива a* -HISTORY_MSG_97;Крива b* -HISTORY_MSG_98;Алгоритм демозаїзації -HISTORY_MSG_99;Фільтр "гарячих" пікселів -HISTORY_MSG_100;Насиченість RGB -HISTORY_MSG_101;HSV - Відтінок -HISTORY_MSG_102;HSV - Насиченість -HISTORY_MSG_103;HSV - Значення -HISTORY_MSG_104;Еквалайзер HSV -HISTORY_MSG_105;Усування віньєтування -HISTORY_MSG_106;Усування віньєтування - Радіус -HISTORY_MSG_107;Усування віньєтування - Поріг -HISTORY_MSG_108;Експозиція - поріг HLC -HISTORY_MSG_109;Зміна розміру - Розмір -HISTORY_MSG_110;Зміна розміру -HISTORY_MSG_111;L*a*b* - Unikaj przycinania koloru -HISTORY_MSG_112;- -HISTORY_MSG_113;L*a*b* - Ograniczenie nasyczenia -HISTORY_MSG_114;DCB - Кількість ітерацій -HISTORY_MSG_115;DCB - Запобігання зміні кольору -HISTORY_MSG_116;DCB - Покращення -HISTORY_MSG_117;Корекція аберації - Червоні тони -HISTORY_MSG_118;Корекція аберації - Сині тони -HISTORY_MSG_119;Зменшення лінійних шумів -HISTORY_MSG_120;Вирівняння зелених тонів -HISTORY_MSG_121;Авто-корекція хроматичної аберації -HISTORY_MSG_122;Czarna klatka - Auto-wybór -HISTORY_MSG_123;Czarna klatka - Wybór -HISTORY_MSG_124;Корекція білого -HISTORY_MSG_125;Збереження світлих тонів -HISTORY_MSG_126;Пустий кадр - Файл -HISTORY_MSG_127;Пустий кадр - Авто-вибір -HISTORY_MSG_128;Пустий кадр - Інтенсивність розмивання -HISTORY_MSG_129;Пустий кадр - Тип розмивання -HISTORY_MSG_130;Авто-корекція дисторсії -HISTORY_MSG_131;RS - Luma -HISTORY_MSG_132;RS - Chroma -HISTORY_MSG_133;Вихідна гамма -HISTORY_MSG_134;Вільна гамма -HISTORY_MSG_135;Вільна гамма -HISTORY_MSG_136;Кутовий коефіцієнт гами -HISTORY_MSG_137;Рівень чорного - Зелений 1 -HISTORY_MSG_138;Рівень чорного - Червоний -HISTORY_MSG_139;Рівень чорного - Синій -HISTORY_MSG_140;Рівень чорного - Зелений 2 -HISTORY_MSG_141;Рівень чорного - З'єднати зелені -HISTORY_MSG_142;ДК - Кількість ітерацій -HISTORY_MSG_143;ДК - Сила -HISTORY_MSG_144;Мікроконтраст - Сила -HISTORY_MSG_145;Мікроконтраст - Рівномірність -HISTORY_MSG_146;Деталі контурів -HISTORY_MSG_147;Деталі контурів - тільки люмінація -HISTORY_MSG_148;Мікроконтраст -HISTORY_MSG_149;Мікроконтраст - матриця 3×3 -HISTORY_MSG_150;Знешумлення і видалення артефактів демозаїзації -HISTORY_MSG_151;Світність -HISTORY_MSG_152;Світність - пастельні тони -HISTORY_MSG_153;Світність - насичені тони -HISTORY_MSG_154;Світність - збереження тонів шкіри -HISTORY_MSG_155;Світність - запобігання зміні кольорів -HISTORY_MSG_156;Світність - об'єднати пастельні та насичені -HISTORY_MSG_157;Світність - поріг розділення пастельних та насичених тонів -HISTORY_MSG_158;ТВ - Сила -HISTORY_MSG_159;ТВ - Пошук контурів -HISTORY_MSG_160;ТВ - Обшар -HISTORY_MSG_161;ТВ - Поправка при ітерації -HISTORY_MSG_162;Тональне відображення -HISTORY_MSG_163;Криві RGB - Червоний -HISTORY_MSG_164;Криві RGB - Зелений -HISTORY_MSG_165;Криві RGB - Синій -HISTORY_MSG_167;Алгоритм демозаїзації -HISTORY_MSG_168;L*a*b* - Крива CC -HISTORY_MSG_169;L*a*b* - Крива CH -HISTORY_MSG_170;Світність - Крива HH -HISTORY_MSG_171;L*a*b* - Крива LC -HISTORY_MSG_172;L*a*b* - Обмежити LC -HISTORY_MSG_174;CIECAM02 -HISTORY_MSG_175;CAM02 - Адаптація CAT02 -HISTORY_MSG_176;CAM02 - Оточення -HISTORY_MSG_177;CAM02 - Світність сцени -HISTORY_MSG_178;CAM02 - Світність відображення -HISTORY_MSG_179;CAM02 - Модель балансу білого -HISTORY_MSG_180;CAM02 - Lightness (J) -HISTORY_MSG_181;CAM02 - Хроматичність (C) -HISTORY_MSG_182;CAM02 - Автоматичне CAT02 -HISTORY_MSG_183;CAM02 - Контраст (J) -HISTORY_MSG_184;CAM02 - Оточення сцени -HISTORY_MSG_185;CAM02 - Котроль гамуту -HISTORY_MSG_186;CAM02 - Алгоритм -HISTORY_MSG_187;CAM02 - Збереження тонів шкіри і червоних тонів -HISTORY_MSG_188;CAM02 - Яскравість (Q) -HISTORY_MSG_189;CAM02 - Контраст (Q) -HISTORY_MSG_190;CAM02 - Насиченість (S) -HISTORY_MSG_191;CAM02 - Барвистість (M) -HISTORY_MSG_192;CAM02 - Відтінок (hue, h) -HISTORY_MSG_193;CAM02 - Тональна крива 1 -HISTORY_MSG_194;CAM02 - Тональна крива 2 -HISTORY_MSG_195;CAM02 - Тональна крива 1 -HISTORY_MSG_196;CAM02 - Тональна крива 2 -HISTORY_MSG_197;CAM02 - Крива кольору -HISTORY_MSG_198;CAM02 - Крива кольору -HISTORY_MSG_199;CAM02 - Визідні гістограми -HISTORY_MSG_200;CAMO2 - Тональне відображення -HISTORY_MSG_201;Усування шумів - Хроматичність - R&G -HISTORY_MSG_202;Усування шумів - Хроматичність - B&Y -HISTORY_MSG_204;Покрокове поліпшення LMMSE -HISTORY_MSG_205;CAM02 - Галячі/пошкоджені пікселі -HISTORY_MSG_206;CAT02 - Авто-світність сцени -HISTORY_MSG_207;Усування віньєтки - Крива відтінків -HISTORY_MSG_208;BB - Вирівнювач N/C -HISTORY_MSG_210;FP - Кут -HISTORY_MSG_211;Градієнтний фільтр -HISTORY_MSG_212;Віньєтування - Сила -HISTORY_MSG_213;Віньєтування -HISTORY_MSG_214;Чорно-біле (B&W) -HISTORY_MSG_215;B&W - CM - Червоний -HISTORY_MSG_216;B&W - CM - Зелений -HISTORY_MSG_217;B&W - CM - Синій -HISTORY_MSG_218;B&W - Гамма - Червоний -HISTORY_MSG_219;B&W - Гамма - Зелений -HISTORY_MSG_220;B&W - Гамма - Синій -HISTORY_MSG_221;B&W - Кольоровий фільтр -HISTORY_MSG_222;B&W - Налаштування -HISTORY_MSG_223;B&W - CM - Оранжевий -HISTORY_MSG_224;B&W - CM - Жовтий -HISTORY_MSG_225;B&W - CM - Ціановий -HISTORY_MSG_226;B&W - CM - Маджента -HISTORY_MSG_227;B&W - CM - Пурпуровий -HISTORY_MSG_228;B&W - Вирівнювач люмінації -HISTORY_MSG_229;B&W - Вирівнювач люмінації -HISTORY_MSG_230;B&W - Tryb -HISTORY_MSG_231;B&W - Крива 'перед' -HISTORY_MSG_232;B&W - Тип кривої 'перед' -HISTORY_MSG_233;B&W - Крива 'після' -HISTORY_MSG_234;B&W - Тип кривої 'після' -HISTORY_MSG_236;- -HISTORY_MSG_238;FP - Wtapianie -HISTORY_MSG_239;FP - Siła -HISTORY_MSG_240;FP - Środek -HISTORY_MSG_241;Віньєтування - Wtapianie -HISTORY_MSG_242;Віньєтування - Округлість -HISTORY_MSG_243;Віньєтування - Радіус -HISTORY_MSG_244;Віньєтування - Сила -HISTORY_MSG_245;Віньєтування - Środek -HISTORY_MSG_246;Крива CL -HISTORY_MSG_247;Крива LH -HISTORY_MSG_248;Крива HH -HISTORY_MSG_249;KwgPS - Próg -HISTORY_MSG_250;RS - Ulepszona -HISTORY_MSG_251;B&W - Алгоритм -HISTORY_MSG_252;KwgPS - Odcienie skóry -HISTORY_MSG_253;KwgPS - Redukcja błędów -HISTORY_MSG_254;KwgPS - Odcienie skóry -HISTORY_MSG_255;RS - Filtr mediana -HISTORY_MSG_257;Koloryzacja -HISTORY_MSG_258;Koloryzacja - Kolor -HISTORY_MSG_259;Koloryzacja - Przezroczystość -HISTORY_MSG_260;Koloryzacja - Przezroczystość a*[b*] -HISTORY_MSG_261;Koloryzacja - Metoda -HISTORY_MSG_262;Koloryzacja - Przezroczystość b* -HISTORY_MSG_263;Koloryzacja - Cienie - Червоний -HISTORY_MSG_264;Koloryzacja - Cienie - Зелений -HISTORY_MSG_265;Koloryzacja - Cienie - Niebiski -HISTORY_MSG_266;Koloryzacja - Þółcienie - Czerwone -HISTORY_MSG_267;Koloryzacja - Þółcienie - Zielone -HISTORY_MSG_268;Koloryzacja - Þółcienie - Синійe -HISTORY_MSG_269;Koloryzacja - Podświetlenia - Czerwone -HISTORY_MSG_270;Koloryzacja - Podświetlenia - Zielona -HISTORY_MSG_271;Koloryzacja - Podświetlenia - Синійe -HISTORY_MSG_272;Koloryzacja - Balans -HISTORY_MSG_274;Koloryzacja - Nasycenie cieni -HISTORY_MSG_275;Koloryzacja - Nasycenie jasnych -HISTORY_MSG_276;Koloryzacja - Przezroczystość -HISTORY_MSG_277;--unused-- -HISTORY_MSG_278;Koloryzacja - Zachowaj luminancję -HISTORY_MSG_279;Koloryzacja - Cienie -HISTORY_MSG_280;Koloryzacja - Tony jasne -HISTORY_MSG_281;Koloryzacja - Siła nasycenia -HISTORY_MSG_282;Koloryzacja - Próg nasycenia -HISTORY_MSG_283;Koloryzacja - Siła -HISTORY_MSG_284;Koloryzacja - Auto ochrona przesycenia -HISTORY_MSG_285;RS - Mediana - Metoda -HISTORY_MSG_286;RS - Mediana - Typ -HISTORY_MSG_287;RS - Mediana - Powtarzanie -HISTORY_MSG_288;Puste pole - Zabezp. przed obcinaniem -HISTORY_MSG_289;Puste pole - Auto-zabezp. przed obcinaniem -HISTORY_MSG_290;Próg czerni - Червоний -HISTORY_MSG_291;Próg czerni - Зелений -HISTORY_MSG_292;Próg czerni - Синій -HISTORY_MSG_293;Symulacja Kliszy -HISTORY_MSG_294;Symulacja Kliszy - Siła -HISTORY_MSG_295;Symulacja Kliszy - Klisza -HISTORY_MSG_296;RS - Modulacja люмінації -HISTORY_MSG_298;Filtrowanie martwych pikseli -HISTORY_NEWSNAPSHOT;Nowa migawka -HISTORY_NEWSNAPSHOT_TOOLTIP;Skrót: Alt-s -HISTORY_SNAPSHOT;Migawka -HISTORY_SNAPSHOTS;Migawki -IPTCPANEL_CATEGORY;Kategoria -IPTCPANEL_CITY;Miasto -IPTCPANEL_COPYHINT;Kopiuje ustawienia IPTC do schowka -IPTCPANEL_COUNTRY;Kraj -IPTCPANEL_CREDIT;Zasługa -IPTCPANEL_CREDITHINT;Identyfikuje dostawcę zdjęcia, niekoniecznie właściciela lub autora (Credit). -IPTCPANEL_DATECREATED;Data utworzenia -IPTCPANEL_EMBEDDED;Osadzony -IPTCPANEL_EMBEDDEDHINT;Resetuje dane IPTC do domyślnych ustawień osadzonych w orginalnym zdjęciu -IPTCPANEL_HEADLINE;Nagłówek -IPTCPANEL_INSTRUCTIONS;Instrukcje -IPTCPANEL_KEYWORDS;Słowa kluczowe -IPTCPANEL_PASTEHINT;Wstawia ustawienia IPTC ze schowka -IPTCPANEL_RESET;Reset -IPTCPANEL_RESETHINT;Resetuje do domyślnych ustawień profilu -IPTCPANEL_SOURCE;Źródło -IPTCPANEL_TITLE;Tytuł -MAIN_BUTTON_FULLSCREEN;Pełen ekran -MAIN_BUTTON_NAVNEXT_TOOLTIP;Przejdź do następnego zdjęcia względem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F4\n\nAby przejść do następnego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F4 -MAIN_BUTTON_NAVPREV_TOOLTIP;Przejdź do poprzedniego zdjęcia wzgledem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F3 \n\nAby przejść do poprzedniego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F3 -MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronizuj Nawigator Zdjęć z Edytorem aby ukazać miniaturkę obecnie otwartego zdjęcia, oraz usuń filtry w Nawigatorze Zdjęć.\nSkrót: x\n\nJak wyżej, ale bez usuwania filtrów:\nSkrót: y\n(Miniaturka otwartego zdjęcia nie zostanie wyświetlona jesli filtr ją ukrywa). -MAIN_BUTTON_PREFERENCES;Ustawienia -MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Dodaj bieżące zdjęcie do kolejki przetwarzania Ctrl+B -MAIN_BUTTON_SAVE_TOOLTIP;Zapisz bieżące zdjęcieCtrl+S -MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Otwórz bieżące zdjęcie w zewnętrznym edytorze.\nSkrót: Ctrl+e -MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Pokaż/Ukryj wszystkie panele boczne.\nSkrót: m -MAIN_BUTTON_UNFULLSCREEN;Zwolnij ekran -MAIN_FRAME_BATCHQUEUE;Kolejka -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Przetwarzanie wsadowe\nSkrót: Ctrl-F3 -MAIN_FRAME_EDITOR;Edytor -MAIN_FRAME_EDITOR_TOOLTIP;Edytor.\nSkrót: Ctrl-F4 -MAIN_FRAME_FILEBROWSER;Przeglądarka plików -MAIN_FRAME_FILEBROWSER_TOOLTIP; Przeglądarka plików.\nSkrót: Ctrl-F2 -MAIN_FRAME_PLACES;Miejsca -MAIN_FRAME_PLACES_ADD;Dodaj -MAIN_FRAME_PLACES_DEL;Usuń -MAIN_FRAME_RECENT;Ostatnio używane foldery -MAIN_MSG_ALREADYEXISTS;Plik już istnieje. -MAIN_MSG_CANNOTLOAD;Nie można wczytać obrazu -MAIN_MSG_CANNOTSAVE;Błąd zapisu pliku -MAIN_MSG_CANNOTSTARTEDITOR;Nie mozna uruchomic edytora. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Proszę wprowadzić prawidłową ścieżkę w Ustawieniach. -MAIN_MSG_EMPTYFILENAME;Nie podano nazwy pliku! -MAIN_MSG_IMAGEUNPROCESSED;Ta komenda wymaga aby wszystkie wybrane zdjęcia były wpierw wywołane poprzez kolejkę. -MAIN_MSG_NAVIGATOR;Nawigator -MAIN_MSG_OPERATIONCANCELLED;Operację anulowano -MAIN_MSG_PATHDOESNTEXIST;Ścieżka\n\n%1\n\nnie istnieje. Wybierz przawidłową ścieżkę w Ustawieniach. -MAIN_MSG_QOVERWRITE;Zastąpić? -MAIN_MSG_SETPATHFIRST;Aby użyć tej funkcji należy wpierw wybrać odpowiednią ścieżkę docelową w Ustawieniach! -MAIN_MSG_WRITEFAILED;Zapis nie powiódł się:\n\n"%1"\n\nUpewnij się, że folder istnieje oraz że można do niego zapisywać. -MAIN_TAB_COLOR;Kolor -MAIN_TAB_COLOR_TOOLTIP;Skrót: Alt-c -MAIN_TAB_DETAIL;Szczegóły -MAIN_TAB_DETAIL_TOOLTIP;Skrót: Alt-d -MAIN_TAB_DEVELOP; Przetwarzanie -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPORT; Szybki eksport -MAIN_TAB_EXPOSURE;Ekspozycja -MAIN_TAB_EXPOSURE_TOOLTIP;Skrót: Alt-e -MAIN_TAB_FILTER; Filtr -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Метадані -MAIN_TAB_METADATA_TOOLTIP;Skrót: Alt-m -MAIN_TAB_RAW;Raw -MAIN_TAB_RAW_TOOLTIP;Skrót: Alt-r -MAIN_TAB_TRANSFORM;Transformacje -MAIN_TAB_TRANSFORM_TOOLTIP;Skrót: Alt-t -MAIN_TOOLTIP_BACKCOLOR0;Kolor tła podglądu: Tematyczny\nSkrót: 9 -MAIN_TOOLTIP_BACKCOLOR1;Kolor tła podglądu: Czarny\nSkrót: 9 -MAIN_TOOLTIP_BACKCOLOR2;Kolor tła podglądu: Biały\nSkrót: 9 -MAIN_TOOLTIP_BEFOREAFTERLOCK;Zablokuj / Odblokuj widok Przed\n\nZablokuj: nie zmieniaj widoku Przed - \nPrzydatne w porównywaniu zablokowanego obrazu z obrazem na ktorym wykonano wiele zmian.\n\nOdblokuj: widok Przed będzie śledził widok Po o jeden krok do tyłu, pokazując obraz przed efektem aktualnie użytego narzędzia. -MAIN_TOOLTIP_HIDEHP;Pokaż/ukryj lewy panel (razem z historią).\nSkrót: l -MAIN_TOOLTIP_INDCLIPPEDH;Pokaż obcięte prześwietlenia.\nSkrót: < -MAIN_TOOLTIP_INDCLIPPEDS;Pokaż obcięte niedoświetlenia.\nSkrót: > -MAIN_TOOLTIP_PREVIEWB;Podgląd kanału Синійego.\nSkrót: b -MAIN_TOOLTIP_PREVIEWFOCUSMASK;Podgląd maski ostrości.\nSkrót: Shift-f\n\nDokładniejsze w przypadku zdjęc o płytkiej głębi ostrości, niskim pozimie szumów i o większym przybliżeniu. W przypadku zdjęć o wyższym poziomie szumów maska ostrości będzie dokładniejsza przy mniejszym zoomie (10-30%). -MAIN_TOOLTIP_PREVIEWG;Podgląd kanału zielonego.\nSkrót: g -MAIN_TOOLTIP_PREVIEWL;Podgląd kanału jasności.\nSkrót: v\n\n0.299*R + 0.587*G + 0.114*B -MAIN_TOOLTIP_PREVIEWR;Podgląd kanału czerwonego.\nSkrót: r -MAIN_TOOLTIP_QINFO;Informacje o zdjęciu.\nSkrót: i -MAIN_TOOLTIP_SHOWHIDELP1;Pokaż/Ukryj lewy panel.\nSkrót: l -MAIN_TOOLTIP_SHOWHIDERP1;Pokaż/Ukryj prawy panel.\nSkrót: Alt-l -MAIN_TOOLTIP_SHOWHIDETP1;Pokaż/Ukryj górny panel.\nSkrót: Shift-l -MAIN_TOOLTIP_THRESHOLD;Próg -MAIN_TOOLTIP_TOGGLE;Przełącz widok Przed/Po.\nSkrót: Shift-b -NAVIGATOR_B;B: -NAVIGATOR_G;G: -NAVIGATOR_H;H: -NAVIGATOR_LAB_A;a*: -NAVIGATOR_LAB_B;b*: -NAVIGATOR_LAB_L;L*: -NAVIGATOR_NA; -- -NAVIGATOR_R;R: -NAVIGATOR_S;S: -NAVIGATOR_V;V: -NAVIGATOR_XY_FULL;Szerokość: %1, Wysokość: %2 -NAVIGATOR_XY_NA;x: --, y: -- -PARTIALPASTE_BASICGROUP;Podstawowe ustawienia -PARTIALPASTE_CACORRECTION;Korekcja aberacji chr. -PARTIALPASTE_CHANNELMIXER;Mieszacz kanałów -PARTIALPASTE_CHANNELMIXERBW;Czarno-białe -PARTIALPASTE_COARSETRANS;Obrót dyskretny / odbicie -PARTIALPASTE_COLORAPP;CIECAM02 -PARTIALPASTE_COLORGROUP;Ustawienia związane z kolorem -PARTIALPASTE_COLORTONING;Koloryzacja -PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-wypełnianie -PARTIALPASTE_COMPOSITIONGROUP;Ustawienia kompozycji -PARTIALPASTE_CROP;Kadrowanie -PARTIALPASTE_DARKFRAMEAUTOSELECT;Auto-wybór czarnej klatki -PARTIALPASTE_DARKFRAMEFILE;Wybór czarnej klatki -PARTIALPASTE_DEFRINGE;Usuwanie widma -PARTIALPASTE_DETAILGROUP;Ustawienia szczegółowe -PARTIALPASTE_DIALOGLABEL;Częściowe wklejenie profilu przetwarzania -PARTIALPASTE_DIRPYRDENOISE;Redukcja szumu -PARTIALPASTE_DIRPYREQUALIZER;Контраст wg. poziomu detali -PARTIALPASTE_DISTORTION;Korekcja zniekształcenia -PARTIALPASTE_EPD;Tone Mapping -PARTIALPASTE_EVERYTHING;Wszystko -PARTIALPASTE_EXIFCHANGES;Exif -PARTIALPASTE_EXPOSURE;Ekspozycja -PARTIALPASTE_FILMSIMULATION;Symulacja kliszy -PARTIALPASTE_FLATFIELDAUTOSELECT;Puste pole - Auto-wybór -PARTIALPASTE_FLATFIELDBLURRADIUS;Puste pole - Promień -PARTIALPASTE_FLATFIELDBLURTYPE;Puste pole - Typ -PARTIALPASTE_FLATFIELDCLIPCONTROL;Puste pole - Zabezp. przed obcinaniem -PARTIALPASTE_FLATFIELDFILE;Puste pole - Wybór -PARTIALPASTE_GRADIENT;Filtr połówkowy -PARTIALPASTE_HSVEQUALIZER;Ekwalizator HSV -PARTIALPASTE_ICMSETTINGS;Ustawienia ICM -PARTIALPASTE_IMPULSEDENOISE;Redukcja szumów impulsowych -PARTIALPASTE_IPTCINFO;IPTC -PARTIALPASTE_LABCURVE;Regulacje L*a*b* -PARTIALPASTE_LENSGROUP;Ustawienia związane z obiektywem -PARTIALPASTE_LENSPROFILE;Profil korekcji obiektywu LCP -PARTIALPASTE_METAGROUP;Метадані -PARTIALPASTE_PCVIGNETTE;Віньєтування -PARTIALPASTE_PERSPECTIVE;Perspektywa -PARTIALPASTE_PREPROCESS_DEADPIXFILT;Filtr martwych pikseli -PARTIALPASTE_PREPROCESS_GREENEQUIL;Wyrównanie zieleni -PARTIALPASTE_PREPROCESS_HOTPIXFILT;Filtr gorących pikseli -PARTIALPASTE_PREPROCESS_LINEDENOISE;Redukcja szumów liniowych -PARTIALPASTE_RAWCACORR_AUTO;Autokorekcja aberracji chr. -PARTIALPASTE_RAWEXPOS_BLACK;Poziomy czerni -PARTIALPASTE_RAWEXPOS_LINEAR;Korekcja punktu bieli -PARTIALPASTE_RAWEXPOS_PRESER;Zachowanie prześwietleń -PARTIALPASTE_RAWGROUP;Ustawienia raw -PARTIALPASTE_RAW_DCBENHANCE;Zastosuj poprawę DCB -PARTIALPASTE_RAW_DCBITERATIONS;Liczba powtórzeń DCB -PARTIALPASTE_RAW_DMETHOD;Алгоритм demozaikowania -PARTIALPASTE_RAW_FALSECOLOR;Tłumienie fałszowania koloru -PARTIALPASTE_RAW_LMMSEITERATIONS;Kroki poprawy LMMSE -PARTIALPASTE_RESIZE;Zmiana rozmiaru -PARTIALPASTE_RGBCURVES;Krzywe RGB -PARTIALPASTE_ROTATION;Obrót -PARTIALPASTE_SHADOWSHIGHLIGHTS;Cienie/Podświetlenia -PARTIALPASTE_SHARPENEDGE;Krawędzie -PARTIALPASTE_SHARPENING;Wyostrzanie -PARTIALPASTE_SHARPENMICRO;MikroКонтраст -PARTIALPASTE_VIBRANCE;Світність -PARTIALPASTE_VIGNETTING;Korekcja winietowania -PARTIALPASTE_WHITEBALANCE;Balans bieli -PREFERENCES_ADD;Dodaj -PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia -PREFERENCES_AUTOMONPROFILE;Automatycznie użyj systemowego profilu monitora -PREFERENCES_BATCH_PROCESSING;Przetwarzanie wsadowe -PREFERENCES_BEHADDALL;'Dodaj' wszystkie -PREFERENCES_BEHADDALLHINT;Ustaw wszystkie narzędzia w tryb Dodaj.\nZmiany parametrów w panelu edycji zbiorczej zostaną traktowane jako różnicę do poprzednich wartości. -PREFERENCES_BEHAVIOR;Zachowanie -PREFERENCES_BEHSETALL;'Ustaw' wszystkie -PREFERENCES_BEHSETALLHINT;Ustaw wszystkie narzędzia w tryb Ustaw.\nZmiany parametrów w panelu edycji zbiorczej zostaną traktowane jako absolutne, nie biorąc pod uwagę poprzednich wartości. -PREFERENCES_BLACKBODY;Wolfram -PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej -PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej -PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury -PREFERENCES_CIEART;CIECAM02 optymalizacja -PREFERENCES_CIEART_LABEL;Użyj precyzję zmiennoprzecinkową zamiast podwójną. -PREFERENCES_CIEART_TOOLTIP;Gdy umożliwione, kalkulacje CIECAM02 są wykonywane w notacji zmiennoprzecinkowej o pojedyńczej precyzji zamiast podwójnej. Skraca to czas egzekucji kosztem nieistotnej zmiany w jakości. -PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni -PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT -PREFERENCES_CUSTPROFBUILD;Zewnętrzny kreator profilów przetwarzania -PREFERENCES_CUSTPROFBUILDHINT;Plik wykonywalny (lub skrypt) uruchamiany kiedy trzeba wygenerować profil przetwarzania dla zdjęcia.\n\nScieżka pliku nośnego (w stylu *.ini czyli sekcje i klucze/parametry) występuje jako parametr wiersza poleceń. Plik ten zawiera przeróżne parametry oraz dane Exif dzięki którym odpowiedni program bądź skrypt może wygenerować plik PP3 według reguł.\n\nUWAGA: Twoją odpowiedzialnością jest prawidłowe użycie cudzysłowiów w przypadku ścieżek zawierających spacje i znaki specjalne. -PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy -PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nazwa -PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -PREFERENCES_CUSTPROFBUILDPATH;Ścieżka pliku wykonywalnego -PREFERENCES_CUTOVERLAYBRUSH;Kolor/przezroczystość maski kadrowania -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K -PREFERENCES_DARKFRAMEFOUND;Znaleziono -PREFERENCES_DARKFRAMESHOTS;zdjęć(ia) -PREFERENCES_DARKFRAMETEMPLATES;szablonów(ny) -PREFERENCES_DATEFORMAT;Format daty -PREFERENCES_DATEFORMATHINT;Dozwolone są następujące kody formatujące:\n%y - rok\n%m - miesiąc\n%d - dzień\n\nNa przykład według standardu ISO 8601 format daty wygląda następująco:\n%y-%m-%d -PREFERENCES_DIRDARKFRAMES;Katalog z czarnymi klatkami -PREFERENCES_DIRHOME;Katalog domowy -PREFERENCES_DIRLAST;Ostatnio odwiedzony katalog -PREFERENCES_DIROTHER;Inny -PREFERENCES_DIRSELECTDLG;Wybierz katalog z obrazami po uruchomieniu... -PREFERENCES_DIRSOFTWARE;Katalog instalacyjny -PREFERENCES_EDITORLAYOUT;Układ edytora -PREFERENCES_EXTERNALEDITOR;Zewnętrzny edytor -PREFERENCES_FBROWSEROPTS;Opcje przeglądarki plików -PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Pojedynczy wiersz paska narzędzi (odznaczyć dla niskich rozdzielczości) -PREFERENCES_FILEFORMAT;Format pliku -PREFERENCES_FLATFIELDFOUND;Znaleziono -PREFERENCES_FLATFIELDSDIR;Katalog z pustymi polami -PREFERENCES_FLATFIELDSHOTS;kadry -PREFERENCES_FLATFIELDTEMPLATES;szablony -PREFERENCES_FLUOF2;Fluorescent F2 -PREFERENCES_FLUOF7;Fluorescent F7 -PREFERENCES_FLUOF11;Fluorescent F11 -PREFERENCES_FORIMAGE;Dla zdjęć innych niż raw -PREFERENCES_FORRAW;Dla zdjęć raw -PREFERENCES_GIMPPATH;Katalog, w którym zainstalowany jest GIMP -PREFERENCES_GREY;Світність Yb urządzenia wyjściowego (%) -PREFERENCES_GREY05;Yb=05 CIE L#30 -PREFERENCES_GREY10;Yb=10 CIE L#40 -PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18;Yb=18 CIE L#50 -PREFERENCES_GREY23;Yb=23 CIE L#55 -PREFERENCES_GREY30;Yb=30 CIE L#60 -PREFERENCES_GREY40;Yb=40 CIE L#70 -PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram w lewym panelu -PREFERENCES_HISTOGRAMWORKING;Zastosuj profil roboczy do obliczenia głównego histogramu i Nawigatora -PREFERENCES_HISTOGRAM_TOOLTIP;Jeśli opcja jest włączona profil roboczy jest użyty do obliczenia głównego histogramu oraz panelu Nawigatora, inaczej profil wyjściowy z korektą gamma zostanie użyty. -PREFERENCES_HLTHRESHOLD;Próg dla prześwietleń -PREFERENCES_ICCDIR;Katalog z profilami koloru ICC -PREFERENCES_IMPROCPARAMS;Domyślne parametry przetwarzania obrazu -PREFERENCES_INTENT_ABSOLUTE;Absolutnie kolorymetryczny -PREFERENCES_INTENT_PERCEPTUAL;Percepcyjny -PREFERENCES_INTENT_RELATIVE;Względnie kolorymetryczny -PREFERENCES_INTENT_SATURATION;Nasyceniowy -PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Pokaż osadzoną miniaturę JPEG jeśli plik raw jest nieedytowany -PREFERENCES_LANGAUTODETECT;Użyj języka systemowego -PREFERENCES_MENUGROUPEXTPROGS;Grupuj "Otwórz za pomocą" -PREFERENCES_MENUGROUPFILEOPERATIONS;Grupuj operacje plików -PREFERENCES_MENUGROUPLABEL;Grupuj operacje etykiet -PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupuj operacje profili przetwarzania -PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny -PREFERENCES_MENUOPTIONS;Opcje menu -PREFERENCES_METADATA;Метадані -PREFERENCES_MULTITAB;Tryb wielu zakładek -PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) -PREFERENCES_NAVGUIDEBRUSH;Kolor ramki Nawigatora -PREFERENCES_OUTDIR;Katalog wyjściowy -PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu -PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjęcia w wybranym katalogu -PREFERENCES_OUTDIRTEMPLATE;Użyj schemat -PREFERENCES_OUTDIRTEMPLATEHINT;Dozwolone są następujące kody formatujące:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nKody formatujące odnoszą się do różnych elementów ścieżki zdjęcia, atrybutów zdjęcia oraz do arbitralnego ciągu numerycznego operacji wsadowej.\n\nPrzykładowo, jeśli zdjęcie obrabiane ma następującą ścieżkę:\n/home/andrzej/zdjecia/2010-10-31/dsc0042.nef\nznaczenie kodów formatujących jest następujące:\n%d4 = home\n%d3 = andrzej\n%d2 = zdjecia\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/andrzej/zdjecia/\n%p3 = /home/andrzej/\n%p4 = /home/\n\n%r zostanie zastąpione oceną zdjęcia. Jeśli zdjęcie nie posiada oceny, %r zostanie zastąpione liczbą '0'. Jeśli zdjęcie leży w śmietniku, %r zostanie zastąpione znakiem 'x'.\n\n%s1, %s2, etc. zostanie zastąpione ciągniem numerycznym dopełnionym od jednej do dziewięciu cyfr. Ciąg ten zostanie rozpocznięty od "1" za każdym razem gdy kolejka przetwarzania zostanie uruchomiona, i liczba jest zwiększona o "1" dla każdego zapisanego obrazu.\n\nJeśli chcesz zapisać obraz wyjściowy obok obrazu wejściowego, napisz:\n%p1/%f\n\nJeśli chcesz zapisać obraz wyjściowy w folderze o nazwie "wywolane" znajdującego się w katalogu zawierającym otwarty obraz, napisz:\n%p1/wywolane/%f\n\nJeśli chcesz zapisać obraz wyjściowy w folderze o nazwie "/home/andrzej/zdjecia/wywolane/2010-10-31", napisz:\n%p2/wywolane/%d1/%f -PREFERENCES_OVERLAY_FILENAMES;Nakładaj nazwy pliku na miniatury -PREFERENCES_OVERWRITEOUTPUTFILE;Nadpisuj istniejące pliki -PREFERENCES_PANFACTORLABEL;Współczynnik -PREFERENCES_PARSEDEXT;Przetwarzane rozszerzenia -PREFERENCES_PARSEDEXTADD;Dodaj rozszerzenie -PREFERENCES_PARSEDEXTADDHINT;Proszę wprowadzić rozszerzenie i zatwierdzić przyciskiem, by dodać do listy -PREFERENCES_PARSEDEXTDELHINT;Skasuje wybrane rozszerzenie z listy -PREFERENCES_PROFILEHANDLING;Obsługa profili -PREFERENCES_PROFILELOADPR;Priorytet wczytywania profilu -PREFERENCES_PROFILEPRCACHE;Profil w pamięci podręcznej -PREFERENCES_PROFILEPRFILE;Profil przy pliku wejściowym -PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamięci podręcznej -PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejściowego -PREFERENCES_PROPERTY;Własność -PREFERENCES_PSPATH;Katalog w którym zainstalowany jest Adobe Photoshop -PREFERENCES_SELECTFONT;Wybierz czcionkę -PREFERENCES_SELECTLANG;Wybierz język -PREFERENCES_SELECTTHEME;Wybierz temat -PREFERENCES_SET;Ustaw -PREFERENCES_SHOWBASICEXIF;Pokaż podstawowe dane Exif -PREFERENCES_SHOWDATETIME;Pokaż datę i czas -PREFERENCES_SHOWEXPOSURECOMPENSATION;Pokaż korektę ekspozycji -PREFERENCES_SHTHRESHOLD;Próg dla niedoświetleń -PREFERENCES_SINGLETAB;Tryb pojedynczej zakładki -PREFERENCES_SINGLETABVERTAB;Tryb pojedynczej zakładki, pionowy układ -PREFERENCES_SND_BATCHQUEUEDONE;Zakończono przetwarzanie wsadowe -PREFERENCES_SND_HELP;Należy wprowadzić ścieżkę do pliku, bądź pozostawić niewypełnione (brak dźwięków).\nW systemie Windows można stosować "SystemDefault", "SystemAsterisk" itp. dla dźwięków systemowych.\nW systemie Linux można stosować "complete", "window-attention" etc. dla dzwięków systemowych. -PREFERENCES_SND_LNGEDITPROCDONE;Praca edytora wykonana -PREFERENCES_SND_THRESHOLDSECS;po sekundach -PREFERENCES_STARTUPIMDIR;Katalog startowy -PREFERENCES_TAB_BROWSER;Przeglądarka plików -PREFERENCES_TAB_COLORMGR;Zarządzanie kolorami -PREFERENCES_TAB_GENERAL;Ogólne -PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu -PREFERENCES_TAB_SOUND;Dźwięki -PREFERENCES_TP_LABEL;Panel narzędzi: -PREFERENCES_TP_VSCROLLBAR;Ukry pionowy pasek przesuwania -PREFERENCES_USEBUNDLEDPROFILES;Użyj załączone profile przetwarzania -PREFERENCES_VIEW;Balans bieli urządzenia wyjściowego (monitora, TV, projektora, widowni, etc.) -PREFERENCES_WORKFLOW;Tok pracy -PROFILEPANEL_COPYPPASTE;Parametry do skopiowania -PROFILEPANEL_GLOBALPROFILES;Załączone profile przetwarzania -PROFILEPANEL_LABEL;Profil przetwarzania -PROFILEPANEL_LOADDLGLABEL;Wczytaj profil przetwarzania końcowego... -PROFILEPANEL_LOADPPASTE;Parametry do załadowania -PROFILEPANEL_MODE_TIP;Tryb wypełnienia parametrów przetwarzania.\n\nWduszone: częściowe profile zostaną przetworzone w profile pełne; brakujące wartości zostana wypełnione domyślnymi, zakodowanymi w silniku RawTherapee.\n\nWyłączone: profile zostaną zastosowane takie, jakie są, zmieniając tylko te wartości, które zawierają. -PROFILEPANEL_MYPROFILES;Moje profile przetwarzania -PROFILEPANEL_PASTEPPASTE;Parametry do wklejenia -PROFILEPANEL_PCUSTOM;Własny -PROFILEPANEL_PFILE;Z pliku -PROFILEPANEL_PINTERNAL;Neutralny -PROFILEPANEL_PLASTSAVED;Ostatnio zapisany -PROFILEPANEL_SAVEDLGLABEL;Zapisz profil przetwarzania... -PROFILEPANEL_SAVEPPASTE;Parametry do zapisania -PROFILEPANEL_TOOLTIPCOPY;Skopiuj aktualny profil do schowka -PROFILEPANEL_TOOLTIPLOAD;Ładuj profil z pliku.\nCtrl+klik aby wybrać parametry do ładowania. -PROFILEPANEL_TOOLTIPPASTE;Wklej profil ze schowka.\nCtrl+klik aby wybrać parametry do wklejenia. -PROFILEPANEL_TOOLTIPSAVE;Zapisz aktualny profil.\nCtrl+klik aby wybrać parametry do zapisania. -PROGRESSBAR_LOADING;Wczytywanie obrazu... -PROGRESSBAR_LOADINGTHUMBS;Wczytywanie miniatur... -PROGRESSBAR_LOADJPEG;Ładowanie pliku JPEG... -PROGRESSBAR_LOADPNG;Ładowanie pliku PNG... -PROGRESSBAR_LOADTIFF;Ładowanie pliku TIFF... -PROGRESSBAR_NOIMAGES;Nie znaleziono żadnych obrazów -PROGRESSBAR_PROCESSING;Przetwarzanie obrazu... -PROGRESSBAR_PROCESSING_PROFILESAVED;Zapisano profil przetwarzania -PROGRESSBAR_READY;Gotowe -PROGRESSBAR_SAVEJPEG;Zapisywanie pliku JPEG... -PROGRESSBAR_SAVEPNG;Zapisywanie pliku PNG... -PROGRESSBAR_SAVETIFF;Zapisywanie pliku TIFF... -PROGRESSBAR_SNAPSHOT_ADDED;Dodano migawkę -PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmieniony w przeglądarce -QINFO_ISO;ISO -QINFO_NOEXIF;Dane Exif niedostępne. -SAVEDLG_AUTOSUFFIX;Automatycznie dodaj przyrostek, jeżeli plik już istnieje -SAVEDLG_FILEFORMAT;Format pliku -SAVEDLG_FORCEFORMATOPTS;Wymuś opcje zapisu -SAVEDLG_JPEGQUAL;Jakość JPEG -SAVEDLG_PNGCOMPR;Kompresja PNG -SAVEDLG_PUTTOQUEUE;Umieść w kolejce przetwarzania -SAVEDLG_PUTTOQUEUEHEAD;Umieść na początku kolejki przetwarzania -SAVEDLG_PUTTOQUEUETAIL;Umieść na końcu kolejki przetwarzania -SAVEDLG_SAVEIMMEDIATELY;Zapisz natychmiast -SAVEDLG_SAVESPP;Zapisz parametry przetwarzania wraz z obrazem -SAVEDLG_SUBSAMP;Subsampling -SAVEDLG_SUBSAMP_1;Najlepsza kompresja -SAVEDLG_SUBSAMP_2;Pomiędzy -SAVEDLG_SUBSAMP_3;Najlepsza jakość -SAVEDLG_TIFFUNCOMPRESSED;Nieskompresowany TIFF -SAVEDLG_WARNFILENAME;Plik zostanie nazwany -SHCSELECTOR_TOOLTIP;Kliknij prawym przyciskiem myszki aby zresetować poycję trzech suwaków. -THRESHOLDSELECTOR_B;Dolny -THRESHOLDSELECTOR_BL;Dolny lewy -THRESHOLDSELECTOR_BR;Dolny prawy -THRESHOLDSELECTOR_HINT;Użyj Shift aby przesuwać poszczególne punkty kontrolne. -THRESHOLDSELECTOR_T;Top -THRESHOLDSELECTOR_TL;Górny lewy -THRESHOLDSELECTOR_TR;Górny prawy -TOOLBAR_TOOLTIP_CROP;Kadruj.\nSkrót: c\nMożna przesuwać obszar kadrowania za pomocą Shift-przeciągnięcia myszki -TOOLBAR_TOOLTIP_HAND;Przesuń.\nSkrót: h -TOOLBAR_TOOLTIP_STRAIGHTEN;Wyprostuj / obróć.\nSkrót: s\n\nWyznacz pionową lub poziomą poprzez narysowanie linii prowadnicy na podglądzie. Kąt obrotu zostanie pokazany obok linii prowadnicy. Punktem obrotu jest geometryczny środek obrazu. -TOOLBAR_TOOLTIP_WB;Wskaż balans bieli.\nSkrót: w -TP_BWMIX_ALGO;Алгоритм PZCRM -TP_BWMIX_ALGO_LI;Liniowy -TP_BWMIX_ALGO_SP;Efekty specjalne -TP_BWMIX_ALGO_TOOLTIP;Liniowy: mieszanie kanałów liniowo.\nEfekty specjalne: kanały zostaną mieszane nieliniowo. -TP_BWMIX_AUTOCH;Auto -TP_BWMIX_CC_ENABLED;Dopasuj barwy dopełniające -TP_BWMIX_CC_TOOLTIP;Włącz aby umożliwić automatyczne dopasowanie barw dopełniających w trybie CPŻZCNPM. -TP_BWMIX_CHANNEL;Ekwalizator люмінації -TP_BWMIX_CURVEEDITOR1;Крива 'Przed' -TP_BWMIX_CURVEEDITOR2;Крива 'Po' -TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Крива po konwersji obrazu na czarnobiały. -TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Крива przed konwersją obrazu na czarnobiały.\nWspółczynniki koloru mogą mieć wpływ. -TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Світність według odcieni (hue) L=f(H).\nNależy zwrócić uwagę na ekstremalne ustawienia ponieważ mogą pojawić się zniekształcenia sygnału w obrazie. -TP_BWMIX_FILTER;Filtr barwny -TP_BWMIX_FILTER_BLUE;Синій -TP_BWMIX_FILTER_BLUEGREEN;Синій-Зелений -TP_BWMIX_FILTER_GREEN;Зелений -TP_BWMIX_FILTER_GREENYELLOW;Зелений-Жовтий -TP_BWMIX_FILTER_NONE;Brak -TP_BWMIX_FILTER_PURPLE;Пурпуровий -TP_BWMIX_FILTER_RED;Червоний -TP_BWMIX_FILTER_REDYELLOW;Червоний-Жовтий -TP_BWMIX_FILTER_TOOLTIP;Filtr barwny symuluje działanie prawdziwego filtru barwnego usytuowanego przed obiektywem. Filtry barwne obniżają transmitancję specyficznych kolorów a zatem mają wpływ na ich jasność, np. filtr Червоний przyciemnia Синійe niebo. -TP_BWMIX_FILTER_YELLOW;Жовтий -TP_BWMIX_GAMMA;Корекція гами -TP_BWMIX_GAM_TOOLTIP;Корекція для каналів RGB. -TP_BWMIX_LABEL;Чорно-білий -TP_BWMIX_MET;Метод -TP_BWMIX_MET_CHANMIX;Міксер каналів -TP_BWMIX_MET_DESAT;Знебарвлення -TP_BWMIX_MET_LUMEQUAL;Ekwalizator люмінації -TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -TP_BWMIX_RGBLABEL_HINT;Ostateczne wartości RGB które uwzględniają wszystkie opcje mieszacza.\n"Total" wyświetla sumę wartości RGB:\n- zawsze 100% w trybie relatywnym,\n- ponad (jaśniej) lub poniżej (ciemniej) 100% w trybie absolutnym. -TP_BWMIX_RGB_TOOLTIP;Miesza kanały RGB. Kieruj się gotowymi ustawieniami.\nNależy zwrócić uwagę na ujemne wartości ponieważ mogą pojawić się zniekształcenia sygnału w obrazie lub działać w sposób nieprzewidywalny. -TP_BWMIX_SETTING;Gotowe ustawienia -TP_BWMIX_SETTING_TOOLTIP;Różne gotowe ustawienia (klisza, krajobraz, etc.) oraz ręcznie ustawienia mieszacza kanałów. -TP_BWMIX_SET_HIGHCONTAST;Високий контраст -TP_BWMIX_SET_HIGHSENSIT;Висока чутливість -TP_BWMIX_SET_HYPERPANCHRO;Гіпер панхроматичний -TP_BWMIX_SET_INFRARED;Інфрачервоний -TP_BWMIX_SET_LANDSCAPE;Горизонтально -TP_BWMIX_SET_LOWSENSIT;Низька чутливість -TP_BWMIX_SET_LUMINANCE;Світність -TP_BWMIX_SET_NORMCONTAST;Нормальний контраст -TP_BWMIX_SET_ORTHOCHRO;Ортохроматично -TP_BWMIX_SET_PANCHRO;Панхроматично -TP_BWMIX_SET_PORTRAIT;Вертикально -TP_BWMIX_SET_RGBABS;Абсолютний RGB -TP_BWMIX_SET_RGBREL;Відносний RGB -TP_BWMIX_SET_ROYGCBPMABS;Абсолютний ROYGCBPMABS -TP_BWMIX_SET_ROYGCBPMREL;Відносний ROYGCBPMABS -TP_BWMIX_TCMODE_FILMLIKE;B&W Klisza -TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Mieszanie Nasycenia i Mocy Światła Białego -TP_BWMIX_TCMODE_STANDARD;B&W Standardowa -TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Ważona Standardowa -TP_BWMIX_VAL;L -TP_CACORRECTION_BLUE;Синій -TP_CACORRECTION_LABEL;Korekcja aberracji chromatycznej -TP_CACORRECTION_RED;Червоний -TP_CHMIXER_BLUE;Синій -TP_CHMIXER_GREEN;Зелений -TP_CHMIXER_LABEL;Mieszacz kanałów -TP_CHMIXER_RED;Червоний -TP_CHROMATABERR_LABEL;Aberracja chromatyczna -TP_COARSETRAF_TOOLTIP_HFLIP;Odbij w poziomie -TP_COARSETRAF_TOOLTIP_ROTLEFT;Obróć w lewo.\n\nSkróty:\n[ - Tryb wielu zakładek,\nAlt-[ - Tryb jednej zakładki. -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Obróć w prawo.\n\nSkróty:\n] - Tryb wielu zakładek,\nAlt-] - Tryb jednej zakładki. -TP_COARSETRAF_TOOLTIP_VFLIP;Odbij w pionie -TP_COLORAPP_ADAPTSCENE;люмінації sceny -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Bezwzględna Світність sceny (cd/m²).\n1)Obliczona za pomocą Exif:\nCzas naświetlania - ISO - Przysłona - Korekcja ekspozycji EV w aparacie.\n2)Obliczona również na podstawie punktu bieli raw oraz korekty ekspozycji w RawTherapee -TP_COLORAPP_ADAPTVIEWING;люмінації widowni (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Bezwzględna Світність widowni\n(zazwyczaj 16cd/m²). -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Jesli zaznaczone (polecamy), RawTherapee obliczy optymalną wartość na podstawie Exif.\nAby ustawic wartość ręcznie, należy wpierw odznaczyc pudło. -TP_COLORAPP_ALGO;Алгоритм -TP_COLORAPP_ALGO_ALL;Wszystkie -TP_COLORAPP_ALGO_JC;Światłość + Chroma (JC) -TP_COLORAPP_ALGO_JS;Światłość + Nasycenie (JS) -TP_COLORAPP_ALGO_QM;Jasność + Barwistość (QM) -TP_COLORAPP_ALGO_TOOLTIP;Umożliwia wybór wszystkich parametrów lub ich podzespół. -TP_COLORAPP_BADPIXSL;Filtr pikseli gorących/uszkodzonych -TP_COLORAPP_BADPIXSL_TOOLTIP;Usuwanie gorących/uszkodzonych (świecących) pikseli.\n0 = Wyłączone\n1 = Metodą Mediana\n2 = Metodą Gaussa.\nMożna również dostroić zdjęcie tak, aby unikać bardzo ciemnych miejsc.\n\nTe anomalie wynikają z limitacji CIECAM02. -TP_COLORAPP_BRIGHT;Jasność (Q) -TP_COLORAPP_BRIGHT_TOOLTIP;Jasność w CIECAM02 bierze pod uwagę luminancję bieli i różni się od jasności L*a*b* oraz RGB. -TP_COLORAPP_CHROMA;Chroma (C) -TP_COLORAPP_CHROMA_M;Barwistość (M) -TP_COLORAPP_CHROMA_M_TOOLTIP;Barwistość w CIECAM02 różni się od barwistości L*a*b* oraz RGB. -TP_COLORAPP_CHROMA_S;Nasycenie (S) -TP_COLORAPP_CHROMA_S_TOOLTIP;Nasycenie w CIECAM02 różni się od nasycenia L*a*b* oraz RGB. -TP_COLORAPP_CHROMA_TOOLTIP;Chroma w CIECAM02 różni się od chromy L*a*b* oraz RGB. -TP_COLORAPP_CIECAT_DEGREE;Adaptacja CAT02 -TP_COLORAPP_CONTRAST;Контраст (J) -TP_COLORAPP_CONTRAST_Q;Контраст (Q) -TP_COLORAPP_CONTRAST_Q_TOOLTIP;Контраст w CIECAM02 dla suwaka Q różni się od Контрастu L*a*b* oraz RGB. -TP_COLORAPP_CONTRAST_TOOLTIP;Контраст w CIECAM02 dla suwaka J różni się od Контрастu L*a*b* oraz RGB. -TP_COLORAPP_CURVEEDITOR1;Крива тональна 1 -TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Pokazuje histogram L* (L*a*b*) przed CIECAM02.\nJeśli opcja "Pokaż histogramy wyjściowe CIECAM02 za krzywymi" jest włączona, pokazuje histogram J i Q po CIECAM02.\n\nJ i Q nie są pokazywane w głównym histogramie.\n\nEfekt końcowy jest przedstawiony w głównym histogramie. -TP_COLORAPP_CURVEEDITOR2;Крива тональна 2 -TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Tak samo działa jak Крива тональна 1. -TP_COLORAPP_CURVEEDITOR3;Крива koloru -TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ustawienie chromy, nasycenia bądź barwistości.\n\nPokazuje histogram chromatyczności (L*a*b*) przed CIECAM02.\nJeśli opcja "Pokaż histogramy wyjściowe CIECAM02 za krzywymi" jest włączona, pokazuje histogram C, s bądź M po CIECAM02.\n\nC, s oraz M nie są pokazywane w głównym histogramie.\nEfekt końcowy jest przedstawiony w głównym histogramie. -TP_COLORAPP_DATACIE;Pokaż histogramy wyjściowe CIECAM02 za krzywymi -TP_COLORAPP_DATACIE_TOOLTIP;Kiedy opcja jest włączona, histogramy za krzywymi CIECAM02 pokazują przybliżone wartości/zakresy J lub Q, oraz C, s lub M po korekcjach CIECAM02.\nTen wybór nie ma wpływu na główny histogram.\n\nKiedy opcja jest wyłączona, histogramy za krzywymi CIECAM02 pokazują wartości L*a*b* przed korekcjami CIECAM02. -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Jeśli opcja jest zaznaczona (zalecane), RawTherapee kalkuluje wartość optymalną, która jest potem użyta przez CAT02 oraz przez całość CIECAM02.\nAby ustawić wartość ręcznie, odznacz wpierw opcję (wartości powyżej 65 zalecane). -TP_COLORAPP_DEGREE_TOOLTIP;Siła CIE Chromatic Adaptation Transform 2002 -TP_COLORAPP_GAMUT;Kontrola gamma (L*a*b*). -TP_COLORAPP_GAMUT_TOOLTIP;Włącz kontrolę gamma w trybie L*a*b*. -TP_COLORAPP_HUE;Відтінок (hue, h) -TP_COLORAPP_HUE_TOOLTIP;Відтінок (hue, h) - kąt pomiędzy 0° a 360°. -TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -TP_COLORAPP_LABEL_CAM02;Ustawienia Obrazu -TP_COLORAPP_LABEL_SCENE;Ustawienia Sceny -TP_COLORAPP_LABEL_VIEWING;Własności Widowni -TP_COLORAPP_LIGHT;Światłość (J) -TP_COLORAPP_LIGHT_TOOLTIP;Światłość w CIECAM02 różni się od światłości CIELab oraz RGB -TP_COLORAPP_MODEL;Model PB -TP_COLORAPP_MODEL_TOOLTIP;Model punktu bieli.\n\nBB [RT] + [wyjściowy]:\nBalans bieli RawTherapee jest użyty dla sceny, CIECAM02 jest ustawione na D50, i balans bieli urządzenia wyjściowego ustawiony jest w Ustawieniach > Zarządzanie Kolorami\n\nBB [RT+CAT02] + [wyjściowe]:\nUstawienia balansu bieli RawTherapee są używane przez CAT02, i balans bieli urządzenia wyjściowego jest ustawione w Ustawieniach > Zarządzanie Kolorami. -TP_COLORAPP_RSTPRO;Ochrona odcieni skóry i czerwieni -TP_COLORAPP_RSTPRO_TOOLTIP;Ochrona odcieni skóry i czerwieni (suwaki i krzywe) -TP_COLORAPP_SHARPCIE;- -TP_COLORAPP_SHARPCIE_TOOLTIP;- -TP_COLORAPP_SURROUND;Otoczenie -TP_COLORAPP_SURROUND_AVER;Średnie -TP_COLORAPP_SURROUND_DARK;Ciemne -TP_COLORAPP_SURROUND_DIM;Przyćmione -TP_COLORAPP_SURROUND_EXDARK;Bardzo Ciemne (Cut-sheet) -TP_COLORAPP_SURROUND_TOOLTIP;Zmienia barwy i kolory aby wziąć pod uwagę własności widowni urządzenia wyjściowego.\n\nŚrednie:\nŚrednie światło otoczenia (standardowe). Obraz się nie zmieni.\n\nPrzyćmione:\nPrzyćmione otoczenie (TV). Obraz stanie się troszkę ciemniejszy.\n\nCiemne:\nCiemne otoczenie (projektor). Obraz stanie się jeszczę ciemniejszy.\n\nBardzo Ciemne:\nBardzo ciemne otoczenie (cut-sheet). Obraz stanie się bardzo ciemny. -TP_COLORAPP_SURSOURCE;Ciemne otoczenie -TP_COLORAPP_SURSOURCE_TOOLTIP;Można użyć kiedy np. obraz wejściowy ma ciemne krawędzie. -TP_COLORAPP_TCMODE_BRIGHTNESS;Jasność -TP_COLORAPP_TCMODE_CHROMA;Chroma -TP_COLORAPP_TCMODE_COLORF;Barwistość -TP_COLORAPP_TCMODE_LABEL1;Tryb krzywej 1 -TP_COLORAPP_TCMODE_LABEL2;Tryb krzywej 2 -TP_COLORAPP_TCMODE_LABEL3;Tryb krzywej chromy -TP_COLORAPP_TCMODE_LIGHTNESS;Światłość -TP_COLORAPP_TCMODE_SATUR;Nasycenie -TP_COLORAPP_TONECIE;Tone mapping za pomocą jasności CIECAM02 (Q) -TP_COLORAPP_TONECIE_TOOLTIP;Jeśli ta opcja jest wyłączona, tone mapping odbywa się w przestrzeni kolorów L*a*b*, zaś jeśli jest włączona, w przestrzeni kolorów CIECAM02.\nNarzędzie Tone Mapping musi być włączone aby to utawienie działało. -TP_COLORAPP_WBCAM;BB [RT+CAT02] + [wyjściowy] -TP_COLORAPP_WBRT;BB [RT] + [wyjściowy] -TP_COLORTONING_AB;o C/L -TP_COLORTONING_AUTOSAT;Automatyczna -TP_COLORTONING_BALANCE;Balans -TP_COLORTONING_BY;o C/L -TP_COLORTONING_CHROMAC;Przezroczystość -TP_COLORTONING_COLOR;Kolor -TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Przezroczystość chromy według люмінації oC=f(L) -TP_COLORTONING_HIGHLIGHT;Podświetlenia -TP_COLORTONING_HUE;Відтінок (hue) -TP_COLORTONING_LAB;Mieszanie L*a*b* -TP_COLORTONING_LABEL;Koloryzacja -TP_COLORTONING_LUMA;Світність -TP_COLORTONING_LUMAMODE;Zachowaj luminancję -TP_COLORTONING_LUMAMODE_TOOLTIP;Світність zostanie zachowana przy zmianie kolorów. -TP_COLORTONING_METHOD;Metoda -TP_COLORTONING_METHOD_TOOLTIP;"Mieszanie L*a*b*", "Suwaki RGB" oraz "Krzywe RGB" stosują interpolację do mieszania kolorów.\n"Balansowanie kolorów (cienie, półcienie, podświetlenia)" oraz "Nasycenie - Dwa Kolory" stosują kolory bezpośrednio.\n\nNarzędzie "Czarno-białe" można używac jednocześnie z narzędziem "Koloryzacji", co umożliwi tonowanie zdjęcia. -TP_COLORTONING_MIDTONES;Półcienie -TP_COLORTONING_NEUTRAL;Zresetuj suwaki -TP_COLORTONING_NEUTRAL_TIP;Zresetuj wszystkie wartości (cienie, półcienie, podświetlenia) na domyślne. -TP_COLORTONING_OPACITY;Przezroczystość -TP_COLORTONING_RGBCURVES;RGB - Krzywe -TP_COLORTONING_RGBSLIDERS;RGB - Suwaki -TP_COLORTONING_SA;Ochrona przed przesyceniem -TP_COLORTONING_SATURATEDOPACITY;Śiła -TP_COLORTONING_SATURATIONTHRESHOLD;Próg -TP_COLORTONING_SHADOWS;Cienie -TP_COLORTONING_SPLITCO;Cienie/półcienie/podświetlenia -TP_COLORTONING_SPLITCOCO;Balans kolorów - cienie/półcienie/podświetlenia -TP_COLORTONING_SPLITLR;Nasycenie - dwa kolory -TP_COLORTONING_STR;Siła -TP_COLORTONING_STRENGTH;Siła -TP_COLORTONING_TWO2;Specjalna chroma 'dwa kolory' -TP_COLORTONING_TWOALL;Specjalna chroma -TP_COLORTONING_TWOBY;Specjalne a* i b* -TP_COLORTONING_TWOCOLOR_TOOLTIP;Standardowa chroma:\nLiniowe mieszanie kanałów, a* = b*.\n\nSpecjalna chroma:\nLiniowe mieszanie kanałów, a* = b*, ale nieograniczone - spróbuj krzywą zagiąc pod przekątną.\n\nSpecialne a* i b*:\nLiniowe nieograniczone mieszanie kanałów z osobnymi krzywymi dla a* i b*. Przeznaczone dla efektów specjalnych.\n\nSpecjalna chroma - dwa kolory:\nBardziej nieprzewidywalne. -TP_COLORTONING_TWOSTD;Standardowa chroma -TP_CROP_FIXRATIO;Zablokuj proporcje -TP_CROP_GTDIAGONALS;Przekątna -TP_CROP_GTEPASSPORT;Paszport biometryczny -TP_CROP_GTFRAME;Ramka -TP_CROP_GTGRID;Siatka -TP_CROP_GTNONE;Nic -TP_CROP_GTRULETHIRDS;Trójpodział -TP_CROP_GUIDETYPE;Typ pomocy: -TP_CROP_H;Wysokość -TP_CROP_LABEL;Kadrowanie -TP_CROP_PPI;PPI= -TP_CROP_SELECTCROP;Wybierz kadr -TP_CROP_W;Szerokość -TP_CROP_X;X -TP_CROP_Y;Y -TP_DARKFRAME_AUTOSELECT;Autowybór -TP_DARKFRAME_LABEL;Czarna klatka -TP_DEFRINGE_LABEL;Usuwanie widma -TP_DEFRINGE_RADIUS;Promień -TP_DEFRINGE_THRESHOLD;Próg -TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominancja - Błękit-żółć -TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Chrominancja - Główna -TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominancja - Czerwień-zieleń -TP_DIRPYRDENOISE_ENH;Tryb ulepszony -TP_DIRPYRDENOISE_ENH_TOOLTIP;Ulepsza jakość usuwania szumów kosztem około 20% wzrostu czasu przetwarzania. -TP_DIRPYRDENOISE_LUMINANCE_CURVE;Крива люмінації -TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegółowość люмінації -TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminacja -TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metoda -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Redukcja szumu -TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Dla obrazów raw można używać metody RGB oraz L*a*b*.\n\nDla obrazów nie-raw metoda L*a*b* zostanie użyta niezależnie od wyboru. -TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma skupia siłę redukcji szumów na danym predziale zakresu tonalnego. Mniejsze wartości gamma powodują skupienie na ciemniejszych barwach, natomiast większe wartości rozciągną zakres działania również na barwy jasne. -TP_DIRPYRDENOISE_MAIN_MODE;Jakość -TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Wysoka -TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standardowa -TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Jakość może zostać dopasowana do wzoru szumów. Ustawienie "wysoka" ulepsza odszumianie około 20% wzrostu czasu przetwarzania. -TP_DIRPYRDENOISE_MEDIAN_METHOD;Metoda mediana -TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Filtr Mediana -TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Tylko Світність -TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;Przy użyciu metod "tylko Світність" oraz "L*a*b*", filtrowanie mediana zostanie wykonane prosto po funkcji falki w procesie odszumiania.\nW trybie "RGB" filtrowanie to zostanie wykonana pod koniec calego procesu. -TP_DIRPYRDENOISE_MEDIAN_PASSES;Liczba powtórzeń mediana -TP_DIRPYRDENOISE_MEDIAN_TYPE;Rodzaj mediana -TP_DIRPYREQUALIZER_ALGO;Zakres odcieni skóry -TP_DIRPYREQUALIZER_ALGO_TOOLTIP;- -TP_DIRPYREQUALIZER_HUESKIN;Відтінок skóry -TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;Piramida wyznacza zakres kolorów uważany jako zakres odcieni skóry. Większość odcieni skóry - białej, czarnej, i pomiędzy - ma tę samą Відтінок. Małe poprawki są dopuszczalne, jednak jeśli potrzebna jest większa zmiana w lewo lub prawo, lub jeśli są widoczne artefakty, to najprawdopobniej balans bieli jest niepoprawny. -TP_DIRPYREQUALIZER_LABEL;Контраст wg. precyzji detali -TP_DIRPYREQUALIZER_LUMACOARSEST;Zgrubne -TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Контраст- -TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Контраст+ -TP_DIRPYREQUALIZER_LUMAFINEST;Delikatne -TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutralne -TP_DIRPYREQUALIZER_SKIN;Ochrona/celowanie odcieni skóry -TP_DIRPYREQUALIZER_SKIN_TOOLTIP;Przy -100 oddziaływanie efektu odbywa się wyłącznie na odcieniach skóry.\nPrzy 0 oddziaływanie efektu odbywa się jednakowo na wszystkich odcieniach.\nPrzy +100 odcienie skóry są pomijane podczas gdy oddziaływanie odbywa się na wszystkich pozostałych odcieniach. -TP_DIRPYREQUALIZER_THRESHOLD;Próg -TP_DIRPYREQUALIZER_TOOLTIP;Zapobiega artefaktom w strefach przejścia pomiędzy odcieniom skóry (hue, chrominancja, Світність) a pozostałym odcieniom. -TP_DISTORTION_AMOUNT;Siła -TP_DISTORTION_LABEL;Dystorsja -TP_EPD_EDGESTOPPING;Wyszukiwanie krawędzi -TP_EPD_LABEL;Tone Mapping -TP_EPD_REWEIGHTINGITERATES;Powtarzanie rozważania -TP_EPD_SCALE;Skala -TP_EPD_STRENGTH;Siła -TP_EPD_TOOLTIP;Tone mapping może się odbyć w przestrzeni kolorów L*a*b* (domyślnie) oraz CIECAM02.\n\nAby wykonać tone mapping w przestrzeni CIECAM02 należy włączyć następujące ustawienia:\n1. CIECAM02\n2. Алгоритм="Jasność + Barwistość (QM)"\n3. "Tone mapping za pomocą jasności CIECAM02 (Q)" -TP_EXPOSURE_AUTOLEVELS;Wyrównaj poziomy -TP_EXPOSURE_AUTOLEVELS_TIP;Dokonaj automatycznego ustawienia parametrów ekspozycji na podstawie analizy obrazu -TP_EXPOSURE_BLACKLEVEL;Czerń -TP_EXPOSURE_BRIGHTNESS;Jasność -TP_EXPOSURE_CLIP;Przytnij % -TP_EXPOSURE_CLIP_TIP;Ułamek pikseli ktore mają zostać rozjaśnione do punktu prześwietlenia podczas automatycznego wyrównania poziomów. -TP_EXPOSURE_COMPRHIGHLIGHTS;Kompresja podświetleń -TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Próg kompresji podświetleń -TP_EXPOSURE_COMPRSHADOWS;Kompresja cieni -TP_EXPOSURE_CONTRAST;Контраст -TP_EXPOSURE_CURVEEDITOR;Крива тональна -TP_EXPOSURE_CURVEEDITOR1;Крива тональна 1 -TP_EXPOSURE_CURVEEDITOR2;Крива тональна 2 -TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Więcej informacji na temat optymalnego wykorzystania obu krzywych jest dostępne w podręczniku (RawTherapee Manual) w dziale:\nThe Toolbox > Exposure Tab > Exposure Panel > Tone Curve\n(Narzędzie > Zakładka Ekspozycji > Krzywe Tonalne) -TP_EXPOSURE_EXPCOMP;Korekcja ekspozycji (EV) -TP_EXPOSURE_LABEL;Ekspozycja -TP_EXPOSURE_SATURATION;Nasycenie -TP_EXPOSURE_TCMODE_FILMLIKE;Klisza -TP_EXPOSURE_TCMODE_LABEL1;Tryb krzywej 1 -TP_EXPOSURE_TCMODE_LABEL2;Tryb krzywej 2 -TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Mieszanie nasycenia i mocy światła białego -TP_EXPOSURE_TCMODE_STANDARD;Standardowa -TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Ważona standardowa -TP_EXPOS_BLACKPOINT_LABEL;Punkt czerni raw -TP_EXPOS_WHITEPOINT_LABEL;Punkt bieli raw -TP_FILMSIMULATION_LABEL;Symulacja Kliszy -TP_FILMSIMULATION_STRENGTH;Siła -TP_FILMSIMULATION_ZEROCLUTSFOUND;Ustaw folder HaldCLUT w Ustawieniach -TP_FLATFIELD_AUTOSELECT;Autowybór -TP_FLATFIELD_BLURRADIUS;Promień rozmycia -TP_FLATFIELD_BLURTYPE;Typ rozmycia -TP_FLATFIELD_BT_AREA;Obszar -TP_FLATFIELD_BT_HORIZONTAL;Poziomy -TP_FLATFIELD_BT_VERTHORIZ;Poziomy + pionowy -TP_FLATFIELD_BT_VERTICAL;Pionowy -TP_FLATFIELD_CLIPCONTROL;Zabezpieczenie przed obcinaniem -TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Funkcja ta chroni przed obcinaniem podświetleń które może zaistnieć przy stosowaniu obrazów type "puste pole". Należy zachować ostrożność, ponieważ jeśli obcięte rejony istnieją przed zastosowaniem pustego pola, funkcja ta może spowodować zabarwienie tych rejonów które powinny być białe. -TP_FLATFIELD_LABEL;Puste pole -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Dowolna gamma -TP_GAMMA_OUTPUT;Wyjściowa gamma -TP_GAMMA_SLOP;Nachylenie (liniowy) -TP_GENERAL_11SCALE_TOOLTIP;Efekty tego narzędzia są widoczne bądź poprawne przy przybliżeniu 100% lub więcej. -TP_GRADIENT_CENTER;Środek -TP_GRADIENT_CENTER_X;Środek X -TP_GRADIENT_CENTER_X_TOOLTIP;Przesuń filtr do lewej (ujemne wartości) lub prawej (dodatne wartości). -TP_GRADIENT_CENTER_Y;Środek Y -TP_GRADIENT_CENTER_Y_TOOLTIP;Przesuń filtr do góry (ujemne wartości) lub do dołu (dodatne wartości). -TP_GRADIENT_DEGREE;Kąt -TP_GRADIENT_DEGREE_TOOLTIP;Kąt obrotu filtra w stopniach. -TP_GRADIENT_FEATHER;Wtapianie -TP_GRADIENT_FEATHER_TOOLTIP;Szerokośc nachylenia zbocza w procentach przekątnej. -TP_GRADIENT_LABEL;Filtr Połówkowy -TP_GRADIENT_STRENGTH;Siła -TP_GRADIENT_STRENGTH_TOOLTIP;Śiła filtru w jednostkach EV. -TP_HLREC_BLEND;Mieszanie -TP_HLREC_CIELAB;Mieszanie koloru CIELab -TP_HLREC_COLOR;Propagacja koloru -TP_HLREC_ENA_TOOLTIP;Może zostać automatycznie włączone w skutek działania automatycznej ekspozycji -TP_HLREC_LABEL;Odzyskiwanie prześwietleń -TP_HLREC_LUMINANCE;Odzyskiwanie люмінації -TP_HLREC_METHOD;Metoda: -TP_HSVEQUALIZER_CHANNEL;Kanał -TP_HSVEQUALIZER_HUE;H -TP_HSVEQUALIZER_LABEL;Ekwalizator HSV -TP_HSVEQUALIZER_SAT;S -TP_HSVEQUALIZER_VAL;V -TP_ICM_BLENDCMSMATRIX;Tłumienie prześwietleń danymi z matrycy -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Włącz odzyskiwanie prześwietlonych regionow jesli profil ICC wykorzystuje LUT (tablicowanie). -TP_ICM_DCPILLUMINANT;Iluminant -TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolowany -TP_ICM_DCPILLUMINANT_TOOLTIP;Wybierz który osadzony iluminant DCP należy użyć. Domyślną opcją jest "interpolowany", czyli wartość jest mieszaniną pomiędzy dwoma osadzonymi wartościami iluminantu zależnie od balansu bieli. Ten wybór jest możliwy jedynie kiedy DCP zawiera dwa iluminanty z możliwościa interpolacji. -TP_ICM_INPUTCAMERA;Domyślny aparatu -TP_ICM_INPUTCAMERAICC;Domyślny aparatu lub ICC -TP_ICM_INPUTCAMERAICC_TOOLTIP;Uzyj profil ICC stworzony specjalnie na potrzeby RawTherapee. Jest bardziej dokładny niż domyślny matrycowy profil ICC, lecz dostępny tylko dla niektórych aparatów. -TP_ICM_INPUTCAMERA_TOOLTIP;Użyj prostej domyślnej matrycy kolorów z DCRAW bądź zapisanej w DNG. -TP_ICM_INPUTCUSTOM;Własny -TP_ICM_INPUTCUSTOM_TOOLTIP;Wczytaj własny profil ICC z pliku. -TP_ICM_INPUTDLGLABEL;Wybierz wejściowy profil ICC... -TP_ICM_INPUTEMBEDDED;Jeśli to możliwe, użyj osadzonego -TP_ICM_INPUTEMBEDDED_TOOLTIP;Użyj profil ICC zapisany w plikach innych niż raw. -TP_ICM_INPUTNONE;Bez profilu -TP_ICM_INPUTNONE_TOOLTIP;Nie używaj żadnego profilu kolorów. Pożyteczne jedynie w wyjątkowych przypadkach. -TP_ICM_INPUTPROFILE;Profil wejściowy -TP_ICM_LABEL;ICM -TP_ICM_NOICM;Brak ICM: Wyjście sRGB -TP_ICM_OUTPUTPROFILE;Profil wyjściowy -TP_ICM_SAVEREFERENCE_TOOLTIP;Zapisz liniowy obraz TIFF zanim profil wejściowy zostanie zastosowany. Obraz ten można użyć do kalibracji oraz do wytworzenia profilu aparatu. -TP_ICM_TONECURVE;Użyj krzywą tonalną z DCP -TP_ICM_TONECURVE_TOOLTIP;Włącz aby użyć krzywą tonalną znajdującą się w profilu DCP. Opcja ta jest tylko aktywna jeśli profil DCP zawiera krzywą tonalną. -TP_ICM_WORKINGPROFILE;Profil roboczy -TP_IMPULSEDENOISE_LABEL;Redukcja Szumów Impulsowych -TP_IMPULSEDENOISE_THRESH;Próg -TP_LABCURVE_AVOIDCOLORSHIFT;Zapobiegaj zmianom koloru -TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Umieszcza kolory w gamie roboczej przestrzeni kolorów i stosuje korektę Munsell'a -TP_LABCURVE_BRIGHTNESS;Światłość -TP_LABCURVE_CHROMATICITY;Chromatyczność -TP_LABCURVE_CHROMA_TOOLTIP;Aby zastosować tonowanie zdjęcia B&W, ustaw chromatyczność na -100. -TP_LABCURVE_CONTRAST;Контраст -TP_LABCURVE_CURVEEDITOR;Крива luminacji -TP_LABCURVE_CURVEEDITOR_A_RANGE1;Zielone Nasycone -TP_LABCURVE_CURVEEDITOR_A_RANGE2;Zielone Pastelowe -TP_LABCURVE_CURVEEDITOR_A_RANGE3;Czerwone Pastelowe -TP_LABCURVE_CURVEEDITOR_A_RANGE4;Czerwone Nasycone -TP_LABCURVE_CURVEEDITOR_B_RANGE1;Синійe Nasycone -TP_LABCURVE_CURVEEDITOR_B_RANGE2;Синійe Pastelowe -TP_LABCURVE_CURVEEDITOR_B_RANGE3;Żółte Pastelowe -TP_LABCURVE_CURVEEDITOR_B_RANGE4;Żółte Nasycone -TP_LABCURVE_CURVEEDITOR_CC;CC -TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutralne -TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Mętne -TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastelowe -TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Nasycone -TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromatyczność według chromatyczności C=f(C). -TP_LABCURVE_CURVEEDITOR_CH;CH -TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromatyczność według odcieni (hue) C=f(H) -TP_LABCURVE_CURVEEDITOR_CL;CL -TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromatyczność według люмінації C=f(L) -TP_LABCURVE_CURVEEDITOR_HH;HH -TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Відтінок (hue) według odcieni H=f(H) -TP_LABCURVE_CURVEEDITOR_LC;LC -TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Світність według chromatyczności L=f(C) -TP_LABCURVE_CURVEEDITOR_LH;LH -TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance według odcieni (hue) L=f(H) -TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Світність według люмінації L=f(L) -TP_LABCURVE_LABEL;Regulacja L*a*b* -TP_LABCURVE_LCREDSK;Ogranicz LC do odcieni skóry oraz czerwieni -TP_LABCURVE_LCREDSK_TIP;Kiedy opcja jest włączona, wpływ krzywej LC (Світність według chromatyczności) jest ograniczony do odcieni skóry oraz czerwieni.\nKiedy opcja jest wyłączona, Крива LC wpływa na wszystkie barwy. -TP_LABCURVE_RSTPROTECTION;Ochrona skóry oraz czerwieni -TP_LABCURVE_RSTPRO_TOOLTIP;Ma wpływ na suwak Chromatyczności oraz na krzywą CC. -TP_LENSGEOM_AUTOCROP;Auto-kadrowanie -TP_LENSGEOM_FILL;Auto-wypełnienie -TP_LENSGEOM_LABEL;Obiektyw / Geometria -TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP -TP_LENSPROFILE_USECA;Korekja aberacji chromatycznej -TP_LENSPROFILE_USEDIST;Korekcja dystorsji -TP_LENSPROFILE_USEVIGN;Korekcja winietowania -TP_NEUTRAL_TIP;Zresetuj ustawienia do wartości neutralnych.\nDziała na tych samych suwakach na których funkcja "Wyrównaj poziomy" działa, niezależnie od tego czy funkcja ta była użyta czy nie. -TP_PCVIGNETTE_FEATHER;Wtapianie -TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pół drogi do środka,\n100 = aż do środka. -TP_PCVIGNETTE_LABEL;Віньєтування -TP_PCVIGNETTE_ROUNDNESS;Okrągłość -TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Okrągłość:\n0 = prostokąt,\n50 = dopasowana elipsa,\n100 = okrąg. -TP_PCVIGNETTE_STRENGTH;Śiła -TP_PCVIGNETTE_STRENGTH_TOOLTIP;Siła filtru w kątach w jednostkach EV. -TP_PERSPECTIVE_HORIZONTAL;Pozioma -TP_PERSPECTIVE_LABEL;Perspektywa -TP_PERSPECTIVE_VERTICAL;Pionowa -TP_PFCURVE_CURVEEDITOR_CH;Відтінок -TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Ogranicza natężenie usuwania widma według kolorów.\nWyżej = bardziej,\nNiżej = mniej. -TP_PREPROCESS_DEADPIXFILT;Filtr martwych pikseli -TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Łata martwe piksele (pojedyńcze czarne piksele). -TP_PREPROCESS_GREENEQUIL;Wyrównanie zieleni -TP_PREPROCESS_HOTPIXFILT;Filtr gorących pikseli -TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Łata gorące piksele (pojedyńcze świecące, przesycone piksele). -TP_PREPROCESS_LABEL;Przetwarzanie początkowe -TP_PREPROCESS_LINEDENOISE;Filtr zakłóceń liniowych -TP_PREPROCESS_NO_FOUND;Nic nie znaleziono -TP_RAWCACORR_AUTO;Autokorekcja -TP_RAWCACORR_CABLUE;Синій -TP_RAWCACORR_CARED;Червоний -TP_RAWEXPOS_BLACKS;Poziomy czerni -TP_RAWEXPOS_BLACK_0;Зелений 1 (główny) -TP_RAWEXPOS_BLACK_1;Червоний -TP_RAWEXPOS_BLACK_2;Синій -TP_RAWEXPOS_BLACK_3;Зелений 2 -TP_RAWEXPOS_BLACK_BLUE;Синій -TP_RAWEXPOS_BLACK_GREEN;Зелений -TP_RAWEXPOS_BLACK_RED;Червоний -TP_RAWEXPOS_LINEAR;Liniowy współczynnik korekcji -TP_RAWEXPOS_PRESER;Zachowanie prześwietleń -TP_RAWEXPOS_RGB;Червоний, Зелений, Синій -TP_RAWEXPOS_TWOGREEN;Połącz obie zielenie -TP_RAW_DCBENHANCE;Zastosuj poprawę DCB -TP_RAW_DCBITERATIONS;Liczba powtórzeń DCB -TP_RAW_DMETHOD;Metoda -TP_RAW_DMETHOD_PROGRESSBAR;Demozaikowanie %1... -TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Udoskonalanie demozaikowania... -TP_RAW_DMETHOD_TOOLTIP;IGV oraz LMMSE są przeznaczone dla zdjęć raw o wysokim poziomie szumów (wysokie ISO) aby zapobiec utworzeniu się wzorków w kształcie małych labiryntów, posteryzacji oraz mydlanego wyglądu. -TP_RAW_FALSECOLOR;Kroki zapobiegające fałszowaniu kolorów -TP_RAW_LABEL;Demozaikowanie -TP_RAW_LMMSEITERATIONS;Ilość kroków udoskonalenia LMMSE -TP_RAW_LMMSE_TOOLTIP;Aby zmniejszyć ilość artefaktów i poprawić stosunek sygnału do szumów, można wykorzystać następujące ustawienia:\n1: Gamma\n2-4: Średnia mediana\n5-6: Rafinowanie -TP_RAW_SENSOR_BAYER_LABEL;Matryca z filtrem Bayera -TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Trzy powtórzenia prowadzą do najlepszych rezultatów (zalecane dla zdjęć o niskim ISO).\nJedno powtórzenie jest prawie nie do odróżnienia od trzech dla zdjęć o wysokim ISO a jest znacznie szybsze. -TP_RAW_SENSOR_XTRANS_LABEL;Matryca z filtrem X-Trans -TP_RESIZE_APPLIESTO;Dotyczy: -TP_RESIZE_CROPPEDAREA;Obszaru kadrowanego -TP_RESIZE_FITBOX;Wymiary obwodu -TP_RESIZE_FULLIMAGE;Całego zdjęcia -TP_RESIZE_H;Wysokość: -TP_RESIZE_HEIGHT;Wysokość -TP_RESIZE_LABEL;Zmiana rozmiaru -TP_RESIZE_LANCZOS;Lanczos -TP_RESIZE_METHOD;Metoda: -TP_RESIZE_NEAREST;Najbliższa -TP_RESIZE_SCALE;Skalę -TP_RESIZE_SPECIFY;Określ: -TP_RESIZE_W;Szerokość -TP_RESIZE_WIDTH;Szerokość -TP_RGBCURVES_BLUE;B -TP_RGBCURVES_CHANNEL;Kanał -TP_RGBCURVES_GREEN;G -TP_RGBCURVES_LABEL;Krzywe RGB -TP_RGBCURVES_LUMAMODE;Tryb люмінації -TP_RGBCURVES_LUMAMODE_TOOLTIP;Tryb люмінації pozwala na zmianę wpływu kanałów R, G i B na luminancję obrazu bez zmian kolorów. -TP_RGBCURVES_RED;R -TP_ROTATE_DEGREE;Stopnie -TP_ROTATE_LABEL;Obrót -TP_ROTATE_SELECTLINE;Wyprostuj obraz -TP_SAVEDIALOG_OK_TIP;Skrót: Ctrl-Enter -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Podświetlenia -TP_SHADOWSHLIGHTS_HLTONALW;Szerokość тональна -TP_SHADOWSHLIGHTS_LABEL;Cienie/Podświetlenia -TP_SHADOWSHLIGHTS_LOCALCONTR;Контраст lokalny -TP_SHADOWSHLIGHTS_RADIUS;Promień -TP_SHADOWSHLIGHTS_SHADOWS;Cienie -TP_SHADOWSHLIGHTS_SHARPMASK;Ostra maska -TP_SHADOWSHLIGHTS_SHTONALW;Szerokość тональна -TP_SHARPENEDGE_AMOUNT;Siła -TP_SHARPENEDGE_LABEL;Krawędzie -TP_SHARPENEDGE_PASSES;Powtórzenia -TP_SHARPENEDGE_THREE;Tylko Світність -TP_SHARPENING_AMOUNT;Siła -TP_SHARPENING_EDRADIUS;Promień -TP_SHARPENING_EDTOLERANCE;Tolerancja krawędzi -TP_SHARPENING_HALOCONTROL;Kontrola poświaty -TP_SHARPENING_HCAMOUNT;Siła -TP_SHARPENING_LABEL;Wyostrzanie -TP_SHARPENING_METHOD;Metoda -TP_SHARPENING_ONLYEDGES;Wyostrz tylko krawędzie -TP_SHARPENING_RADIUS;Promień -TP_SHARPENING_RLD;Dekonwolucja RL -TP_SHARPENING_RLD_AMOUNT;Siła -TP_SHARPENING_RLD_DAMPING;Tłumienie -TP_SHARPENING_RLD_ITERATIONS;Powtórzenia -TP_SHARPENING_THRESHOLD;Próg -TP_SHARPENING_USM;Maska wyostrzająca -TP_SHARPENMICRO_AMOUNT;Siła -TP_SHARPENMICRO_LABEL;MikroКонтраст -TP_SHARPENMICRO_MATRIX;Matryca 3×3 zamiast 5×5 -TP_SHARPENMICRO_UNIFORMITY;Jednolitość -TP_VIBRANCE_AVOIDCOLORSHIFT;Zapobiegaj przesunięcia kolorów -TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Odcienie skóry -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Czerwone/Purpurowe -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Czerwone -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Czerwone/Żółte -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Żółte -TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Відтінок (hue) według odcieni H=f(H) -TP_VIBRANCE_LABEL;Світність -TP_VIBRANCE_PASTELS;Odcienie pastelowe -TP_VIBRANCE_PASTSATTOG;Połącz odcienie pastelowe i nasycone -TP_VIBRANCE_PROTECTSKINS;Zachowaj odcienie skóry -TP_VIBRANCE_PSTHRESHOLD;Próg odcieni pastelowych/nasyconych -TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Próg nasycenia -TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;Oś pionowa odpowiada barwą pastelowym na dole oraz nasyconym na górze.\nOś pozioma przedstawia zakres nasycenia. -TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Ważenie przejścia barw pastelowych/nasyconych -TP_VIBRANCE_SATURATED;Odcienie nasycone -TP_VIGNETTING_AMOUNT;Ilość -TP_VIGNETTING_CENTER;Środek -TP_VIGNETTING_CENTER_X;Środek X -TP_VIGNETTING_CENTER_Y;Środek Y -TP_VIGNETTING_LABEL;Korekcja winietowania -TP_VIGNETTING_RADIUS;Promień -TP_VIGNETTING_STRENGTH;Siła -TP_WBALANCE_AUTO;Auto -TP_WBALANCE_CAMERA;Z aparatu -TP_WBALANCE_CLOUDY;Pochmurnie -TP_WBALANCE_CUSTOM;Własny -TP_WBALANCE_DAYLIGHT;Światło dzienne (słonecznie) -TP_WBALANCE_EQBLUERED;Ekwalizator niebieskości/czerwieni -TP_WBALANCE_EQBLUERED_TOOLTIP;Pozwala na odchyłkę od typowego użytku balansu bieli poprzez modulację balansu niebieskości/czerwieni.\nJest to przydatne kiedy:\na) warunki miejsca fotografii są oddalone od standardowego iluminantu (światła o określonych parametrach za pomocą którego kalibruje się profil wejściowy aparatu), np. zdjęcia robione pod wodą,\nb) warunki fotografii są oddalone od warunków pod którymi kalibracje zostały wykonane,\nc) macierze oraz profile ICC/DCP są z jakiegos powodu nieodpowiednie. -TP_WBALANCE_FLASH55;Leica -TP_WBALANCE_FLASH60;Standardowe, Canon, Pentax, Olympus -TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -TP_WBALANCE_FLASH_HEADER;Flash -TP_WBALANCE_FLUO1;F1 - Światło dzienne -TP_WBALANCE_FLUO2;F2 - Chłodne białe -TP_WBALANCE_FLUO3;F3 - Białe -TP_WBALANCE_FLUO4;F4 - Ciepłe białe -TP_WBALANCE_FLUO5;F5 - Światło dzienne -TP_WBALANCE_FLUO6;F6 - Białe Lite -TP_WBALANCE_FLUO7;F7 - D65 Symulator światła dziennego -TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -TP_WBALANCE_FLUO9;F9 - Chłodne białe deluxe -TP_WBALANCE_FLUO10;F10 - Philips TL85 -TP_WBALANCE_FLUO11;F11 - Philips TL84 -TP_WBALANCE_FLUO12;F12 - Philips TL83 -TP_WBALANCE_FLUO_HEADER;Jarzeniowe -TP_WBALANCE_GREEN;Відтінок -TP_WBALANCE_GTI;GTI -TP_WBALANCE_HMI;HMI -TP_WBALANCE_JUDGEIII;JudgeIII -TP_WBALANCE_LABEL;Balans bieli -TP_WBALANCE_LAMP_HEADER;Lamp -TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 -TP_WBALANCE_LED_HEADER;LED -TP_WBALANCE_LED_LSI;LSI Lumelex 2040 -TP_WBALANCE_METHOD;Metoda -TP_WBALANCE_SHADE;Ćień -TP_WBALANCE_SIZE;Wielkość: -TP_WBALANCE_SOLUX35;Solux 3500K -TP_WBALANCE_SOLUX41;Solux 4100K -TP_WBALANCE_SOLUX47;Solux 4700K (vendor) -TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) -TP_WBALANCE_SPOTWB;Punktowy -TP_WBALANCE_TEMPERATURE;Temperatura -TP_WBALANCE_TUNGSTEN;Wolfram -TP_WBALANCE_WATER1;Pod wodą 1 -TP_WBALANCE_WATER2;Pod wodą 2 -TP_WBALANCE_WATER_HEADER;Pod wodą -ZOOMPANEL_100;(100%) -ZOOMPANEL_NEWCROPWINDOW;Otwórz (nową) lupę -ZOOMPANEL_ZOOM100;Powiększ do 100%\nSkrót: z -ZOOMPANEL_ZOOMFITCROPSCREEN;Dopasuj kadr do ekranu\nSkrót: f -ZOOMPANEL_ZOOMFITSCREEN;Dopasuj cały obraz do ekranu\nSkrót: Alt-f -ZOOMPANEL_ZOOMIN;Przybliż\nSkrót: + -ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!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: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!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. -!DONT_SHOW_AGAIN;Don't show this message again. -!DYNPROFILEEDITOR_DELETE;Delete -!DYNPROFILEEDITOR_EDIT;Edit -!DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule -!DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. -!DYNPROFILEEDITOR_IMGTYPE_ANY;Any -!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR -!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift -!DYNPROFILEEDITOR_IMGTYPE_STD;Standard -!DYNPROFILEEDITOR_MOVE_DOWN;Move Down -!DYNPROFILEEDITOR_MOVE_UP;Move Up -!DYNPROFILEEDITOR_NEW;New -!DYNPROFILEEDITOR_NEW_RULE;New Dynamic Profile Rule -!DYNPROFILEEDITOR_PROFILE;Processing Profile -!EXIFFILTER_IMAGETYPE;Image type -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_USE_FAST_PIPELINE;Dedicated (full processing on resized image) -!EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality. -!EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. -!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. -!FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) -!FILECHOOSER_FILTER_CURVE;Curve files -!FILECHOOSER_FILTER_LCP;Lens correction profiles -!FILECHOOSER_FILTER_PP;Processing profiles -!FILECHOOSER_FILTER_SAME;Same format as current photo -!FILECHOOSER_FILTER_TIFF;TIFF files -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_CURRENT;Current -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!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. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_299;NR - Chrominance curve -!HISTORY_MSG_300;- -!HISTORY_MSG_301;NR - Luma control -!HISTORY_MSG_302;NR - Chroma method -!HISTORY_MSG_303;NR - Chroma method -!HISTORY_MSG_304;W - Contrast levels -!HISTORY_MSG_305;Wavelet Levels -!HISTORY_MSG_306;W - Process -!HISTORY_MSG_307;W - Process -!HISTORY_MSG_308;W - Process direction -!HISTORY_MSG_309;W - ES - Detail -!HISTORY_MSG_310;W - Residual - Sky tar/prot -!HISTORY_MSG_311;W - Wavelet levels -!HISTORY_MSG_312;W - Residual - Shadows threshold -!HISTORY_MSG_313;W - Chroma - Sat/past -!HISTORY_MSG_314;W - Gamut - Reduce artifacts -!HISTORY_MSG_315;W - Residual - Contrast -!HISTORY_MSG_316;W - Gamut - Skin tar/prot -!HISTORY_MSG_317;W - Gamut - Skin hue -!HISTORY_MSG_318;W - Contrast - Highlight levels -!HISTORY_MSG_319;W - Contrast - Highlight range -!HISTORY_MSG_320;W - Contrast - Shadow range -!HISTORY_MSG_321;W - Contrast - Shadow levels -!HISTORY_MSG_322;W - Gamut - Avoid color shift -!HISTORY_MSG_323;W - ES - Local contrast -!HISTORY_MSG_324;W - Chroma - Pastel -!HISTORY_MSG_325;W - Chroma - Saturated -!HISTORY_MSG_326;W - Chroma - Method -!HISTORY_MSG_327;W - Contrast - Apply to -!HISTORY_MSG_328;W - Chroma - Link strength -!HISTORY_MSG_329;W - Toning - Opacity RG -!HISTORY_MSG_330;W - Toning - Opacity BY -!HISTORY_MSG_331;W - Contrast levels - Extra -!HISTORY_MSG_332;W - Tiling method -!HISTORY_MSG_333;W - Residual - Shadows -!HISTORY_MSG_334;W - Residual - Chroma -!HISTORY_MSG_335;W - Residual - Highlights -!HISTORY_MSG_336;W - Residual - Highlights threshold -!HISTORY_MSG_337;W - Residual - Sky hue -!HISTORY_MSG_338;W - ES - Radius -!HISTORY_MSG_339;W - ES - Strength -!HISTORY_MSG_340;W - Strength -!HISTORY_MSG_341;W - Edge performance -!HISTORY_MSG_342;W - ES - First level -!HISTORY_MSG_343;W - Chroma levels -!HISTORY_MSG_344;W - Meth chroma sl/cur -!HISTORY_MSG_345;W - ES - Local contrast -!HISTORY_MSG_346;W - ES - Local contrast method -!HISTORY_MSG_347;W - Denoise - Level 1 -!HISTORY_MSG_348;W - Denoise - Level 2 -!HISTORY_MSG_349;W - Denoise - Level 3 -!HISTORY_MSG_350;W - ES - Edge detection -!HISTORY_MSG_351;W - Residual - HH curve -!HISTORY_MSG_352;W - Background -!HISTORY_MSG_353;W - ES - Gradient sensitivity -!HISTORY_MSG_354;W - ES - Enhanced -!HISTORY_MSG_355;W - ES - Threshold low -!HISTORY_MSG_356;W - ES - Threshold high -!HISTORY_MSG_357;W - Denoise - Link with ES -!HISTORY_MSG_358;W - Gamut - CH -!HISTORY_MSG_359;Hot/Dead - Threshold -!HISTORY_MSG_360;TM - Gamma -!HISTORY_MSG_361;W - Final - Chroma balance -!HISTORY_MSG_362;W - Residual - Compression method -!HISTORY_MSG_363;W - Residual - Compression strength -!HISTORY_MSG_364;W - Final - Contrast balance -!HISTORY_MSG_365;W - Final - Delta balance -!HISTORY_MSG_366;W - Residual - Compression gamma -!HISTORY_MSG_367;W - Final - 'After' contrast curve -!HISTORY_MSG_368;W - Final - Contrast balance -!HISTORY_MSG_369;W - Final - Balance method -!HISTORY_MSG_370;W - Final - Local contrast curve -!HISTORY_MSG_371;Post-Resize Sharpening -!HISTORY_MSG_372;PRS USM - Radius -!HISTORY_MSG_373;PRS USM - Amount -!HISTORY_MSG_374;PRS USM - Threshold -!HISTORY_MSG_375;PRS USM - Sharpen only edges -!HISTORY_MSG_376;PRS USM - Edge detection radius -!HISTORY_MSG_377;PRS USM - Edge tolerance -!HISTORY_MSG_378;PRS USM - Halo control -!HISTORY_MSG_379;PRS USM - Halo control amount -!HISTORY_MSG_380;PRS - Method -!HISTORY_MSG_381;PRS RLD - Radius -!HISTORY_MSG_382;PRS RLD - Amount -!HISTORY_MSG_383;PRS RLD - Damping -!HISTORY_MSG_384;PRS RLD - Iterations -!HISTORY_MSG_385;W - Residual - Color Balance -!HISTORY_MSG_386;W - Residual - CB green high -!HISTORY_MSG_387;W - Residual - CB blue high -!HISTORY_MSG_388;W - Residual - CB green mid -!HISTORY_MSG_389;W - Residual - CB blue mid -!HISTORY_MSG_390;W - Residual - CB green low -!HISTORY_MSG_391;W - Residual - CB blue low -!HISTORY_MSG_392;W - Residual - Color Balance -!HISTORY_MSG_393;DCP - Look table -!HISTORY_MSG_394;DCP - Baseline exposure -!HISTORY_MSG_395;DCP - Base table -!HISTORY_MSG_396;W - Contrast sub-tool -!HISTORY_MSG_397;W - Chroma sub-tool -!HISTORY_MSG_398;W - ES sub-tool -!HISTORY_MSG_399;W - Residual sub-tool -!HISTORY_MSG_400;W - Final sub-tool -!HISTORY_MSG_401;W - Toning sub-tool -!HISTORY_MSG_402;W - Denoise sub-tool -!HISTORY_MSG_403;W - ES - Edge sensitivity -!HISTORY_MSG_404;W - ES - Base amplification -!HISTORY_MSG_405;W - Denoise - Level 4 -!HISTORY_MSG_406;W - ES - Neighboring pixels -!HISTORY_MSG_407;Retinex - Method -!HISTORY_MSG_408;Retinex - Radius -!HISTORY_MSG_409;Retinex - Contrast -!HISTORY_MSG_410;Retinex - Offset -!HISTORY_MSG_411;Retinex - Strength -!HISTORY_MSG_412;Retinex - Gaussian gradient -!HISTORY_MSG_413;Retinex - Contrast -!HISTORY_MSG_414;Retinex - Histogram - Lab -!HISTORY_MSG_415;Retinex - Transmission -!HISTORY_MSG_416;Retinex -!HISTORY_MSG_417;Retinex - Transmission median -!HISTORY_MSG_418;Retinex - Threshold -!HISTORY_MSG_419;Retinex - Color space -!HISTORY_MSG_420;Retinex - Histogram - HSL -!HISTORY_MSG_421;Retinex - Gamma -!HISTORY_MSG_422;Retinex - Gamma -!HISTORY_MSG_423;Retinex - Gamma slope -!HISTORY_MSG_424;Retinex - HL threshold -!HISTORY_MSG_425;Retinex - Log base -!HISTORY_MSG_426;Retinex - Hue equalizer -!HISTORY_MSG_427;Output rendering intent -!HISTORY_MSG_428;Monitor rendering intent -!HISTORY_MSG_429;Retinex - Iterations -!HISTORY_MSG_430;Retinex - Transmission gradient -!HISTORY_MSG_431;Retinex - Strength gradient -!HISTORY_MSG_432;Retinex - M - Highlights -!HISTORY_MSG_433;Retinex - M - Highlights TW -!HISTORY_MSG_434;Retinex - M - Shadows -!HISTORY_MSG_435;Retinex - M - Shadows TW -!HISTORY_MSG_436;Retinex - M - Radius -!HISTORY_MSG_437;Retinex - M - Method -!HISTORY_MSG_438;Retinex - M - Equalizer -!HISTORY_MSG_439;Retinex - Process -!HISTORY_MSG_440;CbDL - Method -!HISTORY_MSG_441;Retinex - Gain transmission -!HISTORY_MSG_442;Retinex - Scale -!HISTORY_MSG_443;Output black point compensation -!HISTORY_MSG_444;WB - Temp bias -!HISTORY_MSG_445;Raw sub-image -!HISTORY_MSG_449;PS - ISO adaption -!HISTORY_MSG_452;PS - Show motion -!HISTORY_MSG_453;PS - Show mask only -!HISTORY_MSG_457;PS - Check red/blue -!HISTORY_MSG_462;PS - Check green -!HISTORY_MSG_464;PS - Blur motion mask -!HISTORY_MSG_465;PS - Blur radius -!HISTORY_MSG_468;PS - Fill holes -!HISTORY_MSG_469;PS - Median -!HISTORY_MSG_471;PS - Motion correction -!HISTORY_MSG_472;PS - Smooth transitions -!HISTORY_MSG_473;PS - Use LMMSE -!HISTORY_MSG_474;PS - Equalize -!HISTORY_MSG_475;PS - Equalize channel -!HISTORY_MSG_476;CAM02 - Temp out -!HISTORY_MSG_477;CAM02 - Green out -!HISTORY_MSG_478;CAM02 - Yb out -!HISTORY_MSG_479;CAM02 - CAT02 adaptation out -!HISTORY_MSG_480;CAM02 - Automatic CAT02 out -!HISTORY_MSG_481;CAM02 - Temp scene -!HISTORY_MSG_482;CAM02 - Green scene -!HISTORY_MSG_483;CAM02 - Yb scene -!HISTORY_MSG_484;CAM02 - Auto Yb scene -!HISTORY_MSG_485;Lens Correction -!HISTORY_MSG_486;Lens Correction - Camera -!HISTORY_MSG_487;Lens Correction - Lens -!HISTORY_MSG_488;Dynamic Range Compression -!HISTORY_MSG_489;DRC - Detail -!HISTORY_MSG_490;DRC - Amount -!HISTORY_MSG_491;White Balance -!HISTORY_MSG_492;RGB Curves -!HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors -!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel -!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask -!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask -!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness -!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask -!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List -!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur -!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset -!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power -!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation -!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask -!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope -!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth -!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal -!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map -!HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength -!HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold -!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve -!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries -!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D -!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type -!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma -!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope -!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method -!HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount -!HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness -!HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast -!HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Local Contrast - Lightness -!HISTORY_MSG_LOCALCONTRAST_RADIUS;Local Contrast - Radius -!HISTORY_MSG_METADATA_MODE;Metadata copy mode -!HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold -!HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion -!HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction -!HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold -!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations -!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift -!HISTORY_MSG_RAW_BORDER;Raw border -!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling -!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius -!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold -!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace -!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light -!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength -!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor -!ICCPROFCREATOR_COPYRIGHT;Copyright: -!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" -!ICCPROFCREATOR_CUSTOM;Custom -!ICCPROFCREATOR_DESCRIPTION;Description: -!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description -!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. -!ICCPROFCREATOR_GAMMA;Gamma -!ICCPROFCREATOR_ICCVERSION;ICC version: -!ICCPROFCREATOR_ILL;Illuminant: -!ICCPROFCREATOR_ILL_41;D41 -!ICCPROFCREATOR_ILL_50;D50 -!ICCPROFCREATOR_ILL_55;D55 -!ICCPROFCREATOR_ILL_60;D60 -!ICCPROFCREATOR_ILL_65;D65 -!ICCPROFCREATOR_ILL_80;D80 -!ICCPROFCREATOR_ILL_DEF;Default -!ICCPROFCREATOR_ILL_INC;StdA 2856K -!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. -!ICCPROFCREATOR_PRIMARIES;Primaries: -!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 -!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 -!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) -!ICCPROFCREATOR_PRIM_BEST;BestRGB -!ICCPROFCREATOR_PRIM_BETA;BetaRGB -!ICCPROFCREATOR_PRIM_BLUX;Blue X -!ICCPROFCREATOR_PRIM_BLUY;Blue Y -!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB -!ICCPROFCREATOR_PRIM_GREX;Green X -!ICCPROFCREATOR_PRIM_GREY;Green Y -!ICCPROFCREATOR_PRIM_PROPH;Prophoto -!ICCPROFCREATOR_PRIM_REC2020;Rec2020 -!ICCPROFCREATOR_PRIM_REDX;Red X -!ICCPROFCREATOR_PRIM_REDY;Red Y -!ICCPROFCREATOR_PRIM_SRGB;sRGB -!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. -!ICCPROFCREATOR_PRIM_WIDEG;Widegamut -!ICCPROFCREATOR_PROF_V2;ICC v2 -!ICCPROFCREATOR_PROF_V4;ICC v4 -!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... -!ICCPROFCREATOR_SLOPE;Slope -!ICCPROFCREATOR_TRC_PRESET;Tone response curve: -!IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. -!IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. -!IPTCPANEL_COPYRIGHT;Copyright notice -!IPTCPANEL_COPYRIGHTHINT;Enter a Notice on the current owner of the Copyright for this image, such as ©2008 Jane Doe. -!IPTCPANEL_COUNTRYHINT;Enter the name of the country pictured in this image. -!IPTCPANEL_CREATOR;Creator -!IPTCPANEL_CREATORHINT;Enter the name of the person that created this image. -!IPTCPANEL_CREATORJOBTITLE;Creator's job title -!IPTCPANEL_CREATORJOBTITLEHINT;Enter the Job Title of the person listed in the Creator field. -!IPTCPANEL_DATECREATEDHINT;Enter the Date the image was taken. -!IPTCPANEL_DESCRIPTION;Description -!IPTCPANEL_DESCRIPTIONHINT;Enter a "caption" describing the who, what, and why of what is happening in this image, this might include names of people, and/or their role in the action that is taking place within the image. -!IPTCPANEL_DESCRIPTIONWRITER;Description writer -!IPTCPANEL_DESCRIPTIONWRITERHINT;Enter the name of the person involved in writing, editing or correcting the description of the image. -!IPTCPANEL_HEADLINEHINT;Enter a brief publishable synopsis or summary of the contents of the image. -!IPTCPANEL_INSTRUCTIONSHINT;Enter information about embargoes, or other restrictions not covered by the Copyright field. -!IPTCPANEL_KEYWORDSHINT;Enter any number of keywords, terms or phrases used to express the subject matter in the image. -!IPTCPANEL_PROVINCE;Province or state -!IPTCPANEL_PROVINCEHINT;Enter the name of the province or state pictured in this image. -!IPTCPANEL_SOURCEHINT;Enter or edit the name of a person or party who has a role in the content supply chain, such as a person or entity from whom you received this image from. -!IPTCPANEL_SUPPCATEGORIES;Supplemental categories -!IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image. -!IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. -!IPTCPANEL_TRANSREFERENCE;Job ID -!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!MAIN_TAB_ADVANCED;Advanced -!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w -!MAIN_TAB_FAVORITES;Favorites -!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u -!MAIN_TAB_INSPECT; Inspect -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MONITOR_PROFILE_SYSTEM;System default -!OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. -!OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. -!OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. -!PARTIALPASTE_ADVANCEDGROUP;Advanced Settings -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_APPEARANCE;Appearance -!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font -!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color -!PREFERENCES_APPEARANCE_MAINFONT;Main font -!PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color -!PREFERENCES_APPEARANCE_THEME;Theme -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_CACHECLEAR;Clear -!PREFERENCES_CACHECLEAR_ALL;Clear all cached files: -!PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: -!PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: -!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. -!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 -!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 -!PREFERENCES_CURVEBBOXPOS_LEFT;Left -!PREFERENCES_CURVEBBOXPOS_RIGHT;Right -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser -!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. -!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 -!PREFERENCES_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_IMG_RELOAD_NEEDED;These changes require the image to be reloaded (or a new image to be opened) to take effect. -!PREFERENCES_INSPECT_LABEL;Inspect -!PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images -!PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. -!PREFERENCES_LANG;Language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MONINTENT;Default rendering intent -!PREFERENCES_MONITOR;Monitor -!PREFERENCES_MONPROFILE;Default color profile -!PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_THREADS;Threads -!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) -!PREFERENCES_PREVDEMO;Preview Demosaic Method -!PREFERENCES_PREVDEMO_FAST;Fast -!PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: -!PREFERENCES_PREVDEMO_SIDECAR;As in PP3 -!PREFERENCES_PRINTER;Printer (Soft-Proofing) -!PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file -!PREFERENCES_PROFILESAVELOCATION;Processing profile saving location -!PREFERENCES_PROFILE_NONE;None -!PREFERENCES_PRTINTENT;Rendering intent -!PREFERENCES_PRTPROFILE;Color profile -!PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset -!PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now -!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings -!PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files -!PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview -!PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show -!PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering -!PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PROFILEPANEL_PDYNAMIC;Dynamic -!QINFO_FRAMECOUNT;%2 frames -!QINFO_HDR;HDR / %2 frame(s) -!QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) -!SAMPLEFORMAT_0;Unknown data format -!SAMPLEFORMAT_1;8-bit unsigned -!SAMPLEFORMAT_2;16-bit unsigned -!SAMPLEFORMAT_4;24-bit LogLuv -!SAMPLEFORMAT_8;32-bit LogLuv -!SAMPLEFORMAT_16;16-bit floating-point -!SAMPLEFORMAT_32;24-bit floating-point -!SAMPLEFORMAT_64;32-bit floating-point -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. -!SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. -!SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. -!TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: Ctrl+Shift+right-click.\n- Revert to hand tool: right-click outside any picker. -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_CBDL_AFT;After Black-and-White -!TP_CBDL_BEF;Before Black-and-White -!TP_CBDL_METHOD;Process located -!TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORTONING_LABGRID;L*a*b* color correction grid -!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 -!TP_COLORTONING_LABREGIONS;Color correction regions -!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -!TP_COLORTONING_LABREGION_CHANNEL;Channel -!TP_COLORTONING_LABREGION_CHANNEL_ALL;All -!TP_COLORTONING_LABREGION_CHANNEL_B;Blue -!TP_COLORTONING_LABREGION_CHANNEL_G;Green -!TP_COLORTONING_LABREGION_CHANNEL_R;Red -!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C -!TP_COLORTONING_LABREGION_HUEMASK;H -!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness -!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L -!TP_COLORTONING_LABREGION_LIST_TITLE;Correction -!TP_COLORTONING_LABREGION_MASK;Mask -!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur -!TP_COLORTONING_LABREGION_OFFSET;Offset -!TP_COLORTONING_LABREGION_POWER;Power -!TP_COLORTONING_LABREGION_SATURATION;Saturation -!TP_COLORTONING_LABREGION_SHOWMASK;Show mask -!TP_COLORTONING_LABREGION_SLOPE;Slope -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_RESETCROP;Reset -!TP_DEHAZE_DEPTH;Depth -!TP_DEHAZE_LABEL;Haze Removal -!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map -!TP_DEHAZE_STRENGTH;Strength -!TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones -!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatic global -!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Try to evaluate chroma noise\nBe careful, this calculation is average, and is quite subjective ! -!TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Chrominance curve -!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_CHROMINANCE_FRAME;Chrominance -!TP_DIRPYRDENOISE_CHROMINANCE_MANUAL;Manual -!TP_DIRPYRDENOISE_CHROMINANCE_METHOD;Method -!TP_DIRPYRDENOISE_CHROMINANCE_METHODADVANCED_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. -!TP_DIRPYRDENOISE_CHROMINANCE_METHOD_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nAutomatic multi-zones\nNo preview - works only during saving, but using the "Preview" method by matching the tile size and center to the preview size and center you can get an idea of the expected results.\nThe image is divided into tiles (about 10 to 70 depending on image size) and each tile receives its own chrominance noise reduction settings.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. -!TP_DIRPYRDENOISE_CHROMINANCE_PMZ;Preview multi-zones -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW;Preview -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEWRESIDUAL_INFO_TOOLTIP;Displays the remaining noise levels of the part of the image visible in the preview after wavelet.\n\n>300 Very noisy\n100-300 Noisy\n50-100 A little noisy\n<50 Very low noise\n\nBeware, the values will differ between RGB and L*a*b* mode. The RGB values are less accurate because the RGB mode does not completely separate luminance and chrominance. -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_INFO;Preview size=%1, Center: Px=%2 Py=%3 -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Preview noise: Mean=%1 High=%2 -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Preview noise: Mean= - High= - -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Tile size=%1, Center: Tx=%2 Ty=%3 -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Applying three median filter iterations with a 3×3 window size often leads to better results than using one median filter iteration with a 7×7 window size. -!TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Apply a median filter of the desired window size. The larger the window's size, the longer it takes.\n\n3×3 soft: treats 5 pixels in a 3×3 pixel window.\n3×3: treats 9 pixels in a 3×3 pixel window.\n5×5 soft: treats 13 pixels in a 5×5 pixel window.\n5×5: treats 25 pixels in a 5×5 pixel window.\n7×7: treats 49 pixels in a 7×7 pixel window.\n9×9: treats 81 pixels in a 9×9 pixel window.\n\nSometimes it is possible to achieve higher quality running several iterations with a smaller window size than one iteration with a larger one. -!TP_DIRPYRDENOISE_SLI;Slider -!TP_DIRPYRDENOISE_TYPE_3X3;3×3 -!TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 soft -!TP_DIRPYRDENOISE_TYPE_5X5;5×5 -!TP_DIRPYRDENOISE_TYPE_5X5SOFT;5×5 soft -!TP_DIRPYRDENOISE_TYPE_7X7;7×7 -!TP_DIRPYRDENOISE_TYPE_9X9;9×9 -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. -!TP_EPD_GAMMA;Gamma -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve -!TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee is configured to look for Hald CLUT images, which are used for the Film Simulation tool, in a folder which is taking too long to load.\nGo to Preferences > Image Processing > Film Simulation\nto see which folder is being used. You should either point RawTherapee to a folder which contains only Hald CLUT images and nothing more, or to an empty folder if you don't want to use the Film Simulation tool.\n\nRead the Film Simulation article in RawPedia for more information.\n\nDo you want to cancel the scan now? -!TP_ICM_APPLYBASELINEEXPOSUREOFFSET;Baseline exposure -!TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Employ the embedded DCP baseline exposure offset. The setting is only available if the selected DCP has one. -!TP_ICM_APPLYHUESATMAP;Base table -!TP_ICM_APPLYHUESATMAP_TOOLTIP;Employ the embedded DCP base table (HueSatMap). The setting is only available if the selected DCP has one. -!TP_ICM_APPLYLOOKTABLE;Look table -!TP_ICM_APPLYLOOKTABLE_TOOLTIP;Employ the embedded DCP look table. The setting is only available if the selected DCP has one. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_PROFILEINTENT;Rendering Intent -!TP_ICM_SAVEREFERENCE;Save Reference Image -!TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance -!TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. -!TP_ICM_WORKING_TRC;Tone response curve: -!TP_ICM_WORKING_TRC_CUSTOM;Custom -!TP_ICM_WORKING_TRC_GAMMA;Gamma -!TP_ICM_WORKING_TRC_NONE;None -!TP_ICM_WORKING_TRC_SLOPE;Slope -!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually -!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. -!TP_LENSPROFILE_MODE_HEADER;Select the lens profile: -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric -!TP_LENSPROFILE_USE_HEADER;Select distortions to correct: -!TP_LENSPROFILE_USE_VIGNETTING;Vignetting -!TP_LOCALCONTRAST_AMOUNT;Amount -!TP_LOCALCONTRAST_DARKNESS;Darkness level -!TP_LOCALCONTRAST_LABEL;Local Contrast -!TP_LOCALCONTRAST_LIGHTNESS;Lightness level -!TP_LOCALCONTRAST_RADIUS;Radius -!TP_METADATA_EDIT;Apply modifications -!TP_METADATA_MODE;Metadata copy mode -!TP_METADATA_STRIP;Strip all metadata -!TP_METADATA_TUNNEL;Copy unchanged -!TP_NEUTRAL;Reset -!TP_PREPROCESS_LINEDENOISE_DIRECTION;Direction -!TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both -!TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Horizontal -!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows -!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical -!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!TP_PRSHARPENING_LABEL;Post-Resize Sharpening -!TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. -!TP_RAWCACORR_AUTOIT;Iterations -!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. -!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift -!TP_RAWCACORR_CASTR;Strength -!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) -!TP_RAW_2PASS;1-pass+fast -!TP_RAW_3PASSBEST;3-pass (Markesteijn) -!TP_RAW_4PASS;3-pass+fast -!TP_RAW_AHD;AHD -!TP_RAW_AMAZE;AMaZE -!TP_RAW_AMAZEVNG4;AMaZE+VNG4 -!TP_RAW_BORDER;Border -!TP_RAW_DCB;DCB -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold -!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). -!TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold -!TP_RAW_EAHD;EAHD -!TP_RAW_FAST;Fast -!TP_RAW_HD;Threshold -!TP_RAW_HD_TOOLTIP;Lower values make hot/dead pixel detection more aggressive, but false positives may lead to artifacts. If you notice any artifacts appearing when enabling the Hot/Dead Pixel Filters, gradually increase the threshold value until they disappear. -!TP_RAW_HPHD;HPHD -!TP_RAW_IGV;IGV -!TP_RAW_IMAGENUM;Sub-image -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. -!TP_RAW_LMMSE;LMMSE -!TP_RAW_MONO;Mono -!TP_RAW_NONE;None (Shows sensor pattern) -!TP_RAW_PIXELSHIFT;Pixel Shift -!TP_RAW_PIXELSHIFTBLUR;Blur motion mask -!TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion -!TP_RAW_PIXELSHIFTEPERISO;Sensitivity -!TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nHigher values increase sensitivity of motion detection.\nChange in small steps and watch the motion mask while changing.\nIncrease sensitivity for underexposed or high ISO images. -!TP_RAW_PIXELSHIFTEQUALBRIGHT;Equalize brightness of frames -!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel -!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels. -!TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to the brightness of the selected frame.\nIf there are overexposed areas in the frames select the brightest frame to avoid magenta color cast in overexposed areas or enable motion correction. -!TP_RAW_PIXELSHIFTGREEN;Check green channel for motion -!TP_RAW_PIXELSHIFTHOLEFILL;Fill holes in motion mask -!TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Fill holes in motion mask -!TP_RAW_PIXELSHIFTLMMSE;Use LMMSE for moving parts -!TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Use LMMSE instead of AMaZE for areas of motion.\nUseful for high ISO images. -!TP_RAW_PIXELSHIFTMEDIAN;Use median for moving parts -!TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use median of all frames instead of selected frame for regions with motion.\nRemoves objects which are at different places in all frames.\nGives motion effect on slow moving (overlapping) objects. -!TP_RAW_PIXELSHIFTMM_AUTO;Automatic -!TP_RAW_PIXELSHIFTMM_CUSTOM;Custom -!TP_RAW_PIXELSHIFTMM_OFF;Off -!TP_RAW_PIXELSHIFTMOTIONMETHOD;Motion Correction -!TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 means no motion detection.\n1 - 99 means motion will be detected according to this value. Increase value to increase detection rate.\n100 means the AMaZE-demosaiced frame will be used. -!TP_RAW_PIXELSHIFTNONGREENCROSS;Check red/blue channels for motion -!TP_RAW_PIXELSHIFTSHOWMOTION;Show motion mask -!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Show only motion mask -!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Shows the motion mask without the image. -!TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. -!TP_RAW_PIXELSHIFTSIGMA;Blur radius -!TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. -!TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions -!TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. -!TP_RAW_RCD;RCD -!TP_RAW_RCDVNG4;RCD+VNG4 -!TP_RAW_VNG4;VNG4 -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;HSL histogram -!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram -!TP_RETINEX_CONTEDIT_LH;Hue -!TP_RETINEX_CONTEDIT_MAP;Equalizer -!TP_RETINEX_CURVEEDITOR_CD;L=f(L) -!TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. -!TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) -!TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. -!TP_RETINEX_CURVEEDITOR_MAP;L=f(L) -!TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! -!TP_RETINEX_EQUAL;Equalizer -!TP_RETINEX_FREEGAMMA;Free gamma -!TP_RETINEX_GAIN;Gain -!TP_RETINEX_GAINOFFS;Gain and Offset (brightness) -!TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. -!TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. -!TP_RETINEX_GAMMA;Gamma -!TP_RETINEX_GAMMA_FREE;Free -!TP_RETINEX_GAMMA_HIGH;High -!TP_RETINEX_GAMMA_LOW;Low -!TP_RETINEX_GAMMA_MID;Middle -!TP_RETINEX_GAMMA_NONE;None -!TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). -!TP_RETINEX_GRAD;Transmission gradient -!TP_RETINEX_GRADS;Strength gradient -!TP_RETINEX_GRADS_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Strength is reduced when iterations increase, and conversely. -!TP_RETINEX_GRAD_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Variance and Threshold are reduced when iterations increase, and conversely. -!TP_RETINEX_HIGH;High -!TP_RETINEX_HIGHLIG;Highlight -!TP_RETINEX_HIGHLIGHT;Highlight threshold -!TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. -!TP_RETINEX_HSLSPACE_LIN;HSL-Linear -!TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic -!TP_RETINEX_ITER;Iterations (Tone-mapping) -!TP_RETINEX_ITERF;Tone mapping -!TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. -!TP_RETINEX_LABEL;Retinex -!TP_RETINEX_LABEL_MASK;Mask -!TP_RETINEX_LABSPACE;L*a*b* -!TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Method -!TP_RETINEX_MAP_GAUS;Gaussian mask -!TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) -!TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) -!TP_RETINEX_MAP_METHOD_TOOLTIP;Use the mask generated by the Gaussian function above (Radius, Method) to reduce halos and artifacts.\n\nCurve only: apply a diagonal contrast curve on the mask.\nBeware of artifacts!\n\nGaussian mask: generate and use a Gaussian blur of the original mask.\nQuick.\n\nSharp mask: generate and use a wavelet on the original mask.\nSlow. -!TP_RETINEX_MAP_NONE;None -!TP_RETINEX_MEDIAN;Transmission median filter -!TP_RETINEX_METHOD;Method -!TP_RETINEX_METHOD_TOOLTIP;Low = Reinforce low light.\nUniform = Equalize action.\nHigh = Reinforce high light.\nHighlights = Remove magenta in highlights. -!TP_RETINEX_MLABEL;Restored haze-free Min=%1 Max=%2 -!TP_RETINEX_MLABEL_TOOLTIP;Should be near min=0 max=32768\nRestored image with no mixture. -!TP_RETINEX_NEIGHBOR;Radius -!TP_RETINEX_NEUTRAL;Reset -!TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values. -!TP_RETINEX_OFFSET;Offset (brightness) -!TP_RETINEX_SCALES;Gaussian gradient -!TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely. -!TP_RETINEX_SETTINGS;Settings -!TP_RETINEX_SKAL;Scale -!TP_RETINEX_SLOPE;Free gamma slope -!TP_RETINEX_STRENGTH;Strength -!TP_RETINEX_THRESHOLD;Threshold -!TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss. -!TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4 -!TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 -!TP_RETINEX_TLABEL_TOOLTIP;Transmission map result.\nMin and Max are used by Variance.\nMean and Sigma.\nTm=Min TM=Max of transmission map. -!TP_RETINEX_TRANF;Transmission -!TP_RETINEX_TRANSMISSION;Transmission map -!TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. -!TP_RETINEX_UNIFORM;Uniform -!TP_RETINEX_VARIANCE;Contrast -!TP_RETINEX_VARIANCE_TOOLTIP;Low variance increase local contrast and saturation, but can lead to artifacts. -!TP_RETINEX_VIEW;Process -!TP_RETINEX_VIEW_MASK;Mask -!TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. -!TP_RETINEX_VIEW_NONE;Standard -!TP_RETINEX_VIEW_TRAN;Transmission - Auto -!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed -!TP_RETINEX_VIEW_UNSHARP;Unsharp mask -!TP_SHARPENING_BLUR;Blur radius -!TP_SHARPENING_CONTRAST;Contrast threshold -!TP_SHARPENMICRO_CONTRAST;Contrast threshold -!TP_SOFTLIGHT_LABEL;Soft Light -!TP_SOFTLIGHT_STRENGTH;Strength -!TP_TM_FATTAL_AMOUNT;Amount -!TP_TM_FATTAL_ANCHOR;Anchor -!TP_TM_FATTAL_LABEL;Dynamic Range Compression -!TP_TM_FATTAL_THRESHOLD;Detail -!TP_WAVELET_1;Level 1 -!TP_WAVELET_2;Level 2 -!TP_WAVELET_3;Level 3 -!TP_WAVELET_4;Level 4 -!TP_WAVELET_5;Level 5 -!TP_WAVELET_6;Level 6 -!TP_WAVELET_7;Level 7 -!TP_WAVELET_8;Level 8 -!TP_WAVELET_9;Level 9 -!TP_WAVELET_APPLYTO;Apply To -!TP_WAVELET_AVOID;Avoid color shift -!TP_WAVELET_B0;Black -!TP_WAVELET_B1;Grey -!TP_WAVELET_B2;Residual -!TP_WAVELET_BACKGROUND;Background -!TP_WAVELET_BACUR;Curve -!TP_WAVELET_BALANCE;Contrast balance d/v-h -!TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. -!TP_WAVELET_BALCHRO;Chroma balance -!TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. -!TP_WAVELET_BANONE;None -!TP_WAVELET_BASLI;Slider -!TP_WAVELET_BATYPE;Contrast balance method -!TP_WAVELET_CBENAB;Toning and Color Balance -!TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted -!TP_WAVELET_CCURVE;Local contrast -!TP_WAVELET_CH1;Whole chroma range -!TP_WAVELET_CH2;Saturated/pastel -!TP_WAVELET_CH3;Link contrast levels -!TP_WAVELET_CHCU;Curve -!TP_WAVELET_CHR;Chroma-contrast link strength -!TP_WAVELET_CHRO;Saturated/pastel threshold -!TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. -!TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" -!TP_WAVELET_CHSL;Sliders -!TP_WAVELET_CHTYPE;Chrominance method -!TP_WAVELET_COLORT;Opacity Red-Green -!TP_WAVELET_COMPCONT;Contrast -!TP_WAVELET_COMPGAMMA;Compression gamma -!TP_WAVELET_COMPGAMMA_TOOLTIP;Adjusting the gamma of the residual image allows you to equilibrate the data and histogram. -!TP_WAVELET_COMPTM;Tone mapping -!TP_WAVELET_CONTEDIT;'After' contrast curve -!TP_WAVELET_CONTR;Gamut -!TP_WAVELET_CONTRA;Contrast -!TP_WAVELET_CONTRAST_MINUS;Contrast - -!TP_WAVELET_CONTRAST_PLUS;Contrast + -!TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. -!TP_WAVELET_CTYPE;Chrominance control -!TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). -!TP_WAVELET_CURVEEDITOR_CH;Contrast levels=f(Hue) -!TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. -!TP_WAVELET_CURVEEDITOR_CL;L -!TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Applies a final contrast luminance curve at the end of the wavelet treatment. -!TP_WAVELET_CURVEEDITOR_HH;HH -!TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Modifies the residual image's hue as a function of hue. -!TP_WAVELET_DALL;All directions -!TP_WAVELET_DAUB;Edge performance -!TP_WAVELET_DAUB2;D2 - low -!TP_WAVELET_DAUB4;D4 - standard -!TP_WAVELET_DAUB6;D6 - standard plus -!TP_WAVELET_DAUB10;D10 - medium -!TP_WAVELET_DAUB14;D14 - high -!TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. -!TP_WAVELET_DONE;Vertical -!TP_WAVELET_DTHR;Diagonal -!TP_WAVELET_DTWO;Horizontal -!TP_WAVELET_EDCU;Curve -!TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. -!TP_WAVELET_EDGE;Edge Sharpness -!TP_WAVELET_EDGEAMPLI;Base amplification -!TP_WAVELET_EDGEDETECT;Gradient sensitivity -!TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) -!TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) -!TP_WAVELET_EDGEDETECTTHR_TOOLTIP;This adjuster lets you target edge detection for example to avoid applying edge sharpness to fine details, such as noise in the sky. -!TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. -!TP_WAVELET_EDGESENSI;Edge sensitivity -!TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. -!TP_WAVELET_EDGTHRESH;Detail -!TP_WAVELET_EDGTHRESH_TOOLTIP;Change the repartition between the first levels and the others. The higher the threshold the more the action is centered on the first levels. Be careful with negative values, they increase the action of high levels and can introduce artifacts. -!TP_WAVELET_EDRAD;Radius -!TP_WAVELET_EDRAD_TOOLTIP;This radius adjustment is very different from those in other sharpening tools. Its value is compared to each level through a complex function. In this sense, a value of zero still has an effect. -!TP_WAVELET_EDSL;Threshold Sliders -!TP_WAVELET_EDTYPE;Local contrast method -!TP_WAVELET_EDVAL;Strength -!TP_WAVELET_FINAL;Final Touchup -!TP_WAVELET_FINEST;Finest -!TP_WAVELET_HIGHLIGHT;Highlight luminance range -!TP_WAVELET_HS1;Whole luminance range -!TP_WAVELET_HS2;Shadows/Highlights -!TP_WAVELET_HUESKIN;Skin hue -!TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. -!TP_WAVELET_HUESKY;Sky hue -!TP_WAVELET_HUESKY_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. -!TP_WAVELET_ITER;Delta balance levels -!TP_WAVELET_ITER_TOOLTIP;Left: increase low levels and reduce high levels,\nRight: reduce low levels and increase high levels. -!TP_WAVELET_LABEL;Wavelet Levels -!TP_WAVELET_LARGEST;Coarsest -!TP_WAVELET_LEVCH;Chroma -!TP_WAVELET_LEVDIR_ALL;All levels in all directions -!TP_WAVELET_LEVDIR_INF;Below or equal the level -!TP_WAVELET_LEVDIR_ONE;One level -!TP_WAVELET_LEVDIR_SUP;Above the level -!TP_WAVELET_LEVELS;Wavelet levels -!TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. -!TP_WAVELET_LEVF;Contrast -!TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 -!TP_WAVELET_LEVONE;Level 2 -!TP_WAVELET_LEVTHRE;Level 4 -!TP_WAVELET_LEVTWO;Level 3 -!TP_WAVELET_LEVZERO;Level 1 -!TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength -!TP_WAVELET_LIPST;Enhanced algoritm -!TP_WAVELET_LOWLIGHT;Shadow luminance range -!TP_WAVELET_MEDGREINF;First level -!TP_WAVELET_MEDI;Reduce artifacts in blue sky -!TP_WAVELET_MEDILEV;Edge detection -!TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. -!TP_WAVELET_NEUTRAL;Neutral -!TP_WAVELET_NOIS;Denoise -!TP_WAVELET_NOISE;Denoise and Refine -!TP_WAVELET_NPHIGH;High -!TP_WAVELET_NPLOW;Low -!TP_WAVELET_NPNONE;None -!TP_WAVELET_NPTYPE;Neighboring pixels -!TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. -!TP_WAVELET_OPACITY;Opacity Blue-Yellow -!TP_WAVELET_OPACITYW;Contrast balance d/v-h curve -!TP_WAVELET_OPACITYWL;Final local contrast -!TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. -!TP_WAVELET_PASTEL;Pastel chroma -!TP_WAVELET_PROC;Process -!TP_WAVELET_RE1;Reinforced -!TP_WAVELET_RE2;Unchanged -!TP_WAVELET_RE3;Reduced -!TP_WAVELET_RESCHRO;Chroma -!TP_WAVELET_RESCON;Shadows -!TP_WAVELET_RESCONH;Highlights -!TP_WAVELET_RESID;Residual Image -!TP_WAVELET_SAT;Saturated chroma -!TP_WAVELET_SETTINGS;Wavelet Settings -!TP_WAVELET_SKIN;Skin targetting/protection -!TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. -!TP_WAVELET_SKY;Sky targetting/protection -!TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. -!TP_WAVELET_STREN;Strength -!TP_WAVELET_STRENGTH;Strength -!TP_WAVELET_SUPE;Extra -!TP_WAVELET_THR;Shadows threshold -!TP_WAVELET_THRESHOLD;Highlight levels -!TP_WAVELET_THRESHOLD2;Shadow levels -!TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). -!TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. -!TP_WAVELET_THRH;Highlights threshold -!TP_WAVELET_TILESBIG;Big tiles -!TP_WAVELET_TILESFULL;Full image -!TP_WAVELET_TILESIZE;Tiling method -!TP_WAVELET_TILESLIT;Little tiles -!TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. -!TP_WAVELET_TMSTRENGTH;Compression strength -!TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. -!TP_WAVELET_TMTYPE;Compression method -!TP_WAVELET_TON;Toning -!TP_WBALANCE_PICKER;Pick -!TP_WBALANCE_TEMPBIAS;AWB temperature bias -!TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". From 2369440390de378e3d310b7f4cdf8eac31a24faa Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 16 Jan 2019 14:24:19 +0100 Subject: [PATCH 14/21] Fix standard tonecurve for non sse builds, also inluced speedup for sse builds --- rtengine/curves.h | 48 +++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/rtengine/curves.h b/rtengine/curves.h index fe93bcde5..95274954c 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -49,8 +49,7 @@ namespace rtengine class ToneCurve; class ColorAppearance; -template -void setUnlessOOG(T &r, T &g, T &b, const T &rr, const T &gg, const T &bb) +inline void setUnlessOOG(float &r, float &g, float &b, const float &rr, const float &gg, const float &bb) { if (!OOG(r) || !OOG(g) || !OOG(b)) { r = rr; @@ -59,6 +58,24 @@ void setUnlessOOG(T &r, T &g, T &b, const T &rr, const T &gg, const T &bb) } } +#ifdef __SSE2__ +inline vmask OOG(const vfloat val) +{ + return vorm(vmaskf_lt(val, ZEROV), vmaskf_gt(val, F2V(65535.f))); +} + + +inline void setUnlessOOG(vfloat &r, vfloat &g, vfloat &b, const vfloat rr, const vfloat gg, const vfloat bb) +{ + vmask cond = vandm(vandm(OOG(r), OOG(g)), OOG(b)); + if (!_mm_movemask_ps((vfloat)cond)) { + r = rr; + g = gg; + b = bb; + } +} +#endif + bool sanitizeCurve(std::vector& curve); namespace curves { @@ -967,33 +984,24 @@ inline void StandardToneCurve::BatchApply( break; #endif } - curves::setLutVal(lutToneCurve, r[i], g[i], b[i]); + setUnlessOOG(r[i], g[i], b[i], lutToneCurve[r[i]], lutToneCurve[g[i]], lutToneCurve[b[i]]); i++; } #ifdef __SSE2__ - float tmpr[4] ALIGNED16; - float tmpg[4] ALIGNED16; - float tmpb[4] ALIGNED16; - // float mv = lutToneCurve[MAXVALF]; for (; i + 3 < end; i += 4) { - __m128 r_val = LVF(r[i]); - __m128 g_val = LVF(g[i]); - __m128 b_val = LVF(b[i]); - STVF(tmpr[0], lutToneCurve[r_val]); - STVF(tmpg[0], lutToneCurve[g_val]); - STVF(tmpb[0], lutToneCurve[b_val]); - for (int j = 0; j < 4; ++j) { - setUnlessOOG(r[i+j], g[i+j], b[i+j], tmpr[j], tmpg[j], tmpb[j]); - // curves::setLutVal(r[i+j], tmpr[j], mv); - // curves::setLutVal(g[i+j], tmpg[j], mv); - // curves::setLutVal(b[i+j], tmpb[j], mv); - } + vfloat r_val = LVF(r[i]); + vfloat g_val = LVF(g[i]); + vfloat b_val = LVF(b[i]); + setUnlessOOG(r_val, g_val, b_val, lutToneCurve[r_val], lutToneCurve[g_val], lutToneCurve[b_val]); + STVF(r[i], r_val); + STVF(g[i], g_val); + STVF(b[i], b_val); } // Remainder in non-SSE. for (; i < end; ++i) { - curves::setLutVal(lutToneCurve, r[i], g[i], b[i]); + setUnlessOOG(r[i], g[i], b[i], lutToneCurve[r[i]], lutToneCurve[g[i]], lutToneCurve[b[i]]); } #endif } From 23202d1f10698ffdf0dcd53d9c49e8c790ea2449 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 16 Jan 2019 14:44:08 +0100 Subject: [PATCH 15/21] Fix wrong sse version of setUnlessOOG() --- rtengine/curves.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/rtengine/curves.h b/rtengine/curves.h index 95274954c..ddbc61a58 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -68,11 +68,9 @@ inline vmask OOG(const vfloat val) inline void setUnlessOOG(vfloat &r, vfloat &g, vfloat &b, const vfloat rr, const vfloat gg, const vfloat bb) { vmask cond = vandm(vandm(OOG(r), OOG(g)), OOG(b)); - if (!_mm_movemask_ps((vfloat)cond)) { - r = rr; - g = gg; - b = bb; - } + r = vself(cond, r, rr); + g = vself(cond, g, gg); + b = vself(cond, b, bb); } #endif From b3972dee37640ad0ba6623111283f9b523447fa1 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 16 Jan 2019 15:16:16 +0100 Subject: [PATCH 16/21] Small speedup for sse version of WeightedStdToneCurve::BatchApply() --- rtengine/curves.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/rtengine/curves.h b/rtengine/curves.h index ddbc61a58..b88a3bdc4 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -1159,10 +1159,6 @@ inline void WeightedStdToneCurve::BatchApply(const size_t start, const size_t en const vfloat zd5v = F2V(0.5f); const vfloat zd25v = F2V(0.25f); - float tmpr[4] ALIGNED16; - float tmpg[4] ALIGNED16; - float tmpb[4] ALIGNED16; - for (; i + 3 < end; i += 4) { vfloat r_val = vclampf(LVF(r[i]), ZEROV, c65535v); vfloat g_val = vclampf(LVF(g[i]), ZEROV, c65535v); @@ -1179,12 +1175,16 @@ inline void WeightedStdToneCurve::BatchApply(const size_t start, const size_t en vfloat r3 = Triangle(b_val, b3, r_val); vfloat g3 = Triangle(b_val, b3, g_val); - STVF(tmpr[0], vclampf(r1 * zd5v + r2 * zd25v + r3 * zd25v, ZEROV, c65535v)); - STVF(tmpg[0], vclampf(g1 * zd25v + g2 * zd5v + g3 * zd25v, ZEROV, c65535v)); - STVF(tmpb[0], vclampf(b1 * zd25v + b2 * zd25v + b3 * zd5v, ZEROV, c65535v)); - for (int j = 0; j < 4; ++j) { - setUnlessOOG(r[i+j], g[i+j], b[i+j], tmpr[j], tmpg[j], tmpb[j]); - } + vfloat r_old = LVF(r[i]); + vfloat g_old = LVF(g[i]); + vfloat b_old = LVF(b[i]); + vfloat r_new = vclampf(r1 * zd5v + r2 * zd25v + r3 * zd25v, ZEROV, c65535v); + vfloat g_new = vclampf(g1 * zd25v + g2 * zd5v + g3 * zd25v, ZEROV, c65535v); + vfloat b_new = vclampf(b1 * zd25v + b2 * zd25v + b3 * zd5v, ZEROV, c65535v); + setUnlessOOG(r_old, g_old, b_old, r_new, g_new, b_new); + STVF(r[i], r_old); + STVF(g[i], g_old); + STVF(b[i], b_old); } // Remainder in non-SSE. From 02f8e918972060a372571ad23d1d5fccd26f2524 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 19 Jan 2019 10:52:07 +0100 Subject: [PATCH 17/21] Update Deutsch locale --- rtdata/languages/Deutsch | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 5ec13a759..5f232a286 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -76,6 +76,7 @@ #75 02.12.2018 Erweiterung (TooWaBoo) RT 5.5 #76 11.12.2018 Erweiterung (TooWaBoo) RT 5.5 #77 16.12.2018 Korrektur Farbwähler-Tooltip (TooWaBoo) RT 5.5 +#78 19.01.2019 Erweiterung (TooWaBoo) RT 5.5 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -2412,7 +2413,7 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius -!MAIN_TAB_FAVORITES;Favorites -!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u -!TP_SHARPENING_BLUR;Blur radius +HISTORY_MSG_SHARPENING_BLUR;(Schärfung)\nWeichzeichnerradius +MAIN_TAB_FAVORITES;Favoriten +MAIN_TAB_FAVORITES_TOOLTIP;Taste: Alt + u +TP_SHARPENING_BLUR;Weichzeichnerradius From 52aabfc93a4c472cc49b9ff5d366d466fb390877 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 19 Jan 2019 13:14:29 +0100 Subject: [PATCH 18/21] don't force b&w when ciecam02 and b&w are enabled --- rtengine/simpleprocess.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 87c33e8f8..dd844ad5c 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1236,7 +1236,7 @@ private: cmsHPROFILE jprof = nullptr; constexpr bool customGamma = false; constexpr bool useLCMS = false; - bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili ; + bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && !params.colorappearance.enabled; ///////////// Custom output gamma has been removed, the user now has to create ///////////// a new output profile with the ICCProfileCreator From 4d241d7e1048e4550074af97d9aea9703b2e6c0b Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 19 Jan 2019 19:10:46 +0100 Subject: [PATCH 19/21] Wrong clipping when using the new v2 and v4 profiles, fixes #5142 --- rtengine/imagefloat.cc | 3 --- rtengine/iplab2rgb.cc | 7 ------- 2 files changed, 10 deletions(-) diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index 940806419..0d978aa5b 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -143,9 +143,6 @@ void Imagefloat::getScanline (int row, unsigned char* buffer, int bps, bool isFl float ri = r(row, i); float gi = g(row, i); float bi = b(row, i); - if (ri > 65535.f || gi > 65535.f || bi > 65535.f) { - filmlike_clip(&ri, &gi, &bi); - } if (bps == 16) { sbuffer[ix++] = CLIP(ri); sbuffer[ix++] = CLIP(gi); diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 9ab8e1d01..04358f6af 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -41,9 +41,6 @@ inline void copyAndClampLine(const float *src, unsigned char *dst, const int W) float r = src[iy] * MAXVALF; float g = src[iy+1] * MAXVALF; float b = src[iy+2] * MAXVALF; - if (r > MAXVALF || g > MAXVALF || b > MAXVALF) { - filmlike_clip(&r, &g, &b); - } dst[iy] = uint16ToUint8Rounded(CLIP(r)); dst[iy+1] = uint16ToUint8Rounded(CLIP(g)); dst[iy+2] = uint16ToUint8Rounded(CLIP(b)); @@ -73,10 +70,6 @@ inline void copyAndClamp(const LabImage *src, unsigned char *dst, const double r Color::Lab2XYZ(rL[j], ra[j], rb[j], x_, y_, z_ ); Color::xyz2rgb(x_, y_, z_, R, G, B, rgb_xyz); - if (R > MAXVALF || G > MAXVALF || B > MAXVALF) { - filmlike_clip(&R, &G, &B); - } - dst[ix++] = uint16ToUint8Rounded(Color::gamma2curve[R]); dst[ix++] = uint16ToUint8Rounded(Color::gamma2curve[G]); dst[ix++] = uint16ToUint8Rounded(Color::gamma2curve[B]); From 36ca01616b0c30f499862428ddd152f6d813100f Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 19 Jan 2019 19:15:32 +0100 Subject: [PATCH 20/21] Segfault when v2 ICC profiles do not contain parsable 'gamma/slope' info, fixes #5144 --- rtengine/iccstore.cc | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index 33972075c..b0248456a 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -255,14 +255,21 @@ bool get_RT_gamma_slope(cmsHPROFILE profile, double &gammatag, double &slopetag) modelDesc = utf32_to_utf8(buffer, count); #endif if (!modelDesc.empty()) { - std::size_t pos = modelDesc.find("g"); - std::size_t posmid = modelDesc.find("s"); - std::size_t posend = modelDesc.find("!"); - std::string strgamma = modelDesc.substr(pos + 1, (posmid - pos)); - gammatag = std::stod(strgamma.c_str()); - std::string strslope = modelDesc.substr(posmid + 1, (posend - posmid)); - slopetag = std::stod(strslope.c_str()); - return true; + try { + std::size_t pos = modelDesc.find("g"); + std::size_t posmid = modelDesc.find("s"); + std::size_t posend = modelDesc.find("!"); + if (pos == std::string::npos || posmid == std::string::npos || posend == std::string::npos) { + return false; + } + std::string strgamma = modelDesc.substr(pos + 1, (posmid - pos)); + gammatag = std::stod(strgamma.c_str()); + std::string strslope = modelDesc.substr(posmid + 1, (posend - posmid)); + slopetag = std::stod(strslope.c_str()); + return true; + } catch (std::invalid_argument &) { + return false; + } } } } From 3fc7c2596521a3dc40b3c951200dcb9520681cbc Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 19 Jan 2019 19:22:45 +0100 Subject: [PATCH 21/21] softproof not working when no printer profile is set (no sRGB preview on wide gamut screens), fixes #5143 --- rtengine/improcfun.cc | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index bf35bee70..404229d10 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -338,14 +338,39 @@ void ImProcFunctions::updateColorProfiles (const Glib::ustring& monitorProfile, // flags |= cmsFLAGS_GAMUTCHECK; // } + const auto make_gamma_table = + [](cmsHPROFILE prof, cmsTagSignature tag) -> void + { + cmsToneCurve *tc = static_cast(cmsReadTag(prof, tag)); + if (tc) { + const cmsUInt16Number *table = cmsGetToneCurveEstimatedTable(tc); + cmsToneCurve *tc16 = cmsBuildTabulatedToneCurve16(nullptr, cmsGetToneCurveEstimatedTableEntries(tc), table); + if (tc16) { + cmsWriteTag(prof, tag, tc16); + cmsFreeToneCurve(tc16); + } + } + }; + + cmsHPROFILE softproof = ProfileContent(oprof).toProfile(); + if (softproof) { + make_gamma_table(softproof, cmsSigRedTRCTag); + make_gamma_table(softproof, cmsSigGreenTRCTag); + make_gamma_table(softproof, cmsSigBlueTRCTag); + } + monitorTransform = cmsCreateProofingTransform ( iprof, TYPE_Lab_FLT, monitor, TYPE_RGB_FLT, - oprof, + softproof, //oprof, monitorIntent, outIntent, flags ); + if (softproof) { + cmsCloseProfile(softproof); + } + if (monitorTransform) { softProofCreated = true; }