From 25625c68425539187677c5476f92f7fd35a16e7e Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 16 Mar 2019 23:35:39 +0100 Subject: [PATCH 001/215] small speeduo for denoise --- rtengine/FTblockDN.cc | 74 ++++++++++++++++--------------------------- rtengine/color.cc | 57 +++++++++++++++++++++++++++++---- rtengine/color.h | 1 + 3 files changed, 78 insertions(+), 54 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 4e62e1c1f..62483c3d7 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -42,6 +42,7 @@ #ifdef _OPENMP #include #endif +#define BENCHMARK #include "StopWatch.h" #define TS 64 // Tile size @@ -839,6 +840,12 @@ BENCHFUN {static_cast(wprof[2][0]), static_cast(wprof[2][1]), static_cast(wprof[2][2])} }; + const float wpfast[3][3] = { + {static_cast(wprof[0][0]) / Color::D50x, static_cast(wprof[0][1]) / Color::D50x, static_cast(wprof[0][2]) / Color::D50x}, + {static_cast(wprof[1][0]), static_cast(wprof[1][1]), static_cast(wprof[1][2])}, + {static_cast(wprof[2][0]) / Color::D50z, static_cast(wprof[2][1]) / Color::D50z, static_cast(wprof[2][2]) / Color::D50z} + }; + // begin tile processing of image #ifdef _OPENMP #pragma omp parallel num_threads(numthreads) if (numthreads>1) @@ -925,51 +932,38 @@ BENCHFUN if (!denoiseMethodRgb) { //lab mode //modification Jacques feb 2013 and july 2014 #ifdef _OPENMP - #pragma omp parallel for num_threads(denoiseNestedLevels) if (denoiseNestedLevels>1) + #pragma omp parallel for schedule(dynamic,16) num_threads(denoiseNestedLevels) if (denoiseNestedLevels>1) #endif for (int i = tiletop; i < tilebottom; ++i) { - int i1 = i - tiletop; + const int i1 = i - tiletop; for (int j = tileleft; j < tileright; ++j) { - int j1 = j - tileleft; - float R_ = gain * src->r(i, j); - float G_ = gain * src->g(i, j); - float B_ = gain * src->b(i, j); + const int j1 = j - tileleft; - R_ = Color::denoiseIGammaTab[R_]; - G_ = Color::denoiseIGammaTab[G_]; - B_ = Color::denoiseIGammaTab[B_]; + const float R_ = Color::denoiseIGammaTab[gain * src->r(i, j)]; + const float G_ = Color::denoiseIGammaTab[gain * src->g(i, j)]; + const float B_ = Color::denoiseIGammaTab[gain * src->b(i, j)]; //apply gamma noise standard (slider) - R_ = R_ < 65535.f ? gamcurve[R_] : (Color::gammanf(R_ / 65535.f, gam) * 32768.f); - G_ = G_ < 65535.f ? gamcurve[G_] : (Color::gammanf(G_ / 65535.f, gam) * 32768.f); - B_ = B_ < 65535.f ? gamcurve[B_] : (Color::gammanf(B_ / 65535.f, gam) * 32768.f); - - //true conversion xyz=>Lab - float X, Y, Z; - Color::rgbxyz(R_, G_, B_, X, Y, Z, wp); - - //convert to Lab - float L, a, b; - Color::XYZ2Lab(X, Y, Z, L, a, b); - - labdn->L[i1][j1] = L; - labdn->a[i1][j1] = a; - labdn->b[i1][j1] = b; + labdn->L[i1][j1] = R_ < 65535.f ? gamcurve[R_] : Color::gammanf(R_ / 65535.f, gam) * 32768.f; + labdn->a[i1][j1] = G_ < 65535.f ? gamcurve[G_] : Color::gammanf(G_ / 65535.f, gam) * 32768.f; + labdn->b[i1][j1] = B_ < 65535.f ? gamcurve[B_] : Color::gammanf(B_ / 65535.f, gam) * 32768.f; if (((i1 | j1) & 1) == 0) { if (numTries == 1) { - noisevarlum[(i1 >> 1)*width2 + (j1 >> 1)] = useNoiseLCurve ? lumcalc[i >> 1][j >> 1] : noisevarL; - noisevarchrom[(i1 >> 1)*width2 + (j1 >> 1)] = useNoiseCCurve ? maxNoiseVarab * ccalc[i >> 1][j >> 1] : 1.f; + noisevarlum[(i1 >> 1) * width2 + (j1 >> 1)] = useNoiseLCurve ? lumcalc[i >> 1][j >> 1] : noisevarL; + noisevarchrom[(i1 >> 1) * width2 + (j1 >> 1)] = useNoiseCCurve ? maxNoiseVarab * ccalc[i >> 1][j >> 1] : 1.f; } else { - noisevarlum[(i1 >> 1)*width2 + (j1 >> 1)] = lumcalc[i >> 1][j >> 1]; - noisevarchrom[(i1 >> 1)*width2 + (j1 >> 1)] = ccalc[i >> 1][j >> 1]; + noisevarlum[(i1 >> 1) * width2 + (j1 >> 1)] = lumcalc[i >> 1][j >> 1]; + noisevarchrom[(i1 >> 1) * width2 + (j1 >> 1)] = ccalc[i >> 1][j >> 1]; } } //end chroma } + //true conversion xyz=>Lab + Color::RGB2Lab(labdn->L[i1], labdn->a[i1], labdn->b[i1], labdn->L[i1], labdn->a[i1], labdn->b[i1], wpfast, width); } } else {//RGB mode #ifdef _OPENMP @@ -1605,27 +1599,13 @@ BENCHFUN for (int i = tiletop; i < tilebottom; ++i) { int i1 = i - tiletop; - + //true conversion Lab==>xyz + Color::Lab2RGBLimit(labdn->L[i1], labdn->a[i1], labdn->b[i1], labdn->L[i1], labdn->a[i1], labdn->b[i1], wip, 9000000.f, 1.f + qhighFactor * realred, 1.f + qhighFactor * realblue, width); for (int j = tileleft; j < tileright; ++j) { int j1 = j - tileleft; - //modification Jacques feb 2013 - //true conversion Lab==>xyz - float L = labdn->L[i1][j1]; - float a = labdn->a[i1][j1]; - float b = labdn->b[i1][j1]; - float c_h = SQR(a) + SQR(b); - - if (c_h > 9000000.f) { - a *= 1.f + qhighFactor * realred; - b *= 1.f + qhighFactor * realblue; - } - - //convert XYZ - float X, Y, Z; - Color::Lab2XYZ(L, a, b, X, Y, Z); - //apply inverse gamma noise - float r_, g_, b_; - Color::xyz2rgb(X, Y, Z, r_, g_, b_, wip); + float r_ = labdn->L[i1][j1]; + float g_ = labdn->a[i1][j1]; + float b_ = labdn->b[i1][j1]; //inverse gamma standard (slider) r_ = r_ < 32768.f ? igamcurve[r_] : (Color::gammanf(r_ / 32768.f, igam) * 65535.f); g_ = g_ < 32768.f ? igamcurve[g_] : (Color::gammanf(g_ / 32768.f, igam) * 65535.f); diff --git a/rtengine/color.cc b/rtengine/color.cc index 4ace03bc0..3f2a75788 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -1771,10 +1771,10 @@ void Color::RGB2Lab(float *R, float *G, float *B, float *L, float *a, float *b, { #ifdef __SSE2__ - vfloat minvalfv = F2V(0.f); - vfloat maxvalfv = F2V(MAXVALF); - vfloat c500v = F2V(500.f); - vfloat c200v = F2V(200.f); + const vfloat minvalfv = ZEROV; + const vfloat maxvalfv = F2V(MAXVALF); + const vfloat c500v = F2V(500.f); + const vfloat c200v = F2V(200.f); #endif int i = 0; @@ -1787,9 +1787,7 @@ void Color::RGB2Lab(float *R, float *G, float *B, float *L, float *a, float *b, const vfloat yv = F2V(wp[1][0]) * rv + F2V(wp[1][1]) * gv + F2V(wp[1][2]) * bv; const vfloat zv = F2V(wp[2][0]) * rv + F2V(wp[2][1]) * gv + F2V(wp[2][2]) * bv; - vmask maxMask = vmaskf_gt(vmaxf(xv, vmaxf(yv, zv)), maxvalfv); - vmask minMask = vmaskf_lt(vminf(xv, vminf(yv, zv)), minvalfv); - if (_mm_movemask_ps((vfloat)maxMask) || _mm_movemask_ps((vfloat)minMask)) { + if (_mm_movemask_ps((vfloat)vorm(vmaskf_gt(vmaxf(xv, vmaxf(yv, zv)), maxvalfv), vmaskf_lt(vminf(xv, vminf(yv, zv)), minvalfv)))) { // take slower code path for all 4 pixels if one of the values is > MAXVALF. Still faster than non SSE2 version for(int k = 0; k < 4; ++k) { float x = xv[k]; @@ -1872,6 +1870,51 @@ void Color::RGB2L(float *R, float *G, float *B, float *L, const float wp[3][3], } } +void Color::Lab2RGBLimit(float *L, float *a, float *b, float *R, float *G, float *B, const float wp[3][3], float limit, float afactor, float bfactor, int width) +{ + + int i = 0; + +#ifdef __SSE2__ + const vfloat wpv[3][3] = { + {F2V(wp[0][0]), F2V(wp[0][1]), F2V(wp[0][2])}, + {F2V(wp[1][0]), F2V(wp[1][1]), F2V(wp[1][2])}, + {F2V(wp[2][0]), F2V(wp[2][1]), F2V(wp[2][2])} + }; + const vfloat limitv = F2V(limit); + const vfloat afactorv = F2V(afactor); + const vfloat bfactorv = F2V(bfactor); + + for(;i < width - 3; i+=4) { + const vfloat Lv = LVFU(L[i]); + vfloat av = LVFU(a[i]); + vfloat bv = LVFU(b[i]); + + const vmask mask = vmaskf_gt(SQRV(av) + SQRV(bv), limitv); + av = vself(mask, av * afactorv, av); + bv = vself(mask, bv * bfactorv, bv); + vfloat Xv, Yv, Zv; + Lab2XYZ(Lv, av, bv, Xv, Yv, Zv); + vfloat Rv, Gv, Bv; + xyz2rgb(Xv, Yv, Zv, Rv, Gv, Bv, wpv); + STVFU(R[i], Rv); + STVFU(G[i], Gv); + STVFU(B[i], Bv); + } +#endif + for(;i < width; ++i) { + float X, Y, Z; + float av = a[i]; + float bv = b[i]; + if (SQR(av) + SQR(bv) > limit) { + av *= afactor; + bv *= bfactor; + } + Lab2XYZ(L[i], av, bv, X, Y, Z); + xyz2rgb(X, Y, Z, R[i], G[i], B[i], wp); + } +} + void Color::XYZ2Lab(float X, float Y, float Z, float &L, float &a, float &b) { diff --git a/rtengine/color.h b/rtengine/color.h index 9f8863343..c3d1cc50a 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -617,6 +617,7 @@ public: */ static void XYZ2Lab(float x, float y, float z, float &L, float &a, float &b); static void RGB2Lab(float *X, float *Y, float *Z, float *L, float *a, float *b, const float wp[3][3], int width); + static void Lab2RGBLimit(float *L, float *a, float *b, float *R, float *G, float *B, const float wp[3][3], float limit, float afactor, float bfactor, int width); static void RGB2L(float *X, float *Y, float *Z, float *L, const float wp[3][3], int width); /** From 9ee47c29a3d826bbb422cac2a45ec7e76d248177 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 17 Mar 2019 19:45:46 +0100 Subject: [PATCH 002/215] Small speedup for denoise (mainly for preview mode), #5225 --- rtengine/FTblockDN.cc | 85 +++++++++---------------------------------- rtengine/improcfun.h | 7 ++-- 2 files changed, 20 insertions(+), 72 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 62483c3d7..12344a25b 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -2112,52 +2112,7 @@ void ImProcFunctions::RGBoutput_tile_row(float *bloxrow_L, float ** Ldetail, flo #undef epsilon */ -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -float ImProcFunctions::MadMax(float * DataList, int & max, int datalen) -{ - - //computes Median Absolute Deviation and Maximum of DataList - //DataList values should mostly have abs val < 65535 - - int * histo = new int[65536]; - - //memset(histo, 0, 65536*sizeof(histo)); - for (int i = 0; i < 65536; ++i) { - histo[i] = 0; - } - - //calculate histogram of absolute values of HH wavelet coeffs - for (int i = 0; i < datalen; ++i) { - histo[MAX(0, MIN(65535, abs((int)DataList[i])))]++; - } - - //find median of histogram - int median = 0, count = 0; - - while (count < datalen / 2) { - count += histo[median]; - ++median; - } - - //find max of histogram - max = 65535; - - while (histo[max] == 0) { - max--; - } - - int count_ = count - histo[median - 1]; - - delete[] histo; - - // interpolate - return (((median - 1) + (datalen / 2 - count_) / (static_cast(count - count_))) / 0.6745); - -} - -float ImProcFunctions::Mad(float * DataList, const int datalen) +float ImProcFunctions::Mad(const float * DataList, const int datalen) { if (datalen <= 1) { // Avoid possible buffer underrun return 0; @@ -2169,7 +2124,7 @@ float ImProcFunctions::Mad(float * DataList, const int datalen) //calculate histogram of absolute values of wavelet coeffs for (int i = 0; i < datalen; ++i) { - histo[min(255, abs(static_cast(DataList[i])))]++; + histo[static_cast(rtengine::min(255.f, fabsf(DataList[i])))]++; } //find median of histogram @@ -2186,7 +2141,7 @@ float ImProcFunctions::Mad(float * DataList, const int datalen) return (((median - 1) + (datalen / 2 - count_) / (static_cast(count - count_))) / 0.6745); } -float ImProcFunctions::MadRgb(float * DataList, const int datalen) +float ImProcFunctions::MadRgb(const float * DataList, const int datalen) { if (datalen <= 1) { // Avoid possible buffer underrun return 0; @@ -2201,10 +2156,8 @@ float ImProcFunctions::MadRgb(float * DataList, const int datalen) } //calculate histogram of absolute values of wavelet coeffs - int i; - - for (i = 0; i < datalen; ++i) { - histo[min(65535, abs(static_cast(DataList[i])))]++; + for (int i = 0; i < datalen; ++i) { + histo[static_cast(rtengine::min(65535.f, fabsf(DataList[i])))]++; } //find median of histogram @@ -2224,27 +2177,23 @@ float ImProcFunctions::MadRgb(float * DataList, const int datalen) -void ImProcFunctions::Noise_residualAB(wavelet_decomposition &WaveletCoeffs_ab, float &chresid, float &chmaxresid, bool denoiseMethodRgb) +void ImProcFunctions::Noise_residualAB(const wavelet_decomposition &WaveletCoeffs_ab, float &chresid, float &chmaxresid, bool denoiseMethodRgb) { - int maxlvl = WaveletCoeffs_ab.maxlevel(); + float resid = 0.f; - float madC; float maxresid = 0.f; - for (int lvl = 0; lvl < maxlvl; ++lvl) { +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic) collapse(2) reduction(+:resid) reduction(max:maxresid) num_threads(denoiseNestedLevels) if (denoiseNestedLevels>1) +#endif + for (int lvl = 0; lvl < WaveletCoeffs_ab.maxlevel(); ++lvl) { // compute median absolute deviation (MAD) of detail coefficients as robust noise estimator - - int Wlvl_ab = WaveletCoeffs_ab.level_W(lvl); - int Hlvl_ab = WaveletCoeffs_ab.level_H(lvl); - - float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); - for (int dir = 1; dir < 4; ++dir) { - if (denoiseMethodRgb) { - madC = SQR(MadRgb(WavCoeffs_ab[dir], Wlvl_ab * Hlvl_ab)); - } else { - madC = SQR(Mad(WavCoeffs_ab[dir], Wlvl_ab * Hlvl_ab)); - } + const int Wlvl_ab = WaveletCoeffs_ab.level_W(lvl); + const int Hlvl_ab = WaveletCoeffs_ab.level_H(lvl); + + float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); + const float madC = SQR(denoiseMethodRgb ? MadRgb(WavCoeffs_ab[dir], Wlvl_ab * Hlvl_ab) : Mad(WavCoeffs_ab[dir], Wlvl_ab * Hlvl_ab)); resid += madC; @@ -2624,7 +2573,7 @@ bool ImProcFunctions::WaveletDenoiseAllAB(wavelet_decomposition &WaveletCoeffs_L if (!memoryAllocationFailed) { #ifdef _OPENMP - #pragma omp for schedule(dynamic) collapse(2) + #pragma omp for schedule(dynamic) collapse(2) nowait #endif for (int lvl = 0; lvl < maxlvl; ++lvl) { diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 75e8341b9..e3e798b9e 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -326,11 +326,10 @@ public: void ShrinkAll_info(float ** WavCoeffs_a, float ** WavCoeffs_b, int W_ab, int H_ab, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float &maxblueaut, float &minredaut, float &minblueaut, int schoice, int lvl, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb); - void Noise_residualAB(wavelet_decomposition &WaveletCoeffs_ab, float &chresid, float &chmaxresid, bool denoiseMethodRgb); + void Noise_residualAB(const wavelet_decomposition &WaveletCoeffs_ab, float &chresid, float &chmaxresid, bool denoiseMethodRgb); void calcautodn_info(float &chaut, float &delta, int Nb, int levaut, float maxmax, float lumema, float chromina, int mode, int lissage, float redyel, float skinc, float nsknc); - float MadMax(float * DataList, int &max, int datalen); - float Mad(float * DataList, const int datalen); - float MadRgb(float * DataList, const int datalen); + float Mad(const float * DataList, const int datalen); + float MadRgb(const float * DataList, const int datalen); // pyramid wavelet void dirpyr_equalizer(float ** src, float ** dst, int srcwidth, int srcheight, float ** l_a, float ** l_b, const double * mult, const double dirpyrThreshold, const double skinprot, float b_l, float t_l, float t_r, int scale); //Emil's directional pyramid wavelet From 30120af8a29fda91cb59c51e3268968fb2104719 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 19 Mar 2019 20:54:10 +0100 Subject: [PATCH 003/215] remove some bogus consts --- rtengine/color.h | 24 ++++++++++++------------ rtengine/improcfun.h | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/rtengine/color.h b/rtengine/color.h index c3d1cc50a..e1ce1c08c 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -842,7 +842,7 @@ public: * @param go green channel of output color [0 ; 65535] (return value) * @param bo blue channel of output color [0 ; 65535] (return value) */ - static void interpolateRGBColor (const float balance, const float r1, const float g1, const float b1, const float r2, const float g2, const float b2, int channels, const double xyz_rgb[3][3], const double rgb_xyz[3][3], float &ro, float &go, float &bo); + static void interpolateRGBColor (float balance, float r1, float g1, float b1, float r2, float g2, float b2, int channels, const double xyz_rgb[3][3], const double rgb_xyz[3][3], float &ro, float &go, float &bo); /** * @brief Interpolate 2 colors from their respective red/green/blue channels, with a balance factor @@ -872,7 +872,7 @@ public: * @param go green channel of output color [0 ; 65535] (return value) * @param bo blue channel of output color [0 ; 65535] (return value) */ - static void interpolateRGBColor (float realL, float iplow, float iphigh, int algm, const float balance, int twoc, int metchrom, float chromat, float luma, const float r1, const float g1, const float b1, const float xl, const float yl, const float zl, const float x2, const float y2, const float z2, const double xyz_rgb[3][3], const double rgb_xyz[3][3], float &ro, float &go, float &bo); + static void interpolateRGBColor (float realL, float iplow, float iphigh, int algm, float balance, int twoc, int metchrom, float chromat, float luma, float r1, float g1, float b1, float xl, float yl, float zl, float x2, float y2, float z2, const double xyz_rgb[3][3], const double rgb_xyz[3][3], float &ro, float &go, float &bo); /** @@ -1429,15 +1429,15 @@ public: * @param moreRGB (Debug target only) to calculate iterations for values >65535 */ #ifdef _DEBUG - static void gamutLchonly (float HH, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef, bool &neg, bool &more_rgb); - static void gamutLchonly (float HH, float2 sincosval, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef, bool &neg, bool &more_rgb); - static void gamutLchonly (float2 sincosval, float &Lprov1, float &Chprov1, const float wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef, bool &neg, bool &more_rgb); + static void gamutLchonly (float HH, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef, bool &neg, bool &more_rgb); + static void gamutLchonly (float HH, float2 sincosval, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef, bool &neg, bool &more_rgb); + static void gamutLchonly (float2 sincosval, float &Lprov1, float &Chprov1, const float wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef, bool &neg, bool &more_rgb); #else - static void gamutLchonly (float HH, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef); - static void gamutLchonly (float HH, float2 sincosval, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef); - static void gamutLchonly (float2 sincosval, float &Lprov1, float &Chprov1, const float wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef); + static void gamutLchonly (float HH, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef); + static void gamutLchonly (float HH, float2 sincosval, float &Lprov1, float &Chprov1, float &R, float &G, float &B, const double wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef); + static void gamutLchonly (float2 sincosval, float &Lprov1, float &Chprov1, const float wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef); #endif - static void gamutLchonly (float HH, float2 sincosval, float &Lprov1, float &Chprov1, float &saturation, const float wip[3][3], const bool isHLEnabled, const float lowerCoef, const float higherCoef); + static void gamutLchonly (float HH, float2 sincosval, float &Lprov1, float &Chprov1, float &saturation, const float wip[3][3], bool isHLEnabled, float lowerCoef, float higherCoef); /** @@ -1461,7 +1461,7 @@ public: * @param wip matrix for working profile * @param multiThread whether to parallelize the loop or not */ - static void LabGamutMunsell (float *labL, float *laba, float *labb, const int N, bool corMunsell, bool lumaMuns, bool isHLEnabled, bool gamut, const double wip[3][3]); + static void LabGamutMunsell (float *labL, float *laba, float *labb, int N, bool corMunsell, bool lumaMuns, bool isHLEnabled, bool gamut, const double wip[3][3]); /* @@ -1497,8 +1497,8 @@ public: // -------------------------------- end Munsell - static void scalered ( const float rstprotection, const float param, const float limit, const float HH, const float deltaHH, float &scale, float &scaleext); - static void transitred (const float HH, const float Chprov1, const float dred, const float factorskin, const float protect_red, const float factorskinext, const float deltaHH, const float factorsat, float &factor); + static void scalered ( float rstprotection, float param, float limit, float HH, float deltaHH, float &scale, float &scaleext); + static void transitred (float HH, float Chprov1, float dred, float factorskin, float protect_red, float factorskinext, float deltaHH, float factorsat, float &factor); static void skinred ( double J, double h, double sres, double Sp, float dred, float protect_red, int sk, float rstprotection, float ko, double &s); static void skinredfloat ( float J, float h, float sres, float Sp, float dred, float protect_red, int sk, float rstprotection, float ko, float &s); // static void scaleredcdbl ( float skinprot, float param, float limit, float HH, float deltaHH, float &scale,float &scaleext); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index e3e798b9e..cd1650f6e 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -328,8 +328,8 @@ public: float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb); void Noise_residualAB(const wavelet_decomposition &WaveletCoeffs_ab, float &chresid, float &chmaxresid, bool denoiseMethodRgb); void calcautodn_info(float &chaut, float &delta, int Nb, int levaut, float maxmax, float lumema, float chromina, int mode, int lissage, float redyel, float skinc, float nsknc); - float Mad(const float * DataList, const int datalen); - float MadRgb(const float * DataList, const int datalen); + float Mad(const float * DataList, int datalen); + float MadRgb(const float * DataList, int datalen); // pyramid wavelet void dirpyr_equalizer(float ** src, float ** dst, int srcwidth, int srcheight, float ** l_a, float ** l_b, const double * mult, const double dirpyrThreshold, const double skinprot, float b_l, float t_l, float t_r, int scale); //Emil's directional pyramid wavelet From 84ce72841e5a4d3cdf5eef2a711db849c3fc48b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 21 Mar 2019 20:50:43 +0100 Subject: [PATCH 004/215] Decouple `rtengine/` from `rtgui/edit.h` --- rtengine/dcrop.cc | 2 ++ rtengine/improcfun.cc | 33 +++++++++++++++++++-------------- rtengine/pipettebuffer.cc | 2 ++ rtengine/pipettebuffer.h | 15 +++++++++------ rtgui/editid.h | 2 +- rtgui/mydiagonalcurve.cc | 9 +++++++-- rtgui/myflatcurve.cc | 9 +++++++-- 7 files changed, 47 insertions(+), 25 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 0872049d8..c033dba87 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -24,6 +24,8 @@ #include "refreshmap.h" #include "rt_math.h" +#include "../rtgui/edit.h" + namespace { diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 4e2523137..91f56c015 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -17,33 +17,38 @@ * along with RawTherapee. If not, see . */ #include + #include #include + #ifdef _OPENMP #include #endif -#include "alignedbuffer.h" -#include "rtengine.h" #include "improcfun.h" + +#include "alignedbuffer.h" +#include "calc_distort.h" +#include "ciecam02.h" +#include "clutstore.h" +#include "color.h" #include "curves.h" -#include "mytime.h" +#include "EdgePreservingDecomposition.h" +#include "iccmatrices.h" #include "iccstore.h" #include "imagesource.h" -#include "rtthumbnail.h" -#include "utils.h" -#include "iccmatrices.h" -#include "color.h" -#include "calc_distort.h" -#include "rt_math.h" -#include "EdgePreservingDecomposition.h" #include "improccoordinator.h" -#include "clutstore.h" -#include "ciecam02.h" -#include "StopWatch.h" +#include "mytime.h" #include "procparams.h" -#include "../rtgui/ppversion.h" +#include "rt_math.h" +#include "rtengine.h" +#include "rtthumbnail.h" +#include "StopWatch.h" +#include "utils.h" + +#include "../rtgui/edit.h" #include "../rtgui/guiutils.h" +#include "../rtgui/ppversion.h" #undef CLIPD #define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f) diff --git a/rtengine/pipettebuffer.cc b/rtengine/pipettebuffer.cc index 8981b6480..5f5a5ce71 100644 --- a/rtengine/pipettebuffer.cc +++ b/rtengine/pipettebuffer.cc @@ -19,6 +19,8 @@ #include "pipettebuffer.h" +#include "../rtgui/edit.h" + namespace rtengine { diff --git a/rtengine/pipettebuffer.h b/rtengine/pipettebuffer.h index 139438e1d..25ff55b51 100644 --- a/rtengine/pipettebuffer.h +++ b/rtengine/pipettebuffer.h @@ -16,17 +16,22 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _PIPETTEBUFFER_H_ -#define _PIPETTEBUFFER_H_ +#pragma once -#include "../rtgui/edit.h" #include "array2D.h" -#include "iimage.h" #include "coord.h" +#include "iimage.h" + +class EditDataProvider; +class EditSubscriber; + +enum EditUniqueID : int; namespace rtengine { +class Imagefloat; + /// @brief Structure that contains information about and pointers to the Edit buffer class PipetteBuffer { @@ -92,5 +97,3 @@ public: }; } - -#endif diff --git a/rtgui/editid.h b/rtgui/editid.h index c4f9315c0..5c1cf2389 100644 --- a/rtgui/editid.h +++ b/rtgui/editid.h @@ -21,7 +21,7 @@ /// @brief List of pipette editing operation -enum EditUniqueID { +enum EditUniqueID : int { EUID_None, /// special value (default) EUID_ToneCurve1, diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index 59ac5a807..06e85728d 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -16,11 +16,16 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include "mydiagonalcurve.h" -#include "../rtengine/curves.h" #include + #include +#include "mydiagonalcurve.h" + +#include "edit.h" + +#include "../rtengine/curves.h" + MyDiagonalCurve::MyDiagonalCurve () : MyCurve(), closest_point(0), diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index ee7a2de5f..dfc61063f 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -16,11 +16,16 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include "myflatcurve.h" -#include "../rtengine/curves.h" #include + #include +#include "myflatcurve.h" + +#include "edit.h" + +#include "../rtengine/curves.h" + MyFlatCurve::MyFlatCurve () : MyCurve(), clampedX(0.0), From fe74625d78e9feb8c401023724097262f0ac0d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 21 Mar 2019 20:55:31 +0100 Subject: [PATCH 005/215] Fix const correctness of `RTSurface::get()` --- rtgui/rtsurface.cc | 7 ++++++- rtgui/rtsurface.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rtgui/rtsurface.cc b/rtgui/rtsurface.cc index 9f692878d..e2ae41f49 100644 --- a/rtgui/rtsurface.cc +++ b/rtgui/rtsurface.cc @@ -133,7 +133,12 @@ bool RTSurface::hasSurface() const return surface ? true : false; } -const Cairo::RefPtr& RTSurface::get() const +Cairo::RefPtr RTSurface::get() const +{ + return surface; +} + +const Cairo::RefPtr& RTSurface::get() { return surface; } diff --git a/rtgui/rtsurface.h b/rtgui/rtsurface.h index d55506269..64e68d7a1 100644 --- a/rtgui/rtsurface.h +++ b/rtgui/rtsurface.h @@ -45,7 +45,8 @@ public: int getHeight() const; bool hasSurface() const; - const Cairo::RefPtr& get() const; + Cairo::RefPtr get() const; + const Cairo::RefPtr& get(); static void init(); static void updateImages (); From 363385a8381e679a851ba5df9dfda6360f68d9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 21 Mar 2019 21:27:04 +0100 Subject: [PATCH 006/215] Streamline `RTSurface` and fix potential bug in `updateImages()` --- rtgui/rtsurface.cc | 157 +++++++++++++++++++++++---------------------- rtgui/rtsurface.h | 31 ++++----- 2 files changed, 93 insertions(+), 95 deletions(-) diff --git a/rtgui/rtsurface.cc b/rtgui/rtsurface.cc index e2ae41f49..230c3ff4f 100644 --- a/rtgui/rtsurface.cc +++ b/rtgui/rtsurface.cc @@ -19,66 +19,110 @@ #include -#include "options.h" #include "rtsurface.h" +#include "options.h" + namespace { -std::map> surfaceCache; +using SurfaceCache = std::map>; + +SurfaceCache surfaceCache; } -double RTSurface::dpiBack = 0.; -int RTSurface::scaleBack = 0; - -RTSurface::RTSurface () : RTScalable() +RTSurface::RTSurface() : + surface(new Cairo::ImageSurface(nullptr, false)) { - Cairo::RefPtr imgSurf(new Cairo::ImageSurface(nullptr, false)); - surface = imgSurf; } -RTSurface::RTSurface(const RTSurface& other) : RTScalable() +RTSurface::RTSurface(const Glib::ustring& fileName, const Glib::ustring& rtlFileName) : + RTSurface() { - surface = other.surface; + setImage(fileName, rtlFileName); } -RTSurface::RTSurface (Glib::ustring fileName, Glib::ustring rtlFileName) : RTScalable() +void RTSurface::setImage(const Glib::ustring& fileName, const Glib::ustring& rtlFileName) { - Cairo::RefPtr imgSurf(new Cairo::ImageSurface(nullptr, false)); - surface = imgSurf; - setImage (fileName, rtlFileName); -} - -void RTSurface::setImage (Glib::ustring fileName, Glib::ustring rtlFileName) -{ - Glib::ustring imageName; - - if (!rtlFileName.empty() && getDirection() == Gtk::TEXT_DIR_RTL) { - imageName = rtlFileName; - } else { - imageName = fileName; - } + const Glib::ustring& imageName = + !rtlFileName.empty() && getDirection() == Gtk::TEXT_DIR_RTL + ? rtlFileName + : fileName; changeImage (imageName); } -void RTSurface::setDPInScale (const double newDPI, const int newScale) +int RTSurface::getWidth() const { - if (getScale() != newScale || (getScale() == 1 && getDPI() != newDPI)) { - RTScalable::setDPInScale(newDPI, newScale); + return + surface + ? surface->get_width() + : -1; +} + +int RTSurface::getHeight() const +{ + return + surface + ? surface->get_height() + : -1; +} + +bool RTSurface::hasSurface() const +{ + return static_cast(surface); +} + +Cairo::RefPtr RTSurface::get() const +{ + return surface; +} + +const Cairo::RefPtr& RTSurface::get() +{ + return surface; +} + +void RTSurface::init() +{ + dpiBack = getDPI(); + scaleBack = getScale(); +} + +void RTSurface::updateImages() +{ + const double tweakedDpi = getTweakedDPI(); + + for (auto& entry : surfaceCache) { + entry.second = loadImage(entry.first, tweakedDpi); + } +} + +void RTSurface::setDPInScale(const double newDPI, const int newScale) +{ + if ( + getScale() != newScale + || ( + getScale() == 1 + && getDPI() != newDPI + ) + ) { + setDPInScale(newDPI, newScale); dpiBack = getDPI(); scaleBack = getScale(); - //printf("RTSurface::setDPInScale : New scale = %d & new DPI = %.3f (%.3f asked) -> Reloading all RTSurface\n", scaleBack, dpiBack, newDPI); + updateImages(); } } -void RTSurface::changeImage (Glib::ustring imageName) +void RTSurface::changeImage(const Glib::ustring& imageName) { - auto iterator = surfaceCache.find (imageName); + const SurfaceCache::const_iterator iterator = surfaceCache.find(imageName); - if (iterator == surfaceCache.end ()) { + if (iterator != surfaceCache.end()) { + surface = iterator->second; + } else { surface = loadImage(imageName, getTweakedDPI()); // HOMBRE: As of now, GDK_SCALE is forced to 1, so setting the Cairo::ImageSurface scale is not required @@ -92,53 +136,10 @@ void RTSurface::changeImage (Glib::ustring imageName) } */ - iterator = surfaceCache.emplace (imageName, surface).first; - } - - surface = iterator->second; -} - -int RTSurface::getWidth() const -{ - return surface ? surface->get_width() : -1; -} - -int RTSurface::getHeight() const -{ - return surface ? surface->get_height() : -1; -} - -void RTSurface::init() -{ - dpiBack = RTScalable::getDPI(); - scaleBack = RTScalable::getScale(); -} - -void RTSurface::updateImages() -{ - double res = getTweakedDPI(); - for (auto entry : surfaceCache) { - entry.second = loadImage(entry.first, res); - //printf("RTSurface::updateImages : %s\n", entry.first.c_str()); + surfaceCache.emplace(imageName, surface); } } -void RTSurface::from(Glib::RefPtr other) -{ - surface = other->surface; -} +double RTSurface::dpiBack = 0.; -bool RTSurface::hasSurface() const -{ - return surface ? true : false; -} - -Cairo::RefPtr RTSurface::get() const -{ - return surface; -} - -const Cairo::RefPtr& RTSurface::get() -{ - return surface; -} +int RTSurface::scaleBack = 0; diff --git a/rtgui/rtsurface.h b/rtgui/rtsurface.h index 64e68d7a1..c314ab1c1 100644 --- a/rtgui/rtsurface.h +++ b/rtgui/rtsurface.h @@ -19,28 +19,21 @@ #pragma once #include + #include "rtscalable.h" /** * @brief A derived class of Gtk::Image in order to handle theme-related icon sets. */ -class RTSurface : public RTScalable +class RTSurface : + public RTScalable { - -private: - - static double dpiBack; // used to keep track of master dpi change - static int scaleBack; // used to keep track of master scale change - Cairo::RefPtr surface; - void changeImage (Glib::ustring imageName); - public: + RTSurface(); + RTSurface(const Glib::ustring& fileName, const Glib::ustring& rtlFileName = {}); - RTSurface (); - RTSurface (const RTSurface& other); - RTSurface (Glib::ustring fileName, Glib::ustring rtlFileName = Glib::ustring()); + void setImage(const Glib::ustring& fileName, const Glib::ustring& rtlFileName = {}); - void setImage (Glib::ustring fileName, Glib::ustring rtlFileName = Glib::ustring()); int getWidth() const; int getHeight() const; bool hasSurface() const; @@ -49,9 +42,13 @@ public: const Cairo::RefPtr& get(); static void init(); - static void updateImages (); - static void setDPInScale (const double newDPI, const int newScale); - static void setScale (const int newScale); + static void updateImages(); + static void setDPInScale(double newDPI, int newScale); - void from(Glib::RefPtr other); +private: + void changeImage(const Glib::ustring& imageName); + + static double dpiBack; // used to keep track of master dpi change + static int scaleBack; // used to keep track of master scale change + Cairo::RefPtr surface; }; From 29196fb57c9d6c698f41ba5171a062c1db41f4b2 Mon Sep 17 00:00:00 2001 From: Hombre Date: Sun, 24 Mar 2019 20:45:05 +0100 Subject: [PATCH 007/215] Fix RTImage cached data cleanup (see #3636) --- rtgui/rtimage.cc | 15 +++++++++++++++ rtgui/rtimage.h | 1 + rtgui/rtwindow.cc | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/rtgui/rtimage.cc b/rtgui/rtimage.cc index cc734456e..6a289ead6 100644 --- a/rtgui/rtimage.cc +++ b/rtgui/rtimage.cc @@ -120,6 +120,10 @@ void RTImage::changeImage (const Glib::ustring& imageName) { clear (); + if (imageName.empty()) { + return; + } + if (pixbuf) { auto iterator = pixbufCache.find (imageName); assert(iterator != pixbufCache.end ()); @@ -169,6 +173,17 @@ void RTImage::init() scaleBack = RTScalable::getScale(); } +void RTImage::cleanup() +{ + for (auto& entry : pixbufCache) { + entry.second.reset(); + } + for (auto& entry : surfaceCache) { + entry.second.clear(); + } + RTScalable::cleanup(); +} + void RTImage::updateImages() { for (auto& entry : pixbufCache) { diff --git a/rtgui/rtimage.h b/rtgui/rtimage.h index 481772ad6..5679f6edc 100644 --- a/rtgui/rtimage.h +++ b/rtgui/rtimage.h @@ -52,6 +52,7 @@ public: static void init(); + static void cleanup(); static void updateImages (); static void setDPInScale (const double newDPI, const int newScale); static void setScale (const int newScale); diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index b5773dc9e..cc5945e7a 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -463,7 +463,7 @@ RTWindow::~RTWindow() delete fpanel; } - RTScalable::cleanup(); + RTImage::cleanup(); } void RTWindow::on_realize () From 390594f39ef3e1fd75c737df5dae69dead8dae9e Mon Sep 17 00:00:00 2001 From: Hombre Date: Tue, 26 Mar 2019 22:53:33 +0100 Subject: [PATCH 008/215] Fix bug in OPIcon class Thanks to @Floessie for the fix --- rtgui/editwidgets.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rtgui/editwidgets.cc b/rtgui/editwidgets.cc index 683540921..16cd67cd4 100644 --- a/rtgui/editwidgets.cc +++ b/rtgui/editwidgets.cc @@ -731,23 +731,23 @@ OPIcon::OPIcon(Glib::ustring normalImage, Glib::ustring activeImage, Glib::ustri Glib::ustring draggedImage, Glib::ustring insensitiveImage, DrivenPoint drivenPoint) : drivenPoint(drivenPoint) { if (!normalImage.empty()) { - normalImg->setImage(normalImage); + normalImg = Cairo::RefPtr(new RTSurface(normalImage)); } if (!prelightImage.empty()) { - prelightImg->setImage(prelightImage); + prelightImg = Cairo::RefPtr(new RTSurface(prelightImage)); } if (!activeImage.empty()) { - activeImg->setImage(activeImage); + activeImg = Cairo::RefPtr(new RTSurface(activeImage)); } if (!draggedImage.empty()) { - draggedImg->setImage(draggedImage); + draggedImg = Cairo::RefPtr(new RTSurface(draggedImage)); } if (!insensitiveImage.empty()) { - insensitiveImg->setImage(insensitiveImage); + insensitiveImg = Cairo::RefPtr(new RTSurface(insensitiveImage)); } } From 68ba87a71ff670b08e2db0d5b887517f41d3d9b7 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 27 Mar 2019 11:19:33 +0100 Subject: [PATCH 009/215] Add Sigma 18-250mm lens IDs, closes #4135 --- rtexif/nikonattribs.cc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index a1fa28c34..b2066150d 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -1148,7 +1148,26 @@ const std::map NALensDataInterpreter::lenses = { {"FE 53 5C 80 24 24 84 06", "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)"}, {"FE 54 5C 80 24 24 DF 0E", "Tamron SP 70-200mm f/2.8 Di VC USD (A009)"}, {"FE 54 64 64 24 24 DF 0E", "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F004)"}, - {"FF 40 2D 80 2C 40 4B 06", "Sigma 18-200mm f/3.5-6.3 DC"} + {"FF 40 2D 80 2C 40 4B 06", "Sigma 18-200mm f/3.5-6.3 DC"}, + + // There are cases where one lens uses multiple IDs which change based on the focal length or aperture. + // These IDs cannot be listed using ExifTool, and so must be entered manually below. + // #4135 + + {"92 2B 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (210mm) + {"92 2C 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (185mm) + {"92 2D 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (155mm) + {"92 2E 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (130mm) + {"92 2F 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (105mm) + {"92 30 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (90mm) + {"92 32 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (75mm) + {"92 33 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (62mm) + {"92 35 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (52mm) + {"92 37 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (44mm) + {"92 39 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (38mm) + {"92 3A 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (32mm) + {"92 3E 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"}, // (22mm) + {"92 40 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"} // (18mm) }; const TagAttrib nikonISOInfoAttribs[] = { From e23fc17ccfee9f03830d9c5487fb02b16950aed5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 29 Mar 2019 09:21:47 +0100 Subject: [PATCH 010/215] Search for DateTimeOriginal if not found in standard location MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The DateTimeOriginal and DateTimeDigitized Exif tags should be in the same group - ExifIFD, but the Leica M8 stores DateTimeOriginal in the IFD0 group. This patch by Flössie allows to find the tag. Closes #5251 --- rtengine/imagedata.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index 4dcfe80ff..4e38c612a 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -260,7 +260,7 @@ FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* iso_speed = tag->toDouble (); } - if ((tag = exif->getTag ("DateTimeOriginal"))) { + if ((tag = exif->findTag("DateTimeOriginal", true))) { if (sscanf ((const char*)tag->getValue(), "%d:%d:%d %d:%d:%d", &time.tm_year, &time.tm_mon, &time.tm_mday, &time.tm_hour, &time.tm_min, &time.tm_sec) == 6) { time.tm_year -= 1900; time.tm_mon -= 1; From 0a09097baf62d954c47018b7b10d0c308e01536c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 30 Mar 2019 16:14:31 +0100 Subject: [PATCH 011/215] Fix copy/paste bug --- rtgui/bayerpreprocess.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/bayerpreprocess.cc b/rtgui/bayerpreprocess.cc index 4910b2798..44be0d047 100644 --- a/rtgui/bayerpreprocess.cc +++ b/rtgui/bayerpreprocess.cc @@ -124,7 +124,7 @@ void BayerPreProcess::write(rtengine::procparams::ProcParams* pp, ParamsEdited* if (pedited) { pedited->raw.bayersensor.linenoise = lineDenoise->getEditedState(); pedited->raw.bayersensor.greenEq = greenEqThreshold->getEditedState(); - pedited->raw.bayersensor.linenoise = lineDenoiseDirection->get_active_row_number() != 3; + pedited->raw.bayersensor.linenoiseDirection = lineDenoiseDirection->get_active_row_number() != 3; pedited->raw.bayersensor.pdafLinesFilter = !pdafLinesFilter->get_inconsistent(); } } From 7c091280d4311e3ce1b35dd60848f0df2b1bd549 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 30 Mar 2019 19:30:29 +0100 Subject: [PATCH 012/215] Indentation fix - spaces instead of tabs --- rtgui/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 831f100e7..72df9fba0 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -122,8 +122,8 @@ set(NONCLISOURCEFILES rgbcurves.cc rotate.cc rtimage.cc - rtsurface.cc - rtscalable.cc + rtsurface.cc + rtscalable.cc rtwindow.cc saveasdlg.cc saveformatpanel.cc From 74a4e8bb9369f50f1f314bb90bf704db078fb580 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 18:53:13 +0200 Subject: [PATCH 013/215] Added Panasonic camera aliases Based on info from: https://av.jpn.support.panasonic.com/support/global/cs/dsc/download/index.html --- rtdata/dcpprofiles/camera_model_aliases.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtdata/dcpprofiles/camera_model_aliases.json b/rtdata/dcpprofiles/camera_model_aliases.json index 0caf5804b..5f5672999 100644 --- a/rtdata/dcpprofiles/camera_model_aliases.json +++ b/rtdata/dcpprofiles/camera_model_aliases.json @@ -22,8 +22,10 @@ "NIKON D800E": ["NIKON D800"], + "Panasonic DC-GF9": ["Panasonic DC-GX800", "Panasonic DC-GX850"], "Panasonic DC-FZ82": ["Panasonic DMC-FZ80", "Panasonic DMC-FZ85"], "Panasonic DC-TZ91": ["Panasonic DC-TZ90", "Panasonic DC-TZ92", "Panasonic DC-TZ93", "Panasonic DC-ZS70"], + "Panasonic DMC-G7": ["Panasonic DMC-G70"], "Panasonic DMC-G8": ["Panasonic DMC-G80", "Panasonic DMC-G81", "Panasonic DMC-G85"], "Panasonic DMC-GX85": ["Panasonic DMC-GX80", "Panasonic DMC-GX7MK2"], "Panasonic DMC-LX15": ["Panasonic DMC-LX9", "Panasonic DMC-LX10"], From 9eaeeff27d57dd4b34b10a77ee8610930062faf5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 18:54:06 +0200 Subject: [PATCH 014/215] Sorted Panasonic camera aliases --- rtdata/dcpprofiles/camera_model_aliases.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/dcpprofiles/camera_model_aliases.json b/rtdata/dcpprofiles/camera_model_aliases.json index 5f5672999..61fc2bf57 100644 --- a/rtdata/dcpprofiles/camera_model_aliases.json +++ b/rtdata/dcpprofiles/camera_model_aliases.json @@ -22,14 +22,14 @@ "NIKON D800E": ["NIKON D800"], - "Panasonic DC-GF9": ["Panasonic DC-GX800", "Panasonic DC-GX850"], "Panasonic DC-FZ82": ["Panasonic DMC-FZ80", "Panasonic DMC-FZ85"], + "Panasonic DC-GF9": ["Panasonic DC-GX800", "Panasonic DC-GX850"], + "Panasonic DC-TZ100": ["Panasonic DC-ZS100", "Panasonic DC-ZS110", "Panasonic DC-TZ101", "Panasonic DC-TZ110"], "Panasonic DC-TZ91": ["Panasonic DC-TZ90", "Panasonic DC-TZ92", "Panasonic DC-TZ93", "Panasonic DC-ZS70"], "Panasonic DMC-G7": ["Panasonic DMC-G70"], "Panasonic DMC-G8": ["Panasonic DMC-G80", "Panasonic DMC-G81", "Panasonic DMC-G85"], "Panasonic DMC-GX85": ["Panasonic DMC-GX80", "Panasonic DMC-GX7MK2"], "Panasonic DMC-LX15": ["Panasonic DMC-LX9", "Panasonic DMC-LX10"], - "Panasonic DC-TZ100": ["Panasonic DC-ZS100", "Panasonic DC-ZS110", "Panasonic DC-TZ101", "Panasonic DC-TZ110"], "Panasonic DMC-TZ61": ["Panasonic DMC-TZ60", "Panasonic DMC-ZS40"], "Panasonic DMC-TZ71": ["Panasonic DMC-TZ70", "Panasonic DMC-ZS50"], "Panasonic DMC-TZ81": ["Panasonic DMC-TZ80", "Panasonic DMC-TZ85", "Panasonic DMC-ZS60"] From 761f127d44dabc5740a66769940b48a5c5f07948 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 21:26:34 +0200 Subject: [PATCH 015/215] Removed obsolete translation keys --- rtdata/languages/Catala | 7 -- rtdata/languages/Chinese (Simplified) | 9 -- rtdata/languages/Chinese (Traditional) | 1 - rtdata/languages/Dansk | 1 - rtdata/languages/Deutsch | 28 ------- rtdata/languages/Espanol | 83 ------------------- rtdata/languages/Euskara | 1 - rtdata/languages/Francais | 30 ------- rtdata/languages/Greek | 1 - rtdata/languages/Hebrew | 1 - rtdata/languages/Italiano | 7 -- rtdata/languages/Japanese | 2 - rtdata/languages/Latvian | 1 - rtdata/languages/Magyar | 6 -- rtdata/languages/Nederlands | 28 ------- rtdata/languages/Norsk BM | 1 - rtdata/languages/Polish | 7 -- rtdata/languages/Polish (Latin Characters) | 7 -- rtdata/languages/Portugues (Brasil) | 8 -- rtdata/languages/Russian | 7 -- rtdata/languages/Serbian (Cyrilic Characters) | 8 -- rtdata/languages/Serbian (Latin Characters) | 8 -- rtdata/languages/Slovak | 2 - rtdata/languages/Suomi | 1 - rtdata/languages/Swedish | 10 --- rtdata/languages/Turkish | 1 - 26 files changed, 266 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 25929af74..aa0eadfe5 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -168,7 +168,6 @@ GENERAL_UNCHANGED;(No canviat) GENERAL_WARNING;Avís HISTOGRAM_TOOLTIP_B;Mostra/amaga l'histograma BLAU HISTOGRAM_TOOLTIP_BAR;Mostra/amaga la barra indicadora RGB\nClic botó dret a la previsualització per a congelar/descongelar -HISTOGRAM_TOOLTIP_FULL;Canvia entre histograma complet o escalat HISTOGRAM_TOOLTIP_G;Mostra/amaga l'histograma VERD HISTOGRAM_TOOLTIP_L;Mostra/amaga l'histograma de luminància CIELAB HISTOGRAM_TOOLTIP_R;Mostra/amaga l'histograma VERMELL @@ -607,7 +606,6 @@ QINFO_NOEXIF;No hi ha dades Exif. SAVEDLG_AUTOSUFFIX;Afegeix automàticament un sufix si el fitxer ja hi és SAVEDLG_FILEFORMAT;Format del fitxer SAVEDLG_JPEGQUAL;Qualitat JPEG -SAVEDLG_PNGCOMPR;Compressió PNG SAVEDLG_PUTTOQUEUE;Posa a la cua de procés SAVEDLG_PUTTOQUEUEHEAD;Posa al principi de la cua de procés SAVEDLG_PUTTOQUEUETAIL;Posa a la fi de la cua de procés @@ -664,7 +662,6 @@ TP_DEFRINGE_THRESHOLD;Llindar TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Crominància TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detall de luminància TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminància -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Reducció de soroll (només imatges raw) TP_DIRPYRDENOISE_MAIN_GAMMA;Gama TP_DIRPYREQUALIZER_LABEL;Contrast per grau de detall TP_DIRPYREQUALIZER_LUMACOARSEST;Més bast @@ -710,10 +707,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Horitzontal TP_FLATFIELD_BT_VERTHORIZ;Vert. + Horitz. TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_LABEL;Camp pla -TP_GAMMA_CURV;gama -TP_GAMMA_FREE;Lliure gama -TP_GAMMA_OUTPUT;Sortida gama -TP_GAMMA_SLOP;Inclinació (linear) TP_HLREC_BLEND;Barreja TP_HLREC_CIELAB;Superposició CIELab TP_HLREC_COLOR;Propagació de color diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index f3b70fc25..509ac9629 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -387,8 +387,6 @@ MAIN_TAB_RAW;Raw MAIN_TAB_RAW_TOOLTIP;快捷键:Alt-R MAIN_TAB_TRANSFORM;变换 MAIN_TAB_TRANSFORM_TOOLTIP;快捷键:Alt-t -MAIN_TAB_WAVELET;小波变换 -MAIN_TAB_WAVELET_TOOLTIP;快捷键:Alt-w MAIN_TOOLTIP_HIDEHP;显示/隐藏左面板 (包含历史, 快捷键: H) MAIN_TOOLTIP_INDCLIPPEDH;高光溢出提示 MAIN_TOOLTIP_INDCLIPPEDS;阴影不足提示 @@ -479,7 +477,6 @@ PARTIALPASTE_SHARPENING;锐化 PARTIALPASTE_SHARPENMICRO;微处对比 PARTIALPASTE_VIBRANCE;鲜艳度 PARTIALPASTE_VIGNETTING;暗角修正 -PARTIALPASTE_WAVELETGROUP;小波变换等级 PARTIALPASTE_WHITEBALANCE;白平衡 PREFERENCES_ADD;添加 PREFERENCES_APPEARANCE_NAVGUIDECOLOR;导航器引导颜色 @@ -676,7 +673,6 @@ SAVEDLG_AUTOSUFFIX;自动加后缀到已经存在的文件 SAVEDLG_FILEFORMAT;文件格式 SAVEDLG_FORCEFORMATOPTS;强制保存选项 SAVEDLG_JPEGQUAL;JPEG质量 -SAVEDLG_PNGCOMPR;PNG压缩 SAVEDLG_PUTTOQUEUE;放入队列 SAVEDLG_PUTTOQUEUEHEAD;放在处理序列首位 SAVEDLG_PUTTOQUEUETAIL;放在处理序列末位 @@ -766,7 +762,6 @@ TP_DEFRINGE_LABEL;去色彩边缘(紫边) TP_DEFRINGE_RADIUS;半径 TP_DIRPYRDENOISE_LUMINANCE_DETAIL;明亮度细节 TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;光亮度/发光度 -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;降噪 TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYREQUALIZER_ALGO;皮肤色彩范围 TP_DIRPYREQUALIZER_ARTIF;减少杂色 @@ -813,10 +808,6 @@ TP_FLATFIELD_BT_HORIZONTAL;水平 TP_FLATFIELD_BT_VERTHORIZ;垂直 + 水平 TP_FLATFIELD_BT_VERTICAL;垂直 TP_FLATFIELD_LABEL;平场 -TP_GAMMA_CURV;伽马 -TP_GAMMA_FREE;自定义伽马 -TP_GAMMA_OUTPUT;导出伽马 -TP_GAMMA_SLOP;斜率 (线性) TP_GRADIENT_CENTER;中心 TP_GRADIENT_CENTER_X;中心 X TP_GRADIENT_CENTER_Y;中心 Y diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index 513866a74..4af6abbe4 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -310,7 +310,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Exif資料不可用. SAVEDLG_FILEFORMAT;檔格式 SAVEDLG_JPEGQUAL;JPEG品質 -SAVEDLG_PNGCOMPR;PNG壓縮 SAVEDLG_PUTTOQUEUE;Put into processing queue SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 44d6ad5f8..eb1198e74 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Exif-data ikke tilgængelig. SAVEDLG_FILEFORMAT;Filformat SAVEDLG_JPEGQUAL;JPEG-kvalitet -SAVEDLG_PNGCOMPR;PNG-komprimering SAVEDLG_PUTTOQUEUE;Sæt i bearbejdningskø SAVEDLG_PUTTOQUEUEHEAD;Sæt i begyndelsen af bearbejdningskøen SAVEDLG_PUTTOQUEUETAIL;Sæt i enden af bearbejdningskøen diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 95fc79d76..c83ebf48e 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -324,7 +324,6 @@ GIMP_PLUGIN_INFO;Willkommen zum RawTherapee GIMP-Plugin!\nNach den Änderungen b HISTOGRAM_TOOLTIP_B;Blau-Histogramm ein-/ausblenden. HISTOGRAM_TOOLTIP_BAR;RGB-Anzeigeleiste ein-/ausblenden. HISTOGRAM_TOOLTIP_CHRO;Chromatizität-Histogramm ein/ausblenden. -HISTOGRAM_TOOLTIP_FULL;Skaliertes Histogramm ein/ausschalten. HISTOGRAM_TOOLTIP_G;Grün-Histogramm ein-/ausblenden. HISTOGRAM_TOOLTIP_L;CIELab-Luminanz-Histogramm ein-/ausblenden. HISTOGRAM_TOOLTIP_MODE;Schaltet zwischen linearer, logarithmischer-linearer und\nlogarithmischer-logarithmischer Skalierung um. @@ -1004,8 +1003,6 @@ MAIN_TAB_RAW;RAW MAIN_TAB_RAW_TOOLTIP;Taste: Alt + r MAIN_TAB_TRANSFORM;Transformieren MAIN_TAB_TRANSFORM_TOOLTIP;Taste: Alt + t -MAIN_TAB_WAVELET;Wavelet -MAIN_TAB_WAVELET_TOOLTIP;Taste: Alt + w MAIN_TOOLTIP_BACKCOLOR0;Hintergrundfarbe der Vorschau basierend auf dem Oberflächendesign.\nTaste: 9 MAIN_TOOLTIP_BACKCOLOR1;Hintergrundfarbe der Vorschau: Schwarz\nTaste: 9 MAIN_TOOLTIP_BACKCOLOR2;Hintergrundfarbe der Vorschau: Weiß\nTaste: 9 @@ -1119,7 +1116,6 @@ PARTIALPASTE_SOFTLIGHT;Weiches Licht PARTIALPASTE_TM_FATTAL;Dynamikkompression PARTIALPASTE_VIBRANCE;Dynamik PARTIALPASTE_VIGNETTING;Vignettierungskorrektur -PARTIALPASTE_WAVELETGROUP;Wavelet PARTIALPASTE_WHITEBALANCE;Weißabgleich PREFERENCES_ADD;HINZU PREFERENCES_APPEARANCE;Oberflächendesign (erfordert Neustart) @@ -1370,7 +1366,6 @@ SAVEDLG_FILEFORMAT;Dateiformat SAVEDLG_FILEFORMAT_FLOAT; Fließkomma SAVEDLG_FORCEFORMATOPTS;Erzwinge Speicheroptionen SAVEDLG_JPEGQUAL;JPEG-Qualität -SAVEDLG_PNGCOMPR;PNG-Kompression SAVEDLG_PUTTOQUEUE;Zur Warteschlange hinzufügen SAVEDLG_PUTTOQUEUEHEAD;An den Anfang der Warteschlange hinzufügen SAVEDLG_PUTTOQUEUETAIL;An das Ende der Warteschlange hinzufügen @@ -1657,7 +1652,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminanz TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminanz TP_DIRPYRDENOISE_MAIN_COLORSPACE;Farbraum TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Rauschreduzierung TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Für RAW-Bilder kann entweder die RGB-\noder L*a*b*-Methode verwendet werden.\n\nFür andere Bilder wird unabhängig von der\nAuswahl immer die L*a*b*-Methode verwendet. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1752,10 +1746,6 @@ TP_FLATFIELD_BT_VERTICAL;Vertikal TP_FLATFIELD_CLIPCONTROL;Kontrolle zu heller Bereiche TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Verhindert das Abschneiden der Lichter. Wenn\nvor dem Anwenden des Weißbildes schon\nabgeschnittene Lichter vorhanden sind, kann\nes zu einem Farbstich kommen. TP_FLATFIELD_LABEL;Weißbild -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Freies Gamma -TP_GAMMA_OUTPUT;Ausgabe-Gamma -TP_GAMMA_SLOP;Gradient (linear) TP_GENERAL_11SCALE_TOOLTIP;Der Effekt dieses Werkzeugs ist nur in der 100%-Ansicht akkurat oder sichtbar. TP_GRADIENT_CENTER;Rotationsachse TP_GRADIENT_CENTER_X;Rotationsachse X @@ -1967,7 +1957,6 @@ TP_RAW_LMMSE_TOOLTIP;Fügt Gamma (Stufe 1), Median (Stufe 2-4)\nund Optimierung TP_RAW_MONO;Mono TP_RAW_NONE;Keine TP_RAW_PIXELSHIFT;Pixel-Shift -TP_RAW_PIXELSHIFTADAPTIVE;Adaptive Erkennung TP_RAW_PIXELSHIFTBLUR;Unschärfebewegungsmaske TP_RAW_PIXELSHIFTDMETHOD;Bewegungsmethode TP_RAW_PIXELSHIFTEPERISO;Empfindlichkeit @@ -1976,34 +1965,20 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT;Frame-Helligkeit angleichen TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Ausgleich pro Kanal TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;EIN: Individueller Ausgleich der RGB-Kanäle.\nAUS: Identischer Ausgleichsfaktor für alle Kanäle. TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Gleicht die Helligkeit der Frames an den aktuellen Frame an.\n\nSind überbelichtete Bereiche vorhanden wählen Sie den hellsten Frame aus um\nMagenta-Farbstiche zu vermeiden oder aktivieren Sie die Bewegungskorrektur. -TP_RAW_PIXELSHIFTEXP0;Experimentell TP_RAW_PIXELSHIFTGREEN;Bewegung im Grün-Kanal erkennen TP_RAW_PIXELSHIFTHOLEFILL;Lücken in der Bewegungsmaske erkennen TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Lücken in der Bewegungsmaske erkennen. TP_RAW_PIXELSHIFTLMMSE;LMMSE für Bewegungsbereiche verwenden TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;LMMSE anstatt AMaZE für bewegte Bildbereiche verwenden.\nSinnvoll bei High-ISO-Aufnahmen. -TP_RAW_PIXELSHIFTMASKTHRESHOLD;3x3 new threshold TP_RAW_PIXELSHIFTMEDIAN;Median -TP_RAW_PIXELSHIFTMEDIAN3;Aktuellen Frame vom Median ausschließen. -TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Schließt den aktuellen Frame vom Median aus.\nNützlich, wenn sich bewegte Objekte im Frame 2\nund 3 überlappen. TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Verwenden Sie den Median aller Frames anstelle des\nausgewählten Frames für Regionen mit Bewegung.\nEntfernt Objekte, die an verschiedenen Stellen in allen\nFrames vorkommen. Erzeugt einen Bewegungseffekt\nauf langsame (überlappende) Objekte. TP_RAW_PIXELSHIFTMM_AUTO;Automatisch TP_RAW_PIXELSHIFTMM_CUSTOM;Benutzerdefiniert TP_RAW_PIXELSHIFTMM_OFF;Aus TP_RAW_PIXELSHIFTMOTION;Motion detection level (deprecated) -TP_RAW_PIXELSHIFTMOTIONCORRECTION;Green motion correction size TP_RAW_PIXELSHIFTMOTIONMETHOD;Bewegungskorrektur TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 = Keine Bewegungserkennung\n1 - 99 = Bewegung wird entsprechend dem Wert erkannt.\nHöhere Werte erhöhen die Trefferquote\n100 = Der mit AMaZE interpolierte Frame wird verwendet. -TP_RAW_PIXELSHIFTNONGREENAMAZE;Check red/blue amaze TP_RAW_PIXELSHIFTNONGREENCROSS;Bewegung im Rot/Blau-Kanal erkennen -TP_RAW_PIXELSHIFTNONGREENCROSS2;Check green amaze -TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Check red/blue horizontal -TP_RAW_PIXELSHIFTNONGREENVERTICAL;Check red/blue vertical -TP_RAW_PIXELSHIFTNREADISO;nRead -TP_RAW_PIXELSHIFTONEGREEN;Benutze ein Grün -TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Benutze ein Grün anstelle des\nDurchschnitts beider Grüns für\nBereiche ohne Bewegung. -TP_RAW_PIXELSHIFTPRNU;PRNU (%) -TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Red&Blue weight TP_RAW_PIXELSHIFTSHOWMOTION;Bewegungsmaske anzeigen TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Nur Maske anzeigen TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Zeigt die Bewegungsmaske ohne Bild. @@ -2012,9 +1987,6 @@ TP_RAW_PIXELSHIFTSIGMA;Unschärferadius TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;Der Standard-Radius von 1,0 passt in der Regel für die Basis-ISO.\nErhöhen Sie den Wert für High-ISO-Aufnahmen, 5,0 ist ein guter\nAusgangspunkt für High-ISO-Aufnahmen. Achten Sie auf die\nBewegungsmaske, während Sie den Wert ändern. TP_RAW_PIXELSHIFTSMOOTH;Weicher Übergang TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Weicher Übergang zwischen Bereichen mit und ohne Bewegung.\n0 = Aus\n1 = AMaZE/LMMSE oder Median -TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;StdDev factor Blue -TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;StdDev factor Green -TP_RAW_PIXELSHIFTSTDDEVFACTORRED;StdDev factor Red TP_RAW_RCD;RCD TP_RAW_RCDVNG4;RCD + VNG4 TP_RAW_SENSOR_BAYER_LABEL;Sensor mit Bayer-Matrix diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 00e703ae9..c4450e104 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -305,7 +305,6 @@ GIMP_PLUGIN_INFO;¡Bienvenido al complemento GIMP de RawTherapee! \nUna vez que HISTOGRAM_TOOLTIP_B;Mostrar/Ocultar Histograma Azul HISTOGRAM_TOOLTIP_BAR;Mostrar/Ocultar barra indicadora RGB\nHacer clic con el botón derecho del ratón en la previsualización para congelar/descongelar HISTOGRAM_TOOLTIP_CHRO;Mostrar/Ocultar Histograma de cromaticidad -HISTOGRAM_TOOLTIP_FULL;Cambiar entre Histograma completo o escalado HISTOGRAM_TOOLTIP_G;Mostrar/Ocultar Histograma Verde HISTOGRAM_TOOLTIP_L;Mostrar/Ocultar Histograma de Luminancia CIELAB HISTOGRAM_TOOLTIP_MODE;Alterne entre la escala lineal, log-linear y log-log del histograma. @@ -1108,14 +1107,8 @@ PREFERENCES_APPEARANCE_MAINFONT;Fuente principal PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Color de la guía del navegador PREFERENCES_APPEARANCE_THEME;Tema PREFERENCES_APPLNEXTSTARTUP;requiere reinicio -PREFERENCES_AUTLISLOW;Bajo -PREFERENCES_AUTLISMAX;Max - Promedio de todos los mosaicos -PREFERENCES_AUTLISSTD;Alto -PREFERENCES_AUTLISVLOW;Ninguno -PREFERENCES_AUTLOW;Bajo PREFERENCES_AUTOMONPROFILE;Usar perfil de color del monitor principal en el sistema operativo PREFERENCES_AUTOSAVE_TP_OPEN;Guardar automáticamente las herramientas contraídas/expandidas \nEstado antes de salir -PREFERENCES_AUTSTD;Estandar PREFERENCES_BATCH_PROCESSING;Procesamiento por lotes PREFERENCES_BEHADDALL;Todo para 'Agregar' PREFERENCES_BEHADDALLHINT;Establezca todos los parámetros del modo Agregar.\nLos ajustes de parámetros en el panel de la herramienta de lotes serán deltas de los valores guardados @@ -1124,9 +1117,6 @@ PREFERENCES_BEHSETALL;Todo para 'Establecer' PREFERENCES_BEHSETALLHINT;Todos los parámetros para el modo Establecer.\nLos ajustes de parámetros en el panel de la herramienta de lotes serán serán absolutos, se mostrarán los valores vigentes PREFERENCES_BLACKBODY;Tungsteno PREFERENCES_CACHECLEAR;Borrar -PREFERENCES_CACHECLEARALL;Borrar todo -PREFERENCES_CACHECLEARPROFILES;Borrar perfiles -PREFERENCES_CACHECLEARTHUMBS;Borrar miniaturas PREFERENCES_CACHECLEAR_ALL;Borrar todos los archivos en caché: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Borre todos los archivos en caché excepto los perfiles de procesamiento en caché: PREFERENCES_CACHECLEAR_ONLYPROFILES;Borrar solo los perfiles de procesamiento en caché: @@ -1134,10 +1124,6 @@ PREFERENCES_CACHECLEAR_SAFETY;Sólo se borran los archivos en el caché. Los per PREFERENCES_CACHEMAXENTRIES;Cantidad máxima de entradas en la memoria intermedia PREFERENCES_CACHEOPTS;Opciones de memoria intermedia PREFERENCES_CACHETHUMBHEIGHT;Altura máxima de las miniaturas -PREFERENCES_CIEART;Optimización CIECAM02 -PREFERENCES_CIEART_FRAME;Configuración específica de CIECAM02 -PREFERENCES_CIEART_LABEL;Usar precisión flotante simple en lugar de doble. -PREFERENCES_CIEART_TOOLTIP;Si se habilita, los cálculos CIECAM02 se realizan con precisión flotante simple en lugar de doble. Esto provee un pequeño aumento en la velocidad de cálculo a expensas de una casi imperceptible pérdida de calidad PREFERENCES_CLIPPINGIND;Indicación de recortes PREFERENCES_CLUTSCACHE;HaldCLUT Cache PREFERENCES_CLUTSCACHE_LABEL;Número máximo de CLUTs en caché @@ -1160,7 +1146,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Clave de formato PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nombre PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;ID Etiqueta PREFERENCES_CUSTPROFBUILDPATH;Ruta al programa ejecutable -PREFERENCES_CUTOVERLAYBRUSH;Recortar máscara de color/transparencia PREFERENCES_D50;5000°K PREFERENCES_D50_OLD;5000°K PREFERENCES_D55;5500°K @@ -1171,8 +1156,6 @@ PREFERENCES_DARKFRAMESHOTS;disparos PREFERENCES_DARKFRAMETEMPLATES;plantillas PREFERENCES_DATEFORMAT;Formato de fecha PREFERENCES_DATEFORMATHINT;Puede usar las siguientes variables :\n%y : año\n%m : mes\n%d : dia\n\nPor ejemplo, la fecha en formato Húngaro es: \n%y/%m/%d -PREFERENCES_DAUB_LABEL;Use las wavelets D6 de Daubechies en lugar de D4 -PREFERENCES_DAUB_TOOLTIP;Las herramientas de reducción de ruido y niveles de wavelet utilizan una wavelet madre de Debauchies. Si elige D6 en lugar de D4, aumenta el número de coeficientes de Daubechies ortogonales y probablemente aumenta la calidad de los niveles de pequeña escala. \nNo hay diferencia entre los dos, en el uso de memoria o de tiempo de procesamiento. PREFERENCES_DIRDARKFRAMES;Carpeta con las Tomas Negras PREFERENCES_DIRECTORIES;Directorios PREFERENCES_DIRHOME;Carpeta de usuario @@ -1182,7 +1165,6 @@ PREFERENCES_DIRSELECTDLG;Seleccionar carpeta de imágenes en el arranque... PREFERENCES_DIRSOFTWARE;Carpeta de instalación PREFERENCES_EDITORCMDLINE;Línea de comando personalizada PREFERENCES_EDITORLAYOUT;Disposición del editor -PREFERENCES_EXPAUT;Experto PREFERENCES_EXTERNALEDITOR;Editor externo PREFERENCES_FBROWSEROPTS;Opciones del explorador de archivos/Miniaturas PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de herramientas del explorador en una sola fila (deseleccionar para pantallas de baja resolución) @@ -1228,12 +1210,8 @@ PREFERENCES_INTENT_SATURATION;Saturación PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Mostrar miniatura JPEG incrustada si foto Raw no se ha editado PREFERENCES_LANG;Idioma PREFERENCES_LANGAUTODETECT;Usar idioma del sistema -PREFERENCES_LEVAUTDN;Nivel de supresión de ruido -PREFERENCES_LEVDN;Tamaño de celda -PREFERENCES_LISS;Suavizado automático multizona PREFERENCES_MAX;Maxi (baldoza) PREFERENCES_MAXRECENTFOLDERS;Número máximo de carpetas recientes -PREFERENCES_MED;Medio(Tile/2) PREFERENCES_MENUGROUPEXTPROGS;Grupo "Abrir con" PREFERENCES_MENUGROUPFILEOPERATIONS;Grupo "Operaciones de archivo" PREFERENCES_MENUGROUPLABEL;Grupo "Etiquetado con color" @@ -1247,9 +1225,7 @@ PREFERENCES_MONPROFILE;Perfil de color predeterminado PREFERENCES_MONPROFILE_WARNOSX;Debido a las limitaciones de MacOS, solo se admite sRGB. PREFERENCES_MULTITAB;Modo Editor de varias pestañas PREFERENCES_MULTITABDUALMON;Modo Editor de varias pestañas, si está disponible en segundo monitor -PREFERENCES_NAVGUIDEBRUSH;Color de la guía del navegador PREFERENCES_NAVIGATIONFRAME;Navegación -PREFERENCES_NOISE;Reducción de ruido PREFERENCES_OUTDIR;Carpeta de salida PREFERENCES_OUTDIRFOLDER;Guardar en carpeta PREFERENCES_OUTDIRFOLDERHINT;Guardar las imágenes creadas en una carpeta elegida @@ -1287,13 +1263,8 @@ PREFERENCES_PRTPROFILE;Perfil de color PREFERENCES_PSPATH;Carpeta de instalación de Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Recuerde el % de zoom y el desplazamiento del paneo PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Recuerde que el% de zoom y el desplazamiento de la panorámica de la imagen actual al abrir una nueva imagen. \nEsta opción solo funciona en el "Modo de pestaña Editor único" y cuando el "Método de demostración utilizado para la vista previa a <100% de zoom" está configurado en " Como en PP3 " -PREFERENCES_RGBDTL_LABEL;Número máximo de hilos para reducción de ruido -PREFERENCES_RGBDTL_TOOLTIP;La Reducción de Ruido requiere como base 128MB de RAM para una imagen de 10MPix o 512MB para una imagen de 40MPix; más 128MB RAM por hilo de proceso.\nMientras más hilos corren en paralelo, más rápido es el procesamiento. Coloque “0” para que automáticamente se use tantos hilos como sea posible según la capacidad de su equipo. PREFERENCES_SAVE_TP_OPEN_NOW;Guardar herramientas colapsadas/expandidas ahora -PREFERENCES_SELECTFONT;Seleccionar fuente -PREFERENCES_SELECTFONT_COLPICKER;Seleccione la fuente del Selector de color PREFERENCES_SELECTLANG;Seleccionar idioma -PREFERENCES_SELECTTHEME;Seleccionar tema PREFERENCES_SERIALIZE_TIFF_READ;Configuración de lectura Tiff PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serializar la lectura de archivos tiff PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Cuando trabaje con carpetas llenas de archivos tiff sin comprimir, habilitar esta opción puede aumentar el rendimiento en la generación de la miniatura. @@ -1303,17 +1274,13 @@ PREFERENCES_SHOWDATETIME;Mostrar fecha y hora PREFERENCES_SHOWEXPOSURECOMPENSATION;Mostrar compensación de exposición PREFERENCES_SHOWFILMSTRIPTOOLBAR;Mostrar barra de herramientas estilo tira de película PREFERENCES_SHTHRESHOLD;Umbral de sombras cortadas -PREFERENCES_SIMPLAUT;Modo de herramienta PREFERENCES_SINGLETAB;Modo Editor de pestaña única PREFERENCES_SINGLETABVERTAB;Modo Editor de pestaña única, pestañas verticales -PREFERENCES_SMA;A una escala pequeña(250x287) PREFERENCES_SND_BATCHQUEUEDONE;Trabajos en cola finalizados PREFERENCES_SND_HELP;Introducir el path o dejar en blanco (sin sonido). En Windows, usar "SystemDefault", "SystemAsterisk" etc. para los sonidos del sistema\nEn Linux use "complete", "window-attention" etc. para los sonidos del sistema. PREFERENCES_SND_LNGEDITPROCDONE;Procesado del editor terminado PREFERENCES_SND_THRESHOLDSECS;Despues de segundos -PREFERENCES_SND_TRESHOLDSECS;después de seg. PREFERENCES_STARTUPIMDIR;Carpeta de imágenes en el arranque -PREFERENCES_STDAUT;Estándar PREFERENCES_TAB_BROWSER;Explorador de archivos PREFERENCES_TAB_COLORMGR;Gestión del color PREFERENCES_TAB_DYNAMICPROFILE;Reglas de perfil dinámico @@ -1321,24 +1288,15 @@ PREFERENCES_TAB_GENERAL;General PREFERENCES_TAB_IMPROC;Procesamiento de imágenes PREFERENCES_TAB_PERFORMANCE;Rendimiento PREFERENCES_TAB_SOUND;Sonidos -PREFERENCES_THEME;Tema PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Vista previa de JPEG incrustado PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Imagen para mostrar PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Representación (Render) Raw neutral PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;JPEG incrustado si es de tamaño completo, de lo contrario es neutral sin formato -PREFERENCES_TIMAX;Alto -PREFERENCES_TINB;Número de mosaicos -PREFERENCES_TISTD;Estándar PREFERENCES_TP_LABEL;Panel de herramientas: -PREFERENCES_TP_USEICONORTEXT;Usar iconos de pestaña en lugar de texto PREFERENCES_TP_VSCROLLBAR;Ocultar barra de desplazamiento vertical del panel de herramientas PREFERENCES_TUNNELMETADATA;Copie Exif / IPTC / XMP sin cambios en el archivo de salida PREFERENCES_USEBUNDLEDPROFILES;Usar perfiles empaquetados PREFERENCES_VIEW;Balance de blancos en el dispositivo de salida (monitor, TV, proyector...) -PREFERENCES_WAVLEV;Aumentar el nivel de wavelet en calidad 'alta' -PREFERENCES_WLONE;Un nivel -PREFERENCES_WLTWO;Dos niveles -PREFERENCES_WLZER;No PREFERENCES_WORKFLOW;Disposición PROFILEPANEL_COPYPPASTE;Parámetros a copiar PROFILEPANEL_GLOBALPROFILES;Perfiles empaquetados @@ -1391,7 +1349,6 @@ SAVEDLG_FILEFORMAT;Formato de archivo SAVEDLG_FILEFORMAT_FLOAT; punto flotante SAVEDLG_FORCEFORMATOPTS;Opciones de guardar forzado SAVEDLG_JPEGQUAL;Calidad JPEG -SAVEDLG_PNGCOMPR;Compresión PNG SAVEDLG_PUTTOQUEUE;Poner en la cola de procesamiento SAVEDLG_PUTTOQUEUEHEAD;Poner al principio de la cola de procesamiento SAVEDLG_PUTTOQUEUETAIL;Poner al final de la cola de procesamiento @@ -1424,7 +1381,6 @@ TP_BWMIX_ALGO_LI;Lineal TP_BWMIX_ALGO_SP;Efectos especiales TP_BWMIX_ALGO_TOOLTIP;Lineal: producirá una respuesta lineal normal.\nEfectos especiales: producirá efectos especiales por mezclar no linealmente los canales. TP_BWMIX_AUTOCH;Auto -TP_BWMIX_AUTOCH_TIP;Calcular valores óptimos para el Mezclador de Canales TP_BWMIX_CC_ENABLED;Ajustar color complementario TP_BWMIX_CC_TOOLTIP;Permite el ajuste automático de colores complementarios en modo RNAmVCAzPM TP_BWMIX_CHANNEL;Ecualizador de luminancia @@ -1453,7 +1409,6 @@ TP_BWMIX_MET_DESAT;Des-saturación TP_BWMIX_MET_LUMEQUAL;Ecualizador de Luminancia TP_BWMIX_MIXC;Mezclador TP_BWMIX_NEUTRAL;Restablece el mezclador -TP_BWMIX_NEUTRAL_TIP;Restablece todos los parámetros (filtro, mezclador de canales) a sus valores predeterminados. TP_BWMIX_RGBLABEL;R: %1%% V: %2%% A: %3%% Total: %4%% TP_BWMIX_RGBLABEL_HINT;Factores finales RGB tomando en cuenta todas las opciones del mezclador\nTotal muestra la suma de los valores RGB actualmente aplicados:\n- En modo relativo Siempre 100% \n- En modo absoluto mayor (más claro) o menor (más oscuro) que 100% TP_BWMIX_RGB_TOOLTIP;Mezcla de canales RGB. Use como guía valores pre-establecidos.\nTenga en cuenta que valores negativos pueden introducir elementos extraños (artifacts) o resultados erráticos. @@ -1496,11 +1451,6 @@ TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotar a la izquierda.\nTecla de Atajo: ']' TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotar a la derecha TP_COARSETRAF_TOOLTIP_VFLIP;Voltear verticalmente TP_COLORAPP_ABSOLUTELUMINANCE;Luminancia absoluta -TP_COLORAPP_ADAPTSCENE;Adaptación a la luminosidad de la escena -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Luminancia absoluta del entorno de la escena (cd/m²).\n1) Calculado en base a datos Exif: \nTiempo de Exposición - Velocidad ISO - Número F de apertura - Corrección de exposición\n2) Calculado a partir del Punto Blanco raw y Compensación de Exposición RT. -TP_COLORAPP_ADAPTVIEWING;Luminosidad de visualización (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Luminancia absoluta del entorno de visualización\n(usualmente 16cd/m²) -TP_COLORAPP_ADAP_AUTO_TOOLTIP;Si la casilla está seleccionada (como se recomienda) RT calcula el valor óptimo a partir de los datos Exif.\nPara establecer el valor manualmente, primero desmarque la casilla TP_COLORAPP_ALGO;Algoritmo TP_COLORAPP_ALGO_ALL;Todo TP_COLORAPP_ALGO_JC;Claridad + Crominancia (JC) @@ -1531,8 +1481,6 @@ TP_COLORAPP_CURVEEDITOR3;Curva de color TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ajusta Crominancia, Saturación o Colorido.\n\nMuestra el histograma de Cromaticidad (Lab) antes de los ajustes CIECAM02.\nSi la casilla "Muestra en las curvas histogramas de salida CIECAM02" está seleccionada, muestra el histograma de C, s o M después de CIECAM02.\n\nC, s y M no se muestran en el histograma del panel principal.\n\nVea el histograma de salida final en el panel principal TP_COLORAPP_DATACIE;Curvas con histogramas de salida CIECAM02 TP_COLORAPP_DATACIE_TOOLTIP;Si está seleccionada, los histogramas en las curvas CIECAM02 muestran aproximadamente valores/rangos de J o Q, y C, s o M después de los ajustes CIECAM02.\nEsta selección no influye en el histograma del panel principal.\n\nCuando no está seleccionada, los histogramas en las curvas CIECAM02 muestran valores Lab antes de los ajustes CIECAM02 -TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Si la casilla está seleccionada (como se recomienda), RT calcula el valor óptimo, que es usado por CAT02, y también por todo CIECAM02.\nPara establecer manualmente el valor, primero desmarque la casilla (se recomienda usar valores mayores a 65) -TP_COLORAPP_DEGREE_TOOLTIP;Cantidad de transformación de adaptación cromática CIE 2002 TP_COLORAPP_FREE;Libre tempera+verde + CAT02 + [output] TP_COLORAPP_GAMUT;Control de Gamut (Lab) TP_COLORAPP_GAMUT_TOOLTIP;Permite control de gamut en modo Lab @@ -1551,8 +1499,6 @@ TP_COLORAPP_NEUTRAL;Restablecer TP_COLORAPP_NEUTRAL_TIP;Restablecer todos los controles deslizantes y las curvas a sus valores predeterminados TP_COLORAPP_RSTPRO; Protección de tonos rojos y color piel TP_COLORAPP_RSTPRO_TOOLTIP;Intensidad de protección de tonos rojos y color piel (en curvas y en controles deslizantes) -TP_COLORAPP_SHARPCIE;Enfoque, Contraste por niveles de detalle, Micro-contraste & Eliminación de AC con Q/C -TP_COLORAPP_SHARPCIE_TOOLTIP;Si se selecciona, Enfoque, Contraste por niveles de detalle, Micro-contraste & Eliminación de AC usarán CIECAM02 TP_COLORAPP_SURROUND;Entorno TP_COLORAPP_SURROUND_AVER;Promedio TP_COLORAPP_SURROUND_DARK;Oscuro @@ -1575,9 +1521,6 @@ TP_COLORAPP_TONECIE_TOOLTIP;Si esta opción no está seleccionada, el mapeo tona TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Luminancia absoluta del entorno de visualización \ n (normalmente 16 cd / m²). TP_COLORAPP_WBCAM;BalBlanco [RT+CAT02] + [salida] TP_COLORAPP_WBRT;BalBlanco [RT] + [salida] -TP_COLORAPP_YB;Yb% (luminancia media) -TP_COLORAPP_YBSCENE;Yb% (luminancia media) -TP_COLORAPP_YBSCENE_TOOLTIP;Si está habilitado el modo automático, Yb se calcula a partir del valor medio de la luminancia de la imagen real TP_COLORTONING_AB;o C/L TP_COLORTONING_AUTOSAT;Automático TP_COLORTONING_BALANCE;Balance @@ -1692,7 +1635,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminancia TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminancia TP_DIRPYRDENOISE_MAIN_COLORSPACE;Método TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Reducción de ruido TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Para imágenes raw puede usar tanto el método RGB como el Lab.\n\nPara imágenes no raw el método Lab será usado de todas maneras, ignorando el método seleccionado. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1787,10 +1729,6 @@ TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_CLIPCONTROL;Control de Recorte TP_FLATFIELD_CLIPCONTROL_TOOLTIP;El Control de Recorte evita la perdida de detalle en las luces altas causadas por la aplicación del Campo Plano. Si ya hubiera perdida de detalle en las altas luces antes de aplicar el Campo Plano, el Control de Recorte puede conducir a una dominante de color. TP_FLATFIELD_LABEL;Campo plano -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Gamma libre -TP_GAMMA_OUTPUT;Gamma de salida -TP_GAMMA_SLOP;Pendiente (lineal) TP_GENERAL_11SCALE_TOOLTIP;El efecto de esta herramienta o el de alguno de sus componentes solo es apreciable en escala de vista previa 1:1 TP_GRADIENT_CENTER;Centro TP_GRADIENT_CENTER_X;Centro X @@ -1902,9 +1840,6 @@ TP_LENSGEOM_LABEL;Lente / Geometría TP_LENSPROFILE_CORRECTION_LCPFILE;LCP archivo TP_LENSPROFILE_LABEL;Perfil de corrección de lente TP_LENSPROFILE_LENS_WARNING;Advertencia: el factor de recorte utilizado para el perfilado de la lente es mayor que el factor de recorte de la cámara, los resultados pueden ser incorrectos. -TP_LENSPROFILE_USECA;Corrección de AC -TP_LENSPROFILE_USEDIST;Corrección de distorsión -TP_LENSPROFILE_USEVIGN;Corrección de viñeteo TP_LENSPROFILE_USE_CA;Aberración cromática TP_LENSPROFILE_USE_VIGNETTING;Viñeteado TP_LOCALCONTRAST_AMOUNT;Cantidad @@ -1999,7 +1934,6 @@ TP_RAW_LMMSE_TOOLTIP;Agregar gamma (paso 1)\n Agregar mediana (pasos 2,3,4)\nAgr TP_RAW_MONO;Mono TP_RAW_NONE;Ninguno (muestra el patrón del sensor) TP_RAW_PIXELSHIFT;Cambio de píxel -TP_RAW_PIXELSHIFTADAPTIVE;Detección adaptativa TP_RAW_PIXELSHIFTBLUR;Máscara de movimiento de desenfoque TP_RAW_PIXELSHIFTDMETHOD;Demosaicado, método para el movimiento TP_RAW_PIXELSHIFTEPERISO;ISO adaptación @@ -2008,34 +1942,20 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT;Ecualiza el brillo de los cuadros. TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Igualar por canal TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Activado: ecualice los canales RGB individualmente. \nDeshabilitado: use el mismo factor de ecualización para todos los canales. TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Ecualice el brillo de los cuadros con el brillo del cuadro seleccionado. \nSi hay áreas sobreexpuestas en los cuadros, seleccione el cuadro más brillante para evitar la aparición de colores magenta en áreas sobreexpuestas o habilite la corrección de movimiento. -TP_RAW_PIXELSHIFTEXP0;Experimental TP_RAW_PIXELSHIFTGREEN;Compruebe el canal verde para el movimiento TP_RAW_PIXELSHIFTHOLEFILL;Rellene los fallos en la máscara de movimiento TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Rellene los fallos en la máscara de movimiento TP_RAW_PIXELSHIFTLMMSE;Utilice LMMSE para regiones móviles TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Use LMMSE en lugar de AMaZE para las áreas de movimiento. \nÚtil para imágenes de alta ISO. -TP_RAW_PIXELSHIFTMASKTHRESHOLD;3x3 nuevo umbral TP_RAW_PIXELSHIFTMEDIAN;Usa la mediana pa3x3 nuevo umbral parara las regiones móviles. -TP_RAW_PIXELSHIFTMEDIAN3;Excluir el cuadro seleccionado de la mediana -TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Excluye el cuadro seleccionado de la mediana. \nUtilícelo si los objetos en movimiento se superponen en el cuadro 2 y 3 TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use la mediana de todos los cuadros en lugar del cuadro seleccionado para las regiones con movimiento. \nElimina los objetos que se encuentran en diferentes lugares en todos los cuadros. \nBrinda efecto de movimiento en objetos de movimiento lento (superpuestos). TP_RAW_PIXELSHIFTMM_AUTO;Automático TP_RAW_PIXELSHIFTMM_CUSTOM;Personalizado TP_RAW_PIXELSHIFTMM_OFF;Apagado TP_RAW_PIXELSHIFTMOTION;Nivel de detección de movimiento (en desuso) -TP_RAW_PIXELSHIFTMOTIONCORRECTION;Magnitudo de la corrección del movimiento verde TP_RAW_PIXELSHIFTMOTIONMETHOD;Corrección del movimiento TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 significa que no hay detección de movimiento. \n1 - 99 significa que el movimiento se detectará de acuerdo con este valor. Aumente el valor para aumentar la tasa de detección. \n100 significa que se utilizará el marco de demostración AMaZE.ción de movimiento. \n1 - 99 significa que el movimiento se detectará de acuerdo con este valor. Aumente el valor para aumentar la tasa de detección. \n100 significa que se utilizará el marco de demostración AMaZE.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_PIXELSHIFTNONGREENAMAZE;Compruebe AMaZE rojo / azul TP_RAW_PIXELSHIFTNONGREENCROSS;Compruebe los canales rojos/azules para el movimiento -TP_RAW_PIXELSHIFTNONGREENCROSS2;Compruebe verde AMaZE -TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Compruebe rojo/azul horizontal -TP_RAW_PIXELSHIFTNONGREENVERTICAL;Compruebe rojo/azul vertical -TP_RAW_PIXELSHIFTNREADISO;nLeer -TP_RAW_PIXELSHIFTONEGREEN;Utilice un verde en lugar de media -TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Use un verde en lugar de promediar dos verdes para regiones sin movimiento. -TP_RAW_PIXELSHIFTPRNU;PRNU (%) -TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Fuerza Rojo&Azul TP_RAW_PIXELSHIFTSHOWMOTION;Mostrar máscara de movimiento TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Mostrar solo máscara de movimiento TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Muestra la máscara de movimiento sin la imagen. @@ -2044,9 +1964,6 @@ TP_RAW_PIXELSHIFTSIGMA;Radio de desenfoque TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;El radio predeterminado de 1.0 por lo general se ajusta bien a la base ISO. \nAumente el valor para tomas con ISO alto, 5.0 es un buen punto de partida. \nMire la máscara de movimiento mientras cambia el valor. TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Transiciones suaves entre áreas con movimiento y áreas sin movimiento. \nConfigure en 0 para deshabilitar el suavizado en la transición. \nConfigure en 1 para obtener el resultado AMaZE / LMMSE del marco seleccionado (dependiendo de si se selecciona "Usar LMMSE") o la mediana de los cuatro cuadros si se selecciona "Usar mediana". -TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;Factor de StdDev Azul -TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;Factor de StdDev Verde -TP_RAW_PIXELSHIFTSTDDEVFACTORRED;Factor de StdDev Rojo TP_RAW_RCD;RCD TP_RAW_RCDVNG4;RCD+VNG4 TP_RAW_SENSOR_BAYER_LABEL;Sensor con matriz Bayer diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 719e03f79..a4c719188 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Ez dago EXIF daturik. SAVEDLG_FILEFORMAT;Artxiboaren formatua SAVEDLG_JPEGQUAL;JPEG kalitatea -SAVEDLG_PNGCOMPR;PNG konpresioa SAVEDLG_PUTTOQUEUE;Put into processing queue SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 5128fe638..6348769f5 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -244,7 +244,6 @@ GIMP_PLUGIN_INFO;Bienvenue dans le plugin RawTherapee de GIMP!\nUne fois l'édit HISTOGRAM_TOOLTIP_B;Montrer/cacher l'histogramme BLEU HISTOGRAM_TOOLTIP_BAR;Montrer/Cacher l'indicateur RVB du pixel pointé\nCliquer le bouton droit de la souris sur l'image de prévisualisation pour geler/dégeler HISTOGRAM_TOOLTIP_CHRO;Montrer/Cacher l'histogramme de Chromaticité -HISTOGRAM_TOOLTIP_FULL;Basculer la vue de l'histogramme : complet (activé) / zoomé (désactivé) HISTOGRAM_TOOLTIP_G;Montrer/cacher l'histogramme VERT HISTOGRAM_TOOLTIP_L;Montrer/cacher l'histogramme Luminance CIELAB HISTOGRAM_TOOLTIP_MODE;Bascule entre une échelle linéaire, linéaire-log et log-log de l'histogramme. @@ -782,7 +781,6 @@ HISTORY_NEWSNAPSHOT;Ajouter HISTORY_NEWSNAPSHOT_TOOLTIP;Raccourci: Alt-s HISTORY_SNAPSHOT;Capture HISTORY_SNAPSHOTS;Captures -ICCPROFCREATOR_ADD_PARAM_IN_DESC;Ajoute le paramètre Gamma et Pente (Slope) à la fin de la description ICCPROFCREATOR_COPYRIGHT;Copyright: ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Réinitialise au copyright par défaut, attribué à "RawTherapee, CC0" ICCPROFCREATOR_CUSTOM;Personnalisé @@ -924,8 +922,6 @@ MAIN_TAB_RAW;RAW MAIN_TAB_RAW_TOOLTIP;Raccourci:Alt-r MAIN_TAB_TRANSFORM;Transformation MAIN_TAB_TRANSFORM_TOOLTIP;Raccourci:Alt-t -MAIN_TAB_WAVELET;Ondelettes -MAIN_TAB_WAVELET_TOOLTIP;Raccourci: Alt-w MAIN_TOOLTIP_BACKCOLOR0;Couleur de fond de l'aperçu: Selon le thème\nRaccourci : 9 MAIN_TOOLTIP_BACKCOLOR1;Couleur de fond de l'aperçu: Noir\nRaccourci : 9 MAIN_TOOLTIP_BACKCOLOR2;Couleur de fond de l'aperçu: Blanc\nRaccourci: 9 @@ -1039,7 +1035,6 @@ PARTIALPASTE_SOFTLIGHT;Lumière douce PARTIALPASTE_TM_FATTAL;Compression de plage dynamique PARTIALPASTE_VIBRANCE;Vibrance PARTIALPASTE_VIGNETTING;Correction du vignettage -PARTIALPASTE_WAVELETGROUP;Niveaux d'ondelette PARTIALPASTE_WHITEBALANCE;Balance des blancs PREFERENCES_ADD;Ajoute PREFERENCES_APPEARANCE;Apparence @@ -1298,7 +1293,6 @@ SAVEDLG_FILEFORMAT;Format de fichier SAVEDLG_FILEFORMAT_FLOAT; virgule flottante SAVEDLG_FORCEFORMATOPTS;Forcer les options d'enregistrement SAVEDLG_JPEGQUAL;Qualité JPEG -SAVEDLG_PNGCOMPR;Compression PNG SAVEDLG_PUTTOQUEUE;Placer dans la file de traitement SAVEDLG_PUTTOQUEUEHEAD;Placer au début de la file de traitement SAVEDLG_PUTTOQUEUETAIL;Placer au fin de la file de traitement @@ -1585,7 +1579,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance TP_DIRPYRDENOISE_MAIN_COLORSPACE;Espace colorimétrique TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;Lab -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Réduction du bruit TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RVB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Pour les images raw, les méthodes RVB ou Lab peuvent être utilisées.\n\nPour les images non-raw la méthode Lab sera utilisée, indépendamment de ce qu'indique ce bouton. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1606,7 +1599,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Itérations TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Appliquer trois itérations avec une taille de fenêtre de 3×3 aboutit souvent à de meilleurs résultats qu'une seule itération avec une taille de fenêtre de 7×7. TP_DIRPYRDENOISE_MEDIAN_TYPE;Type de médiane TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Applique un filtre médian de la taille de "fenêtre" désirée. Plus cette taille est grande, plus cela prendra de temps.\n\n3×3 doux: traite 5 pixels dans une fenêtre de 3×3 pixels.\n3×3: traite 9 pixels dans une fenêtre de 3×3 pixels.\n5×5 doux: traite 13 pixels dans une fenêtre de 5×5 pixels.\n5×5: traite 25 pixels dans une fenêtre de 5×5 pixels.\n7×7: traite 49 pixels dans une fenêtre de 7×7 pixels.\n9×9: traite 81 pixels dans une fenêtre 9×9 pixels.\n\nIl est parfois possible d'atteindre une meilleurs qualité en appliquant plusieurs itérations d'une petite fenêtre qu'une seule itération d'une grande. -TP_DIRPYRDENOISE_PASSE;Itérations TP_DIRPYRDENOISE_SLI;Curseur TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 doux @@ -1681,10 +1673,6 @@ TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_CLIPCONTROL;Control de l'écrêtage TP_FLATFIELD_CLIPCONTROL_TOOLTIP;"Contrôle de l'écrêtage" évite les hautes lumière brûlées dûs à l'application du champ uniforme. S'il y a déjà des hautes lumières brûlées avant l'application du champ uniforme, "Contrôle de l'écrêtage" peut conduire à une dérive couleur. TP_FLATFIELD_LABEL;Champ Uniforme -TP_GAMMA_CURV;Gamma: -TP_GAMMA_CUSTOM;Manuel -TP_GAMMA_OUTPUT_TRC_PRESET;Courbe de réponse tonale (TRC): -TP_GAMMA_SLOP;Pente (linéaire): TP_GENERAL_11SCALE_TOOLTIP;Les effets de cet outil ne sont visible ou fiable qu'avec un aperçu à l'échelle 1:1. TP_GRADIENT_CENTER;Centre TP_GRADIENT_CENTER_X;Centre X @@ -1891,7 +1879,6 @@ TP_RAW_LMMSE_TOOLTIP;Ajoute gamma (niveau 1) + médian (niveau 2-4) + affinage ( TP_RAW_MONO;Mono TP_RAW_NONE;Aucun (montre ce que voit le capteur) TP_RAW_PIXELSHIFT;Pixel Shift -TP_RAW_PIXELSHIFTADAPTIVE;Détection adaptative TP_RAW_PIXELSHIFTBLUR;Flouter le masque de mouvement TP_RAW_PIXELSHIFTDMETHOD;Méthode de dématriçage pour les mouvements TP_RAW_PIXELSHIFTEPERISO;Sensibilité @@ -1900,34 +1887,20 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT;Égaliser la luminosité des sous-images TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Égaliser par canal TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Activé: Égalise les canaux RVB individuellement.\nDésactivé: Utilise le même facteur d'égalisation pour tous les canaux. TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Égalise la luminosité des sous-images à la luminosité de la sous-image sélectionnée.\nS'il y a des zones surexposées dans les sous-images, sélectionne la sous-image la plus lumineuse pour éviter des dérives coiuleurs magenta dans les zone surexposées ou permettre la détection de mouvement. -TP_RAW_PIXELSHIFTEXP0;Expérimental TP_RAW_PIXELSHIFTGREEN;Vérifier le canal vert pour le mouvement TP_RAW_PIXELSHIFTHOLEFILL;Rempli les trous dans le masque de mouvement TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Rempli les trous dans le masque de mouvement TP_RAW_PIXELSHIFTLMMSE;Utilise LMMSE pour les zone de mouvement TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Utilise LMMSE au lieu d'AMaZE pour les zone de mouvement.\nutil pour les images de haut ISO. -TP_RAW_PIXELSHIFTMASKTHRESHOLD;Nouveau seuil 3x3 TP_RAW_PIXELSHIFTMEDIAN;Utilise la médiane pour les zones de mouvement -TP_RAW_PIXELSHIFTMEDIAN3;Exclure la sous-image sélectionnée de la médiane -TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Exclu la sous-image sélectionné de la médiane.\nUtil si mes objets en mouvement se chevauchent dans les sous-images 2 et 3 TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Utilise la médianes de toutes les sous-images au lieu de la sous-images sélectionnée pour les zones de mouvement.\nRetir les objets qui sont à des endroits différents dans toutes les sous-images.\nDonne un effet de mouvement aux objets se déplaçant lentement (se chevauchant). TP_RAW_PIXELSHIFTMM_AUTO;Automatique TP_RAW_PIXELSHIFTMM_CUSTOM;Manuel TP_RAW_PIXELSHIFTMM_OFF;Arrêt TP_RAW_PIXELSHIFTMOTION;Niveau de détection de mouvement (dépréconisé) -TP_RAW_PIXELSHIFTMOTIONCORRECTION;Taille de la correction de mouvement vert TP_RAW_PIXELSHIFTMOTIONMETHOD;Correction de Mouvement TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 signifie pas de détection de mouvement.\n1 - 99 signifie que le mouvement sera détecté par-rapport à cette valeur. Augmentez cette valeur pour augmenter le taux de détection.\n100 signifie que la sous-image sélectionnée et dématricée en AMaZE sera utilisée tel quel. -TP_RAW_PIXELSHIFTNONGREENAMAZE;Vérifier rouge/bleu AMaZE TP_RAW_PIXELSHIFTNONGREENCROSS;Vérifier les canaux rouge/bleu pour le mouvement -TP_RAW_PIXELSHIFTNONGREENCROSS2;Vérifier vert AMaZE -TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Vérifier rouge/bleu horizontal -TP_RAW_PIXELSHIFTNONGREENVERTICAL;Vérifier rouge/bleu vertical -TP_RAW_PIXELSHIFTNREADISO;Lire -TP_RAW_PIXELSHIFTONEGREEN;Utiliser un seul canal vert -TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Utilise un seul canal vert au lieu de faire la moyennes des deux canaux verts pour détecter les régions sans mouvement. -TP_RAW_PIXELSHIFTPRNU;PRNU (%) -TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Poid Rouge&Bleu TP_RAW_PIXELSHIFTSHOWMOTION;Voir le masque de mouvement TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Voir uniquement le masque TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Affiche le masque sans l'image. @@ -1936,9 +1909,6 @@ TP_RAW_PIXELSHIFTSIGMA;Rayon de floutage TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;Le rayon par défaut de 1.0 fonctionne généralement bien pour l'ISO de base.\nAugmentez cette valeur pour les images de haut ISO, 5.0 est un bon point de départ.\nContrôlez le masque de mouvement à chaque nouvelle valeur. TP_RAW_PIXELSHIFTSMOOTH;Adoucir les transitions TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Adouci les transitions entre les zones avec mouvement et les zones sans.\nRéglez à 0 pour désactiver l'adoucissement des transitions.\nRéglez à 1 pour obtenir soit le résultat du dématriçage AMaZE/LMMSE de la sous-image sélectionnée (selon que "Utilise LMMSE" est sélectionné), ou la médiane des 4 sous-images si "Utilise la médiane ..." est sélectionné. -TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;Facteur DevStd Bleu -TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;Facteur DevStd Vert -TP_RAW_PIXELSHIFTSTDDEVFACTORRED;Facteur DevStd Rouge TP_RAW_RCD;RCD TP_RAW_RCDVNG4;RCD+VNG4 TP_RAW_SENSOR_BAYER_LABEL;Capteur à matrice de Bayer diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index b4e62a90d..7fef6491a 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Στοιχεία Exif μη διαθέσιμα. SAVEDLG_FILEFORMAT;Είδος αρχείου SAVEDLG_JPEGQUAL;Ποιότητα JPEG -SAVEDLG_PNGCOMPR;Συμπίεση PNG SAVEDLG_PUTTOQUEUE;Put into processing queue SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index c8145d921..c57d6a7e7 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;המידע לא זמין SAVEDLG_FILEFORMAT;תצורת קובץ SAVEDLG_JPEGQUAL;JPEG איכות -SAVEDLG_PNGCOMPR;PNG דחיסת SAVEDLG_PUTTOQUEUE;Put into processing queue SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 4f8630b05..f72389b65 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -198,7 +198,6 @@ GENERAL_WARNING;Attenzione HISTOGRAM_TOOLTIP_B;Mostra/Nascondi l'istogramma del Blu. HISTOGRAM_TOOLTIP_BAR;Mostra/Nascondi la barra RBG.\nPremi il tasto destro del mouse sull'anteprima dell'immagine per bloccarla/sbloccarla. HISTOGRAM_TOOLTIP_CHRO;Mostra/Nascondi l'istogramma di cromaticità. -HISTOGRAM_TOOLTIP_FULL;Commuta tra istogramma pieno (premuto) o scalato (rilasciato). HISTOGRAM_TOOLTIP_G;Mostra/Nascondi l'istogramma del Verde. HISTOGRAM_TOOLTIP_L;Mostra/Nascondi l'istogramma di Luminanza CIELAB. HISTOGRAM_TOOLTIP_R;Mostra/Nascondi l'istogramma del Rosso. @@ -773,7 +772,6 @@ SAVEDLG_AUTOSUFFIX;Aggiungi automaticamente un suffisso se il file esiste già SAVEDLG_FILEFORMAT;Formato file SAVEDLG_FORCEFORMATOPTS;Opzioni di salvataggio forzato SAVEDLG_JPEGQUAL;Qualità JPEG -SAVEDLG_PNGCOMPR;Compressione PNG SAVEDLG_PUTTOQUEUE;Inserisci nella coda di sviluppo SAVEDLG_PUTTOQUEUEHEAD;Metti in cima alla coda di sviluppo SAVEDLG_PUTTOQUEUETAIL;Metti in fondo alla coda di sviluppo @@ -956,7 +954,6 @@ TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Dettaglio di Luminanza TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminanza TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metodo TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;Lab -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Riduzione Rumore TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Per immagini raw può essere usato il metodo RGB o Lab.\n\nPer immagini non raw verrà utilizzato il metodo Lab, indipendentemente dalla selezione. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1012,10 +1009,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Orizzontale TP_FLATFIELD_BT_VERTHORIZ;Vert. + Oriz. TP_FLATFIELD_BT_VERTICAL;Verticale TP_FLATFIELD_LABEL;Flat Field -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Gamma libero -TP_GAMMA_OUTPUT;Gamma di uscita -TP_GAMMA_SLOP;Pendenza (lineare) TP_GENERAL_11SCALE_TOOLTIP;L'effetto di questo strumento è visibile solo (o è accurato solo) con l'anteprima in scala 1:1. TP_GRADIENT_CENTER;Centro TP_GRADIENT_CENTER_X;Centro X diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 4a5f7bb36..783119a77 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -277,7 +277,6 @@ GIMP_PLUGIN_INFO;RawTherapee GIMPプラグインにようこそ!\n画像編 HISTOGRAM_TOOLTIP_B;ブルー・ヒストグラム 表示/非表示 HISTOGRAM_TOOLTIP_BAR;RGBインジケーター・バーの表示/非表示\nプレビュー画像上でマウスの右ボタンクリックで 固定/開放 HISTOGRAM_TOOLTIP_CHRO;色度・ヒストグラム 表示/非表示 -HISTOGRAM_TOOLTIP_FULL;完全/縮尺調整の表示切り替え HISTOGRAM_TOOLTIP_G;グリーン・ヒストグラム 表示/非表示 HISTOGRAM_TOOLTIP_L;CIEL*a*b* 輝度・ヒストグラム 表示/非表示 HISTOGRAM_TOOLTIP_MODE;ヒストグラムの尺度を線形、対数-線形、対数-対数でトグルします @@ -1849,7 +1848,6 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;PDAFの場合は水平方向だ TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;垂直方向 TP_PREPROCESS_NO_FOUND;未検出 TP_PREPROCESS_PDAFLINESFILTER;PDAFラインフィルタ -TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Sonyのミラーレスカメラの一部では、PDAFイメージセンサが原因で、ゴーストが出るバックライトの画像でストライプノイズが発生することがあり、これを軽減します。 TP_PRSHARPENING_LABEL;リサイズ後のシャープニング TP_PRSHARPENING_TOOLTIP;リサイズ後の画像をシャープニングします。但し、リサイズの方式がランチョスの場合に限ります。プレビュー画面でこの機能の効果を見ることは出来ません。使用法に関してはRawPediaを参照して下さい。 TP_RAWCACORR_AUTO;自動補正 diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index 91b4b53a8..d4b34d548 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Exif dati nav pieejami. SAVEDLG_FILEFORMAT;Faila formāts SAVEDLG_JPEGQUAL;JPEG Kvalitāte -SAVEDLG_PNGCOMPR;PNG Spiešana SAVEDLG_PUTTOQUEUE;Likt apstrādes rindā SAVEDLG_PUTTOQUEUEHEAD;Likt apstrādes rindas sākumā SAVEDLG_PUTTOQUEUETAIL;Likt apstrādes rindas beigās diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index f66626421..69a5c1aee 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -589,7 +589,6 @@ QINFO_NOEXIF;EXIF adat nem áll rendelkezésre. SAVEDLG_AUTOSUFFIX;Utótag hozzáadása automatikusan, ha az állomány már létezik SAVEDLG_FILEFORMAT;Állományformátum SAVEDLG_JPEGQUAL;JPEG Minőség -SAVEDLG_PNGCOMPR;PNG Tömörítés SAVEDLG_PUTTOQUEUE;Feldolgozási sorba helyezés SAVEDLG_PUTTOQUEUEHEAD;Feldolgozási sorba helyezés az első helyre SAVEDLG_PUTTOQUEUETAIL;Feldolgozási sorba helyezés az utolsó helyre @@ -631,7 +630,6 @@ TP_DEFRINGE_RADIUS;Sugár TP_DEFRINGE_THRESHOLD;Küszöb TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Színzaj TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminancia -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Zajcsökkentés TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma TP_DIRPYREQUALIZER_LABEL;Kontraszt részletek szerint TP_DIRPYREQUALIZER_LUMACOARSEST;Durva részletek @@ -669,10 +667,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Vízszintes TP_FLATFIELD_BT_VERTHORIZ;Függ. + vízsz. TP_FLATFIELD_BT_VERTICAL;Függőleges TP_FLATFIELD_LABEL;Flat Field -TP_GAMMA_CURV;gamma -TP_GAMMA_FREE;Szabad gamma -TP_GAMMA_OUTPUT;Kimeneti gamma -TP_GAMMA_SLOP;meredekség (lineáris) TP_HLREC_BLEND;Egybemosás TP_HLREC_CIELAB;CIELab visszaállítás TP_HLREC_COLOR;Színterjesztés diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 0353a5594..7105af3c3 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -242,7 +242,6 @@ GENERAL_WARNING;Waarschuwing HISTOGRAM_TOOLTIP_B;Toon/verberg blauw histogram HISTOGRAM_TOOLTIP_BAR;Toon/verberg RGB-indicatie\nRechtermuisklik op foto om te starten/stoppen HISTOGRAM_TOOLTIP_CHRO;Toon/Verberg Chromaticiteit histogram -HISTOGRAM_TOOLTIP_FULL;Wissel tussen volledig of aangepast histogram HISTOGRAM_TOOLTIP_G;Toon/verberg groen histogram HISTOGRAM_TOOLTIP_L;Toon/verberg CIELAB-luminantiehistogram HISTOGRAM_TOOLTIP_R;Toon/verberg rood histogram @@ -795,8 +794,6 @@ MAIN_TAB_RAW;RAW MAIN_TAB_RAW_TOOLTIP;Sneltoets: Alt-r MAIN_TAB_TRANSFORM;Transformeer MAIN_TAB_TRANSFORM_TOOLTIP;Sneltoets: Alt-t -MAIN_TAB_WAVELET;Wavelet -MAIN_TAB_WAVELET_TOOLTIP;Sneltoets: Alt-w MAIN_TOOLTIP_BACKCOLOR0;Achtergrond kleur van het voorbeeld: Thema-based\nSneltoets: 8 MAIN_TOOLTIP_BACKCOLOR1;Achtergrond kleur van het voorbeeld: Zwart\nSneltoets: 9 MAIN_TOOLTIP_BACKCOLOR2;Achtergrond kleur van het voorbeeld: Wit\nSneltoets: 0 @@ -896,7 +893,6 @@ PARTIALPASTE_SHARPENING;Verscherping PARTIALPASTE_SHARPENMICRO;Microcontrast PARTIALPASTE_VIBRANCE;Levendigheid PARTIALPASTE_VIGNETTING;Vignetteringscorrectie -PARTIALPASTE_WAVELETGROUP;Wavelet verwerking PARTIALPASTE_WHITEBALANCE;Witbalans PREFERENCES_ADD;Toevoegen PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator randkleur @@ -1098,12 +1094,10 @@ PROGRESSBAR_SNAPSHOT_ADDED;Snapshot toegevoegd PROGRESSDLG_PROFILECHANGEDINBROWSER;Profiel veranderd in bestandsnavigator QINFO_ISO;ISO QINFO_NOEXIF;Exif-gegevens niet beschikbaar. -REFERENCES_AUTLISSTD;Hoog SAVEDLG_AUTOSUFFIX;Voeg automatisch ophogend nummer (-1, -2..) toe als bestand al bestaat SAVEDLG_FILEFORMAT;Bestandstype SAVEDLG_FORCEFORMATOPTS;Forceer opties voor opslaan SAVEDLG_JPEGQUAL;JPEG-kwaliteit -SAVEDLG_PNGCOMPR;PNG-compressie SAVEDLG_PUTTOQUEUE;Plaats in verwerkingsrij SAVEDLG_PUTTOQUEUEHEAD;Plaats vooraan in verwerkingsrij SAVEDLG_PUTTOQUEUETAIL;Plaats achteraan in verwerkingsrij @@ -1350,7 +1344,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminantie TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminantie TP_DIRPYRDENOISE_MAIN_COLORSPACE;Methode TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Ruisonderdrukking TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Voor raw afbeeldingen kan RGB of Lab methode worden gebruikt.\n\nVoor niet-raw afbeeldingen zal altijd de Lab methode worden gebruikt, ongeacht de geselecteerde methode. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1371,7 +1364,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Mediaan herhalingen TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Het gebruik van drie mediaan filter herhalingen met een 3×3 venster grootte geeft meestal een beter resultaat dan het gebruik van één mediaan filter herhaling met eeen 7×7 venster grootte. TP_DIRPYRDENOISE_MEDIAN_TYPE;Type TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Gebruik een mediaan filter van gewenste venster grootte. Hoe groter het venster hoe langer het duurt.\n\n3×3 zacht: behandeld 5 pixels in een 3×3 pixel venster.\n3×3: behandeld 9 pixels in een 3×3 pixel venster.\n5×5 zacht: behandeld 13 pixels in een 5×5 pixel venster.\n5×5: behandeld 25 pixels in een 5×5 pixel venster.\n7×7: behandeld 49 pixels in een 7×7 pixel venster.\n9×9: behandeld 81 pixels in a 9×9 pixel venster.\n\nSoms is het mogelijk om een betere kwaliteit te krijgen door het uitvoeren van meerdere herhalingen met een kleiner venster dan één uitvoering met een groter venster. -TP_DIRPYRDENOISE_PASSE;Herhalingen TP_DIRPYRDENOISE_SLI;Schuifbalk TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 zacht @@ -1444,10 +1436,6 @@ TP_FLATFIELD_BT_VERTICAL;Verticaal TP_FLATFIELD_CLIPCONTROL;Clip controle TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip controle vermijd geclipte hoge lichten veroorzaakt door het toepassen van vlakveld. Als er al geclipte hoge lichten waren voor het toepassen van vlakveld dan kan clip controle kleurzweem veroorzaken. TP_FLATFIELD_LABEL;Vlakveld -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Vrij gamma -TP_GAMMA_OUTPUT;Uitvoer gamma -TP_GAMMA_SLOP;Helling (lineair) TP_GENERAL_11SCALE_TOOLTIP;De werking is alleen zichtbaar op schaal 1:1 van het voorbeeld TP_GRADIENT_CENTER;Centrum TP_GRADIENT_CENTER_X;Centrum X @@ -1616,36 +1604,23 @@ TP_RAW_LMMSE_TOOLTIP;Toevoegen gamma (stap 1), mediaan (stappen 2-4), en verfijn TP_RAW_MONO;Mono TP_RAW_NONE;Geen (Toont sensor patroon) TP_RAW_PIXELSHIFT;Pixel Verschuiven -TP_RAW_PIXELSHIFTADAPTIVE;Adaptieve detectie TP_RAW_PIXELSHIFTBLUR;Vervaag bewegingsmasker TP_RAW_PIXELSHIFTEQUALBRIGHT;Balanseer de helderheid van de frames TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Balanseer de helderheid van de frames t.o.v. de helderheid van het geslecteerde frame.\nAls er overbelichte gebieden zijn in de frames, selecteer dan het helderste frame om een magenta kleurzweem te vermijden of selecteer bewegingsorrectie. -TP_RAW_PIXELSHIFTEXP0;Experimenteel TP_RAW_PIXELSHIFTGREEN;Controleer groene kanaal voor beweging TP_RAW_PIXELSHIFTHOLEFILL;Vul holtes in verschuivingsmasker TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Vul holtes in het verschuivingsmasker op TP_RAW_PIXELSHIFTLMMSE;Gebruik lmmse voor verschoven gebieden TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Gebruik lmmse ipv amaze voor verschoven gebieden.\nNuttig voor hoge ISO afbeeeldingen. -TP_RAW_PIXELSHIFTMASKTHRESHOLD;3x3 nieuwe drempel TP_RAW_PIXELSHIFTMEDIAN;Mediaan -TP_RAW_PIXELSHIFTMEDIAN3;Sluit geselecteerde frame uit voor mediaan -TP_RAW_PIXELSHIFTMEDIAN3_TOOLTIP;Sluit geselecteerde frame uit voor mediaan.\nNuttig als bewegende objecten een overlap hebben in frame 2 en 3 TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Gebruik mediaan voor alle frames inplaats van alleen het geselecteerd frame voor gebieden met beweging.\nVerwijder objecten die voorkomen op verschillende plekken in alle frames.\nGeeft bewegingseffect voor langzaam bewegende (overlappende) objecten. TP_RAW_PIXELSHIFTMM_AUTO;Automatisch TP_RAW_PIXELSHIFTMM_CUSTOM;Eigen TP_RAW_PIXELSHIFTMM_OFF;Uit TP_RAW_PIXELSHIFTMOTION;Beweging detectie niveau (vervallen) -TP_RAW_PIXELSHIFTMOTIONCORRECTION;Groen bewegingscorrectie grootte TP_RAW_PIXELSHIFTMOTIONMETHOD;Beweging Correctie TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0: geen bewegingsdetectie\n1 - 99: beweging wordt bepaald op basis van deze waarde. Vergroot de waarde om de bewegingsdetectie te verhogen\n100: Amaze demozaïek wordt gebruikt -TP_RAW_PIXELSHIFTNONGREENAMAZE;Controleer rood/blauw amaze TP_RAW_PIXELSHIFTNONGREENCROSS;Controleer rood/blauw kanaal voor beweging -TP_RAW_PIXELSHIFTNONGREENCROSS2;Controleer groen amaze -TP_RAW_PIXELSHIFTNONGREENHORIZONTAL;Controleer rood/blauw horizontaal -TP_RAW_PIXELSHIFTNONGREENVERTICAL;Controleer rood/blauw vertikaal -TP_RAW_PIXELSHIFTNREADISO;nLezen -TP_RAW_PIXELSHIFTPRNU;PRNU (%) -TP_RAW_PIXELSHIFTREDBLUEWEIGHT;Rood&Blauw gewicht TP_RAW_PIXELSHIFTSHOWMOTION;Toon beweging TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Toon alleen masker TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Toont het bewegingsmasker zonder de afbeelding @@ -1653,9 +1628,6 @@ TP_RAW_PIXELSHIFTSIGMA;Vervagen straal TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;De standaard straal van 1.0 is goed voor normale ISO. Verhoog de waarde voor hogere ISO.\n5.0 is een goed startpunt voor hoge ISO afbeeldingen.\nControleer het bewegingsmasker bij het veranderen van de waarde. TP_RAW_PIXELSHIFTSMOOTH;Zachte overgang TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Zachte overgang tussen gebieden met en zonder beweging.\nKies 0 om Zachte overgang uit te zetten\nKies 1 voor Amaze/lmmse of Mediaan -TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;StdDev factor Blauw -TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;StdDev factor Groen -TP_RAW_PIXELSHIFTSTDDEVFACTORRED;StdDev factor Rood TP_RAW_SENSOR_BAYER_LABEL;Sensor met Bayer matrix TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass geeft het beste resultaat (aanbevolen voor lage ISO afbeeldingen)\n1-pass geeft hetzelfde resultaat als 3-pass voor hoge ISO afbeeldingen en is sneller. TP_RAW_SENSOR_XTRANS_LABEL;Sensor met X-Trans matrix diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index 1e375314c..b4e585507 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Exifdata utilgjengelig. SAVEDLG_FILEFORMAT;Filformat SAVEDLG_JPEGQUAL;JPEG-kvalitet -SAVEDLG_PNGCOMPR;PNG-komprimering SAVEDLG_PUTTOQUEUE;Sett i prosesseringskø SAVEDLG_PUTTOQUEUEHEAD;Sett øverst i prosesseringskøen SAVEDLG_PUTTOQUEUETAIL;Sett nederst i prosesseringskøen diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 37f174f18..9ac7c82d7 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -202,7 +202,6 @@ GENERAL_WARNING;Uwaga HISTOGRAM_TOOLTIP_B;Pokaż/Ukryj histogram błękitów. 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;Przełącz histogram pełny (wyłączone)/skalowany (włączone). HISTOGRAM_TOOLTIP_G;Pokaż/Ukryj histogram zieleni. HISTOGRAM_TOOLTIP_L;Pokaż/Ukryj histogram luminancji CIELab. HISTOGRAM_TOOLTIP_R;Pokaż/Ukryj histogram czerwieni. @@ -823,7 +822,6 @@ 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 @@ -1042,7 +1040,6 @@ TP_DIRPYRDENOISE_LUMINANCE_CURVE;Krzywa luminancji TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegółowość luminancji 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 @@ -1118,10 +1115,6 @@ 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 diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 84dcd8c9c..94e3fc154 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -202,7 +202,6 @@ GENERAL_WARNING;Uwaga HISTOGRAM_TOOLTIP_B;Pokaz/Ukryj histogram blekitow. HISTOGRAM_TOOLTIP_BAR;Pokazuje/Ukrywa wskaznik RGB.\nKlikniecie prawym przyciskiem myszy na podgladzie zdjecia blokuje/odblokowuje. HISTOGRAM_TOOLTIP_CHRO;Pokaz/Ukryj histogram chromatycznosci. -HISTOGRAM_TOOLTIP_FULL;Przelacz histogram pelny (wylaczone)/skalowany (wlaczone). HISTOGRAM_TOOLTIP_G;Pokaz/Ukryj histogram zieleni. HISTOGRAM_TOOLTIP_L;Pokaz/Ukryj histogram luminancji CIELab. HISTOGRAM_TOOLTIP_R;Pokaz/Ukryj histogram czerwieni. @@ -823,7 +822,6 @@ SAVEDLG_AUTOSUFFIX;Automatycznie dodaj przyrostek, jezeli plik juz istnieje SAVEDLG_FILEFORMAT;Format pliku SAVEDLG_FORCEFORMATOPTS;Wymus opcje zapisu SAVEDLG_JPEGQUAL;Jakosc JPEG -SAVEDLG_PNGCOMPR;Kompresja PNG SAVEDLG_PUTTOQUEUE;Umiesc w kolejce przetwarzania SAVEDLG_PUTTOQUEUEHEAD;Umiesc na poczatku kolejki przetwarzania SAVEDLG_PUTTOQUEUETAIL;Umiesc na koncu kolejki przetwarzania @@ -1042,7 +1040,6 @@ TP_DIRPYRDENOISE_LUMINANCE_CURVE;Krzywa luminancji TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegolowosc luminancji 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 obrazow raw mozna uzywac metody RGB oraz L*a*b*.\n\nDla obrazow nie-raw metoda L*a*b* zostanie uzyta niezaleznie od wyboru. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1118,10 +1115,6 @@ TP_FLATFIELD_BT_VERTICAL;Pionowy TP_FLATFIELD_CLIPCONTROL;Zabezpieczenie przed obcinaniem TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Funkcja ta chroni przed obcinaniem podswietlen ktore moze zaistniec przy stosowaniu obrazow type "puste pole". Nalezy zachowac ostroznosc, poniewaz jesli obciete rejony istnieja przed zastosowaniem pustego pola, funkcja ta moze spowodowac zabarwienie tych rejonow ktore powinny byc biale. TP_FLATFIELD_LABEL;Puste pole -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Dowolna gamma -TP_GAMMA_OUTPUT;Wyjsciowa gamma -TP_GAMMA_SLOP;Nachylenie (liniowy) TP_GENERAL_11SCALE_TOOLTIP;Efekty tego narzedzia sa widoczne badz poprawne przy przyblizeniu 100% lub wiecej. TP_GRADIENT_CENTER;Srodek TP_GRADIENT_CENTER_X;Srodek X diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 28b205ddc..4406b6f37 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -245,7 +245,6 @@ GIMP_PLUGIN_INFO;Bem-vindo ao plugin RawTherapee do GIMP!\nDepois de terminar de HISTOGRAM_TOOLTIP_B;Mostrar/Ocultar histograma azul. HISTOGRAM_TOOLTIP_BAR;Mostrar/ocultar barra do indicador RGB.\nClique com o botão direito do mouse na visualização da imagem para congelar/descongelar. HISTOGRAM_TOOLTIP_CHRO;Mostrar/Ocultar histograma de cromaticidade. -HISTOGRAM_TOOLTIP_FULL;Alternar histograma completo (desligado) ou dimensionado (ligado). HISTOGRAM_TOOLTIP_G;Mostrar/Ocultar histograma verde. HISTOGRAM_TOOLTIP_L;Mostrar/Ocultar histograma de luminância CIELab. HISTOGRAM_TOOLTIP_MODE;Alternar entre o modo de escala linear, log-linear e log-log para o histograma. @@ -781,7 +780,6 @@ HISTORY_NEWSNAPSHOT;Adicionar HISTORY_NEWSNAPSHOT_TOOLTIP;Atalho: Alt-s HISTORY_SNAPSHOT;Instantâneo HISTORY_SNAPSHOTS;Instantâneos -ICCPROFCREATOR_ADD_PARAM_IN_DESC;Anexar os valores Gama e Declive para a descrição ICCPROFCREATOR_COPYRIGHT;Direito Autoral: ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Restaurar para o direito autoral padrão, concedido a "RawTherapee, CC0" ICCPROFCREATOR_CUSTOM;Personalizado @@ -1325,7 +1323,6 @@ TP_BWMIX_ALGO_LI;Linear TP_BWMIX_ALGO_SP;Efeitos especiais TP_BWMIX_ALGO_TOOLTIP;Linear: irá produzir uma reação normal linear.\nEfeitos especiais: produzirá efeitos especiais misturando canais não linearmente. TP_BWMIX_AUTOCH;Automático -TP_BWMIX_AUTOCH_TIP;Calcular valores otimizando o Misturador de Canais. TP_BWMIX_CC_ENABLED;Ajustar cor complementar TP_BWMIX_CC_TOOLTIP;Ative para permitir o ajuste automático de cores complementares no modo ROYGCBPM. TP_BWMIX_CHANNEL;Equalizador de Luminância @@ -1354,7 +1351,6 @@ TP_BWMIX_MET_DESAT;Dessaturação TP_BWMIX_MET_LUMEQUAL;Equalizador de Luminância TP_BWMIX_MIXC;Misturador de Canais TP_BWMIX_NEUTRAL;Restabelecer misturador -TP_BWMIX_NEUTRAL_TIP;Restaurar todos os valores (Filtro de Cores, Misturador de Canais) para o padrão. TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% TP_BWMIX_RGBLABEL_HINT;Fatores finais do RGB que cuidam de todas as opções do misturador.\n"Total" exibe a soma dos valores RGB:\n- sempre 100% no modo relativo\n- mais alto (mais claro) ou mais baixo (mais escuro) que 100% no modo absoluto. TP_BWMIX_RGB_TOOLTIP;Misture os canais RGB. Use predefinições para orientação.\nPreste atenção aos valores negativos que podem causar artefatos ou comportamento errático. @@ -1673,10 +1669,6 @@ TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_CLIPCONTROL;Controle de recorte TP_FLATFIELD_CLIPCONTROL_TOOLTIP;O controle de recorte evita realces recortados provocados pela aplicação do campo plano. Se já houver realces recortados antes da aplicação do campo plano, o controle de recorte pode levar à conversão de cores. TP_FLATFIELD_LABEL;Campo Plano -TP_GAMMA_CURV;Gama -TP_GAMMA_FREE;Gama livre -TP_GAMMA_OUTPUT;Gama de saída -TP_GAMMA_SLOP;Declive (linear) TP_GENERAL_11SCALE_TOOLTIP;Os efeitos dessa ferramenta só são visíveis ou são precisos numa escala prévia de 1:1. TP_GRADIENT_CENTER;Centro TP_GRADIENT_CENTER_X;Centro X diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 6868972ab..a0fcf4df2 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -234,7 +234,6 @@ GENERAL_WARNING;Внимание HISTOGRAM_TOOLTIP_B;Показать/скрыть синий канал гистограммы HISTOGRAM_TOOLTIP_BAR;Показать/скрыть панель отображения RGB\nНажмите правую кнопку мыши на предпросмотре изображения, чтобы заблокировать/разблокировать его HISTOGRAM_TOOLTIP_CHRO;Показать/скрыть хроматическую гистограмму -HISTOGRAM_TOOLTIP_FULL;Переключить полную (выкл) или отмасштабированную (вкл) гистограмму HISTOGRAM_TOOLTIP_G;Показать/скрыть зелёный канал гистограммы HISTOGRAM_TOOLTIP_L;Показать/скрыть CIELAB гистограмму HISTOGRAM_TOOLTIP_R;Показать/скрыть красный канал гистограммы @@ -921,7 +920,6 @@ SAVEDLG_AUTOSUFFIX;Автоматически добавлять суффикс SAVEDLG_FILEFORMAT;Формат файла SAVEDLG_FORCEFORMATOPTS;Принудительно установить настройки сохранения SAVEDLG_JPEGQUAL;Качество JPEG -SAVEDLG_PNGCOMPR;Сжатие PNG SAVEDLG_PUTTOQUEUE;Поместить в очередь на обработку SAVEDLG_PUTTOQUEUEHEAD;Поместить в начало очереди на обработку SAVEDLG_PUTTOQUEUETAIL;Поместить в конец очереди на обработку @@ -1094,7 +1092,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;Яркость TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Яркость TP_DIRPYRDENOISE_MAIN_COLORSPACE;Цветовое пространство TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Подавление шума TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Для raw-изображений можно использовать как режим RGB так и L*a*b*.\n\nДля не-raw будет использован L*a*b* режим вне зависимости от выбора. TP_DIRPYRDENOISE_MAIN_GAMMA;Гамма @@ -1166,10 +1163,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Горизонтальная TP_FLATFIELD_BT_VERTHORIZ;Вертикальная + Горизонтальная TP_FLATFIELD_BT_VERTICAL;Вертикальная TP_FLATFIELD_LABEL;Плоское поле -TP_GAMMA_CURV;гамма -TP_GAMMA_FREE;Свободная гамма -TP_GAMMA_OUTPUT;Выходная гамма -TP_GAMMA_SLOP;наклонная (линейная) TP_GENERAL_11SCALE_TOOLTIP;Эффект от применения этого инструмента или одного из его компонентов будет виден лишь при просмотре в масштабе 1:1. TP_GRADIENT_CENTER;Центр TP_GRADIENT_CENTER_X;X-координата diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 3d339d384..541cba8a0 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -178,7 +178,6 @@ GENERAL_WARNING;Упозорење HISTOGRAM_TOOLTIP_B;Приказује плави хистограм HISTOGRAM_TOOLTIP_BAR;Приказује/сакрива РГБ индикатор. Кликните десни тастер миша на умањени приказ да замрзнете HISTOGRAM_TOOLTIP_CHRO;Прикажи/сакриј хистограм хроминансе. -HISTOGRAM_TOOLTIP_FULL;Укључује приказ потпуног или хистограма у размери. HISTOGRAM_TOOLTIP_G;Приказује зелени хистограм HISTOGRAM_TOOLTIP_L;Приказује ЦиеЛаб хитограм HISTOGRAM_TOOLTIP_R;Приказује црвени хистограм @@ -735,14 +734,12 @@ PROGRESSBAR_SAVEPNG;Чувам PNG датотеку... PROGRESSBAR_SAVETIFF;Чувам TIFF датотеку... PROGRESSBAR_SNAPSHOT_ADDED;Додат је снимак PROGRESSDLG_PROFILECHANGEDINBROWSER;Профил измењен у разгледачу -P_GAMMA_CURV;гама QINFO_ISO;ИСО QINFO_NOEXIF;Нису доступни Exif подаци. SAVEDLG_AUTOSUFFIX;Сам додај суфикс уколико датотека већ постоји SAVEDLG_FILEFORMAT;Формат датотеке SAVEDLG_FORCEFORMATOPTS;Приморај могућности за чување SAVEDLG_JPEGQUAL;JPEG квалитет -SAVEDLG_PNGCOMPR;PNG паковање SAVEDLG_PUTTOQUEUE;Заказује слику за обраду SAVEDLG_PUTTOQUEUEHEAD;Премешта слику на почетак заказаних SAVEDLG_PUTTOQUEUETAIL;Премешта слику на крај заказаних @@ -920,7 +917,6 @@ TP_DIRPYRDENOISE_ENH_TOOLTIP;Повећава квалитет уклањања TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Детаљи луминансе TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Луминанса TP_DIRPYRDENOISE_MAIN_COLORSPACE;Начин -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Дирекционо пирамидно уклањање шума TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;РГБ TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;За рав слике можете користити РГБ или Лаб режиме.\n\nЗа остале слике се користи Лаб, без обзира на избор. TP_DIRPYRDENOISE_MAIN_GAMMA;Гама @@ -970,10 +966,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Хоризонтално TP_FLATFIELD_BT_VERTHORIZ;Хориз. и вертик. TP_FLATFIELD_BT_VERTICAL;Вертикално TP_FLATFIELD_LABEL;Равно поље -TP_GAMMA_CURV;Гама -TP_GAMMA_FREE;Гама слобода -TP_GAMMA_OUTPUT;Излазна гама -TP_GAMMA_SLOP;нагиб (линеарни) TP_GENERAL_11SCALE_TOOLTIP;Ефект овог алата или његових опција се види само у размери 1:1. TP_GRADIENT_CENTER;Центар TP_GRADIENT_CENTER_X;Центар X diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index e00d7bc97..fcb0d7ef0 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -178,7 +178,6 @@ GENERAL_WARNING;Upozorenje HISTOGRAM_TOOLTIP_B;Prikazuje plavi histogram HISTOGRAM_TOOLTIP_BAR;Prikazuje/sakriva RGB indikator. Kliknite desni taster miša na umanjeni prikaz da zamrznete HISTOGRAM_TOOLTIP_CHRO;Prikaži/sakrij histogram hrominanse. -HISTOGRAM_TOOLTIP_FULL;Uključuje prikaz potpunog ili histograma u razmeri. HISTOGRAM_TOOLTIP_G;Prikazuje zeleni histogram HISTOGRAM_TOOLTIP_L;Prikazuje CieLab hitogram HISTOGRAM_TOOLTIP_R;Prikazuje crveni histogram @@ -735,14 +734,12 @@ PROGRESSBAR_SAVEPNG;Čuvam PNG datoteku... PROGRESSBAR_SAVETIFF;Čuvam TIFF datoteku... PROGRESSBAR_SNAPSHOT_ADDED;Dodat je snimak PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil izmenjen u razgledaču -P_GAMMA_CURV;gama QINFO_ISO;ISO QINFO_NOEXIF;Nisu dostupni Exif podaci. SAVEDLG_AUTOSUFFIX;Sam dodaj sufiks ukoliko datoteka već postoji SAVEDLG_FILEFORMAT;Format datoteke SAVEDLG_FORCEFORMATOPTS;Primoraj mogućnosti za čuvanje SAVEDLG_JPEGQUAL;JPEG kvalitet -SAVEDLG_PNGCOMPR;PNG pakovanje SAVEDLG_PUTTOQUEUE;Zakazuje sliku za obradu SAVEDLG_PUTTOQUEUEHEAD;Premešta sliku na početak zakazanih SAVEDLG_PUTTOQUEUETAIL;Premešta sliku na kraj zakazanih @@ -920,7 +917,6 @@ TP_DIRPYRDENOISE_ENH_TOOLTIP;Povećava kvalitet uklanjanja šuma na uštrb oko 2 TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detalji luminanse TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminansa TP_DIRPYRDENOISE_MAIN_COLORSPACE;Način -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Direkciono piramidno uklanjanje šuma TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Za rav slike možete koristiti RGB ili Lab režime.\n\nZa ostale slike se koristi Lab, bez obzira na izbor. TP_DIRPYRDENOISE_MAIN_GAMMA;Gama @@ -970,10 +966,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Horizontalno TP_FLATFIELD_BT_VERTHORIZ;Horiz. i vertik. TP_FLATFIELD_BT_VERTICAL;Vertikalno TP_FLATFIELD_LABEL;Ravno polje -TP_GAMMA_CURV;Gama -TP_GAMMA_FREE;Gama sloboda -TP_GAMMA_OUTPUT;Izlazna gama -TP_GAMMA_SLOP;nagib (linearni) TP_GENERAL_11SCALE_TOOLTIP;Efekt ovog alata ili njegovih opcija se vidi samo u razmeri 1:1. TP_GRADIENT_CENTER;Centar TP_GRADIENT_CENTER_X;Centar X diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 1ecca79e1..229cbd01c 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -354,7 +354,6 @@ QINFO_NOEXIF;Exif údaje sú nedostupné. SAVEDLG_AUTOSUFFIX;Automaticky pridať príponu, ak už súbor existuje SAVEDLG_FILEFORMAT;Formát súboru SAVEDLG_JPEGQUAL;JPEG Kvalita -SAVEDLG_PNGCOMPR;PNG Kompresia SAVEDLG_PUTTOQUEUE;Vložiť do radu na spracovanie SAVEDLG_PUTTOQUEUEHEAD;Presunúť na čelo radu na spracovanie SAVEDLG_PUTTOQUEUETAIL;Presunúť na koniec radu na spracovanie @@ -388,7 +387,6 @@ TP_CROP_X;x TP_CROP_Y;y TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Farebnosť TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Svietivosť -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Redukcia šumu pomocou smerovej pyramídy TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma TP_DIRPYREQUALIZER_LABEL;Vyrovnávač smerovej pyramídy TP_DIRPYREQUALIZER_LUMACOARSEST;Najhrubšie diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index eac9c0821..d67b70123 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;EXIF-tietoja ei saatavilla. SAVEDLG_FILEFORMAT;Tiedostomuoto SAVEDLG_JPEGQUAL;JPEG laatu (suurempi luku, parempi laatu) -SAVEDLG_PNGCOMPR;PNG pakkaus (suurempi luku, enemmän pakkausta) SAVEDLG_PUTTOQUEUE;Laita käsittelyjonoon SAVEDLG_PUTTOQUEUEHEAD;Laita käsittelyjonon ensimmäiseksi SAVEDLG_PUTTOQUEUETAIL;Laita käsittelyjonon viimeiseksi diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 27fa8a221..d70247a41 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -212,7 +212,6 @@ GENERAL_WARNING;Varning HISTOGRAM_TOOLTIP_B;Visa/dölj blått histogram HISTOGRAM_TOOLTIP_BAR;Visa/dölj RBG-indikatorer\nKlicka på höger musknapp på förhandsvisningen för att frysa HISTOGRAM_TOOLTIP_CHRO;Visa/Dölj kromananshistogrammet -HISTOGRAM_TOOLTIP_FULL;Växla mellan fullt eller skalat histogram HISTOGRAM_TOOLTIP_G;Visa/dölj grönt histogram HISTOGRAM_TOOLTIP_L;Visa/dölj CIELAB histogram för luminans HISTOGRAM_TOOLTIP_R;Visa/dölj rött histogram @@ -705,8 +704,6 @@ MAIN_TAB_RAW;Råbild MAIN_TAB_RAW_TOOLTIP;Kortkommando: Alt-r MAIN_TAB_TRANSFORM;Omvandla MAIN_TAB_TRANSFORM_TOOLTIP;Kortkommando: Alt-t -MAIN_TAB_WAVELET;Wavelet -MAIN_TAB_WAVELET_TOOLTIP;Kortkommando: Alt-w MAIN_TOOLTIP_BACKCOLOR0;Bakgrundsfärg: Temabaserad\nKortkommando: 9 MAIN_TOOLTIP_BACKCOLOR1;Bakgrundsfärg: Svart\nKortkommando: 9 MAIN_TOOLTIP_BACKCOLOR2;Bakgrundsfärg: Vit\nKortkommando: 9 @@ -801,7 +798,6 @@ PARTIALPASTE_SHARPENING;Skärpa (Oskarp mask/RL) PARTIALPASTE_SHARPENMICRO;Mikrokontrast PARTIALPASTE_VIBRANCE;Lyster PARTIALPASTE_VIGNETTING;Reducera vinjettering -PARTIALPASTE_WAVELETGROUP;Wavelet-nivåer PARTIALPASTE_WHITEBALANCE;Vitbalans PREFERENCES_ADD;Lägg till PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Översiktsvyns guidefärg @@ -995,7 +991,6 @@ SAVEDLG_AUTOSUFFIX;Lägg automatiskt till en ändelse om filnamnet redan exister SAVEDLG_FILEFORMAT;Filformat SAVEDLG_FORCEFORMATOPTS;Kräv att inställningar sparas SAVEDLG_JPEGQUAL;JPEG-kvalitet -SAVEDLG_PNGCOMPR;PNG-komprimering SAVEDLG_PUTTOQUEUE;Lägg till i behandlingskön SAVEDLG_PUTTOQUEUEHEAD;Flytta längst fram i behandlingskön SAVEDLG_PUTTOQUEUETAIL;Flytta längst bak i behandlingskön @@ -1234,7 +1229,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminans TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminans TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metod TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;Lab -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;Brusreducering TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;För råfiler kan antingen RGB- eller Labmetoder användas.\n\nFör icke-råfiler kommer Labmetoden att användas, oavsett vad som är valt. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1314,10 +1308,6 @@ TP_FLATFIELD_BT_HORIZONTAL;Horisontell TP_FLATFIELD_BT_VERTHORIZ;Vertikal + horisontell TP_FLATFIELD_BT_VERTICAL;Vertikal TP_FLATFIELD_LABEL;Plattfält -TP_GAMMA_CURV;gamma -TP_GAMMA_FREE;Obunden gamma -TP_GAMMA_OUTPUT;Utmatningsgamma -TP_GAMMA_SLOP;Lutning (linjär) TP_GENERAL_11SCALE_TOOLTIP;Effekten från det här verktyget eller några av dess underkomponenter syns endast då de visas i 1:1-skala eller högre TP_GRADIENT_CENTER;Centrum TP_GRADIENT_CENTER_X;Centrum, X diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index ae12f6fc5..656ad9b9e 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -301,7 +301,6 @@ QINFO_ISO;ISO QINFO_NOEXIF;Exif bilgisi yok. SAVEDLG_FILEFORMAT;Dosya biçimi SAVEDLG_JPEGQUAL;JPEG kalitesi -SAVEDLG_PNGCOMPR;PNG sıkıştırma düzeyi SAVEDLG_PUTTOQUEUE;Put into processing queue SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue From 74d23e6dd6c151552f79fc11ac793df978c68857 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 22:48:34 +0200 Subject: [PATCH 016/215] Updated generateUnusedKeys --- tools/generateUnusedKeys | 56 +++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/tools/generateUnusedKeys b/tools/generateUnusedKeys index 484da3667..6d2b68390 100755 --- a/tools/generateUnusedKeys +++ b/tools/generateUnusedKeys @@ -1,20 +1,20 @@ #!/usr/bin/env bash +# This script is part of RawTherapee. +# # This Bash4 script checks whether each key in "default" is used in # a .cc or .h file. Those that are not are printed to screen, and the # user is asked if they should be deleted from all language files. # -# Keys in commented-out sections are treated as if they weren't there. -# The following comment styles are handled: -# // key -# /* key -# key */ - -# It does not handle dynamically built keys: +# Keys in commented-out sections "//" are ignored. +# +# Some concatenated keys are ignored, these need to be added to the list manually: # HISTORY_MSG_ # EXTPROGTARGET_ # FILEBROWSER_POPUPRANK # FILEBROWSER_POPUPCOLORLABEL +# SAMPLEFORMAT_ +# TP_RAW_[demosaic_method] # # The script can also clean up already-translated files by removing keys which # do not exist in default. @@ -22,11 +22,10 @@ # Run the script from the project root: # ./tools/generateUnusedKeys # -# Doublecheck the deletion before committing. # Run ./tools/generateTranslationDiffs before and after running this script. +# Double-check the deletion before committing. # # Blame DrSlony -# Please report bugs or enhancements to http://code.google.com/p/rawtherapee/issues/list tmp=temp_file if [[ -w $tmp ]]; then @@ -61,26 +60,41 @@ fi dos2unix default 2>/dev/null +# In the code block below, the grep/sed outside the loop lists keys to ignore. +# Exit status 1 (failure) means key not found in code, destined for deletion. +# The piped grep inside the loop checks the initial match for known comment markers "//". +# Sometimes a key is first found in a comment, and then the same key is found +# in active code, therefore -m1 (stop reading after 1st match) cannot be used. +# To remove comment support, remove the piped grep and set first grep flags to +# -Irl -m1 +# Dynamically built keys like HISTORY_MSG_1 can't be grepped in the code, +# so it renames KEY_1-KEY_9 to KEY_ so that they can be grepped and therefore ignored. t1="$(date +%s)" printf '%s\n' 'Matching keys in "default" against .cc and .h files' 'Unmatched keys follow:' unset delLines while read -r 'defLine'; do - grep -Ir --include=\*.{cc,h} --exclude-dir="klt" "${defLine%%;*}" ../../* | grep -Ev "//.*${defLine%%;*}|/\*.*${defLine%%;*}|${defLine%%;*}.*\*/" &>/dev/null + grep -Ir --include=\*.{cc,h} --exclude-dir="klt" "${defLine%%;*}" ../../* | grep -Ev "//.*${defLine%%;*}" &>/dev/null if [[ $? = 1 ]]; then printf ' %s\n' "${defLine%%;*}" delLines+=("${defLine%%;*}") fi -done < <(grep -Ev "^(#|$)|HISTORY_MSG_" "default" | sed -e "s/EXTPROGTARGET_[0-9]*/EXTPROGTARGET_/" -e "s/FILEBROWSER_POPUPCOLORLABEL[0-9]*/FILEBROWSER_POPUPCOLORLABEL/" -e "s/FILEBROWSER_POPUPRANK[0-9]*/FILEBROWSER_POPUPRANK/" | sort -Vu) -# The grep/sed line above lists keys to ignore. Exit status 1 (failure) means -# key not found in code, destined for deletion. The piped grep in the loop -# checks the initial match for known comment markers // /* and */ -# Sometimes a key is first found in a comment, and then the same key is found -# in active code, therefore -m1 (stop reading after 1st match) cannot be used. -# To remove comment support, remove the piped grep and set first grep flags to -# -Irl -m1 -# Dynamically built keys like HISTORY_MSG_1 can't be grepped in the code, -# so it renames KEY_1-KEY_9 to KEY_ so that they can be grepped and therefore ignored. -# The piped grep in the loop +done < <( \ + grep -Ev -e "^(#|$)|HISTORY_MSG_" \ + -e "^(#|$)|TP_RAW_1PASSMEDIUM" \ + -e "^(#|$)|TP_RAW_2PASS" \ + -e "^(#|$)|TP_RAW_3PASSBEST" \ + -e "^(#|$)|TP_RAW_4PASS" \ + -e "^(#|$)|TP_RAW_AMAZEVNG4" \ + -e "^(#|$)|TP_RAW_DCBVNG4" \ + -e "^(#|$)|TP_RAW_MONO" \ + -e "^(#|$)|TP_RAW_NONE" \ + -e "^(#|$)|TP_RAW_RCDVNG4" \ + "default" | \ + sed -e "s/EXTPROGTARGET_[0-9]*/EXTPROGTARGET_/" \ + -e "s/FILEBROWSER_POPUPCOLORLABEL[0-9]*/FILEBROWSER_POPUPCOLORLABEL/" \ + -e "s/FILEBROWSER_POPUPRANK[0-9]*/FILEBROWSER_POPUPRANK/" \ + -e "s/SAMPLEFORMAT_[0-9]*/SAMPLEFORMAT_/" \ + | sort -Vu) t2="$(date +%s)" tt=$((t2-t1)) printf '%s\n' "" "Scan took $tt seconds" "" "Double-checking the code for matched keys:" From bf41152ec8e22787ad72e429cfbe52b04a511feb Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 22:52:16 +0200 Subject: [PATCH 017/215] generateTranslationDiffs --- rtdata/languages/Deutsch | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index c83ebf48e..eabf66ace 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -195,6 +195,7 @@ FILEBROWSER_APPLYPROFILE;Profil anwenden FILEBROWSER_APPLYPROFILE_PARTIAL;Profil selektiv anwenden FILEBROWSER_AUTODARKFRAME;Automatisches Dunkelbild FILEBROWSER_AUTOFLATFIELD;Automatisches Weißbild +FILEBROWSER_BROWSEPATHBUTTONHINT;Klicken Sie hier, um den angegebenen Pfad zu öffnen, den Ordner\nneu zu laden und das Suchkriterium anzuwenden. FILEBROWSER_BROWSEPATHHINT;Einen Pfad eingeben:\nTaste:\nStrg + o Setzt den Cursor in das Eingabefeld\nEnter Öffnet den Pfad\nEsc Änderungen verwerfen\nUmschalt + Esc Eingabefeld verlassen\n\nSchnellnavigation:\nTaste:\n~ “Home“-Verzeichnis des Benutzers\n! Bilder-Verzeichnis des Benutzers FILEBROWSER_CACHE;Festplatten-Cache FILEBROWSER_CACHECLEARFROMFULL;Alle zwischengespeicherte Profile löschen @@ -1142,6 +1143,12 @@ PREFERENCES_CACHECLEAR_SAFETY;Nur Dateien im Zwischenspeicher werden gelöscht. PREFERENCES_CACHEMAXENTRIES;Maximale Anzahl der Miniaturbilder im Festplatten-Cache PREFERENCES_CACHEOPTS;Einstellungen des Festplatten-Cache für Miniaturbilder PREFERENCES_CACHETHUMBHEIGHT;Maximale Höhe der Miniaturbilder +PREFERENCES_CHUNKSIZES;Kacheln pro Thread +PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE-Farbinterpolation +PREFERENCES_CHUNKSIZE_RAW_CA;RAW-CA-Korrektur +PREFERENCES_CHUNKSIZE_RAW_RCD;RCD-Farbinterpolation +PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans-Farbinterpolation +PREFERENCES_CHUNKSIZE_RGB;RGB-Verarbeitung PREFERENCES_CLIPPINGIND;Anzeige zu heller/dunkler Bereiche PREFERENCES_CLUTSCACHE;HaldCLUT-Zwischenspeicher PREFERENCES_CLUTSCACHE_LABEL;Maximale Anzahl CLUTs im Zwischenspeicher @@ -1258,6 +1265,8 @@ PREFERENCES_PARSEDEXTADDHINT;Dateityp zur Liste hinzufügen PREFERENCES_PARSEDEXTDELHINT;Ausgewählten Dateityp aus Liste entfernen PREFERENCES_PARSEDEXTDOWNHINT;Ausgewählten Dateityp nach unten verschieben. PREFERENCES_PARSEDEXTUPHINT;Ausgewählten Dateityp nach oben verschieben. +PREFERENCES_PERFORMANCE_MEASURE;Messung aktivieren +PREFERENCES_PERFORMANCE_MEASURE_HINT;Protokolliert die Bearbeitungszeiten in der Konsole. PREFERENCES_PERFORMANCE_THREADS;Threads PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximale Anzahl Threads der Rauschreduzierung und Wavelet (0 = Automatik) PREFERENCES_PREVDEMO;Farbinterpolation @@ -1334,6 +1343,11 @@ PROFILEPANEL_TOOLTIPCOPY;Profil in Zwischenablage kopieren.\n\nStrg-Taste beim K PROFILEPANEL_TOOLTIPLOAD;Profil aus Datei laden.\n\nStrg-Taste beim Klicken festhalten, um\nzu ladende Parameter auszuwählen. PROFILEPANEL_TOOLTIPPASTE;Profil aus Zwischenablage einfügen.\n\nStrg-Taste beim Klicken festhalten, um\neinzufügende Parameter auszuwählen. PROFILEPANEL_TOOLTIPSAVE;Profil speichern.\n\nStrg-Taste beim Klicken festhalten, um\nzu speichernde Parameter auszuwählen. +PROGRESSBAR_DECODING;Dekodiere... +PROGRESSBAR_GREENEQUIL;Grünbalance... +PROGRESSBAR_HLREC;Lichterrekonstruktion... +PROGRESSBAR_HOTDEADPIXELFILTER;Hot/Dead-Pixel-Filter... +PROGRESSBAR_LINEDENOISE;Linienrauschfilter... PROGRESSBAR_LOADING;Lade Bild... PROGRESSBAR_LOADINGTHUMBS;Lade Miniaturbilder... PROGRESSBAR_LOADJPEG;Lade JPEG... @@ -1342,6 +1356,7 @@ PROGRESSBAR_LOADTIFF;Lade TIFF... PROGRESSBAR_NOIMAGES;Keine Bilder gefunden PROGRESSBAR_PROCESSING;Berechne Bild... PROGRESSBAR_PROCESSING_PROFILESAVED;Verarbeitungsprofil gespeichert +PROGRESSBAR_RAWCACORR;RAW-CA-Korrektur... PROGRESSBAR_READY;Bereit PROGRESSBAR_SAVEJPEG;Speichere JPEG... PROGRESSBAR_SAVEPNG;Speichere PNG... @@ -1608,6 +1623,7 @@ TP_CROP_GTTRIANGLE2;Goldenes Dreieck 2 TP_CROP_GUIDETYPE;Hilfslinien: TP_CROP_H;Höhe TP_CROP_LABEL;Ausschnitt +TP_CROP_PPI;PPI TP_CROP_RESETCROP;Zurücksetzen TP_CROP_SELECTCROP;Ausschnitt TP_CROP_W;Breite @@ -1993,6 +2009,8 @@ TP_RAW_SENSOR_BAYER_LABEL;Sensor mit Bayer-Matrix TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Mit “3-Pass“ erzielt man die besten Ergebnisse\n(empfohlen bei Bildern mit niedrigen ISO-Werten).\n\nBei hohen ISO-Werten unterscheidet sich “1-Pass“\nkaum gegenüber “3-Pass“, ist aber deutlich schneller.\n\n"+ schnell" erzeugt weniger Artefakte in kontrast-\narmen Bereichen. TP_RAW_SENSOR_XTRANS_LABEL;Sensor mit X-Trans-Matrix TP_RAW_VNG4;VNG4 +TP_RAW_XTRANS;X-Trans +TP_RAW_XTRANSFAST;Schnell-X-Trans TP_RESIZE_ALLOW_UPSCALING;Hochskalieren zulassen TP_RESIZE_APPLIESTO;Anwenden auf: TP_RESIZE_CROPPEDAREA;Ausschnitt @@ -2383,25 +2401,3 @@ 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. -!!!!!!!!!!!!!!!!!!!!!!!!! - -FILEBROWSER_BROWSEPATHBUTTONHINT;Klicken Sie hier, um den angegebenen Pfad zu öffnen, den Ordner\nneu zu laden und das Suchkriterium anzuwenden. -PREFERENCES_CHUNKSIZES;Kacheln pro Thread -PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE-Farbinterpolation -PREFERENCES_CHUNKSIZE_RAW_CA;RAW-CA-Korrektur -PREFERENCES_CHUNKSIZE_RAW_RCD;RCD-Farbinterpolation -PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans-Farbinterpolation -PREFERENCES_CHUNKSIZE_RGB;RGB-Verarbeitung -PREFERENCES_PERFORMANCE_MEASURE;Messung aktivieren -PREFERENCES_PERFORMANCE_MEASURE_HINT;Protokolliert die Bearbeitungszeiten in der Konsole. -PROGRESSBAR_DECODING;Dekodiere... -PROGRESSBAR_GREENEQUIL;Grünbalance... -PROGRESSBAR_HLREC;Lichterrekonstruktion... -PROGRESSBAR_HOTDEADPIXELFILTER;Hot/Dead-Pixel-Filter... -PROGRESSBAR_LINEDENOISE;Linienrauschfilter... -PROGRESSBAR_RAWCACORR;RAW-CA-Korrektur... -TP_CROP_PPI;PPI -TP_RAW_XTRANS;X-Trans -TP_RAW_XTRANSFAST;Schnell-X-Trans From 187af53c3fa3a1e1afe1b24847bac3d57319e252 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 23:29:09 +0200 Subject: [PATCH 018/215] generateTranslationDiffs formatting --- tools/generateTranslationDiffs | 91 +++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/tools/generateTranslationDiffs b/tools/generateTranslationDiffs index 8eff0adb7..8d9ec3954 100755 --- a/tools/generateTranslationDiffs +++ b/tools/generateTranslationDiffs @@ -15,49 +15,56 @@ # # Locale files are generated automatically: # - English (UK) -# - Polish (Latin Characters) tmp=temp_file if [[ -w $tmp ]]; then - rm -v "$tmp" + rm -v "$tmp" fi abort () { - printf "%s\n" "" "Aborting" - rm -v "$tmp" - exit 1 + printf "%s\n" "" "Aborting" + rm -v "$tmp" + exit 1 } trap 'abort' HUP INT QUIT ABRT TERM - cd "rtdata/languages" || { printf "%s\n" "You must run this script from the root of the project."; exit 1; } # Build array of all interface translation files, or use user-specified ones only unset langFiles + if [[ $# = 0 ]]; then - while read -r; do - langFiles+=("$REPLY") - done < <(find . -not -iname "default" -not -iname "LICENSE" -not -iname "README" -not -iname "*.sh" -not -iname ".*" -not -iname "$tmp" -not -iname "English (UK)" -not -iname "Polish (Latin Characters)" | sort) + while read -r; do + langFiles+=("$REPLY") + done < <(find . -not -iname "default" \ + -not -iname "LICENSE" \ + -not -iname "README" \ + -not -iname "*.sh" \ + -not -iname ".*" \ + -not -iname "$tmp" \ + -not -iname "English (UK)" \ + -not -iname "Polish (Latin Characters)" \ + | sort) else - langFiles=("$@") - for langFile in "${langFiles[@]}"; do - if [[ ! -w $langFile ]]; then - printf "%s\n" "File \"$langFile\" not found or not writable." "" - exit 1 - fi - done + langFiles=("$@") + for langFile in "${langFiles[@]}"; do + if [[ ! -w $langFile ]]; then + printf "%s\n" "File \"$langFile\" not found or not writable." "" + exit 1 + fi + done fi getComments () { - grep -E "^#.+" "$1" | sort -Vu + grep -E "^#.+" "$1" | sort -Vu } getChanged () { - grep -Ev '^(!|#|$)' "$1" | sort -Vu -t ';' --key=1,1 + grep -Ev '^(!|#|$)' "$1" | sort -Vu -t ';' --key=1,1 } getUnchanged () { - grep -E "^\!.+" "$1" | sort -Vu -t ';' --key=1,1 + grep -E "^\!.+" "$1" | sort -Vu -t ';' --key=1,1 } # First thing, fix default, so move comments to front, then strip the rest of any "!" and duplicates. @@ -70,31 +77,31 @@ i=1 printf "%s\n" "Digging through ${#langFiles[@]} file(s). This may take a while." ttot1="$(date +%s)" for file in "${langFiles[@]}"; do - t1="$(date +%s)" - printf "%02d - ${file#.*/}" "$i" - dos2unix "$file" 2>/dev/null - unset newLines + t1="$(date +%s)" + printf "%02d - ${file#.*/}" "$i" + dos2unix "$file" 2>/dev/null + unset newLines # KEY;String # Match "default" keys with those in current translation file. If no match, add !KEY;String while read -r 'defLine'; do - defKey="${defLine%%;*}" - if ! grep -q "^${defKey}\;" "$file"; then - newLines+=("!${defLine}") - fi + defKey="${defLine%%;*}" + if ! grep -q "^${defKey}\;" "$file"; then + newLines+=("!${defLine}") + fi done < <(getChanged default) # Form final translation file # Start with comments if [[ -n "$(getComments "$file")" ]]; then - printf "%s\n" "$(getComments "$file")" "" >> "$tmp" + printf "%s\n" "$(getComments "$file")" "" >> "$tmp" fi # Add already-translated lines getChanged "$file" >> "$tmp" printf '%s\n' "" >> "$tmp" # End with new, untranslated lines if [[ -n "${newLines[@]}" ]]; then - printf "%s\n" "!!!!!!!!!!!!!!!!!!!!!!!!!" "! Untranslated keys follow; remove the ! prefix after an entry is translated." "!!!!!!!!!!!!!!!!!!!!!!!!!" "" "${newLines[@]}" >> "$tmp" + printf "%s\n" "!!!!!!!!!!!!!!!!!!!!!!!!!" "! Untranslated keys follow; remove the ! prefix after an entry is translated." "!!!!!!!!!!!!!!!!!!!!!!!!!" "" "${newLines[@]}" >> "$tmp" fi mv "$tmp" "$file" t2="$(date +%s)" @@ -104,21 +111,23 @@ for file in "${langFiles[@]}"; do done case "${langFiles[@]}" in - *"./English (US)"*) printf "%s\n" "Creating English (UK) file" - getComments "English (US)" > "English (UK)" - grep -Ei ".+;.*(color|behavior|center).*" default | \ - sed -e '/^#/d' -e 'h;s/^[^;]*;//; s/olor/olour/g; x;s/;.*//;G;s/\n/;/' \ - -e 'h;s/^[^;]*;//; s/ehavior/ehaviour/g; x;s/;.*//;G;s/\n/;/' \ - -e 'h;s/^[^;]*;//; s/center/centre/g; x;s/;.*//;G;s/\n/;/' \ - -e 'h;s/^[^;]*;//; s/Center/Centre/g; x;s/;.*//;G;s/\n/;/' >> English\ \(UK\) - grep -Evi ".+;.*(color|behavior|center).*" "English (US)" | grep -Ev "^#" >> "English (UK)" - ;;& - *"./Polish"*) printf "%s\n" "Creating Polish (Latin Characters) file" - sed 'y/ĄĆĘŁŃÓŚŹŻąćęłńóśźż/ACELNOSZZacelnoszz/' < Polish > "Polish (Latin Characters)" - ;;& + *"./English (US)"*) printf "%s\n" "Creating English (UK) file" + getComments "English (US)" > "English (UK)" + grep -Ei ".+;.*(color|behavior|center).*" default | \ + sed -e '/^#/d' -e 'h;s/^[^;]*;//; s/olor/olour/g; x;s/;.*//;G;s/\n/;/' \ + -e 'h;s/^[^;]*;//; s/ehavior/ehaviour/g; x;s/;.*//;G;s/\n/;/' \ + -e 'h;s/^[^;]*;//; s/center/centre/g; x;s/;.*//;G;s/\n/;/' \ + -e 'h;s/^[^;]*;//; s/Center/Centre/g; x;s/;.*//;G;s/\n/;/' >> English\ \(UK\) + grep -Evi ".+;.*(color|behavior|center).*" "English (US)" | grep -Ev "^#" >> "English (UK)" + ;;& + *"./Polish"*) printf "%s\n" "Creating Polish (Latin Characters) file" + sed 'y/ĄĆĘŁŃÓŚŹŻąćęłńóśźż/ACELNOSZZacelnoszz/' < Polish > "Polish (Latin Characters)" + ;;& esac + ttot2="$(date +%s)" ttot=$((ttot2-ttot1)) tsec=$((ttot%60)) tmin=$((ttot/60)) + printf "%s\n" "Finished updating ${#langFiles[@]} files." "Total time: ${tmin}m ${tsec}s" From 1e2356b93801e60506e36a928d72261b4de5629c Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 31 Mar 2019 23:29:25 +0200 Subject: [PATCH 019/215] Improve curve visibility logic. Automatically open first non linear curve for L*a*b*, RGB and HSV. --- rtgui/hsvequalizer.cc | 2 +- rtgui/labcurve.cc | 14 +++++++------- rtgui/rgbcurves.cc | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/rtgui/hsvequalizer.cc b/rtgui/hsvequalizer.cc index 7db76aa9f..f489696d2 100644 --- a/rtgui/hsvequalizer.cc +++ b/rtgui/hsvequalizer.cc @@ -109,7 +109,7 @@ void HSVEqualizer::autoOpenCurve () bool active = hshape->openIfNonlinear(); if (!active) { - sshape->openIfNonlinear(); + active = sshape->openIfNonlinear(); } if (!active) { diff --git a/rtgui/labcurve.cc b/rtgui/labcurve.cc index 13ea00b74..f458fa717 100644 --- a/rtgui/labcurve.cc +++ b/rtgui/labcurve.cc @@ -299,31 +299,31 @@ void LCurve::autoOpenCurve () bool active = lshape->openIfNonlinear(); if (!active) { - ashape->openIfNonlinear(); + active = ashape->openIfNonlinear(); } if (!active) { - bshape->openIfNonlinear(); + active = bshape->openIfNonlinear(); } if (!active) { - ccshape->openIfNonlinear(); + active = ccshape->openIfNonlinear(); } if (!active) { - chshape->openIfNonlinear(); + active = chshape->openIfNonlinear(); } if (!active) { - lhshape->openIfNonlinear(); + active = lhshape->openIfNonlinear(); } if (!active) { - hhshape->openIfNonlinear(); + active = hhshape->openIfNonlinear(); } if (!active) { - lcshape->openIfNonlinear(); + active = lcshape->openIfNonlinear(); } if (!active) { diff --git a/rtgui/rgbcurves.cc b/rtgui/rgbcurves.cc index 75af43508..560ee7e57 100644 --- a/rtgui/rgbcurves.cc +++ b/rtgui/rgbcurves.cc @@ -117,7 +117,7 @@ void RGBCurves::autoOpenCurve () bool active = Rshape->openIfNonlinear(); if (!active) { - Gshape->openIfNonlinear(); + active = Gshape->openIfNonlinear(); } if (!active) { From d189def092e22329a870aebcac3bb983b70b2b6f Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 23:34:51 +0200 Subject: [PATCH 020/215] Removed "Polish (Latin Characters)" from generateTranslationDiffs --- tools/generateTranslationDiffs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tools/generateTranslationDiffs b/tools/generateTranslationDiffs index 8d9ec3954..45b43098c 100755 --- a/tools/generateTranslationDiffs +++ b/tools/generateTranslationDiffs @@ -43,7 +43,6 @@ if [[ $# = 0 ]]; then -not -iname ".*" \ -not -iname "$tmp" \ -not -iname "English (UK)" \ - -not -iname "Polish (Latin Characters)" \ | sort) else langFiles=("$@") @@ -120,9 +119,6 @@ case "${langFiles[@]}" in -e 'h;s/^[^;]*;//; s/Center/Centre/g; x;s/;.*//;G;s/\n/;/' >> English\ \(UK\) grep -Evi ".+;.*(color|behavior|center).*" "English (US)" | grep -Ev "^#" >> "English (UK)" ;;& - *"./Polish"*) printf "%s\n" "Creating Polish (Latin Characters) file" - sed 'y/ĄĆĘŁŃÓŚŹŻąćęłńóśźż/ACELNOSZZacelnoszz/' < Polish > "Polish (Latin Characters)" - ;;& esac ttot2="$(date +%s)" From 868ca35f5939cf08eb351729f6477d559c143643 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 23:36:06 +0200 Subject: [PATCH 021/215] Deleted unmaintained and obsolete translations --- rtdata/languages/Chinese (Traditional) | 2329 ------------------ rtdata/languages/Dansk | 2327 ------------------ rtdata/languages/Euskara | 2328 ------------------ rtdata/languages/Greek | 2327 ------------------ rtdata/languages/Hebrew | 2328 ------------------ rtdata/languages/Latvian | 2328 ------------------ rtdata/languages/Norsk BM | 2327 ------------------ rtdata/languages/Polish (Latin Characters) | 2334 ------------------- rtdata/languages/Serbian (Latin Characters) | 2329 ------------------ rtdata/languages/Slovak | 2330 ------------------ rtdata/languages/Suomi | 2328 ------------------ rtdata/languages/Turkish | 2327 ------------------ 12 files changed, 27942 deletions(-) delete mode 100644 rtdata/languages/Chinese (Traditional) delete mode 100644 rtdata/languages/Dansk delete mode 100644 rtdata/languages/Euskara delete mode 100644 rtdata/languages/Greek delete mode 100644 rtdata/languages/Hebrew delete mode 100644 rtdata/languages/Latvian delete mode 100644 rtdata/languages/Norsk BM delete mode 100644 rtdata/languages/Polish (Latin Characters) delete mode 100644 rtdata/languages/Serbian (Latin Characters) delete mode 100644 rtdata/languages/Slovak delete mode 100644 rtdata/languages/Suomi delete mode 100644 rtdata/languages/Turkish diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) deleted file mode 100644 index 4af6abbe4..000000000 --- a/rtdata/languages/Chinese (Traditional) +++ /dev/null @@ -1,2329 +0,0 @@ -#00 Chinese (Traditional) -#01 2008-07-29 Mingjui Liao - -BATCHQUEUE_AUTOSTART;Auto start -BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives -CURVEEDITOR_LINEAR;線性 -CURVEEDITOR_LOADDLGLABEL;正載入曲線... -CURVEEDITOR_SAVEDLGLABEL;正儲存曲線... -CURVEEDITOR_TOOLTIPLINEAR;重置曲線 -CURVEEDITOR_TOOLTIPLOAD;載入曲線 -CURVEEDITOR_TOOLTIPSAVE;儲存曲線 -DIRBROWSER_FOLDERS;文件夾 -EXIFFILTER_APERTURE;Aperture -EXIFFILTER_CAMERA;Camera -EXIFFILTER_FOCALLEN;Focal Length -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Lens -EXIFFILTER_SHUTTER;Shutter -EXIFPANEL_ADDEDIT;Add/Edit -EXIFPANEL_ADDEDITHINT;Add new tag or edit tag -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Enter value -EXIFPANEL_ADDTAGDLG_SELECTTAG;Select tag -EXIFPANEL_ADDTAGDLG_TITLE;Add/Edit Tag -EXIFPANEL_KEEP;Keep -EXIFPANEL_KEEPHINT;Keep the selected tags when writing output file -EXIFPANEL_REMOVE;Remove -EXIFPANEL_REMOVEHINT;Remove the selected tags when writing output file -EXIFPANEL_RESET;Reset -EXIFPANEL_RESETALL;Reset All -EXIFPANEL_RESETALLHINT;Reset all tags to their original values -EXIFPANEL_RESETHINT;Reset the selected tags to their original values -EXIFPANEL_SUBDIRECTORY;Subdirectory -FILEBROWSER_APPLYPROFILE;Apply profile -FILEBROWSER_CLEARPROFILE;Clear profile -FILEBROWSER_COPYPROFILE;Copy profile -FILEBROWSER_DELETEDLGLABEL;File delete confirmation -FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -FILEBROWSER_EMPTYTRASH;Empty Trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash -FILEBROWSER_PARTIALPASTEPROFILE;Partial paste -FILEBROWSER_PASTEPROFILE;Paste profile -FILEBROWSER_POPUPCANCELJOB;Cancel job -FILEBROWSER_POPUPMOVEEND;Move to end of queue -FILEBROWSER_POPUPMOVEHEAD;Move to head of queue -FILEBROWSER_POPUPOPEN;Open -FILEBROWSER_POPUPOPENINEDITOR;Open in Editor -FILEBROWSER_POPUPPROCESS;Put to processing queue -FILEBROWSER_POPUPREMOVE;Remove from filesystem -FILEBROWSER_POPUPRENAME;Rename -FILEBROWSER_POPUPSELECTALL;Select all -FILEBROWSER_POPUPTRASH;Move to trash -FILEBROWSER_POPUPUNRANK;Unrank -FILEBROWSER_POPUPUNTRASH;Remove from trash -FILEBROWSER_RENAMEDLGLABEL;Rename file -FILEBROWSER_SHOWDIRHINT;Show all images of the directory -FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star -FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star -FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star -FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star -FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star -FILEBROWSER_SHOWTRASHHINT;Show content of the trash -FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_ZOOMINHINT;Increase thumbnail size -FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size -GENERAL_ABOUT;關於 -GENERAL_AFTER;After -GENERAL_BEFORE;Before -GENERAL_CANCEL;取消 -GENERAL_DISABLE;關閉 -GENERAL_DISABLED;已關閉 -GENERAL_ENABLE;啟用 -GENERAL_ENABLED;已開啟 -GENERAL_LANDSCAPE;橫向 -GENERAL_NA;不適用 -GENERAL_NO;否 -GENERAL_OK;確定 -GENERAL_PORTRAIT;縱向 -GENERAL_SAVE;儲存存 -GENERAL_UNCHANGED;(Unchanged) -HISTOGRAM_TOOLTIP_B;顯示/隱藏 藍色直方圖 -HISTOGRAM_TOOLTIP_G;顯示/隱藏 綠色直方圖 -HISTOGRAM_TOOLTIP_L;顯示/隱藏e CIELAB 亮度直方圖 -HISTOGRAM_TOOLTIP_R;顯示/隱藏 紅色直方圖 -HISTORY_CHANGED;Changed -HISTORY_CUSTOMCURVE;自定義曲線 -HISTORY_FROMCLIPBOARD;From clipboard -HISTORY_LABEL;歷史 -HISTORY_MSG_1;圖片載入完 -HISTORY_MSG_2;配置載入完 -HISTORY_MSG_3;配置改變 -HISTORY_MSG_4;歷史流覽 -HISTORY_MSG_5;亮度 -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;光強亮度 -HISTORY_MSG_15;光強對比度 -HISTORY_MSG_16;光強黑 -HISTORY_MSG_17;光強亮部壓縮 -HISTORY_MSG_18;光強暗部壓縮 -HISTORY_MSG_19;光強曲線 -HISTORY_MSG_20;銳化 -HISTORY_MSG_21;銳化半徑 -HISTORY_MSG_22;銳化程度 -HISTORY_MSG_23;銳化闕值 -HISTORY_MSG_24;僅銳化邊緣 -HISTORY_MSG_25;銳化邊緣半徑 -HISTORY_MSG_26;銳化邊緣容差 -HISTORY_MSG_27;銳化光暈控制 -HISTORY_MSG_28;光暈控制量 -HISTORY_MSG_29;銳化方式 -HISTORY_MSG_30;重疊半徑 -HISTORY_MSG_31;重疊程度 -HISTORY_MSG_32;重疊衰減 -HISTORY_MSG_33;重疊次數 -HISTORY_MSG_34;避免色彩溢出 -HISTORY_MSG_35;飽和度限制器 -HISTORY_MSG_36;飽和度限制 -HISTORY_MSG_37;色彩增益 -HISTORY_MSG_38;拍平衡方式 -HISTORY_MSG_39;色溫 -HISTORY_MSG_40;白平衡微調 -HISTORY_MSG_41;色彩偏移 "A" -HISTORY_MSG_42;色彩偏移 "B" -HISTORY_MSG_43;光強降噪 -HISTORY_MSG_44;光強降噪半徑 -HISTORY_MSG_45;光強降噪邊緣容差 -HISTORY_MSG_46;色彩降噪 -HISTORY_MSG_47;色彩降噪半徑 -HISTORY_MSG_48;色彩降噪邊緣容差 -HISTORY_MSG_49;色彩降噪邊緣敏感度 -HISTORY_MSG_50;暗部/亮部工具 -HISTORY_MSG_51;亮部增益 -HISTORY_MSG_52;暗部增益 -HISTORY_MSG_53;亮部色度範圍 -HISTORY_MSG_54;暗部色度範圍 -HISTORY_MSG_55;局部對比度 -HISTORY_MSG_56;暗部/亮部半徑 -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;C/A矯正 -HISTORY_MSG_66;高光還原 -HISTORY_MSG_67;高光還原程度 -HISTORY_MSG_68;高光還原方式 -HISTORY_MSG_69;工作色彩空間 -HISTORY_MSG_70;輸出色彩空間 -HISTORY_MSG_71;輸入色參空間 -HISTORY_MSG_72;邊暈矯正 -HISTORY_MSG_73;通道混合器 -HISTORY_MSG_74;調整大小比例 -HISTORY_MSG_75;調整大小方式 -HISTORY_MSG_76;Exif Metadata -HISTORY_MSG_77;IPTC Metadata -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;新建快照 -HISTORY_SNAPSHOT;快照 -HISTORY_SNAPSHOTS;系列快照 -IPTCPANEL_CATEGORY;Category -IPTCPANEL_CITY;City -IPTCPANEL_COPYHINT;Copy IPTC settings to clipboard -IPTCPANEL_COUNTRY;Country -IPTCPANEL_CREDIT;Credit -IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit). -IPTCPANEL_DATECREATED;Date Created -IPTCPANEL_EMBEDDED;Embedded -IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file -IPTCPANEL_HEADLINE;Headline -IPTCPANEL_INSTRUCTIONS;Instructions -IPTCPANEL_KEYWORDS;Keywords -IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard -IPTCPANEL_RESET;Reset -IPTCPANEL_RESETHINT;Reset to profile default -IPTCPANEL_SOURCE;Source -IPTCPANEL_TITLE;Title -MAIN_BUTTON_PREFERENCES;參數設置 -MAIN_BUTTON_PUTTOQUEUE;Put to queue -MAIN_BUTTON_SAVE;儲存圖片 -MAIN_BUTTON_SENDTOEDITOR;Send to editor -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;該文件已存在. -MAIN_MSG_CANNOTLOAD;無法載入圖片 -MAIN_MSG_CANNOTSAVE;檔儲存中出錯 -MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog. -MAIN_MSG_NAVIGATOR;Navigator -MAIN_MSG_QOVERWRITE;是否覆蓋? -MAIN_TAB_COLOR;Color -MAIN_TAB_DETAIL;Detail -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Exposure -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;轉換 -MAIN_TOOLTIP_HIDEHP;顯示/隱藏左面板 (包含歷史, shortcut key: H)) -MAIN_TOOLTIP_INDCLIPPEDH;高光溢出提示 -MAIN_TOOLTIP_INDCLIPPEDS;暗部不足提示 -MAIN_TOOLTIP_QINFO;圖片快捷資訊 -MAIN_TOOLTIP_TOGGLE;Toggle before/after view -PARTIALPASTE_BASICGROUP;Basic settings -PARTIALPASTE_CACORRECTION;C/A correction -PARTIALPASTE_COARSETRANS;90 deg rotation / flipping -PARTIALPASTE_COLORGROUP;Color related settings -PARTIALPASTE_COMPOSITIONGROUP;Composition settings -PARTIALPASTE_CROP;Crop -PARTIALPASTE_DIALOGLABEL;Partial paste processing profile -PARTIALPASTE_DISTORTION;Distortion correction -PARTIALPASTE_EXIFCHANGES;Changes to exif data -PARTIALPASTE_EXPOSURE;Exposure -PARTIALPASTE_ICMSETTINGS;ICM settings -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Lens related settings -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Resize -PARTIALPASTE_ROTATION;Rotation -PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights -PARTIALPASTE_SHARPENING;Sharpening -PARTIALPASTE_VIGNETTING;Vignetting correction -PARTIALPASTE_WHITEBALANCE;White balance -PREFERENCES_APPLNEXTSTARTUP;下次啟動生效 -PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries -PREFERENCES_CACHEOPTS;Cache Options -PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height -PREFERENCES_CLIPPINGIND;高光提示 -PREFERENCES_DATEFORMAT;日期格式 -PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DIRHOME;用戶檔路徑 -PREFERENCES_DIRLAST;上次訪問路徑 -PREFERENCES_DIROTHER;其他 -PREFERENCES_DIRSELECTDLG;啟動時選擇圖片路徑... -PREFERENCES_DIRSOFTWARE;軟體安裝路徑 -PREFERENCES_EXTERNALEDITOR;External editor -PREFERENCES_FBROWSEROPTS;檔流覽選項 -PREFERENCES_FILEFORMAT;檔格式 -PREFERENCES_FORIMAGE;用於圖片檔 -PREFERENCES_FORRAW;用於Raw文件 -PREFERENCES_GIMPPATH;GIMP installation directory -PREFERENCES_HLTHRESHOLD;高光溢出闕值 -PREFERENCES_ICCDIR;ICC配置路徑 -PREFERENCES_IMPROCPARAMS;預設圖片處理參數 -PREFERENCES_INTENT_ABSOLUTE;絕對色彩模式 -PREFERENCES_INTENT_PERCEPTUAL;感知模式 -PREFERENCES_INTENT_RELATIVE;相對色彩模式 -PREFERENCES_INTENT_SATURATION;飽和度 -PREFERENCES_OUTDIR;輸出路徑 -PREFERENCES_OUTDIRFOLDER;Save to folder -PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the seledted folder -PREFERENCES_OUTDIRTEMPLATE;Use Template -PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Parsed Extensions -PREFERENCES_PARSEDEXTADD;Add Extension -PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list -PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list -PREFERENCES_PROFILEHANDLING;Processing Profile Handling -PREFERENCES_PROFILELOADPR;Profile Loading Priority -PREFERENCES_PROFILEPRCACHE;Profile in Cache -PREFERENCES_PROFILEPRFILE;Profile Next to the Input File -PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache -PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File -PREFERENCES_PSPATH;Adobe Photoshop installation directory -PREFERENCES_SELECTLANG;選擇語言 -PREFERENCES_SHOWBASICEXIF;顯示基本Exif資訊 -PREFERENCES_SHOWDATETIME;顯示時間日期 -PREFERENCES_SHTHRESHOLD;暗部不足闕值 -PREFERENCES_STARTUPIMDIR;啟動時路徑 -PREFERENCES_TAB_BROWSER;檔流覽器 -PREFERENCES_TAB_COLORMGR;色彩管理 -PREFERENCES_TAB_GENERAL;一般 -PREFERENCES_TAB_IMPROC;圖片處理 -PROFILEPANEL_LABEL;處理參數配置 -PROFILEPANEL_LOADDLGLABEL;載入處理參數為... -PROFILEPANEL_PCUSTOM;自定義 -PROFILEPANEL_PFILE;由文件 -PROFILEPANEL_PLASTSAVED;上次儲存 -PROFILEPANEL_SAVEDLGLABEL;儲存處理參數為... -PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard -PROFILEPANEL_TOOLTIPLOAD;由檔載入配置 -PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard -PROFILEPANEL_TOOLTIPSAVE;儲存當前配置 -PROGRESSBAR_LOADING;圖片載入中... -PROGRESSBAR_LOADJPEG;JPEG載入中... -PROGRESSBAR_LOADPNG;PNG載入中... -PROGRESSBAR_LOADTIFF;TIFF載入中... -PROGRESSBAR_PROCESSING;圖片處理中... -PROGRESSBAR_READY;就緒 -PROGRESSBAR_SAVEJPEG;JPEG儲存中... -PROGRESSBAR_SAVEPNG;PNG儲存中... -PROGRESSBAR_SAVETIFF;TIFF儲存中... -QINFO_ISO;ISO -QINFO_NOEXIF;Exif資料不可用. -SAVEDLG_FILEFORMAT;檔格式 -SAVEDLG_JPEGQUAL;JPEG品質 -SAVEDLG_PUTTOQUEUE;Put into processing queue -SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue -SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue -SAVEDLG_SAVEIMMEDIATELY;Save immediately -SAVEDLG_SAVESPP;隨圖片儲存處理參數 -TOOLBAR_TOOLTIP_CROP;剪裁選擇 (shortcut key: C) -TOOLBAR_TOOLTIP_HAND;手形工具 (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;基準線選擇 (shortcut key: S) -TOOLBAR_TOOLTIP_WB;白平衡點 (shortcut key: W) -TP_CACORRECTION_BLUE;藍 -TP_CACORRECTION_LABEL;C/A 矯正 -TP_CACORRECTION_RED;紅 -TP_CHMIXER_BLUE;藍 -TP_CHMIXER_GREEN;綠 -TP_CHMIXER_LABEL;通道混合 -TP_CHMIXER_RED;紅 -TP_COARSETRAF_TOOLTIP_HFLIP;水準翻轉 -TP_COARSETRAF_TOOLTIP_ROTLEFT;左轉 -TP_COARSETRAF_TOOLTIP_ROTRIGHT;右轉 -TP_COARSETRAF_TOOLTIP_VFLIP;豎直翻轉 -TP_CROP_FIXRATIO;比例: -TP_CROP_GTDIAGONALS;對角線法則 -TP_CROP_GTNONE;無 -TP_CROP_GTRULETHIRDS;1/3法則 -TP_CROP_GUIDETYPE;輔助方式: -TP_CROP_H;高 -TP_CROP_LABEL;剪裁 -TP_CROP_W;寬 -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;程度 -TP_DISTORTION_LABEL;畫面歪曲像差 -TP_EXPOSURE_AUTOLEVELS;自動色階 -TP_EXPOSURE_BLACKLEVEL;黑 -TP_EXPOSURE_BRIGHTNESS;亮度 -TP_EXPOSURE_CLIP;高光 -TP_EXPOSURE_COMPRHIGHLIGHTS;亮部壓縮 -TP_EXPOSURE_COMPRSHADOWS;暗部壓縮 -TP_EXPOSURE_CONTRAST;對比度 -TP_EXPOSURE_CURVEEDITOR;色調曲線 -TP_EXPOSURE_EXPCOMP;曝光補償 -TP_EXPOSURE_LABEL;曝光 -TP_HLREC_CIELAB;CIELab Blending -TP_HLREC_COLOR;色彩延伸 -TP_HLREC_LABEL;高光挽回 -TP_HLREC_LUMINANCE;亮度挽回 -TP_HLREC_METHOD;方式: -TP_ICM_INPUTCAMERA;相機預設 -TP_ICM_INPUTCUSTOM;自定義 -TP_ICM_INPUTDLGLABEL;選擇輸入ICC配置... -TP_ICM_INPUTEMBEDDED;如可能,使用內置 -TP_ICM_INPUTPROFILE;輸入配置 -TP_ICM_LABEL;ICM -TP_ICM_NOICM;No ICM: sRGB配置 -TP_ICM_OUTPUTPROFILE;輸出配置 -TP_ICM_WORKINGPROFILE;當前配置 -TP_RESIZE_H;高: -TP_RESIZE_HEIGHT;Height -TP_RESIZE_LABEL;調整大小 -TP_RESIZE_METHOD;方式: -TP_RESIZE_NEAREST;最近點 -TP_RESIZE_SCALE;比例 -TP_RESIZE_SPECIFY;Specify: -TP_RESIZE_W;寬: -TP_RESIZE_WIDTH;Width -TP_ROTATE_DEGREE;角度 -TP_ROTATE_LABEL;旋轉 -TP_ROTATE_SELECTLINE; 選擇基準線 -TP_SHADOWSHLIGHTS_HIGHLIGHTS;亮部 -TP_SHADOWSHLIGHTS_HLTONALW;色調範圍 -TP_SHADOWSHLIGHTS_LABEL;暗部/亮部 -TP_SHADOWSHLIGHTS_LOCALCONTR;局部對比度 -TP_SHADOWSHLIGHTS_RADIUS;半徑 -TP_SHADOWSHLIGHTS_SHADOWS;陰影 -TP_SHADOWSHLIGHTS_SHTONALW;色調範圍 -TP_SHARPENING_AMOUNT;程度 -TP_SHARPENING_EDRADIUS;半徑 -TP_SHARPENING_EDTOLERANCE;邊緣容差 -TP_SHARPENING_HALOCONTROL;光暈控制 -TP_SHARPENING_HCAMOUNT;程度 -TP_SHARPENING_LABEL;銳化 -TP_SHARPENING_METHOD;方式 -TP_SHARPENING_ONLYEDGES;僅銳化邊緣 -TP_SHARPENING_RADIUS;半徑 -TP_SHARPENING_RLD;左右重疊 -TP_SHARPENING_RLD_AMOUNT;程度 -TP_SHARPENING_RLD_DAMPING;衰減 -TP_SHARPENING_RLD_ITERATIONS;迭代 -TP_SHARPENING_THRESHOLD;闕值 -TP_SHARPENING_USM;銳化 -TP_VIGNETTING_AMOUNT;程度 -TP_VIGNETTING_LABEL;邊暈矯正 -TP_VIGNETTING_RADIUS;半徑 -TP_WBALANCE_AUTO;自動 -TP_WBALANCE_CAMERA;相機 -TP_WBALANCE_CUSTOM;自定義 -TP_WBALANCE_GREEN;色度 -TP_WBALANCE_LABEL;白平衡 -TP_WBALANCE_METHOD;方式 -TP_WBALANCE_SIZE;大小: -TP_WBALANCE_SPOTWB;WB點 -TP_WBALANCE_TEMPERATURE;色溫 - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AUTO;Automatic -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD;Method -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_FALSECOLOR;False color suppression steps -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_LANCZOS;Lanczos -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk deleted file mode 100644 index eb1198e74..000000000 --- a/rtdata/languages/Dansk +++ /dev/null @@ -1,2327 +0,0 @@ -#01 2009-06-27 krengbo - -CURVEEDITOR_LINEAR;Lineær -CURVEEDITOR_LOADDLGLABEL;Indlæs kurve... -CURVEEDITOR_SAVEDLGLABEL;Gem kurve... -CURVEEDITOR_TOOLTIPLINEAR;Nulstil kurve til lineær -CURVEEDITOR_TOOLTIPLOAD;Indlæs kurve fra fil -CURVEEDITOR_TOOLTIPSAVE;Gem nuværende kurve -DIRBROWSER_FOLDERS;Mapper -EXIFFILTER_APERTURE;Blænde -EXIFFILTER_CAMERA;Kamera -EXIFFILTER_FOCALLEN;Brændvidde -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Objektiv -EXIFFILTER_SHUTTER;Lukkertid -EXIFPANEL_ADDEDIT;Tilføj/Rediger -EXIFPANEL_ADDEDITHINT;Tilføj nyt tags eller rediger tags -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Indtast værdi -EXIFPANEL_ADDTAGDLG_SELECTTAG;Vælg tags -EXIFPANEL_ADDTAGDLG_TITLE;Tilføj/Rediger tags -EXIFPANEL_KEEP;Bevar -EXIFPANEL_KEEPHINT;Bevar de valgte tags under skrivning af fil -EXIFPANEL_REMOVE;Fjern -EXIFPANEL_REMOVEHINT;Fjern de valgte tags under skrivning af fil -EXIFPANEL_RESET;Gendan -EXIFPANEL_RESETALL;Gendan alt -EXIFPANEL_RESETALLHINT;Gendan alle tags til de oprindelige værdier -EXIFPANEL_RESETHINT;Gendan valgte tags til de oprindelige værdier -EXIFPANEL_SUBDIRECTORY;Undermappe -FILEBROWSER_APPLYPROFILE;Anvend profil -FILEBROWSER_CLEARPROFILE;Ryd profil -FILEBROWSER_COPYPROFILE;Kopier profil -FILEBROWSER_DELETEDLGLABEL;Bekræft sletning af fil -FILEBROWSER_DELETEDLGMSG;Er du sikker på, at du vil slette de %1 valgte filer? -FILEBROWSER_EMPTYTRASH;Tøm papirkurv -FILEBROWSER_EMPTYTRASHHINT;Slet filerne i papirkurv permanent -FILEBROWSER_PARTIALPASTEPROFILE;Indsæt delvist -FILEBROWSER_PASTEPROFILE;Indsæt profil -FILEBROWSER_POPUPCANCELJOB;Annuler opgave -FILEBROWSER_POPUPMOVEEND;Flyt til slutning af køen -FILEBROWSER_POPUPMOVEHEAD;Flyt til starten af køen -FILEBROWSER_POPUPOPEN;Åbn -FILEBROWSER_POPUPOPENINEDITOR;Åbn i Editor -FILEBROWSER_POPUPPROCESS;Sæt i opgavekø -FILEBROWSER_POPUPREMOVE;fjern fra filsystem -FILEBROWSER_POPUPRENAME;Omdøb -FILEBROWSER_POPUPSELECTALL;Vælg alt -FILEBROWSER_POPUPTRASH;Flyt til papirkurv -FILEBROWSER_POPUPUNRANK;Fjern vurdering -FILEBROWSER_POPUPUNTRASH;Fjern fra papirkurv -FILEBROWSER_RENAMEDLGLABEL;Omdøb fil -FILEBROWSER_SHOWDIRHINT;Vis alle billeder i mappen -FILEBROWSER_SHOWRANK1HINT;Vis billeder vurderet med 1 stjerne -FILEBROWSER_SHOWRANK2HINT;Vis billeder vurderet med 2 stjerner -FILEBROWSER_SHOWRANK3HINT;Vis billeder vurderet med 3 stjerner -FILEBROWSER_SHOWRANK4HINT;Vis billeder vurderet med 4 stjerner -FILEBROWSER_SHOWRANK5HINT;Vis billeder vurderet med 5 stjerner -FILEBROWSER_SHOWTRASHHINT;Vis indhold i papirkurven -FILEBROWSER_SHOWUNRANKHINT;Vis billeder uden vurdering -FILEBROWSER_THUMBSIZE;Miniaturestr. -FILEBROWSER_ZOOMINHINT;Gør miniaturer større -FILEBROWSER_ZOOMOUTHINT;Gør miniaturer mindre -GENERAL_ABOUT;Om -GENERAL_CANCEL;Annuler -GENERAL_DISABLE;Fravælg -GENERAL_DISABLED;Fravalgt -GENERAL_ENABLE;Vælg -GENERAL_ENABLED;Valgt -GENERAL_LANDSCAPE;Bredformat -GENERAL_NA;Ikke muligt -GENERAL_NO;Nej -GENERAL_OK;OK -GENERAL_PORTRAIT;Højformat -GENERAL_SAVE;Gem -HISTOGRAM_TOOLTIP_B;Vis/skjul blåt histogram -HISTOGRAM_TOOLTIP_G;Vis/skjul grønt histogram -HISTOGRAM_TOOLTIP_L;Vis/skjul CIELAB histogram -HISTOGRAM_TOOLTIP_R;Vis/skjul rødt histogram -HISTORY_CHANGED;Ændret -HISTORY_CUSTOMCURVE;Tilpasset kurve -HISTORY_FROMCLIPBOARD;Fra udklipsholder -HISTORY_LABEL;Historie -HISTORY_MSG_1;Foto indlæst -HISTORY_MSG_2;Profil indlæst -HISTORY_MSG_3;Profil ændret -HISTORY_MSG_4;Gennemse historie -HISTORY_MSG_5;Lysstyrke -HISTORY_MSG_6;Kontrast -HISTORY_MSG_7;Sort -HISTORY_MSG_8;Eksponeringskompensation -HISTORY_MSG_9;Kompensation af højlys -HISTORY_MSG_10;Skyggereduktion -HISTORY_MSG_11;Tonekurve -HISTORY_MSG_12;Autoeksponering -HISTORY_MSG_13;Eksponeringsadvarsel -HISTORY_MSG_14;Lysstyrke -HISTORY_MSG_15;Kontrast -HISTORY_MSG_16;Sort -HISTORY_MSG_17;Reduktion af højlys. -HISTORY_MSG_18;Reduktion af skygger -HISTORY_MSG_19;Kurve -HISTORY_MSG_20;Skarphed -HISTORY_MSG_21;Skarphed radius -HISTORY_MSG_22;Skarphed mængde -HISTORY_MSG_23;Skarphed tærskel -HISTORY_MSG_24;Gør kun kanter skarpere -HISTORY_MSG_25;Skarphed kantdetektion radius -HISTORY_MSG_26;Skarphed kantolerance -HISTORY_MSG_27;Skarphed halo-kontrol -HISTORY_MSG_28;Halo-kontrol mængde -HISTORY_MSG_29;Skarphedsmetode -HISTORY_MSG_30;Udfoldning radius -HISTORY_MSG_31;Udfoldning mængde -HISTORY_MSG_32;Udfoldning dæmpning -HISTORY_MSG_33;Udfoldning gentagelser -HISTORY_MSG_34;Undgå farveklipning -HISTORY_MSG_35;Mætningsbegrænser -HISTORY_MSG_36;Mætningsgrænse -HISTORY_MSG_37;Forstærk farver -HISTORY_MSG_38;Hvidbalancemetode -HISTORY_MSG_39;Farvetemoeratur -HISTORY_MSG_40;Hvidbalance nuance -HISTORY_MSG_41;Farveskift "A" -HISTORY_MSG_42;Farveskift "B" -HISTORY_MSG_43;Begræns lysstøj -HISTORY_MSG_44;Lysstøj radius -HISTORY_MSG_45;Lysstæj kanttolerance -HISTORY_MSG_46;Begræns farvestøj -HISTORY_MSG_47;Farvestøj radius -HISTORY_MSG_48;Farvestøj kanttolerance -HISTORY_MSG_49;Kantfølsomhed farvestøj -HISTORY_MSG_50;Skygger/højlys værktøj -HISTORY_MSG_51;Forstærk højlys -HISTORY_MSG_52;Forstærk skygger -HISTORY_MSG_53;Højlys toneomfang -HISTORY_MSG_54;Skygger toneomfang -HISTORY_MSG_55;Lokal kontrast -HISTORY_MSG_56;Skygger/højlys radius -HISTORY_MSG_57;Grov rotering -HISTORY_MSG_58;Vend vandret -HISTORY_MSG_59;Vend lodret -HISTORY_MSG_60;Roter -HISTORY_MSG_61;Roter -HISTORY_MSG_62;Ret objektivfejl -HISTORY_MSG_63;Snapshot valgt -HISTORY_MSG_64;Beskær billede -HISTORY_MSG_65;Kromatisk aberration -HISTORY_MSG_66;Red højlys -HISTORY_MSG_67;Red højlys mængde -HISTORY_MSG_68;Red højlys metode -HISTORY_MSG_69;Nuværende farverum -HISTORY_MSG_70;Output farverum -HISTORY_MSG_71;Input farverum -HISTORY_MSG_72;Vignettering -HISTORY_MSG_73;Kanalmixer -HISTORY_MSG_74;Skift størrelse mål -HISTORY_MSG_75;Skift størrelse metode -HISTORY_MSG_76;Exif metadata -HISTORY_MSG_77;IPTC metadata -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;Tilføj... -HISTORY_SNAPSHOT;Snapshot -HISTORY_SNAPSHOTS;Snapshots -IPTCPANEL_CATEGORY;Kategori -IPTCPANEL_CITY;By -IPTCPANEL_COPYHINT;Kopier IPTC-indstillinger til udklipsholder. -IPTCPANEL_COUNTRY;Land -IPTCPANEL_CREDIT;Anerkendelse -IPTCPANEL_CREDITHINT;Identificerer den, der stiller billedet til rådighed, ikke nødvendigvis ejeren/skaberen. -IPTCPANEL_DATECREATED;Dato skabt -IPTCPANEL_EMBEDDED;Indlejret -IPTCPANEL_EMBEDDEDHINT;Genskab til indlejrede IPTC-data i billedfilen -IPTCPANEL_HEADLINE;Overskrift -IPTCPANEL_INSTRUCTIONS;Instruktioner -IPTCPANEL_KEYWORDS;Søgeord -IPTCPANEL_PASTEHINT;Indsæt IPTC-indstillinger fra udklipsholder -IPTCPANEL_RESET;Genskab -IPTCPANEL_RESETHINT;Genskab til profilstandard -IPTCPANEL_SOURCE;Kilde -IPTCPANEL_TITLE;Titel -MAIN_BUTTON_PREFERENCES;Indstillinger -MAIN_BUTTON_SAVE;Gem billede -MAIN_BUTTON_SENDTOEDITOR;Send til redigeringsprogram -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Filen eksisterer allerede. -MAIN_MSG_CANNOTLOAD;Kan ikke indlæse billede -MAIN_MSG_CANNOTSAVE;Kan ikke gemme filen -MAIN_MSG_CANNOTSTARTEDITOR;Kan ikke starte redigeringsprogram. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Brug venligst den korrekte sti i dialogboksen "Indstillinger". -MAIN_MSG_QOVERWRITE;Vil du overskrive? -MAIN_TAB_COLOR;Farver -MAIN_TAB_DETAIL;Detaljer -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Eksponering -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;Justér -MAIN_TOOLTIP_HIDEHP;Vis/skjul panelet til venstre (heriblandt Historie, genvejstast: H) -MAIN_TOOLTIP_INDCLIPPEDH;Markér udbrændte højlys -MAIN_TOOLTIP_INDCLIPPEDS;Markér udbrændte skygger -MAIN_TOOLTIP_QINFO;Udvalgte oplysninger om billedet -PARTIALPASTE_BASICGROUP;Grundlæggende indstillinger -PARTIALPASTE_CACORRECTION;Kromatisk aberration -PARTIALPASTE_COARSETRANS;Drej/vend 90 grader -PARTIALPASTE_COLORGROUP;Farverelaterede indstillinger -PARTIALPASTE_COMPOSITIONGROUP;Kompositionsindstillinger -PARTIALPASTE_CROP;Beskær -PARTIALPASTE_DIALOGLABEL;Delvist indsætte bearbejdningsprofil -PARTIALPASTE_DISTORTION;Fortegning -PARTIALPASTE_EXIFCHANGES;Ændringer til exif-data -PARTIALPASTE_EXPOSURE;Eksponering -PARTIALPASTE_ICMSETTINGS;ICM-indstillinger -PARTIALPASTE_IPTCINFO;IPTC-info -PARTIALPASTE_LENSGROUP;Objektivrelaterede indstillinger -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Ret størrelse -PARTIALPASTE_ROTATION;Rotér -PARTIALPASTE_SHADOWSHIGHLIGHTS;Skygger/Højlys -PARTIALPASTE_SHARPENING;Skarphed -PARTIALPASTE_VIGNETTING;Vignettering -PARTIALPASTE_WHITEBALANCE;Hvidbalance -PREFERENCES_APPLNEXTSTARTUP;Anvendes ved næste opstart -PREFERENCES_CACHEMAXENTRIES;Maksimalt antal indskrivninger i cache -PREFERENCES_CACHEOPTS;Cache-indstillinger -PREFERENCES_CACHETHUMBHEIGHT;Maksimal miniaturehøjde -PREFERENCES_CLIPPINGIND;Indikator for udbrændte områder -PREFERENCES_DATEFORMAT;Datoformat -PREFERENCES_DATEFORMATHINT;Du kan bruge følgende formatindstillinger:\n%y : år\n%m : måned\n%d : dag\n\nDet typiske datoformat i danmark er:\n%d/%m/%y -PREFERENCES_DIRHOME;Standardmappe -PREFERENCES_DIRLAST;Sidst anvendte mappe -PREFERENCES_DIROTHER;Andet -PREFERENCES_DIRSELECTDLG;Vælg startmappe... -PREFERENCES_DIRSOFTWARE;Installationsmappe -PREFERENCES_EXTERNALEDITOR;Eksternt redigeringsprogram -PREFERENCES_FBROWSEROPTS;Indstllinger til filbrowser -PREFERENCES_FILEFORMAT;Filformat -PREFERENCES_FORIMAGE;Til billedfiler -PREFERENCES_FORRAW;Til RAW-filer -PREFERENCES_GIMPPATH;Installationsmappe til GIMP -PREFERENCES_HLTHRESHOLD;Tærskel for udbrændte højlys -PREFERENCES_ICCDIR;Mappe med ICC-profiler -PREFERENCES_IMPROCPARAMS;Normale billedbehandlingsparametre -PREFERENCES_INTENT_ABSOLUTE;Absolut Colorimetrisk -PREFERENCES_INTENT_PERCEPTUAL;Opfattelsesorienteret -PREFERENCES_INTENT_RELATIVE;Relativ Colorimetrisk -PREFERENCES_INTENT_SATURATION;Mætning -PREFERENCES_OUTDIR;Output-mappe -PREFERENCES_OUTDIRFOLDER;Gem i mappe -PREFERENCES_OUTDIRFOLDERHINT;Læg det gemte billede i den valgte mappe -PREFERENCES_OUTDIRTEMPLATE;Brug skabelon -PREFERENCES_OUTDIRTEMPLATEHINT;Du kan benytte følgende formatstrenge:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nDisse formatstrenge henviser til mapperne og undermapperne for RAW-filens sti.\n\nFx, hvis filen /Users\Peter\Pictures/02-09-2006/dsc0012.nefer blevet åbnet, er betydningen af formatstrengen:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/Users\Peter\Pictures/02-09-2006, %p2=/Users\Peter\Pictures, p3=/Users\Peter\Pictures, ...\n\nhvis du vil gemme output-billedet i samme mappe som originalen, skal du skrive:\n%p1/%f\n\nHvis du vil gemme output-billedet i en mappe, der hedder 'konverteret', som er placeret i originalens mappe, skal du skrive:\n%p1/konverteret/%f\n\nHvis du vil gemme output-billedet i mappen Users\Peter\Pictures\konverteret og beholde den samme undermappe med dato, skal du skrive:\n%p2/konverteret/%d1/%f -PREFERENCES_PARSEDEXT;Indlæste filtyper -PREFERENCES_PARSEDEXTADD;Tilføj filtype -PREFERENCES_PARSEDEXTADDHINT;Indtast en filendelse, og klik her for at tilføje til listen -PREFERENCES_PARSEDEXTDELHINT;Slet valgte filtype fra listen -PREFERENCES_PROFILEHANDLING;Bearbejder profilbehandling -PREFERENCES_PROFILELOADPR;Profilindlæsningsrækkefølge -PREFERENCES_PROFILEPRCACHE;Profil i cache -PREFERENCES_PROFILEPRFILE;Profil sammen med input-filen -PREFERENCES_PROFILESAVECACHE;Gem bearbejdningsparametre i cache -PREFERENCES_PROFILESAVEINPUT;Gem bearbejdningsparametre sammen med input-filen -PREFERENCES_PSPATH;Installationsmappe til Adobe Photoshop -PREFERENCES_SELECTLANG;Vælg sprog -PREFERENCES_SHOWBASICEXIF;Vis grundlæggende exif-data -PREFERENCES_SHOWDATETIME;Vis dato og tid -PREFERENCES_SHTHRESHOLD;Tærskel for udbrændte skygger -PREFERENCES_STARTUPIMDIR;Billedmappe ved opstart -PREFERENCES_TAB_BROWSER;Filbrowser -PREFERENCES_TAB_COLORMGR;Farvestyring -PREFERENCES_TAB_GENERAL;Generelt -PREFERENCES_TAB_IMPROC;Billedbehandling -PROFILEPANEL_LABEL;Efterbehandlingsprofiler -PROFILEPANEL_LOADDLGLABEL;Indlæs efterbehandlingsparametre... -PROFILEPANEL_PCUSTOM;Brugervalgt -PROFILEPANEL_PFILE;Fra fil -PROFILEPANEL_PLASTSAVED;Senest gemte -PROFILEPANEL_SAVEDLGLABEL;Gem efterbehandlingsparametre... -PROFILEPANEL_TOOLTIPCOPY;Kopier nuværende profil til udklipsholder -PROFILEPANEL_TOOLTIPLOAD;Indlæs en profil fra fil -PROFILEPANEL_TOOLTIPPASTE; Indsæt profil fra udklipsholder -PROFILEPANEL_TOOLTIPSAVE;Gem nuværende profil -PROGRESSBAR_LOADING;Indlæser billede... -PROGRESSBAR_LOADJPEG;Indlæser JPEG-fil... -PROGRESSBAR_LOADPNG;Indlæser PNG-fil... -PROGRESSBAR_LOADTIFF;Indlæser TIFF-fil... -PROGRESSBAR_PROCESSING;bearbejder billede... -PROGRESSBAR_READY;Klar -PROGRESSBAR_SAVEJPEG;Gemmer JPEG-fil... -PROGRESSBAR_SAVEPNG;Gemmer PNG-fil... -PROGRESSBAR_SAVETIFF;Gemmer TIFF-fil... -QINFO_ISO;ISO -QINFO_NOEXIF;Exif-data ikke tilgængelig. -SAVEDLG_FILEFORMAT;Filformat -SAVEDLG_JPEGQUAL;JPEG-kvalitet -SAVEDLG_PUTTOQUEUE;Sæt i bearbejdningskø -SAVEDLG_PUTTOQUEUEHEAD;Sæt i begyndelsen af bearbejdningskøen -SAVEDLG_PUTTOQUEUETAIL;Sæt i enden af bearbejdningskøen -SAVEDLG_SAVEIMMEDIATELY;Gem med det samme -SAVEDLG_SAVESPP;Gem bearbejdningsparametre med billede -TOOLBAR_TOOLTIP_CROP;Beskær markering (Genvejstast: C) -TOOLBAR_TOOLTIP_HAND;Håndværktøj (Genvejstast: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Ret op (Genvejstast: S) -TOOLBAR_TOOLTIP_WB;Vælg hvidbalance (Genvejstast: W) -TP_CACORRECTION_BLUE;Blå -TP_CACORRECTION_LABEL;Kromatisk aberration -TP_CACORRECTION_RED;Rød -TP_CHMIXER_BLUE;Blå -TP_CHMIXER_GREEN;Grøn -TP_CHMIXER_LABEL;Kanalmixer -TP_CHMIXER_RED;Rød -TP_COARSETRAF_TOOLTIP_HFLIP;Vend vandret -TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotér mod uret -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotér med uret -TP_COARSETRAF_TOOLTIP_VFLIP;Vend lodret -TP_CROP_FIXRATIO;Fasthold sideforhold: -TP_CROP_GTDIAGONALS;Reglen om diagonaler -TP_CROP_GTNONE;Ingen -TP_CROP_GTRULETHIRDS;Reglen om tredjedele -TP_CROP_GUIDETYPE;Hjælpelinjer: -TP_CROP_H;H -TP_CROP_LABEL;Beskær -TP_CROP_W;B -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;Mængde -TP_DISTORTION_LABEL;Fortegning -TP_EXPOSURE_AUTOLEVELS;Auto-niveauer -TP_EXPOSURE_BLACKLEVEL;Sort -TP_EXPOSURE_BRIGHTNESS;Lysstyrke -TP_EXPOSURE_CLIP;Klip -TP_EXPOSURE_COMPRHIGHLIGHTS;Komprimering af højlys -TP_EXPOSURE_COMPRSHADOWS;Komprimering af skygger -TP_EXPOSURE_CONTRAST;Kontrast -TP_EXPOSURE_CURVEEDITOR;Tonekurve -TP_EXPOSURE_EXPCOMP;Eksp. komp. -TP_EXPOSURE_LABEL;Eksponering -TP_HLREC_CIELAB;CIELab blanding -TP_HLREC_COLOR;Farveudbredelse -TP_HLREC_LABEL;Red højlys -TP_HLREC_LUMINANCE;Red lysforhold -TP_HLREC_METHOD;Metode: -TP_ICM_INPUTCAMERA;Kamerastandard -TP_ICM_INPUTCUSTOM;Brugervalgt -TP_ICM_INPUTDLGLABEL;Vælg input ICC-profil... -TP_ICM_INPUTEMBEDDED;Brug indlejrede, hvis muligt -TP_ICM_INPUTPROFILE;Input profil -TP_ICM_LABEL;ICM -TP_ICM_NOICM;No ICM: sRGB output -TP_ICM_OUTPUTPROFILE;Output profil -TP_ICM_WORKINGPROFILE;Arbejdsprofil -TP_RAW_DMETHOD;Metode -TP_RAW_FALSECOLOR;Antal trin til undertrykkelse af forkert farve -TP_RESIZE_H;H: -TP_RESIZE_LABEL;Skift størrelse -TP_RESIZE_METHOD;Metode: -TP_RESIZE_NEAREST;Nærmeste -TP_RESIZE_SCALE;Skalér -TP_RESIZE_W;B: -TP_ROTATE_DEGREE;Grader -TP_ROTATE_LABEL;Rotér -TP_ROTATE_SELECTLINE;Vælg lige linie -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Højlys -TP_SHADOWSHLIGHTS_HLTONALW;Toneomfang -TP_SHADOWSHLIGHTS_LABEL;Skygger/højlys -TP_SHADOWSHLIGHTS_LOCALCONTR;Local kontrast -TP_SHADOWSHLIGHTS_RADIUS;Radius -TP_SHADOWSHLIGHTS_SHADOWS;Skygger -TP_SHADOWSHLIGHTS_SHTONALW;Toneomfang -TP_SHARPENING_AMOUNT;Mængde -TP_SHARPENING_EDRADIUS;Radius -TP_SHARPENING_EDTOLERANCE;Kanttolerance -TP_SHARPENING_HALOCONTROL;Halo-kontrol -TP_SHARPENING_HCAMOUNT;Mængde -TP_SHARPENING_LABEL;Skarphed -TP_SHARPENING_METHOD;Metode -TP_SHARPENING_ONLYEDGES;Gør kun kanter skarpere -TP_SHARPENING_RADIUS;Radius -TP_SHARPENING_RLD;RL Udfoldning -TP_SHARPENING_RLD_AMOUNT;Mængde -TP_SHARPENING_RLD_DAMPING;Dæmpning -TP_SHARPENING_RLD_ITERATIONS;Gentagelser -TP_SHARPENING_THRESHOLD;Tærskel -TP_SHARPENING_USM;Uskarp maske -TP_VIGNETTING_AMOUNT;Mængde -TP_VIGNETTING_LABEL;Vignettering -TP_VIGNETTING_RADIUS;Radius -TP_WBALANCE_AUTO;Auto -TP_WBALANCE_CAMERA;Kamera -TP_WBALANCE_CUSTOM;Brugervalgt -TP_WBALANCE_GREEN;Nuance -TP_WBALANCE_LABEL;Hvidbalance -TP_WBALANCE_METHOD;Metode -TP_WBALANCE_SIZE;Størrelse: -TP_WBALANCE_SPOTWB;Mål WB -TP_WBALANCE_TEMPERATURE;Temperatur - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara deleted file mode 100644 index a4c719188..000000000 --- a/rtdata/languages/Euskara +++ /dev/null @@ -1,2328 +0,0 @@ -#01 2008-03-03 Ioritz Ibarguren - -CURVEEDITOR_LINEAR;Lineala -CURVEEDITOR_LOADDLGLABEL;Kurba ireki... -CURVEEDITOR_SAVEDLGLABEL;Kurba gorde... -CURVEEDITOR_TOOLTIPLINEAR;Kurba lineala berrabiarazi -CURVEEDITOR_TOOLTIPLOAD;Artxibo batetik kurba ireki -CURVEEDITOR_TOOLTIPSAVE;Uneko kurba gorde -DIRBROWSER_FOLDERS;Karpetak -EXIFFILTER_APERTURE;Aperture -EXIFFILTER_CAMERA;Camera -EXIFFILTER_FOCALLEN;Focal Length -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Lens -EXIFFILTER_SHUTTER;Shutter -EXIFPANEL_ADDEDIT;Add/Edit -EXIFPANEL_ADDEDITHINT;Add new tag or edit tag -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Enter value -EXIFPANEL_ADDTAGDLG_SELECTTAG;Select tag -EXIFPANEL_ADDTAGDLG_TITLE;Add/Edit Tag -EXIFPANEL_KEEP;Keep -EXIFPANEL_KEEPHINT;Keep the selected tags when writing output file -EXIFPANEL_REMOVE;Remove -EXIFPANEL_REMOVEHINT;Remove the selected tags when writing output file -EXIFPANEL_RESET;Reset -EXIFPANEL_RESETALL;Reset All -EXIFPANEL_RESETALLHINT;Reset all tags to their original values -EXIFPANEL_RESETHINT;Reset the selected tags to their original values -EXIFPANEL_SUBDIRECTORY;Subdirectory -FILEBROWSER_APPLYPROFILE;Apply profile -FILEBROWSER_CLEARPROFILE;Clear profile -FILEBROWSER_COPYPROFILE;Copy profile -FILEBROWSER_DELETEDLGLABEL;File delete confirmation -FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -FILEBROWSER_EMPTYTRASH;Empty Trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash -FILEBROWSER_PARTIALPASTEPROFILE;Partial paste -FILEBROWSER_PASTEPROFILE;Paste profile -FILEBROWSER_POPUPCANCELJOB;Cancel job -FILEBROWSER_POPUPMOVEEND;Move to end of queue -FILEBROWSER_POPUPMOVEHEAD;Move to head of queue -FILEBROWSER_POPUPOPEN;Open -FILEBROWSER_POPUPOPENINEDITOR;Open in Editor -FILEBROWSER_POPUPPROCESS;Put to processing queue -FILEBROWSER_POPUPREMOVE;Remove from filesystem -FILEBROWSER_POPUPRENAME;Rename -FILEBROWSER_POPUPSELECTALL;Select all -FILEBROWSER_POPUPTRASH;Move to trash -FILEBROWSER_POPUPUNRANK;Unrank -FILEBROWSER_POPUPUNTRASH;Remove from trash -FILEBROWSER_RENAMEDLGLABEL;Rename file -FILEBROWSER_SHOWDIRHINT;Show all images of the directory -FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star -FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star -FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star -FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star -FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star -FILEBROWSER_SHOWTRASHHINT;Show content of the trash -FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_ZOOMINHINT;Increase thumbnail size -FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size -GENERAL_ABOUT;Honi buruz -GENERAL_CANCEL;Baztertu -GENERAL_DISABLE;Ezestatu -GENERAL_DISABLED;Ezeztatua -GENERAL_ENABLE;Gaitu -GENERAL_ENABLED;Gaitua -GENERAL_LANDSCAPE;Paisaia -GENERAL_NA;n/a -GENERAL_NO;Ez -GENERAL_OK;Onartu -GENERAL_PORTRAIT;Erretratua -GENERAL_SAVE;Gorde -HISTOGRAM_TOOLTIP_B;Erakutsi/Ezkutatu urdin histograma -HISTOGRAM_TOOLTIP_G;Erakutsi/Ezkutatu berde histograma -HISTOGRAM_TOOLTIP_L;Erakutsi/Ezkutatu CIELAB argitasun histograma -HISTOGRAM_TOOLTIP_R;Erakutsi/Ezkutatu gorri histograma -HISTORY_CHANGED;Changed -HISTORY_CUSTOMCURVE;Neurriko kurba -HISTORY_FROMCLIPBOARD;From clipboard -HISTORY_LABEL;Historia -HISTORY_MSG_1;Argazki irekia -HISTORY_MSG_2;Profila irekia -HISTORY_MSG_3;Profila aldatua -HISTORY_MSG_4;Historia arakatu -HISTORY_MSG_5;Argitasuna -HISTORY_MSG_6;Kontrastea -HISTORY_MSG_7;Beltza -HISTORY_MSG_8;Esposizio konpentsazioa -HISTORY_MSG_9;Argi konpresioa -HISTORY_MSG_10;Itzal konpresioa -HISTORY_MSG_11;Tonu kurba -HISTORY_MSG_12;Auto-esposizioa -HISTORY_MSG_13;Esposizio mozketa -HISTORY_MSG_14;Liminantzia argitasuna -HISTORY_MSG_15;Luminantzia kontrastea -HISTORY_MSG_16;Luminantzia beltza -HISTORY_MSG_17;Liminantzia argi konpresioa -HISTORY_MSG_18;Luminantzia itzal konpresioa -HISTORY_MSG_19;Luminantzia kurba -HISTORY_MSG_20;Fokatzea -HISTORY_MSG_21;Fokatze erradioa -HISTORY_MSG_22;Fokatze kopurua -HISTORY_MSG_23;Fokatze muga -HISTORY_MSG_24;Ertzak bakarrik fokatu -HISTORY_MSG_25;Ertz detekzio erradio fokatzea -HISTORY_MSG_26;Ertz tolerantzia fokatzea -HISTORY_MSG_27;Halo kontrol fokatzea -HISTORY_MSG_28;Halo kopuru kontrola -HISTORY_MSG_29;Fokatze metodoa -HISTORY_MSG_30;Dekonboluzio erradioa -HISTORY_MSG_31;Dekonboluzio kopurua -HISTORY_MSG_32;Dekonboluzio indargetzea -HISTORY_MSG_33;Dekonboluzio iterazioak -HISTORY_MSG_34;Kolore mozketa ekidin -HISTORY_MSG_35;Saturazio mugatzailea -HISTORY_MSG_36;Saturazio muga -HISTORY_MSG_37;Koloreak jaso -HISTORY_MSG_38;Zuri balantze metodoa -HISTORY_MSG_39;Kolore tenperatura -HISTORY_MSG_40;Zuri balantze tonua -HISTORY_MSG_41;"A" kolore aldaketa -HISTORY_MSG_42;"B" kolore aldaketa -HISTORY_MSG_43;Luminantzia zarata murrizketa -HISTORY_MSG_44;Lum. zar. murr. erradioa -HISTORY_MSG_45;Lum. zar. murr. ertz tolerantzia -HISTORY_MSG_46;Kolore zarata murrizketa -HISTORY_MSG_47;Kol. zar. murr. erradioa -HISTORY_MSG_48;Kol. zar. murr. ertz tolerantzia -HISTORY_MSG_49;Kol. zar. murr. ertzekiko sentikorra -HISTORY_MSG_50;Itzal/Argi tresna -HISTORY_MSG_51;Argiak jaso -HISTORY_MSG_52;Itzalak jaso -HISTORY_MSG_53;Argi tonu zabalera -HISTORY_MSG_54;Itzal tonu zabalera -HISTORY_MSG_55;Tokiko kontrastea -HISTORY_MSG_56;Itzal/Argi erradioa -HISTORY_MSG_57;Biraketa arrunta -HISTORY_MSG_58;Horizontalki irauli -HISTORY_MSG_59;Bertikalki irauli -HISTORY_MSG_60;Biraketa -HISTORY_MSG_61;Biraketa -HISTORY_MSG_62;Objetibo deformazio zuzenketa -HISTORY_MSG_63;Lastermarka hautatua -HISTORY_MSG_64;Argazkia moztu -HISTORY_MSG_65;C/A zuzenketa -HISTORY_MSG_66;Distira berreskurapena -HISTORY_MSG_67;Distira berreskurapen kopurua -HISTORY_MSG_68;Distira berreskurapen metodoa -HISTORY_MSG_69;Lan kolore esparrua -HISTORY_MSG_70;Irteera kolore esparrua -HISTORY_MSG_71;Sarrera kolore esparrua -HISTORY_MSG_72;Iluntze zuzenketa -HISTORY_MSG_73;Kanal nahastainlea -HISTORY_MSG_74;Eskala tamaina aldaketa -HISTORY_MSG_75;Tamaina aldaketa metodoa -HISTORY_MSG_76;Exif Metadata -HISTORY_MSG_77;IPTC Metadata -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;Argazki berria -HISTORY_SNAPSHOT;Argazkia -HISTORY_SNAPSHOTS;Argazkiak -IPTCPANEL_CATEGORY;Category -IPTCPANEL_CITY;City -IPTCPANEL_COPYHINT;Copy IPTC settings to clipboard -IPTCPANEL_COUNTRY;Country -IPTCPANEL_CREDIT;Credit -IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit). -IPTCPANEL_DATECREATED;Date Created -IPTCPANEL_EMBEDDED;Embedded -IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file -IPTCPANEL_HEADLINE;Headline -IPTCPANEL_INSTRUCTIONS;Instructions -IPTCPANEL_KEYWORDS;Keywords -IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard -IPTCPANEL_RESET;Reset -IPTCPANEL_RESETHINT;Reset to profile default -IPTCPANEL_SOURCE;Source -IPTCPANEL_TITLE;Title -MAIN_BUTTON_PREFERENCES;Ezarpenak -MAIN_BUTTON_SAVE;Irudia gorde -MAIN_BUTTON_SENDTOEDITOR;Send to editor -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Artxiboa jadanik badago. -MAIN_MSG_CANNOTLOAD;Ezin dut irudia ireki -MAIN_MSG_CANNOTSAVE;Errorea irudia gordetzen -MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog. -MAIN_MSG_QOVERWRITE;Gainidatzi? -MAIN_TAB_COLOR;Color -MAIN_TAB_DETAIL;Detail -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Exposure -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;Bihurtu -MAIN_TOOLTIP_HIDEHP;Erakutsi/Ezkutatu ezker panela (historia, shortcut key: H) -MAIN_TOOLTIP_INDCLIPPEDH;Mozturiko argi adierazlea -MAIN_TOOLTIP_INDCLIPPEDS;Mozturiko itzal adierazlea -MAIN_TOOLTIP_QINFO; Irudiaren informazio laburra -PARTIALPASTE_BASICGROUP;Basic settings -PARTIALPASTE_CACORRECTION;C/A correction -PARTIALPASTE_COARSETRANS;90 deg rotation / flipping -PARTIALPASTE_COLORGROUP;Color related settings -PARTIALPASTE_COMPOSITIONGROUP;Composition settings -PARTIALPASTE_CROP;Crop -PARTIALPASTE_DIALOGLABEL;Partial paste processing profile -PARTIALPASTE_DISTORTION;Distortion correction -PARTIALPASTE_EXIFCHANGES;Changes to exif data -PARTIALPASTE_EXPOSURE;Exposure -PARTIALPASTE_ICMSETTINGS;ICM settings -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Lens related settings -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Resize -PARTIALPASTE_ROTATION;Rotation -PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights -PARTIALPASTE_SHARPENING;Sharpening -PARTIALPASTE_VIGNETTING;Vignetting correction -PARTIALPASTE_WHITEBALANCE;White balance -PREFERENCES_APPLNEXTSTARTUP;hurrengo abioan aplikatua -PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries -PREFERENCES_CACHEOPTS;Cache Options -PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height -PREFERENCES_CLIPPINGIND;Itzal/argi moztuen adierazlea -PREFERENCES_DATEFORMAT;Data formatua -PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DIRHOME;Etxe karpeta -PREFERENCES_DIRLAST;Azkena ikusitako karpeta -PREFERENCES_DIROTHER;Besterik -PREFERENCES_DIRSELECTDLG;Abioko irudien karpeta hautatu... -PREFERENCES_DIRSOFTWARE;Inatalazio karpeta -PREFERENCES_EXTERNALEDITOR;External editor -PREFERENCES_FBROWSEROPTS;Arakatzailearen aukerak -PREFERENCES_FILEFORMAT;Artxiboen formatua -PREFERENCES_FORIMAGE;Irudi artxiboetarako -PREFERENCES_FORRAW;RAW artxiboetarako -PREFERENCES_GIMPPATH;GIMP installation directory -PREFERENCES_HLTHRESHOLD;Moztutako argien muga -PREFERENCES_ICCDIR;ICC profilen karpeta -PREFERENCES_IMPROCPARAMS;Irudi prozesurako aukera lehenetsiak -PREFERENCES_INTENT_ABSOLUTE;Kolorimetriko absolutua -PREFERENCES_INTENT_PERCEPTUAL;Petzeptuala -PREFERENCES_INTENT_RELATIVE;Kolorimetriko erlatiboa -PREFERENCES_INTENT_SATURATION;Saturazioa -PREFERENCES_OUTDIR;Irteera karpeta -PREFERENCES_OUTDIRFOLDER;Save to folder -PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the seledted folder -PREFERENCES_OUTDIRTEMPLATE;Use Template -PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Parsed Extensions -PREFERENCES_PARSEDEXTADD;Add Extension -PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list -PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list -PREFERENCES_PROFILEHANDLING;Processing Profile Handling -PREFERENCES_PROFILELOADPR;Profile Loading Priority -PREFERENCES_PROFILEPRCACHE;Profile in Cache -PREFERENCES_PROFILEPRFILE;Profile Next to the Input File -PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache -PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File -PREFERENCES_PSPATH;Adobe Photoshop installation directory -PREFERENCES_SELECTLANG;Hizkuntza hautatu -PREFERENCES_SHOWBASICEXIF;Oinarrizko EXIF datuak bistaratu -PREFERENCES_SHOWDATETIME;Data eta ordua bistratu -PREFERENCES_SHTHRESHOLD;Moztutako itzalen muga -PREFERENCES_STARTUPIMDIR;Abioako irudien karpeta -PREFERENCES_TAB_BROWSER;Artxibo arakatzailea -PREFERENCES_TAB_COLORMGR;Kolore kudeaketa -PREFERENCES_TAB_GENERAL;Orokorra -PREFERENCES_TAB_IMPROC;Irudien prozesua -PROFILEPANEL_LABEL;Prozesu profilak -PROFILEPANEL_LOADDLGLABEL;Profilaren aldagaiak ireki... -PROFILEPANEL_PCUSTOM;Neurrira -PROFILEPANEL_PFILE;Artxibotik -PROFILEPANEL_PLASTSAVED;Gordtako azkena -PROFILEPANEL_SAVEDLGLABEL;Profilaren aldagaiak gorde... -PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard -PROFILEPANEL_TOOLTIPLOAD;Profila artxibotik ireki -PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard -PROFILEPANEL_TOOLTIPSAVE;Uneko profila gorde -PROGRESSBAR_LOADING;Irudia ireki... -PROGRESSBAR_LOADJPEG;JPG artxiboa irekitzen... -PROGRESSBAR_LOADPNG;PNG artxiboa irekitzen... -PROGRESSBAR_LOADTIFF;TIFF artxiboa irekitzen... -PROGRESSBAR_PROCESSING;Irudiaren prozesua... -PROGRESSBAR_READY;Prest -PROGRESSBAR_SAVEJPEG;JPG artxiboa gordetzen... -PROGRESSBAR_SAVEPNG;PNG artxiboa gordetzen... -PROGRESSBAR_SAVETIFF;TIFF artxiboa gordetzen... -QINFO_ISO;ISO -QINFO_NOEXIF;Ez dago EXIF daturik. -SAVEDLG_FILEFORMAT;Artxiboaren formatua -SAVEDLG_JPEGQUAL;JPEG kalitatea -SAVEDLG_PUTTOQUEUE;Put into processing queue -SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue -SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue -SAVEDLG_SAVEIMMEDIATELY;Save immediately -SAVEDLG_SAVESPP;Prozesu aldagaiak irudiarekin batera gorde -TOOLBAR_TOOLTIP_CROP;Hautapena moztu (shortcut key: C) -TOOLBAR_TOOLTIP_HAND;Esku tresna (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Lerro zuzena hautatu (shortcut key: S) -TOOLBAR_TOOLTIP_WB;Zuri balantze puntuala (shortcut key: W) -TP_CACORRECTION_BLUE;Urdina -TP_CACORRECTION_LABEL;C/A zuzenketa -TP_CACORRECTION_RED;Gorria -TP_CHMIXER_BLUE;Urdina -TP_CHMIXER_GREEN;Berdea -TP_CHMIXER_LABEL;Kanal nahastailea -TP_CHMIXER_RED;Gorria -TP_COARSETRAF_TOOLTIP_HFLIP;Horizontalki irauli -TP_COARSETRAF_TOOLTIP_ROTLEFT;Errotazioa ezkerraldera -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Errotazioa eskunialdera -TP_COARSETRAF_TOOLTIP_VFLIP;Bertikalki irauli -TP_CROP_FIXRATIO;Erlazio finkoa: -TP_CROP_GTDIAGONALS;Diagonalen erregela -TP_CROP_GTNONE;Bat ere ez -TP_CROP_GTRULETHIRDS;Herenen erregela -TP_CROP_GUIDETYPE;Gida mota: -TP_CROP_H;H -TP_CROP_LABEL;Moztu -TP_CROP_W;W -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;Kopurua -TP_DISTORTION_LABEL;Distortsioa -TP_EXPOSURE_AUTOLEVELS;Maila auto. -TP_EXPOSURE_BLACKLEVEL;Beltza -TP_EXPOSURE_BRIGHTNESS;Distira -TP_EXPOSURE_CLIP;Moztu -TP_EXPOSURE_COMPRHIGHLIGHTS;Argi konpresioa -TP_EXPOSURE_COMPRSHADOWS;Itzal konpresioa -TP_EXPOSURE_CONTRAST;Kontrastea -TP_EXPOSURE_CURVEEDITOR;Tonu kurba -TP_EXPOSURE_EXPCOMP;Esp. Konp. -TP_EXPOSURE_LABEL;Esposizioa -TP_HLREC_CIELAB;CIELab Blending -TP_HLREC_COLOR;Kolorearen hedapena -TP_HLREC_LABEL;Distiren berreskurapena -TP_HLREC_LUMINANCE;Argitasun berreskurapena -TP_HLREC_METHOD;Metodoa: -TP_ICM_INPUTCAMERA;Kameraren jatorrizko balioak -TP_ICM_INPUTCUSTOM;Neurrira -TP_ICM_INPUTDLGLABEL;Sarrerako ICC profila hautatu... -TP_ICM_INPUTEMBEDDED;Txertatutakoa erabili, egonez gero -TP_ICM_INPUTPROFILE;Sarrerako profila -TP_ICM_LABEL;ICM -TP_ICM_NOICM;ICM-rik ez: sRGB irteera -TP_ICM_OUTPUTPROFILE;Irteera profila -TP_ICM_WORKINGPROFILE;Lan profila -TP_RAW_DMETHOD;Metodoa -TP_RAW_FALSECOLOR;Okerreko kolore ezabaketa atalak -TP_RESIZE_H;H: -TP_RESIZE_LABEL;Tamaina aldatu -TP_RESIZE_METHOD;Metodoa: -TP_RESIZE_NEAREST;Gertuena -TP_RESIZE_SCALE;Eskala -TP_RESIZE_W;W: -TP_ROTATE_DEGREE;Angelua -TP_ROTATE_LABEL;Errotazioa -TP_ROTATE_SELECTLINE; Lerro zuzena hautatu -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Argiak -TP_SHADOWSHLIGHTS_HLTONALW;Tonu zabalera -TP_SHADOWSHLIGHTS_LABEL;Itzalak/Argiak -TP_SHADOWSHLIGHTS_LOCALCONTR;Tokiko kontrastea -TP_SHADOWSHLIGHTS_RADIUS;Erradioa -TP_SHADOWSHLIGHTS_SHADOWS;Itzalak -TP_SHADOWSHLIGHTS_SHTONALW;Tonu zabalera -TP_SHARPENING_AMOUNT;Kopurua -TP_SHARPENING_EDRADIUS;Erradioa -TP_SHARPENING_EDTOLERANCE;Ertz tolerantzia -TP_SHARPENING_HALOCONTROL;Halo kontrola -TP_SHARPENING_HCAMOUNT;Kopurua -TP_SHARPENING_LABEL;Fokatu -TP_SHARPENING_METHOD;Metodoa -TP_SHARPENING_ONLYEDGES;Ertzak bakarrik fokatu -TP_SHARPENING_RADIUS;Erradioa -TP_SHARPENING_RLD;RL Dekonboluzioa -TP_SHARPENING_RLD_AMOUNT;Kopurua -TP_SHARPENING_RLD_DAMPING;Indargetzea -TP_SHARPENING_RLD_ITERATIONS;Iterazioak -TP_SHARPENING_THRESHOLD;Muga -TP_SHARPENING_USM;Defokatze maskara -TP_VIGNETTING_AMOUNT;Kopurua -TP_VIGNETTING_LABEL;Iluntze zuzenketa -TP_VIGNETTING_RADIUS;Erradioa -TP_WBALANCE_AUTO;Auto -TP_WBALANCE_CAMERA;Camera -TP_WBALANCE_CUSTOM;Pertsonalizatua -TP_WBALANCE_GREEN;Tindua -TP_WBALANCE_LABEL;Zuri balantzea -TP_WBALANCE_METHOD;Metodoa -TP_WBALANCE_SIZE;Tamaina: -TP_WBALANCE_SPOTWB;Z/B Puntuala -TP_WBALANCE_TEMPERATURE;Tenperatura -# - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek deleted file mode 100644 index 7fef6491a..000000000 --- a/rtdata/languages/Greek +++ /dev/null @@ -1,2327 +0,0 @@ -#01 2008-05-14 zeusalmighty - -CURVEEDITOR_LINEAR;Γραμμικό -CURVEEDITOR_LOADDLGLABEL;Φόρτωση καμπύλης... -CURVEEDITOR_SAVEDLGLABEL;Αποθήκευση καμπλης... -CURVEEDITOR_TOOLTIPLINEAR;Επαναφορά καμπύλης σε γραμμική -CURVEEDITOR_TOOLTIPLOAD;Φόρτωση καμπύλης απο αρχείο -CURVEEDITOR_TOOLTIPSAVE;Αποθήκευση παρούσας καμπύλης -DIRBROWSER_FOLDERS;Φάκελοι -EXIFFILTER_APERTURE;Aperture -EXIFFILTER_CAMERA;Camera -EXIFFILTER_FOCALLEN;Focal Length -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Lens -EXIFFILTER_SHUTTER;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;Subdirectory -FILEBROWSER_APPLYPROFILE;Apply profile -FILEBROWSER_CLEARPROFILE;Clear profile -FILEBROWSER_COPYPROFILE;Copy profile -FILEBROWSER_DELETEDLGLABEL;File delete confirmation -FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -FILEBROWSER_EMPTYTRASH;Empty Trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash -FILEBROWSER_PARTIALPASTEPROFILE;Partial paste -FILEBROWSER_PASTEPROFILE;Paste profile -FILEBROWSER_POPUPCANCELJOB;Cancel job -FILEBROWSER_POPUPMOVEEND;Move to end of queue -FILEBROWSER_POPUPMOVEHEAD;Move to head of queue -FILEBROWSER_POPUPOPEN;Open -FILEBROWSER_POPUPOPENINEDITOR;Open in Editor -FILEBROWSER_POPUPPROCESS;Put to processing queue -FILEBROWSER_POPUPREMOVE;Remove from filesystem -FILEBROWSER_POPUPRENAME;Rename -FILEBROWSER_POPUPSELECTALL;Select all -FILEBROWSER_POPUPTRASH;Move to trash -FILEBROWSER_POPUPUNRANK;Unrank -FILEBROWSER_POPUPUNTRASH;Remove from trash -FILEBROWSER_RENAMEDLGLABEL;Rename file -FILEBROWSER_SHOWDIRHINT;Show all images of the directory -FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star -FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star -FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star -FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star -FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star -FILEBROWSER_SHOWTRASHHINT;Show content of the trash -FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_ZOOMINHINT;Increase thumbnail size -FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size -GENERAL_ABOUT;About -GENERAL_CANCEL;Ακύρωση -GENERAL_DISABLE;Απενεργοποίηση -GENERAL_DISABLED;Απενεργοποιημένο -GENERAL_ENABLE;Ενεργοποίηση -GENERAL_ENABLED;Ενεργοποιημένο -GENERAL_LANDSCAPE;Τοπίο -GENERAL_NA;μη διαθέσιμο -GENERAL_NO;Όχι -GENERAL_OK;Εντάξει -GENERAL_PORTRAIT;Πορτραίτο -GENERAL_SAVE;Αποθήκευση -HISTOGRAM_TOOLTIP_B;Προβολή/απόκρυψη ΜΠΛΕ ιστογράμματος -HISTOGRAM_TOOLTIP_G;Προβολή/απόκρυψη ΠΡΑΣΙΝΟΥ ιστογράμματος -HISTOGRAM_TOOLTIP_L;Προβολή/απόκρυψη CIELAB ιστογράμματος φωτεινότητας -HISTOGRAM_TOOLTIP_R;Προβολή/απόκρυψη KOKKINOY ιστογράμματος -HISTORY_CHANGED;Αλλαγή -HISTORY_CUSTOMCURVE;Προσαρμοσμένη καμπύλη -HISTORY_FROMCLIPBOARD;From clipboard -HISTORY_LABEL;Ιστορικό -HISTORY_MSG_1;Φορτώθηκε εικόνα -HISTORY_MSG_2;Φορτώθηκε προφίλ -HISTORY_MSG_3;Αλλαγή προφίλ -HISTORY_MSG_4;Αναζήτηση ιστορικού -HISTORY_MSG_5;Φωτεινότητα -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;Φωτεινότητα Φωτεινότητας -HISTORY_MSG_15;Φωτεινότητα αντίθεσης -HISTORY_MSG_16;Φωτεινότητα μαύρων -HISTORY_MSG_17;Φωτεινότητα συμπίεσησ φωτεινών σημείων. -HISTORY_MSG_18;Φωτεινότητα συμπίεσης σκιών. -HISTORY_MSG_19;Καμπύλη φωτεινότητας -HISTORY_MSG_20;Όξυνση -HISTORY_MSG_21;Ακτίνα όξυνσης -HISTORY_MSG_22;Ένταση όξυνσης -HISTORY_MSG_23;Κατώφλι όξυνσης -HISTORY_MSG_24;Όξυνση μόνο ορίων -HISTORY_MSG_25;Ακτίνα ανίχνευσης ορίων όξυνσης -HISTORY_MSG_26;Όξυνση, Ανοχή ορίων -HISTORY_MSG_27;Όξυνση, Έλεγχος άλως -HISTORY_MSG_28;Ένταση ελέγχου άλως -HISTORY_MSG_29;Μέθοδοςν όξυνσης -HISTORY_MSG_30;Ακτίνα Deconvolution -HISTORY_MSG_31;Ένταση Deconvolution -HISTORY_MSG_32;Καταστολή Deconvolution -HISTORY_MSG_33;Επαναλήψεις Deconvolution -HISTORY_MSG_34;Αποφυγή ψαλιδίσματος χρώματος -HISTORY_MSG_35;Περιοσμός κορεσμού -HISTORY_MSG_36;Ένταση περιοσμού κορεσμού -HISTORY_MSG_37;Ενίσχυση χρώματος -HISTORY_MSG_38;Μέθοδος εξισορρόπησης λευκού -HISTORY_MSG_39;Θερμοκρασία χρώματος -HISTORY_MSG_40;Απόχρωση εξισορρόπησης λευκού -HISTORY_MSG_41;Χρωματική μετατόπιση "A" -HISTORY_MSG_42;Χρωματική μετατόπιση "B" -HISTORY_MSG_43;Αποθορύβηση φωτεινότητας -HISTORY_MSG_44;Ακτίνα αποθορύβησης φωτεινότητας -HISTORY_MSG_45;Ανοχή ορίων αποθορύβησης φωτεινότητας -HISTORY_MSG_46;Αποθορύβηση χρώματος -HISTORY_MSG_47;Ακτίνα αποθορύβησης χρώματος -HISTORY_MSG_48;Ανοχή ορίων αποθορύβησης χρώματος -HISTORY_MSG_49;Αποθορύβηση χρώματος (ευαισθησία ορίων) -HISTORY_MSG_50;Εργαλείο σκιών/φωτεινών σημείων -HISTORY_MSG_51;Μείωση φωτεινών σημείων -HISTORY_MSG_52;Ενίσχυση σκιών -HISTORY_MSG_53;Τονικό εύρος φωτεινών σημείων -HISTORY_MSG_54;Τονικό εύρος σκιών -HISTORY_MSG_55;Τοπική αντίθεση -HISTORY_MSG_56;Ακτίνα σκιών/φωτεινών σημείων -HISTORY_MSG_57;Coarse Rotation -HISTORY_MSG_58;Οριζόντια ανατροπή -HISTORY_MSG_59;Κατακόρυφη ανατροπή -HISTORY_MSG_60;Περιστροφή -HISTORY_MSG_61;Περιστροφή -HISTORY_MSG_62;Διόρθωση παραμόρφωσης φακού -HISTORY_MSG_63;Επιλέχθηκε στιγμιότυπο -HISTORY_MSG_64;Αποκοπή εικόνας -HISTORY_MSG_65;C/A Διόρθωση -HISTORY_MSG_66;Ανάκτηση Φωτεινών σημείων -HISTORY_MSG_67;Ένταση ανάκτησης φωτεινών σημείων -HISTORY_MSG_68;Μέθοδος ανάκτηση φωτεινών σημείων -HISTORY_MSG_69;Παρόν χρωματικό προφίλ -HISTORY_MSG_70;Χρωματικό προφίλ εξόδου -HISTORY_MSG_71;Χρωματικό προφίλ εισόδου -HISTORY_MSG_72;Διόρθωση Vignetting -HISTORY_MSG_73;Μίξη καναλιών -HISTORY_MSG_74;Αλλαγή μεγέθους/κλίμακας -HISTORY_MSG_75;Μέθοδος αλλαγής μεγέθους -HISTORY_MSG_76;Αλλαγή στοιχείων Exif -HISTORY_MSG_77;Αλλαγή στοιχίεων IPTC -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;Νέο στιγμιότυπο -HISTORY_SNAPSHOT;Στιγμιότυπο -HISTORY_SNAPSHOTS;Στιγμιότυπα -IPTCPANEL_CATEGORY;Κατηγορία -IPTCPANEL_CITY;Πόλη -IPTCPANEL_COPYHINT;Αντιγραφή ρυθμίσεων IPTC στην περιοχή αποκομμάτων -IPTCPANEL_COUNTRY;Χώρα -IPTCPANEL_CREDIT;Εύσημα -IPTCPANEL_CREDITHINT;Ταυτοποιεί τον παροχέα της εικόνας, όχι απραίτητα δημιουργό/ιδιοκτήτη (Εύσημα). -IPTCPANEL_DATECREATED;Ημερομηνία δημιουργίας -IPTCPANEL_EMBEDDED;Ενσωματωμένο -IPTCPANEL_EMBEDDEDHINT;Επαναφορά στοιχείων IPTC αρχείου εικόνας -IPTCPANEL_HEADLINE;Επικεφαλίδα -IPTCPANEL_INSTRUCTIONS;Οδηγίες -IPTCPANEL_KEYWORDS;Λέξεις-κλειδιά -IPTCPANEL_PASTEHINT;Επικόλληση ρυθμίσεων IPTC από την περιοχή αποκομμάτων -IPTCPANEL_RESET;Επαναφορά -IPTCPANEL_RESETHINT;Επαναφορά προεπιλεγμένου προφίλ -IPTCPANEL_SOURCE;Πηγή -IPTCPANEL_TITLE;Τίτλος -MAIN_BUTTON_PREFERENCES;Ρυθμίσεις -MAIN_BUTTON_SAVE;Αποθήκευση εικόνας -MAIN_BUTTON_SENDTOEDITOR;Send to editor -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Το αρχείο ήδη υπάρχει. -MAIN_MSG_CANNOTLOAD;Αδύνατη η φόρτωση εικόνας -MAIN_MSG_CANNOTSAVE;Αδύνατη η αποθήκευση αρχείου -MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog. -MAIN_MSG_QOVERWRITE;Θέλετε να το αντικαταστήσετε; -MAIN_TAB_COLOR;Color -MAIN_TAB_DETAIL;Detail -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Exposure -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;Μετατροπή -MAIN_TOOLTIP_HIDEHP;Προβολή/απόκρυψη αριστερού πλαισίου (περιλαμβανομένου του ιστορικού, shortcut key: H) -MAIN_TOOLTIP_INDCLIPPEDH;Ένδειξη ψαλισμού φωτεινών σημείων -MAIN_TOOLTIP_INDCLIPPEDS;Ένδειξη ψαλισμού σκιών -MAIN_TOOLTIP_QINFO;Γρήγορες πληροφορίες στην εικόνα -PARTIALPASTE_BASICGROUP;Basic settings -PARTIALPASTE_CACORRECTION;C/A correction -PARTIALPASTE_COARSETRANS;90 deg rotation / flipping -PARTIALPASTE_COLORGROUP;Color related settings -PARTIALPASTE_COMPOSITIONGROUP;Composition settings -PARTIALPASTE_CROP;Crop -PARTIALPASTE_DIALOGLABEL;Partial paste processing profile -PARTIALPASTE_DISTORTION;Distortion correction -PARTIALPASTE_EXIFCHANGES;Changes to exif data -PARTIALPASTE_EXPOSURE;Exposure -PARTIALPASTE_ICMSETTINGS;ICM settings -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Lens related settings -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Resize -PARTIALPASTE_ROTATION;Rotation -PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights -PARTIALPASTE_SHARPENING;Sharpening -PARTIALPASTE_VIGNETTING;Vignetting correction -PARTIALPASTE_WHITEBALANCE;White balance -PREFERENCES_APPLNEXTSTARTUP;εφαρμόζεται στην επόμενη εκκίνηση -PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries -PREFERENCES_CACHEOPTS;Cache Options -PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height -PREFERENCES_CLIPPINGIND;Ένδειξη ψαλιδίσματος -PREFERENCES_DATEFORMAT;Διάταξη ημερομηνίας -PREFERENCES_DATEFORMATHINT;YΜπορείτε να χρησιμοποιήσετε τις εξής εντολές μορφοποίησης:\n%y : χρονολογία\n%m : μήνας\n%d : ημέρα\n\nΓια παράδειγμα, η μορφοποίηση ημερομηνίας στην Ελλάδα είναι:\n%y/%m/%d -PREFERENCES_DIRHOME;Τοποθεσία "Home" -PREFERENCES_DIRLAST;Τελευταία τοποθεσία που χρησιμοποιήθηκε -PREFERENCES_DIROTHER;Άλλο -PREFERENCES_DIRSELECTDLG;Επιλέξτε τοποθεσία εικόνων κατά την έναρξη... -PREFERENCES_DIRSOFTWARE;Τοποθεσία εγκατάστασης -PREFERENCES_EXTERNALEDITOR;External editor -PREFERENCES_FBROWSEROPTS;Επιλογές περιήγησης αρχείων -PREFERENCES_FILEFORMAT;Είδος αρχείου -PREFERENCES_FORIMAGE;Για αρχεία εικόνων -PREFERENCES_FORRAW;Για αρχεία RAW -PREFERENCES_GIMPPATH;GIMP installation directory -PREFERENCES_HLTHRESHOLD;Κατώφλι ψαλιδίσματος φωτεινών σημείων -PREFERENCES_ICCDIR;Τοποθεσία των προφίλ ICC -PREFERENCES_IMPROCPARAMS;Προεπιλεγμένες παραμέτροι επεξεργασίας εικόνας -PREFERENCES_INTENT_ABSOLUTE;Absolute Colorimetric -PREFERENCES_INTENT_PERCEPTUAL;Perceptual -PREFERENCES_INTENT_RELATIVE;Relative Colorimetric -PREFERENCES_INTENT_SATURATION;Saturation -PREFERENCES_OUTDIR;Τοποθεσία εξόδου -PREFERENCES_OUTDIRFOLDER;Save to folder -PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the seledted folder -PREFERENCES_OUTDIRTEMPLATE;Use Template -PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Parsed Extensions -PREFERENCES_PARSEDEXTADD;Add Extension -PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list -PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list -PREFERENCES_PROFILEHANDLING;Processing Profile Handling -PREFERENCES_PROFILELOADPR;Profile Loading Priority -PREFERENCES_PROFILEPRCACHE;Profile in Cache -PREFERENCES_PROFILEPRFILE;Profile Next to the Input File -PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache -PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File -PREFERENCES_PSPATH;Adobe Photoshop installation directory -PREFERENCES_SELECTLANG;Επιλογή γλώσσας -PREFERENCES_SHOWBASICEXIF;Προβολή βασικών στοιχείων Exif -PREFERENCES_SHOWDATETIME;Προβολή ημερομηνίας και ώρας -PREFERENCES_SHTHRESHOLD;Κατώφλι ψαλιδίσματος σκιών -PREFERENCES_STARTUPIMDIR;Τοποθεσία εικόνων κατά την έναρξη -PREFERENCES_TAB_BROWSER;Περιήγηση αρχείου -PREFERENCES_TAB_COLORMGR;Διαχείριση χρώματος -PREFERENCES_TAB_GENERAL;Γενικά -PREFERENCES_TAB_IMPROC;Επεξεργασίας εικόνας -PROFILEPANEL_LABEL;Προφίλ επεξεργασίας -PROFILEPANEL_LOADDLGLABEL;Φόρτωση παραμέτρων επεξεργασίας... -PROFILEPANEL_PCUSTOM;Προσαρμοσμένο -PROFILEPANEL_PFILE;Απο αρχείο -PROFILEPANEL_PLASTSAVED;Τελευταία αποθηκευμένη -PROFILEPANEL_SAVEDLGLABEL;Αποθήκευση παραμέτρων επεξεργασίας... -PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard -PROFILEPANEL_TOOLTIPLOAD;Φόρτωση προφίλ απο αρχείο -PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard -PROFILEPANEL_TOOLTIPSAVE;Αποθήκευση παρόντος προφίλ -PROGRESSBAR_LOADING;Φόρτωση εικόνας... -PROGRESSBAR_LOADJPEG;Φόρτωση αρχείου JPEG... -PROGRESSBAR_LOADPNG;Φόρτωση αρχείου PNG... -PROGRESSBAR_LOADTIFF;Φόρτωση αρχείου TIFF... -PROGRESSBAR_PROCESSING;Επεξεργάζεται εικόνα... -PROGRESSBAR_READY;Έτοιμο -PROGRESSBAR_SAVEJPEG;Αποθήκευση αρχείου JPEG... -PROGRESSBAR_SAVEPNG;Αποθήκευση αρχείου PNG... -PROGRESSBAR_SAVETIFF;Αποθήκευση αρχείου TIFF... -QINFO_ISO;ISO -QINFO_NOEXIF;Στοιχεία Exif μη διαθέσιμα. -SAVEDLG_FILEFORMAT;Είδος αρχείου -SAVEDLG_JPEGQUAL;Ποιότητα JPEG -SAVEDLG_PUTTOQUEUE;Put into processing queue -SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue -SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue -SAVEDLG_SAVEIMMEDIATELY;Save immediately -SAVEDLG_SAVESPP;Αποθήκευση παραμέτρων επεξεργασίας μαζί με την εικόνα -TOOLBAR_TOOLTIP_CROP;Αποκοπή επιλογής (shortcut key: C) -TOOLBAR_TOOLTIP_HAND;Εργαλείο μετακίνησης (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Επιλογή ευθείας γραμμής (shortcut key: S) -TOOLBAR_TOOLTIP_WB;Εξισορροπία λευκού από σημείο (shortcut key: W) -TP_CACORRECTION_BLUE;Μπλέ -TP_CACORRECTION_LABEL;C/A Διόρθωση -TP_CACORRECTION_RED;Κόκκινο -TP_CHMIXER_BLUE;Μπλέ -TP_CHMIXER_GREEN;Πράσινο -TP_CHMIXER_LABEL;Μίξη καναλιών -TP_CHMIXER_RED;Κόκκινο -TP_COARSETRAF_TOOLTIP_HFLIP;Αναστροφή οριζόντια -TP_COARSETRAF_TOOLTIP_ROTLEFT;Περιστροφή αριστερά -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Περιστροφή δεξιά -TP_COARSETRAF_TOOLTIP_VFLIP;Αναστροφή κατακόρυφα -TP_CROP_FIXRATIO;Κλείδωμα αναλογίας: -TP_CROP_GTDIAGONALS;Κανόνας διαγωνίων -TP_CROP_GTNONE;Κανένα -TP_CROP_GTRULETHIRDS;Κανόνας τρίτων -TP_CROP_GUIDETYPE;Είδος βοηθών: -TP_CROP_H;H -TP_CROP_LABEL;Αποκοπή -TP_CROP_W;W -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;Ένταση -TP_DISTORTION_LABEL;Παραμόρφωση -TP_EXPOSURE_AUTOLEVELS;Αυτόματα επίπεδα -TP_EXPOSURE_BLACKLEVEL;Μαύρα -TP_EXPOSURE_BRIGHTNESS;Φωτεινότητα -TP_EXPOSURE_CLIP;Αποκοπή -TP_EXPOSURE_COMPRHIGHLIGHTS;Συμπίεση φωτεινών σημείων -TP_EXPOSURE_COMPRSHADOWS;Συμπίεση σκιών -TP_EXPOSURE_CONTRAST;Αντίθεση -TP_EXPOSURE_CURVEEDITOR;Καμπύλη τονικότητας -TP_EXPOSURE_EXPCOMP;Επανόρθωση Έκθεσης -TP_EXPOSURE_LABEL;Έκθεση -TP_HLREC_CIELAB;Ανάμιξη CIELab -TP_HLREC_COLOR;Διάδοση χρώματος -TP_HLREC_LABEL;Ανάκτηση φωτεινών σημείων -TP_HLREC_LUMINANCE;Ανάκτηση Φωτεινότητας -TP_HLREC_METHOD;Μέθοδος: -TP_ICM_INPUTCAMERA;Προεπιλογή φωτογραφικής μηχανής -TP_ICM_INPUTCUSTOM;Προσαρμοσμένο -TP_ICM_INPUTDLGLABEL;Επιλέξτε προφιλ ICC εισόδου... -TP_ICM_INPUTEMBEDDED;Χρήση ενσωματωμένου, αν αυτό είναι δυνατό -TP_ICM_INPUTPROFILE;Προφίλ εισαγωγής -TP_ICM_LABEL;ICM -TP_ICM_NOICM;No ICM: sRGB output -TP_ICM_OUTPUTPROFILE;Προφίλ εξόδου -TP_ICM_WORKINGPROFILE;Παρόν προφίλ -TP_RAW_DMETHOD;Μέθοδος -TP_RAW_FALSECOLOR;Βήματα καταστολής σφαλμένων χρωμάτων -TP_RESIZE_H;H: -TP_RESIZE_LABEL;Αλλαγή μεγέθους -TP_RESIZE_METHOD;Μέθοδος: -TP_RESIZE_NEAREST;Nearest -TP_RESIZE_SCALE;Κλίμακα -TP_RESIZE_W;W: -TP_ROTATE_DEGREE;Γωνία -TP_ROTATE_LABEL;Περιστροφή -TP_ROTATE_SELECTLINE; Επιλογή ευθείας -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Φωτεινά σημεία -TP_SHADOWSHLIGHTS_HLTONALW;Τονικό εύρος -TP_SHADOWSHLIGHTS_LABEL;Σκιές/Φωτεινά σημεία -TP_SHADOWSHLIGHTS_LOCALCONTR;Τοπική αντίθεση -TP_SHADOWSHLIGHTS_RADIUS;Ακτίνα -TP_SHADOWSHLIGHTS_SHADOWS;Σκιές -TP_SHADOWSHLIGHTS_SHTONALW;Τονικό εύρος -TP_SHARPENING_AMOUNT;Ένταση -TP_SHARPENING_EDRADIUS;Ακτίνα -TP_SHARPENING_EDTOLERANCE;Ανοχή ορίων -TP_SHARPENING_HALOCONTROL;Έλεγχος άλως -TP_SHARPENING_HCAMOUNT;Ένταση -TP_SHARPENING_LABEL;Όξυνση -TP_SHARPENING_METHOD;Μέθοδος -TP_SHARPENING_ONLYEDGES;Όξυνση μόνο ορίων -TP_SHARPENING_RADIUS;Ακτίνα -TP_SHARPENING_RLD;RL Deconvolution -TP_SHARPENING_RLD_AMOUNT;Ένταση -TP_SHARPENING_RLD_DAMPING;Απόσβεση -TP_SHARPENING_RLD_ITERATIONS;Επαναλήψεις -TP_SHARPENING_THRESHOLD;Κατώφλι -TP_SHARPENING_USM;Unsharp Mask -TP_VIGNETTING_AMOUNT;Ένταση -TP_VIGNETTING_LABEL;Διόρθωση vignetting -TP_VIGNETTING_RADIUS;Ακτίνα -TP_WBALANCE_AUTO;Αυτόματο -TP_WBALANCE_CAMERA;Φωτογραφικής μηχανής -TP_WBALANCE_CUSTOM;Προσαρμοσμένο -TP_WBALANCE_GREEN;Απόχρωση -TP_WBALANCE_LABEL;Εξισορρόπηση λευκού -TP_WBALANCE_METHOD;Μέθοδος -TP_WBALANCE_SIZE;Μέγεθος: -TP_WBALANCE_SPOTWB;Εξ.Λ. σημείου -TP_WBALANCE_TEMPERATURE;Θερμοκρασία - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew deleted file mode 100644 index c57d6a7e7..000000000 --- a/rtdata/languages/Hebrew +++ /dev/null @@ -1,2328 +0,0 @@ -#01 2008-02-21 - -CURVEEDITOR_LINEAR;ישיר -CURVEEDITOR_LOADDLGLABEL;הטען עקמה -CURVEEDITOR_SAVEDLGLABEL;שמור עקמה -CURVEEDITOR_TOOLTIPLINEAR;החזר עקמה לישירה -CURVEEDITOR_TOOLTIPLOAD;הטען עקמה -CURVEEDITOR_TOOLTIPSAVE;שמור עקמה נוכחית -DIRBROWSER_FOLDERS;תיקיות -EXIFFILTER_APERTURE;Aperture -EXIFFILTER_CAMERA;Camera -EXIFFILTER_FOCALLEN;Focal Length -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Lens -EXIFFILTER_SHUTTER;Shutter -EXIFPANEL_ADDEDIT;Add/Edit -EXIFPANEL_ADDEDITHINT;Add new tag or edit tag -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Enter value -EXIFPANEL_ADDTAGDLG_SELECTTAG;Select tag -EXIFPANEL_ADDTAGDLG_TITLE;Add/Edit Tag -EXIFPANEL_KEEP;Keep -EXIFPANEL_KEEPHINT;Keep the selected tags when writing output file -EXIFPANEL_REMOVE;Remove -EXIFPANEL_REMOVEHINT;Remove the selected tags when writing output file -EXIFPANEL_RESET;Reset -EXIFPANEL_RESETALL;Reset All -EXIFPANEL_RESETALLHINT;Reset all tags to their original values -EXIFPANEL_RESETHINT;Reset the selected tags to their original values -EXIFPANEL_SUBDIRECTORY;Subdirectory -FILEBROWSER_APPLYPROFILE;Apply profile -FILEBROWSER_CLEARPROFILE;Clear profile -FILEBROWSER_COPYPROFILE;Copy profile -FILEBROWSER_DELETEDLGLABEL;File delete confirmation -FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -FILEBROWSER_EMPTYTRASH;Empty Trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash -FILEBROWSER_PARTIALPASTEPROFILE;Partial paste -FILEBROWSER_PASTEPROFILE;Paste profile -FILEBROWSER_POPUPCANCELJOB;Cancel job -FILEBROWSER_POPUPMOVEEND;Move to end of queue -FILEBROWSER_POPUPMOVEHEAD;Move to head of queue -FILEBROWSER_POPUPOPEN;Open -FILEBROWSER_POPUPOPENINEDITOR;Open in Editor -FILEBROWSER_POPUPPROCESS;Put to processing queue -FILEBROWSER_POPUPREMOVE;Remove from filesystem -FILEBROWSER_POPUPRENAME;Rename -FILEBROWSER_POPUPSELECTALL;Select all -FILEBROWSER_POPUPTRASH;Move to trash -FILEBROWSER_POPUPUNRANK;Unrank -FILEBROWSER_POPUPUNTRASH;Remove from trash -FILEBROWSER_RENAMEDLGLABEL;Rename file -FILEBROWSER_SHOWDIRHINT;Show all images of the directory -FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star -FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star -FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star -FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star -FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star -FILEBROWSER_SHOWTRASHHINT;Show content of the trash -FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_ZOOMINHINT;Increase thumbnail size -FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size -GENERAL_ABOUT;אודות -GENERAL_CANCEL;בטל -GENERAL_DISABLE;בטל -GENERAL_DISABLED;מבוטל -GENERAL_ENABLE;הפעל -GENERAL_ENABLED;מופעל -GENERAL_LANDSCAPE;נוף -GENERAL_NA;אין -GENERAL_NO;לא -GENERAL_OK;שמור -GENERAL_PORTRAIT;דיוקן -GENERAL_SAVE;שמור -HISTOGRAM_TOOLTIP_B;Show/הסתר היסטוגרם כחול -HISTOGRAM_TOOLTIP_G;Show/הסתר היסטוגרם ירוק -HISTOGRAM_TOOLTIP_L;Show/CIELAB הסתר היסטוגרם -HISTOGRAM_TOOLTIP_R;Show/הסתר היסטוגרם אדום -HISTORY_CHANGED;Changed -HISTORY_CUSTOMCURVE;עקמה מותאמת -HISTORY_FROMCLIPBOARD;From clipboard -HISTORY_LABEL;היסטוריה -HISTORY_MSG_1;צילום טעון -HISTORY_MSG_2;פרופיל טעון -HISTORY_MSG_3;פרופיל הוחלף -HISTORY_MSG_4;דיפדוף בהיסטוריה -HISTORY_MSG_5;בהירות -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;הארה - בהירות -HISTORY_MSG_15;הארה - ניגודיות -HISTORY_MSG_16;הארה - שחור -HISTORY_MSG_17;הארה - דחיסת גוונים בהירים -HISTORY_MSG_18;הארה - דחיסת גוונים כהים -HISTORY_MSG_19;הארה - עקמה -HISTORY_MSG_20;חידוד -HISTORY_MSG_21;חידוד - רדיוס -HISTORY_MSG_22;חידוד - כמות -HISTORY_MSG_23;חידוד - סף -HISTORY_MSG_24;חידוד - רק קצוות -HISTORY_MSG_25;חידוד - רדיוס גילוי קצוות -HISTORY_MSG_26;חידוד - סבילות קצוות -HISTORY_MSG_27;חידוד - בקרת הילה -HISTORY_MSG_28;בקרת הילה, כמות -HISTORY_MSG_29;שיטת החידוד -HISTORY_MSG_30;דיקונבולוציה - רדיוס -HISTORY_MSG_31;גיקונבולוציה - כמות -HISTORY_MSG_32;גיקונבולוציה - ריסון -HISTORY_MSG_33;גיקונבולוציה - חזרות -HISTORY_MSG_34;המנע מקיצוץ צבע -HISTORY_MSG_35;הגבלת רויה -HISTORY_MSG_36;גבול רויה -HISTORY_MSG_37;הגברת צבע -HISTORY_MSG_38;שיטת איזון לבן -HISTORY_MSG_39;מידת חום -HISTORY_MSG_40;גיוון איזון צבע -HISTORY_MSG_41;העברת צבע א -HISTORY_MSG_42;העברת צבע ב -HISTORY_MSG_43;הסרת רעש בהירות -HISTORY_MSG_44;הסרת רעש בהירות רדיוס -HISTORY_MSG_45;הסרת רעש בהירות סבילות קצוות -HISTORY_MSG_46;הסרת רעש צבעוני -HISTORY_MSG_47;הסרת רעש צבעוני רדיוס -HISTORY_MSG_48;הסרת רעש צבעוני סבילות קצוות -HISTORY_MSG_49;הסרת רעש צבעוני רגישות לקצוות -HISTORY_MSG_50;כלי בהירים\כהים -HISTORY_MSG_51;הגברת גוונים בהירים -HISTORY_MSG_52;ההגברת גוונים כהים -HISTORY_MSG_53;בהירים, רוחב גוונים -HISTORY_MSG_54;כהים, רוחב גוונים -HISTORY_MSG_55;ניגודיות מקומית -HISTORY_MSG_56;בהירים\כהים רדיוס -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;C/A תיקון עיוות -HISTORY_MSG_66;שחזור גוונים בהירים -HISTORY_MSG_67;שחזור גוונים בהירים, כמות -HISTORY_MSG_68;שחזור גוונים בהירים, שיטה -HISTORY_MSG_69;מרחב צבע עבודה -HISTORY_MSG_70;מרחב צבע ייצוא -HISTORY_MSG_71;מרחב צבע ייבוא -HISTORY_MSG_72;תיקון פינות כהות -HISTORY_MSG_73;מערבב ערוצים -HISTORY_MSG_74;מידת שינוי גודל -HISTORY_MSG_75;שיטת שינוי גודל -HISTORY_MSG_76;Exif Metadata -HISTORY_MSG_77;IPTC Metadata -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;תצלום חדש -HISTORY_SNAPSHOT;תצלום -HISTORY_SNAPSHOTS;תצלומים -IPTCPANEL_CATEGORY;Category -IPTCPANEL_CITY;City -IPTCPANEL_COPYHINT;Copy IPTC settings to clipboard -IPTCPANEL_COUNTRY;Country -IPTCPANEL_CREDIT;Credit -IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit). -IPTCPANEL_DATECREATED;Date Created -IPTCPANEL_EMBEDDED;Embedded -IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file -IPTCPANEL_HEADLINE;Headline -IPTCPANEL_INSTRUCTIONS;Instructions -IPTCPANEL_KEYWORDS;Keywords -IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard -IPTCPANEL_RESET;Reset -IPTCPANEL_RESETHINT;Reset to profile default -IPTCPANEL_SOURCE;Source -IPTCPANEL_TITLE;Title -MAIN_BUTTON_PREFERENCES;העדפויות -MAIN_BUTTON_SAVE;שמור צילום -MAIN_BUTTON_SENDTOEDITOR;Send to editor -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;הקובץ כבר קיים -MAIN_MSG_CANNOTLOAD;לא יכול להעלות את הקובץ -MAIN_MSG_CANNOTSAVE;טעות בשמירת הקובץ -MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog. -MAIN_MSG_QOVERWRITE;?רצונך לכתוב אותו מחדש? -MAIN_TAB_COLOR;Color -MAIN_TAB_DETAIL;Detail -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Exposure -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;התמרות -MAIN_TOOLTIP_HIDEHP;גלה\הסתר לוח שמאלי - היסטוריה (shortcut key: F) -MAIN_TOOLTIP_INDCLIPPEDH;סימן לגוונים בהירים מקוצצים -MAIN_TOOLTIP_INDCLIPPEDS;סימן לגוונים כהים מקוצצים -MAIN_TOOLTIP_QINFO;מידע מהיר אודות הצילום -PARTIALPASTE_BASICGROUP;Basic settings -PARTIALPASTE_CACORRECTION;C/A correction -PARTIALPASTE_COARSETRANS;90 deg rotation / flipping -PARTIALPASTE_COLORGROUP;Color related settings -PARTIALPASTE_COMPOSITIONGROUP;Composition settings -PARTIALPASTE_CROP;Crop -PARTIALPASTE_DIALOGLABEL;Partial paste processing profile -PARTIALPASTE_DISTORTION;Distortion correction -PARTIALPASTE_EXIFCHANGES;Changes to exif data -PARTIALPASTE_EXPOSURE;Exposure -PARTIALPASTE_ICMSETTINGS;ICM settings -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Lens related settings -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Resize -PARTIALPASTE_ROTATION;Rotation -PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights -PARTIALPASTE_SHARPENING;Sharpening -PARTIALPASTE_VIGNETTING;Vignetting correction -PARTIALPASTE_WHITEBALANCE;White balance -PREFERENCES_APPLNEXTSTARTUP;ייושם באתחול הבא -PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries -PREFERENCES_CACHEOPTS;Cache Options -PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height -PREFERENCES_CLIPPINGIND;סימון קיצוץ -PREFERENCES_DATEFORMAT;צורת תאריך -PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DIRHOME;תיקיית הבית -PREFERENCES_DIRLAST;תיקיה האחרונה שביקרתי בה -PREFERENCES_DIROTHER;אחר -PREFERENCES_DIRSELECTDLG;בחר תיקיית צילומים לאתחול -PREFERENCES_DIRSOFTWARE;תיקיית התקנה -PREFERENCES_EXTERNALEDITOR;External editor -PREFERENCES_FBROWSEROPTS;ברירות דפדפן -PREFERENCES_FILEFORMAT;תצורת קובץ -PREFERENCES_FORIMAGE;עבור קבצי צילום -PREFERENCES_FORRAW;RAW עבור קבצי -PREFERENCES_GIMPPATH;GIMP installation directory -PREFERENCES_HLTHRESHOLD;סף קיצוץ עליון -PREFERENCES_ICCDIR;ICC תיקיית פרופילי צבע -PREFERENCES_IMPROCPARAMS;נתוני עיבוד ברירת המחדל -PREFERENCES_INTENT_ABSOLUTE;קולורמטרית מוחלטת -PREFERENCES_INTENT_PERCEPTUAL;תפיסתית -PREFERENCES_INTENT_RELATIVE;קולורמטרית יחסית -PREFERENCES_INTENT_SATURATION;רויה -PREFERENCES_OUTDIR;תיקיית ייצוא -PREFERENCES_OUTDIRFOLDER;Save to folder -PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the seledted folder -PREFERENCES_OUTDIRTEMPLATE;Use Template -PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Parsed Extensions -PREFERENCES_PARSEDEXTADD;Add Extension -PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list -PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list -PREFERENCES_PROFILEHANDLING;Processing Profile Handling -PREFERENCES_PROFILELOADPR;Profile Loading Priority -PREFERENCES_PROFILEPRCACHE;Profile in Cache -PREFERENCES_PROFILEPRFILE;Profile Next to the Input File -PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache -PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File -PREFERENCES_PSPATH;Adobe Photoshop installation directory -PREFERENCES_SELECTLANG;בחר שפה -PREFERENCES_SHOWBASICEXIF;Exif הראה מידע -PREFERENCES_SHOWDATETIME;הראה תאריך ושעה -PREFERENCES_SHTHRESHOLD;סף קיצוץ תחתון -PREFERENCES_STARTUPIMDIR;תיקיית צילומים באתחול -PREFERENCES_TAB_BROWSER;דפדפן קבצים -PREFERENCES_TAB_COLORMGR;ניהול צבעים -PREFERENCES_TAB_GENERAL;כללי -PREFERENCES_TAB_IMPROC;עיבוד צילום -PROFILEPANEL_LABEL;פרופילי עיבוד -PROFILEPANEL_LOADDLGLABEL;הטען נתוני עיבוד -PROFILEPANEL_PCUSTOM;מותאם -PROFILEPANEL_PFILE;מקובץ -PROFILEPANEL_PLASTSAVED;נשמר אחרון -PROFILEPANEL_SAVEDLGLABEL;שמור נתוני עיבוד -PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard -PROFILEPANEL_TOOLTIPLOAD;הטען פרופיל מקובץ -PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard -PROFILEPANEL_TOOLTIPSAVE;שמור פרופיל נוכחי -PROGRESSBAR_LOADING;מטעין צילום -PROGRESSBAR_LOADJPEG;JPG מטעין קובץ -PROGRESSBAR_LOADPNG;PNG מטעין קובץ -PROGRESSBAR_LOADTIFF;TIFF מטעין קובץ -PROGRESSBAR_PROCESSING;מעבד צילום -PROGRESSBAR_READY;מוכן -PROGRESSBAR_SAVEJPEG;JPG שומר קובץ -PROGRESSBAR_SAVEPNG;PNG שומר קובץ -PROGRESSBAR_SAVETIFF;TIFF שומר קובץ -QINFO_ISO;ISO -QINFO_NOEXIF;המידע לא זמין -SAVEDLG_FILEFORMAT;תצורת קובץ -SAVEDLG_JPEGQUAL;JPEG איכות -SAVEDLG_PUTTOQUEUE;Put into processing queue -SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue -SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue -SAVEDLG_SAVEIMMEDIATELY;Save immediately -SAVEDLG_SAVESPP;שמור נתוני עיבוד עם הצילום -TOOLBAR_TOOLTIP_CROP;בחירת גזירה (shortcut key: C) -TOOLBAR_TOOLTIP_HAND;כלי יד (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;בחירת קו ישר (shortcut key: S) -TOOLBAR_TOOLTIP_WB;איזון לבן נקודתי (shortcut key: W) -TP_CACORRECTION_BLUE;כחול -TP_CACORRECTION_LABEL;C/A תיקון -TP_CACORRECTION_RED;אדום -TP_CHMIXER_BLUE;כחול -TP_CHMIXER_GREEN;ירוק -TP_CHMIXER_LABEL;מערבב ערוצים -TP_CHMIXER_RED;אדום -TP_COARSETRAF_TOOLTIP_HFLIP;הפוך אופקי -TP_COARSETRAF_TOOLTIP_ROTLEFT;סובב שמאלה -TP_COARSETRAF_TOOLTIP_ROTRIGHT;סובב ימינה -TP_COARSETRAF_TOOLTIP_VFLIP;הפוך אנכי -TP_CROP_FIXRATIO;קבע יחס -TP_CROP_GTDIAGONALS;כלל האלכסון -TP_CROP_GTNONE;ללא -TP_CROP_GTRULETHIRDS;כלל השליש -TP_CROP_GUIDETYPE;סוג מדריך -TP_CROP_H;גובה -TP_CROP_LABEL;גזור -TP_CROP_W;רוחב -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;כמות -TP_DISTORTION_LABEL;עיוות -TP_EXPOSURE_AUTOLEVELS;מפלסים אוטומטים -TP_EXPOSURE_BLACKLEVEL;שחור -TP_EXPOSURE_BRIGHTNESS;בהירות -TP_EXPOSURE_CLIP;קצץ -TP_EXPOSURE_COMPRHIGHLIGHTS;דחיסת גוונים בהירים -TP_EXPOSURE_COMPRSHADOWS;דחיסת גוונים כהים -TP_EXPOSURE_CONTRAST;ניגודיות -TP_EXPOSURE_CURVEEDITOR;עקמת גוונים -TP_EXPOSURE_EXPCOMP;פיצוי חשיפה -TP_EXPOSURE_LABEL;חשיפה -TP_HLREC_CIELAB;CIELab Blending -TP_HLREC_COLOR;הפצת צבע -TP_HLREC_LABEL;שחזור גוונים בהירים -TP_HLREC_LUMINANCE;שחזור בהירות -TP_HLREC_METHOD;שיטה -TP_ICM_INPUTCAMERA;ברירת מחדל המצלמה -TP_ICM_INPUTCUSTOM;מותאם -TP_ICM_INPUTDLGLABEL;בחר בפרופיל צבע ייבוא -TP_ICM_INPUTEMBEDDED;השתמש בפרופיל משובץ,אם אפשר -TP_ICM_INPUTPROFILE;פרופיל ייבוא -TP_ICM_LABEL;ניהול צבע -TP_ICM_NOICM;sRGBללא ניהול צבע - ייצוא ב -TP_ICM_OUTPUTPROFILE;פרופיל ייצוא -TP_ICM_WORKINGPROFILE;פרופיל עבודה -TP_RAW_DMETHOD;שיטה -TP_RAW_FALSECOLOR;דחיית צבע מסולף -TP_RESIZE_H;גובה -TP_RESIZE_LABEL;החלף גודל -TP_RESIZE_METHOD;שיטה -TP_RESIZE_NEAREST;הקרוב -TP_RESIZE_SCALE;מידה -TP_RESIZE_W;רוחב -TP_ROTATE_DEGREE;מעלות -TP_ROTATE_LABEL;סובב -TP_ROTATE_SELECTLINE;בחור קו ישר -TP_SHADOWSHLIGHTS_HIGHLIGHTS;גוונים בהירים -TP_SHADOWSHLIGHTS_HLTONALW;רוחב גוונים -TP_SHADOWSHLIGHTS_LABEL;בהירים\כהים -TP_SHADOWSHLIGHTS_LOCALCONTR;ניגודיות מקומית -TP_SHADOWSHLIGHTS_RADIUS;רדיוס -TP_SHADOWSHLIGHTS_SHADOWS;גוונים כהים -TP_SHADOWSHLIGHTS_SHTONALW;רוחב גוונים -TP_SHARPENING_AMOUNT;כמות -TP_SHARPENING_EDRADIUS;רדיוס -TP_SHARPENING_EDTOLERANCE;סבילות לקצוות -TP_SHARPENING_HALOCONTROL;בקרת הילה -TP_SHARPENING_HCAMOUNT;כמות -TP_SHARPENING_LABEL;חידוד -TP_SHARPENING_METHOD;שיטה -TP_SHARPENING_ONLYEDGES;חידוד רק בקצוות -TP_SHARPENING_RADIUS;רדיוס -TP_SHARPENING_RLD;RL דיקונבולוציה -TP_SHARPENING_RLD_AMOUNT;כמות -TP_SHARPENING_RLD_DAMPING;ריסון -TP_SHARPENING_RLD_ITERATIONS;חזרות -TP_SHARPENING_THRESHOLD;םף -TP_SHARPENING_USM;מיסוך אי-חדות -TP_VIGNETTING_AMOUNT;כמות -TP_VIGNETTING_LABEL;תיקון פינות כהות -TP_VIGNETTING_RADIUS;רדיוס -TP_WBALANCE_AUTO;אוטומטי -TP_WBALANCE_CAMERA;מצלמה -TP_WBALANCE_CUSTOM;מותאם -TP_WBALANCE_GREEN;גיוון -TP_WBALANCE_LABEL;איזון לבן -TP_WBALANCE_METHOD;שיטה -TP_WBALANCE_SIZE;גודל -TP_WBALANCE_SPOTWB;לפי נקודה -TP_WBALANCE_TEMPERATURE;מידת חום -# Hebrew - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian deleted file mode 100644 index d4b34d548..000000000 --- a/rtdata/languages/Latvian +++ /dev/null @@ -1,2328 +0,0 @@ -#01 YYYY-MM-DD by nickname - -CURVEEDITOR_LINEAR;Lineāri -CURVEEDITOR_LOADDLGLABEL;Ielādēt līkni... -CURVEEDITOR_SAVEDLGLABEL;Saglabāt līkni... -CURVEEDITOR_TOOLTIPLINEAR;Iztaisnot līkni -CURVEEDITOR_TOOLTIPLOAD;Ielādēt līkni no faila -CURVEEDITOR_TOOLTIPSAVE;Saglabāt esošo līkni -DIRBROWSER_FOLDERS;Mapes -EXIFFILTER_APERTURE;Atvērums -EXIFFILTER_CAMERA;Kamera -EXIFFILTER_FOCALLEN;Fokusa garums -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Lēca -EXIFFILTER_SHUTTER;Slēdzis -EXIFPANEL_ADDEDIT;Pielikt/Labot -EXIFPANEL_ADDEDITHINT;Pielikt jaunu birku vai labot birku -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Ievadiet vērtību -EXIFPANEL_ADDTAGDLG_SELECTTAG;Izvēlēt birku -EXIFPANEL_ADDTAGDLG_TITLE;Pielikt/Labot birku -EXIFPANEL_KEEP;Atstāt -EXIFPANEL_KEEPHINT;Atstāt izvēlētās birkas kad raksta izvades failu -EXIFPANEL_REMOVE;Noņemt -EXIFPANEL_REMOVEHINT;Noņemt izvēlētās birkas kad raksta izvades failu -EXIFPANEL_RESET;Atmest -EXIFPANEL_RESETALL;Atmest visu -EXIFPANEL_RESETALLHINT;Atmest visas birkas uz to noklusētajām vērtībām -EXIFPANEL_RESETHINT;Atmest izvēlētās birkas uz to noklusētajām vērtībām -EXIFPANEL_SUBDIRECTORY;Subdirektorijs -FILEBROWSER_APPLYPROFILE;Lietot profilu -FILEBROWSER_CLEARPROFILE;Notīrīt profilu -FILEBROWSER_COPYPROFILE;Kopēt profilu -FILEBROWSER_DELETEDLGLABEL;Faila dzēšanas apstiprinājums -FILEBROWSER_DELETEDLGMSG;Vai tiešām dzēst %1 atzīmētos filus? -FILEBROWSER_EMPTYTRASH;Izmest atkritumus -FILEBROWSER_EMPTYTRASHHINT;Galīgi izdzēst atkritnes failus -FILEBROWSER_PARTIALPASTEPROFILE;Daļēja ielīmēšana -FILEBROWSER_PASTEPROFILE;Ielīmēt profilu -FILEBROWSER_POPUPCANCELJOB;Atcelt darbu -FILEBROWSER_POPUPMOVEEND;Pārvietot uz rindas beigām -FILEBROWSER_POPUPMOVEHEAD;Pārvietot uz rindas sākumu -FILEBROWSER_POPUPOPEN;Atvērt -FILEBROWSER_POPUPOPENINEDITOR;Atvērt redaktorā -FILEBROWSER_POPUPPROCESS;Ielikt apstrādes rindā -FILEBROWSER_POPUPREMOVE;Dzēst no failu sistēmas -FILEBROWSER_POPUPRENAME;Pārsaukt -FILEBROWSER_POPUPSELECTALL;Atzīmēt visu -FILEBROWSER_POPUPTRASH;Izmest atkritnē -FILEBROWSER_POPUPUNRANK;Nevērtēt -FILEBROWSER_POPUPUNTRASH;Izņemt no atkritnes -FILEBROWSER_RENAMEDLGLABEL;Pārsaukt failu -FILEBROWSER_SHOWDIRHINT;Rādīt visus direktorija attēlus -FILEBROWSER_SHOWRANK1HINT;Rādīt attēlus ar 1 zvaigzni -FILEBROWSER_SHOWRANK2HINT;Rādīt attēlus ar 2 zvaigznēm -FILEBROWSER_SHOWRANK3HINT;Rādīt attēlus ar 3 zvaigznēm -FILEBROWSER_SHOWRANK4HINT;Rādīt attēlus ar 4 zvaigznēm -FILEBROWSER_SHOWRANK5HINT;Rādīt attēlus ar 5 zvaigznēm -FILEBROWSER_SHOWTRASHHINT;Rādīt atkritni -FILEBROWSER_SHOWUNRANKHINT;Rādīt nevērtētus attēlus -FILEBROWSER_THUMBSIZE;Sīktēlu izmērs -FILEBROWSER_ZOOMINHINT;Palielināt sīktēlus -FILEBROWSER_ZOOMOUTHINT;Samazināt sīktēlus -GENERAL_ABOUT;Par -GENERAL_CANCEL;Atcelt -GENERAL_DISABLE;Atslēgt -GENERAL_DISABLED;Atslēgts -GENERAL_ENABLE;Ieslēgt -GENERAL_ENABLED;Ieslēgts -GENERAL_LANDSCAPE;Ainava -GENERAL_NA;n/a -GENERAL_NO;Nē -GENERAL_OK;Labi -GENERAL_PORTRAIT;Portrets -GENERAL_SAVE;Saglabāt -HISTOGRAM_TOOLTIP_B;Rādīt/Slēpt Zilā histogrammu -HISTOGRAM_TOOLTIP_G;Rādīt/Slēpt Zaļā histogrammu -HISTOGRAM_TOOLTIP_L;Rādīt/Slēpt CIELAB Spīduma histogrammu -HISTOGRAM_TOOLTIP_R;Rādīt/Slēpt Sarkanā histogrammu -HISTORY_CHANGED;Mainīts -HISTORY_CUSTOMCURVE;Pielāgota līkne -HISTORY_FROMCLIPBOARD;No starplikas -HISTORY_LABEL;Vēsture -HISTORY_MSG_1;Attēls ielādēts -HISTORY_MSG_2;Profils ielādēts -HISTORY_MSG_3;Profils izmainīts -HISTORY_MSG_4;Vēstures pārlūkošana -HISTORY_MSG_5;Gaišums -HISTORY_MSG_6;Kontrasts -HISTORY_MSG_7;Melnais -HISTORY_MSG_8;Ekspozīcijas labošana -HISTORY_MSG_9;Izgaismojumu spiešana -HISTORY_MSG_10;Ēnu spiešana -HISTORY_MSG_11;Toņa līkne -HISTORY_MSG_12;Auto Ekspozīcija -HISTORY_MSG_13;Ekspozīcijas cirpšana -HISTORY_MSG_14;Spīduma Gaišums -HISTORY_MSG_15;Spīduma Kontrasts -HISTORY_MSG_16;Spīduma Melnais -HISTORY_MSG_17;Spīduma Izgaismojumu spiešana -HISTORY_MSG_18;Spīduma Ēnu spiešana -HISTORY_MSG_19;Spīduma Līkne -HISTORY_MSG_20;Asināšana -HISTORY_MSG_21;Asināšanas radiuss -HISTORY_MSG_22;Asināšanas apjoms -HISTORY_MSG_23;Asināšanas slieksnis -HISTORY_MSG_24;Asināt tikai malas -HISTORY_MSG_25;Asināšanas malu meklēšanas radiuss -HISTORY_MSG_26;Asināšanas malu iecietība -HISTORY_MSG_27;Asināšanas caurumu kontrole -HISTORY_MSG_28;Caurumu kontroles apjoms -HISTORY_MSG_29;Asināšanas metode -HISTORY_MSG_30;Atritināšanas radiuss -HISTORY_MSG_31;Atritināšanas apjoms -HISTORY_MSG_32;Atritināšanas slāpēšana -HISTORY_MSG_33;Atritināšanas soļi -HISTORY_MSG_34;Izvairīties no krāsu cirpšanas -HISTORY_MSG_35;Piesātinājuma ierobežojums -HISTORY_MSG_36;Piesātinājuma robeža -HISTORY_MSG_37;Krāsu pastiprināšana -HISTORY_MSG_38;Baltā līdzsvara metode -HISTORY_MSG_39;Krāsu temperatūra -HISTORY_MSG_40;Baltā līdzsvara nokrāsa -HISTORY_MSG_41;Krāsu nobīde "A" -HISTORY_MSG_42;Krāsu nobīde "B" -HISTORY_MSG_43;Spīduma trokšņu slāpēšana -HISTORY_MSG_44;Spož. trokšņu slāpēšanas radiuss -HISTORY_MSG_45;Spož. trokšņu slāpēšanas malu iecietība -HISTORY_MSG_46;Krāsu trokšņu slāpēšana -HISTORY_MSG_47;Krāsu trokšņu slāpēšanas radiuss -HISTORY_MSG_48;Krāsu trokšņu slāpēšanas malu iecietība -HISTORY_MSG_49;Krāsu trokšņu slāpēšanas malu jutīgums -HISTORY_MSG_50;Ēnu/Izgaismojumu rīks -HISTORY_MSG_51;Izgaismojumu pastiprināšana -HISTORY_MSG_52;Ēnu pastiprināšana -HISTORY_MSG_53;Izgaismojumu toņa platums -HISTORY_MSG_54;Ēnu toņa platums -HISTORY_MSG_55;Vietējais kontrasts -HISTORY_MSG_56;Ēnu/Izgaismojumu radiuss -HISTORY_MSG_57;Raupja pagriešana -HISTORY_MSG_58;Horizontāla apmešana -HISTORY_MSG_59;Vertikāla apmešana -HISTORY_MSG_60;Pagriešana -HISTORY_MSG_61;Pagriešana -HISTORY_MSG_62;Lēcu kropļojumu labošana -HISTORY_MSG_63;Grāmatzīme izvēlēta -HISTORY_MSG_64;Kadrējums -HISTORY_MSG_65;Krāsu nobīdes labošana -HISTORY_MSG_66;Izgaismojumu atgūšana -HISTORY_MSG_67;Izgaismojumu atgūšanas apjoms -HISTORY_MSG_68;Izgaismojumu atgūšanas metode -HISTORY_MSG_69;Krāsu telpa darbam -HISTORY_MSG_70;Krāsu telpa izvadei -HISTORY_MSG_71;Ievades krāsu telpa -HISTORY_MSG_72;Vinjetes labošana -HISTORY_MSG_73;Kanālu jaucējs -HISTORY_MSG_74;Izmēra mērogs -HISTORY_MSG_75;Izmērmaiņas metode -HISTORY_MSG_76;Exif metadati -HISTORY_MSG_77;IPTC metadati -HISTORY_MSG_78;Norādīti izmērmaiņas dati -HISTORY_MSG_79;Izmērmaiņas platums -HISTORY_MSG_80;Izmērmaiņas augstums -HISTORY_MSG_81;Izmērmaiņa ieslēgta -HISTORY_NEWSNAPSHOT;Jauna grāmtzīme -HISTORY_SNAPSHOT;Grāmtzīme -HISTORY_SNAPSHOTS;Grāmtzīmes -IPTCPANEL_CATEGORY;Kategorija -IPTCPANEL_CITY;Pilsēta -IPTCPANEL_COPYHINT;Kopēt IPTC iestatījumus uz starpliku -IPTCPANEL_COUNTRY;Valsts -IPTCPANEL_CREDIT;Pateicība -IPTCPANEL_CREDITHINT;Identificē attēla sniedzēju, nav obligāti radītājs vai īpašnieks (Credit). -IPTCPANEL_DATECREATED;Izveidošanas datums -IPTCPANEL_EMBEDDED;Iegultais -IPTCPANEL_EMBEDDEDHINT;Attiestatīt uz attēla iegultajiem IPTC datiem -IPTCPANEL_HEADLINE;Konspekts -IPTCPANEL_INSTRUCTIONS;Norādījumi -IPTCPANEL_KEYWORDS;Atslēgvārdi -IPTCPANEL_PASTEHINT;Ielīmēt IPTC iestatījumus no starplikas -IPTCPANEL_RESET;Atiestate -IPTCPANEL_RESETHINT;Atiestatīt uz profila noklusējumu -IPTCPANEL_SOURCE;Avots -IPTCPANEL_TITLE;Nosaukums -MAIN_BUTTON_PREFERENCES;Iestatījumi -MAIN_BUTTON_SAVE;Saglabāt attēlu -MAIN_BUTTON_SENDTOEDITOR;Sūtīt uz redaktoru -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Fails jau ir. -MAIN_MSG_CANNOTLOAD;Nevaru ielādēt attēlu -MAIN_MSG_CANNOTSAVE;Faila saglabāšanas kļūda -MAIN_MSG_CANNOTSTARTEDITOR;Nevar uzsākt redaktoru. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Lūdzu ievadiet pareizu ceļu dialogā "Uzstādījumi". -MAIN_MSG_QOVERWRITE;Vai pārrakstīt to? -MAIN_TAB_COLOR;Krāsa -MAIN_TAB_DETAIL;Detaļas -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Ekspozīcija -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadati -MAIN_TAB_TRANSFORM;Pārveidot -MAIN_TOOLTIP_HIDEHP;Rādīt/slēpt kreiso ielaidumu (ieskaitot vēsturi, saīsne: H) -MAIN_TOOLTIP_INDCLIPPEDH;Izgaismojumu cirpšanas pazīme -MAIN_TOOLTIP_INDCLIPPEDS;Ēnu cirpšanas pazīme -MAIN_TOOLTIP_QINFO;Ātrā info uz attēla -PARTIALPASTE_BASICGROUP;Pamata uzstādījumi -PARTIALPASTE_CACORRECTION;Krāsu novirzes labošana -PARTIALPASTE_COARSETRANS;90 grādu rotēšana / apmešana -PARTIALPASTE_COLORGROUP;Krāsu uzstādījumi -PARTIALPASTE_COMPOSITIONGROUP;Kompozīcijas uzstādījumi -PARTIALPASTE_CROP;Apcirpt -PARTIALPASTE_DIALOGLABEL;Daļēji ielīmēt apstrādes profilu -PARTIALPASTE_DISTORTION;Kropļojumu labošana -PARTIALPASTE_EXIFCHANGES;exif datu izmaiņas -PARTIALPASTE_EXPOSURE;Ekspozīcija -PARTIALPASTE_ICMSETTINGS;ICM uzstādījumi -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Lēcas uzstādījumi -PARTIALPASTE_METAGROUP;Metadati -PARTIALPASTE_RESIZE;Izmērmaiņa -PARTIALPASTE_ROTATION;Rotācija -PARTIALPASTE_SHADOWSHIGHLIGHTS;Ēnas/izgaismojumi -PARTIALPASTE_SHARPENING;Asināšana -PARTIALPASTE_VIGNETTING;Vinjetes labošana -PARTIALPASTE_WHITEBALANCE;Baltā līdzsvarss -PREFERENCES_APPLNEXTSTARTUP;lietos nākamā reizē -PREFERENCES_CACHEMAXENTRIES;Maksimālais keša ierakstu skaits -PREFERENCES_CACHEOPTS;Keša opcijas -PREFERENCES_CACHETHUMBHEIGHT;Keša maksimālais sīktēla augstums -PREFERENCES_CLIPPINGIND;Cirpšanas pazīme -PREFERENCES_DATEFORMAT;Datuma formāts -PREFERENCES_DATEFORMATHINT;Jūs varat lietot šāduas formatēšanas parametrus:\n%y : gads\n%m : mēnesis\n%d : diena\n\nPiemēram, ungāru datuma formāts ir:\n%y/%m/%d -PREFERENCES_DIRHOME;Mājas mape -PREFERENCES_DIRLAST;Pēdējā lietotā mape -PREFERENCES_DIROTHER;Cita -PREFERENCES_DIRSELECTDLG;Izvēlies attēlu mapi sākumam... -PREFERENCES_DIRSOFTWARE;Uzstādīšanas mape -PREFERENCES_EXTERNALEDITOR;Ārējais redaktors -PREFERENCES_FBROWSEROPTS;Failu pārlūka iespējas -PREFERENCES_FILEFORMAT;Faila formāts -PREFERENCES_FORIMAGE;Attēlu failiem -PREFERENCES_FORRAW;RAW failiem -PREFERENCES_GIMPPATH;GIMP instalācijas direktorijs -PREFERENCES_HLTHRESHOLD;Cirpto izgaismojumu slieksnis -PREFERENCES_ICCDIR;ICC profilu mape -PREFERENCES_IMPROCPARAMS;Noklusētie attēla apstrādes parametri -PREFERENCES_INTENT_ABSOLUTE;Absolūtā kolorimetrija -PREFERENCES_INTENT_PERCEPTUAL;Uztverams -PREFERENCES_INTENT_RELATIVE;Relatīvā kolorimetrija -PREFERENCES_INTENT_SATURATION;Piesātinājums -PREFERENCES_OUTDIR;Izvades mape -PREFERENCES_OUTDIRFOLDER;Saglabāt mapē -PREFERENCES_OUTDIRFOLDERHINT;Likt saglabātos attēlus norādītajā mapē -PREFERENCES_OUTDIRTEMPLATE;Lietot veidni -PREFERENCES_OUTDIRTEMPLATEHINT;Jūs varat lietot šādas formatēšanas virknes:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nŠīs formatēšanas virknes attiecas uz direktorijiem un RAW faila apakšceļiem.\n\nPiemēram, ja ir atvērts /home/tom/image/02-09-2006/dsc0012.nef, formatējuma virkņu nozīme ir:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nJa vēlaties rezultātu saglabāt turpat pie oriģināla, rakstiet:\n%p1/%f\n\nJa vēlaties rezultātu saglabāt direktorijā 'converted' pie oriģināla, rakstiet:\n%p1/converted/%f\n\nJa vēlaties rezultātu saglabāt direktorijā '/home/tom/converted' paturot to pašu datumu apakšdirektoriju, rakstiet:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Parsētie paplašīnājumi -PREFERENCES_PARSEDEXTADD;Pielikt paplašinājumu -PREFERENCES_PARSEDEXTADDHINT;Ierakstiet paplašinājumu un nospiediet šo pogu lai pievienotu sarakstam -PREFERENCES_PARSEDEXTDELHINT;Dzēst atzīmēto paplašinājumu no saraksta -PREFERENCES_PROFILEHANDLING;Apstrādes profilu politika -PREFERENCES_PROFILELOADPR;Profilu ielādes prioritāte -PREFERENCES_PROFILEPRCACHE;Profils kešā -PREFERENCES_PROFILEPRFILE;Profils pie ievades faila -PREFERENCES_PROFILESAVECACHE;Saglabāt apstrādes profilu kešā -PREFERENCES_PROFILESAVEINPUT;Saglabāt apstrādes profilu pie ievades faila -PREFERENCES_PSPATH;Adobe Photoshop instalācijas direktorijs -PREFERENCES_SELECTLANG;Izvēlies valodu -PREFERENCES_SHOWBASICEXIF;Rādīt Exif pamatdatus -PREFERENCES_SHOWDATETIME;Rādīt datumu un laiku -PREFERENCES_SHTHRESHOLD;Cirpto ēnu slieksnis -PREFERENCES_STARTUPIMDIR;Attēlu mape sākumā -PREFERENCES_TAB_BROWSER;Failu pārlūks -PREFERENCES_TAB_COLORMGR;Krāsu pārvaldība -PREFERENCES_TAB_GENERAL;Vispārīgi -PREFERENCES_TAB_IMPROC;Attēlu apstrāde -PROFILEPANEL_LABEL;Apstrādes profili -PROFILEPANEL_LOADDLGLABEL;Ielādēt apstrādes profilu... -PROFILEPANEL_PCUSTOM;Pielāgots -PROFILEPANEL_PFILE;No faila -PROFILEPANEL_PLASTSAVED;Pēdējais saglabātais -PROFILEPANEL_SAVEDLGLABEL;Saglabāt apstrādes profilu... -PROFILEPANEL_TOOLTIPCOPY;Kopēt esošo profilu uz starpliku -PROFILEPANEL_TOOLTIPLOAD;Ielādēt profilu no faila -PROFILEPANEL_TOOLTIPPASTE;Ielīmēt profilu no starplikas -PROFILEPANEL_TOOLTIPSAVE;Saglabāt šībrīža profilu -PROGRESSBAR_LOADING;Attēla ielāde... -PROGRESSBAR_LOADJPEG;Ielādēju JPEG failu... -PROGRESSBAR_LOADPNG;Ielādēju PNG failu... -PROGRESSBAR_LOADTIFF;Ielādēju TIFF failu... -PROGRESSBAR_PROCESSING;Attēla apstrāde... -PROGRESSBAR_READY;Gatavs -PROGRESSBAR_SAVEJPEG;Saglabāju JPEG failu... -PROGRESSBAR_SAVEPNG;Saglabāju PNG failu... -PROGRESSBAR_SAVETIFF;Saglabāju TIFF failu... -QINFO_ISO;ISO -QINFO_NOEXIF;Exif dati nav pieejami. -SAVEDLG_FILEFORMAT;Faila formāts -SAVEDLG_JPEGQUAL;JPEG Kvalitāte -SAVEDLG_PUTTOQUEUE;Likt apstrādes rindā -SAVEDLG_PUTTOQUEUEHEAD;Likt apstrādes rindas sākumā -SAVEDLG_PUTTOQUEUETAIL;Likt apstrādes rindas beigās -SAVEDLG_SAVEIMMEDIATELY;Saglabāt tūlīt -SAVEDLG_SAVESPP;Saglabāt apstrādes profilu ar attēlu -TOOLBAR_TOOLTIP_CROP;Kadrēšanas rīks (saīsne: C) -TOOLBAR_TOOLTIP_HAND;Plaukstas rīks (saīsne: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Līmeņošanas rīks (saīsne: S) -TOOLBAR_TOOLTIP_WB;Punkta baltā līdzsvara rīks (saīsne: W) -TP_CACORRECTION_BLUE;Zils -TP_CACORRECTION_LABEL;Lēcas krāsu nobīdes -TP_CACORRECTION_RED;Sarkans -TP_CHMIXER_BLUE;Zils -TP_CHMIXER_GREEN;Zaļš -TP_CHMIXER_LABEL;Kanālu jaucējs -TP_CHMIXER_RED;Sarkans -TP_COARSETRAF_TOOLTIP_HFLIP;Apmest horizontāli -TP_COARSETRAF_TOOLTIP_ROTLEFT;Pagriezt pa kreisi -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Pagriezt pa labi -TP_COARSETRAF_TOOLTIP_VFLIP;Apmest vertikāli -TP_CROP_FIXRATIO;Attiecība: -TP_CROP_GTDIAGONALS;Diagonāles -TP_CROP_GTNONE;Nekādas -TP_CROP_GTRULETHIRDS;Trešdaļas -TP_CROP_GUIDETYPE;Vadlīnijas: -TP_CROP_H;A -TP_CROP_LABEL;Kadrējums -TP_CROP_W;P -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;Apjoms -TP_DISTORTION_LABEL;Lēcas kropļojums -TP_EXPOSURE_AUTOLEVELS;Auto Līmeņi -TP_EXPOSURE_BLACKLEVEL;Melnais -TP_EXPOSURE_BRIGHTNESS;Gaišums -TP_EXPOSURE_CLIP;Cirpt -TP_EXPOSURE_COMPRHIGHLIGHTS;Izgaismojumu spiešana -TP_EXPOSURE_COMPRSHADOWS;Ēnu spiešana -TP_EXPOSURE_CONTRAST;Kontrasts -TP_EXPOSURE_CURVEEDITOR;Toņa līkne -TP_EXPOSURE_EXPCOMP;Eksp. nobīde -TP_EXPOSURE_LABEL;Ekspozīcija -TP_HLREC_CIELAB;CIELab maisījums -TP_HLREC_COLOR;Krāsu pavairošana -TP_HLREC_LABEL;Izgaismojumu atgūšana -TP_HLREC_LUMINANCE;Spīduma atgūšana -TP_HLREC_METHOD;Metode: -TP_ICM_INPUTCAMERA;Kameras noklusētais -TP_ICM_INPUTCUSTOM;Pielāgots -TP_ICM_INPUTDLGLABEL;Izvēlies Ievades ICC Profilu... -TP_ICM_INPUTEMBEDDED;Lietot iegulto, ja var -TP_ICM_INPUTPROFILE;Ievades profils -TP_ICM_LABEL;ICM -TP_ICM_NOICM;Bez ICM: sRGB izvade -TP_ICM_OUTPUTPROFILE;Izvades profils -TP_ICM_WORKINGPROFILE;Darba profils -TP_RAW_DMETHOD;Metode -TP_RAW_FALSECOLOR;Neīsto krāsu slāpēšanas soļi -TP_RESIZE_H;A: -TP_RESIZE_LABEL;Izmērmaiņa -TP_RESIZE_METHOD;Metode: -TP_RESIZE_NEAREST;Tuvākais -TP_RESIZE_SCALE;Mērogs -TP_RESIZE_W;P: -TP_ROTATE_DEGREE;Grādi -TP_ROTATE_LABEL;Pagriezt -TP_ROTATE_SELECTLINE; Norādīt līmeni -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Izgaismojumi -TP_SHADOWSHLIGHTS_HLTONALW;Toņa platums -TP_SHADOWSHLIGHTS_LABEL;Ēnas/Izgaismojumi -TP_SHADOWSHLIGHTS_LOCALCONTR;Vietējais kontrasts -TP_SHADOWSHLIGHTS_RADIUS;Radiuss -TP_SHADOWSHLIGHTS_SHADOWS;Ēnas -TP_SHADOWSHLIGHTS_SHTONALW;Toņa platums -TP_SHARPENING_AMOUNT;Apjoms -TP_SHARPENING_EDRADIUS;Radiuss -TP_SHARPENING_EDTOLERANCE;Iecietība pret malām -TP_SHARPENING_HALOCONTROL;Caurumu kontole -TP_SHARPENING_HCAMOUNT;Apjoms -TP_SHARPENING_LABEL;Asināšana -TP_SHARPENING_METHOD;Metode -TP_SHARPENING_ONLYEDGES;Asināt tikai malas -TP_SHARPENING_RADIUS;Radiuss -TP_SHARPENING_RLD;RL atritināšana -TP_SHARPENING_RLD_AMOUNT;Apjoms -TP_SHARPENING_RLD_DAMPING;Slāpēšana -TP_SHARPENING_RLD_ITERATIONS;Soļi -TP_SHARPENING_THRESHOLD;Slieksnis -TP_SHARPENING_USM;Neasā maska -TP_VIGNETTING_AMOUNT;Apjoms -TP_VIGNETTING_LABEL;Vinjetes Labošana -TP_VIGNETTING_RADIUS;Radiuss -TP_WBALANCE_AUTO;Auto -TP_WBALANCE_CAMERA;Kamera -TP_WBALANCE_CUSTOM;Pielāgots -TP_WBALANCE_GREEN;Nokrāsa -TP_WBALANCE_LABEL;Baltā līdzsvars -TP_WBALANCE_METHOD;Metode -TP_WBALANCE_SIZE;izmērs: -TP_WBALANCE_SPOTWB;Punkta BL -TP_WBALANCE_TEMPERATURE;Temperatūra -# - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM deleted file mode 100644 index b4e585507..000000000 --- a/rtdata/languages/Norsk BM +++ /dev/null @@ -1,2327 +0,0 @@ -#01 2009-02-12 Esben L. Kristensen - -CURVEEDITOR_LINEAR;Linjær -CURVEEDITOR_LOADDLGLABEL;Åpne kurve... -CURVEEDITOR_SAVEDLGLABEL;Lagre kurve... -CURVEEDITOR_TOOLTIPLINEAR;Nullstil kurve til linjær -CURVEEDITOR_TOOLTIPLOAD;Lagre kurve fra fil -CURVEEDITOR_TOOLTIPSAVE;Lagre nåværende kurve -DIRBROWSER_FOLDERS;Mapper -EXIFFILTER_APERTURE;Blender -EXIFFILTER_CAMERA;Kamera -EXIFFILTER_FOCALLEN;Fokallengde -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Objektiv -EXIFFILTER_SHUTTER;Lukker -EXIFPANEL_ADDEDIT;Tilføy/Rediger -EXIFPANEL_ADDEDITHINT;Tilføy ny tag eller rediger tag -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Skriv verdi -EXIFPANEL_ADDTAGDLG_SELECTTAG;Velg tag -EXIFPANEL_ADDTAGDLG_TITLE;Tilføy/Rediger Tag -EXIFPANEL_KEEP;Behold -EXIFPANEL_KEEPHINT;Behold de utvalgte tags når det skrives output fil -EXIFPANEL_REMOVE;Fjern -EXIFPANEL_REMOVEHINT;Fjern de utvalgte tags når det skrives output fil -EXIFPANEL_RESET;Nullstil -EXIFPANEL_RESETALL;Nullstil alle -EXIFPANEL_RESETALLHINT;Nullstil alle tags til de opprinnelige verdier -EXIFPANEL_RESETHINT;Nullstil de utvalgte tags til de opprinnelige verdier -EXIFPANEL_SUBDIRECTORY;Undermappe -FILEBROWSER_APPLYPROFILE;Legg til profil -FILEBROWSER_CLEARPROFILE;Slett profil -FILEBROWSER_COPYPROFILE;Kopier profil -FILEBROWSER_DELETEDLGLABEL;Bekreft slett fil -FILEBROWSER_DELETEDLGMSG;Vil du slette valgte %1 filer? -FILEBROWSER_EMPTYTRASH;Tøm søpla -FILEBROWSER_EMPTYTRASHHINT;Tøm søpla permanent -FILEBROWSER_PARTIALPASTEPROFILE;Delvis lim inn -FILEBROWSER_PASTEPROFILE;Lim inn profil -FILEBROWSER_POPUPCANCELJOB;Avbryt jobben -FILEBROWSER_POPUPMOVEEND;Flytt til enden av køen -FILEBROWSER_POPUPMOVEHEAD;Flytt til begynnelsen av køen -FILEBROWSER_POPUPOPEN;Åpne -FILEBROWSER_POPUPOPENINEDITOR;Åpne i Editor -FILEBROWSER_POPUPPROCESS;Legg til i prosesseringskøen -FILEBROWSER_POPUPREMOVE;Fjern fra filsystem -FILEBROWSER_POPUPRENAME;Skift navn -FILEBROWSER_POPUPSELECTALL;Velg alt -FILEBROWSER_POPUPTRASH;Flytt til søpla -FILEBROWSER_POPUPUNRANK;Fjern rangering -FILEBROWSER_POPUPUNTRASH;Fjern fra søpla -FILEBROWSER_RENAMEDLGLABEL;Bytt filnavn -FILEBROWSER_SHOWDIRHINT;Vis alle bildene i folderen -FILEBROWSER_SHOWRANK1HINT;Vis bilder rangert med 1 stjerne -FILEBROWSER_SHOWRANK2HINT;Vis bilder rangert med 2 stjerne -FILEBROWSER_SHOWRANK3HINT;Vis bilder rangert med 3 stjerne -FILEBROWSER_SHOWRANK4HINT;Vis bilder rangert med 4 stjerne -FILEBROWSER_SHOWRANK5HINT;Vis bilder rangert med 5 stjerne -FILEBROWSER_SHOWTRASHHINT;Vis innholdet i søpla -FILEBROWSER_SHOWUNRANKHINT;Vis unrangerte bilder -FILEBROWSER_THUMBSIZE;Thumbnail størrelse -FILEBROWSER_ZOOMINHINT;Øk thumbnail størrelse -FILEBROWSER_ZOOMOUTHINT;Reduser thumbnail størrelse -GENERAL_ABOUT;Om -GENERAL_CANCEL;Annuller -GENERAL_DISABLE;Deaktiver -GENERAL_DISABLED;Deaktivert -GENERAL_ENABLE;Aktiver -GENERAL_ENABLED;Aktivert -GENERAL_LANDSCAPE;Landskap -GENERAL_NA;n/a -GENERAL_NO;Nei -GENERAL_OK;Ok -GENERAL_PORTRAIT;Portrett -GENERAL_SAVE;Lagre -HISTOGRAM_TOOLTIP_B;Vis/skjul blått histogram -HISTOGRAM_TOOLTIP_G;Vis/skjul grønt histogram -HISTOGRAM_TOOLTIP_L;Vis/skjul CIELAB Luminans histogram -HISTOGRAM_TOOLTIP_R;Vis/skjul rødt histogram -HISTORY_CHANGED;Forandret -HISTORY_CUSTOMCURVE;Egen kurve -HISTORY_FROMCLIPBOARD;Fra utklippstavlen -HISTORY_LABEL;Historikk -HISTORY_MSG_1;Foto åpnet -HISTORY_MSG_2;Profil åpnet -HISTORY_MSG_3;Profil endret -HISTORY_MSG_4;Historikk-gjennomsyn -HISTORY_MSG_5;Lysstyrke -HISTORY_MSG_6;Kontrast -HISTORY_MSG_7;Sort -HISTORY_MSG_8;Eksponerings-komprimering -HISTORY_MSG_9;Høylys-komprimering -HISTORY_MSG_10;Skyggekomprimering -HISTORY_MSG_11;Tonekurve -HISTORY_MSG_12;Autoeksponering -HISTORY_MSG_13;Eksponeringsmarkering -HISTORY_MSG_14;Luminanslysstyrke -HISTORY_MSG_15;Luminanskontrast -HISTORY_MSG_16;Sort luminans -HISTORY_MSG_17;Luminans høylys kompr. -HISTORY_MSG_18;Luminans skygge kompr. -HISTORY_MSG_19;Luminanskurve -HISTORY_MSG_20;Skarphet -HISTORY_MSG_21;Skarphetsradius -HISTORY_MSG_22;Skarphetsmengde -HISTORY_MSG_23;Skarphetsterskelverdi -HISTORY_MSG_24;Skarphet kun i kanter -HISTORY_MSG_25;Kanttegningsradie-skarphet -HISTORY_MSG_26;Kantskarphetstoleranse -HISTORY_MSG_27;Halo-skarphetsskontroll -HISTORY_MSG_28;Halo-kontrollstørrelse -HISTORY_MSG_29;Skarphetsmetode -HISTORY_MSG_30;Deconvolution-radius -HISTORY_MSG_31;Deconvolution-størrelse -HISTORY_MSG_32;Deconvolution-dempning -HISTORY_MSG_33;Deconvolution-gjentakelse -HISTORY_MSG_34;Unngå fargemarkeringer -HISTORY_MSG_35;Metthetsbegrensning -HISTORY_MSG_36;Methetsgrense -HISTORY_MSG_37;Fargeforsterkning -HISTORY_MSG_38;Hvitbalansemetode -HISTORY_MSG_39;Fargetemperatur -HISTORY_MSG_40;Hvitbalansenyanse -HISTORY_MSG_41;Fargeskift "A" -HISTORY_MSG_42;Fargeskift "B" -HISTORY_MSG_43;Luminans støyreduksjon -HISTORY_MSG_44;Lum. støyreduksjon-radius -HISTORY_MSG_45;Lum. støyreduksjon kanttoleranse -HISTORY_MSG_46;Fargestøyreduksjon -HISTORY_MSG_47;Fargestøyreduksjon-radius -HISTORY_MSG_48;Fargestøjreduktion-kanttoleranse -HISTORY_MSG_49;Kantfølsom fargestøyreduksjon -HISTORY_MSG_50;Skygge/høylys verktøy -HISTORY_MSG_51;Høylys-forsterkning -HISTORY_MSG_52;Skyggeforsterkning -HISTORY_MSG_53;Høylys-tonvidde -HISTORY_MSG_54;Skygge-tonevidde -HISTORY_MSG_55;Lokal kontrast -HISTORY_MSG_56;Skygge/høylys -radius -HISTORY_MSG_57;Enkel rotasjon -HISTORY_MSG_58;Vend horisontalt -HISTORY_MSG_59;Vend vertikalt -HISTORY_MSG_60;Rotasjon -HISTORY_MSG_61;Rotasjon -HISTORY_MSG_62;Objektivforvrengning-korrigering -HISTORY_MSG_63;Valgt bokmerke -HISTORY_MSG_64;Beskjær foto -HISTORY_MSG_65;C/A korrigering -HISTORY_MSG_66;Høylys-forbedring -HISTORY_MSG_67;Høylys-forbedringsstyrke -HISTORY_MSG_68;Høylys-forbedringsmetode -HISTORY_MSG_69;Arbeidsfargerom -HISTORY_MSG_70;Utgangssfargerom -HISTORY_MSG_71;Inngangsfargerom -HISTORY_MSG_72;Vignettering-korrigering -HISTORY_MSG_73;Kanalmikser -HISTORY_MSG_74;Endre størrelsesskala -HISTORY_MSG_75;Endre størrelses metode -HISTORY_MSG_76;Exif Metadata -HISTORY_MSG_77;IPTC Metadata -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;Nytt b.m -HISTORY_SNAPSHOT;Bokmerke -HISTORY_SNAPSHOTS;Bokmerker -IPTCPANEL_CATEGORY;Kategori -IPTCPANEL_CITY;By -IPTCPANEL_COPYHINT;Kopier IPTC innstillinger til utklippstavlen -IPTCPANEL_COUNTRY;Land -IPTCPANEL_CREDIT;Kreditering -IPTCPANEL_CREDITHINT;Identifisere oppretteren av bildet, ikke nødvendivis den samme som eieren (Credit). -IPTCPANEL_DATECREATED;Opptakelsesdato -IPTCPANEL_EMBEDDED;Intern IPTC data -IPTCPANEL_EMBEDDEDHINT;Nullstil til de IPTC data som finnes internt i bildefilen -IPTCPANEL_HEADLINE;Overskrift -IPTCPANEL_INSTRUCTIONS;Instruksjoner -IPTCPANEL_KEYWORDS;Nøkkelord -IPTCPANEL_PASTEHINT;Innsett IPTC innstillinger fra utklipstavlen -IPTCPANEL_RESET;Nullstil -IPTCPANEL_RESETHINT;Nullstil til standard profil -IPTCPANEL_SOURCE;Kilde -IPTCPANEL_TITLE;Bildetittel -MAIN_BUTTON_PREFERENCES;Innstillinger -MAIN_BUTTON_SAVE;Lagre bilde -MAIN_BUTTON_SENDTOEDITOR;Send til editor -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Filen eksisterer allerede. -MAIN_MSG_CANNOTLOAD;Kan ikke åpne bildet -MAIN_MSG_CANNOTSAVE;Kan ikke lagre -MAIN_MSG_CANNOTSTARTEDITOR;Kan ikke starte editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Vennligst sett korrekt bane i "Innstillinger" dialogen. -MAIN_MSG_QOVERWRITE;Vil du overskrive? -MAIN_TAB_COLOR;Farge -MAIN_TAB_DETAIL;Detailj -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Eksponering -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;Endre -MAIN_TOOLTIP_HIDEHP;Vis/skjul venstre panel (Inneholder historikken shortcut key: H) -MAIN_TOOLTIP_INDCLIPPEDH;Marker høylys-indikering -MAIN_TOOLTIP_INDCLIPPEDS;Marker skygge-indikering -MAIN_TOOLTIP_QINFO;Hurtig informasjon om bildet -PARTIALPASTE_BASICGROUP;Basisinnstillinger -PARTIALPASTE_CACORRECTION;C/A korreksjon -PARTIALPASTE_COARSETRANS;90° rotasjon/flipping -PARTIALPASTE_COLORGROUP;Fargerelaterte innstillinger -PARTIALPASTE_COMPOSITIONGROUP;Komposisjonsinnstillinger -PARTIALPASTE_CROP;Utsnitt -PARTIALPASTE_DIALOGLABEL;Delvis innliming av prosesseringsprofil -PARTIALPASTE_DISTORTION;Forvrengningskorreksjon -PARTIALPASTE_EXIFCHANGES;Forandringer i exif data -PARTIALPASTE_EXPOSURE;Exponering -PARTIALPASTE_ICMSETTINGS;ICM settings -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Objektivrelaterte innstillinger -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Forandre størrelse -PARTIALPASTE_ROTATION;Rotasjon -PARTIALPASTE_SHADOWSHIGHLIGHTS;Skygger/Høylys -PARTIALPASTE_SHARPENING;Oppskarping -PARTIALPASTE_VIGNETTING;Vignetteringskorreksjon -PARTIALPASTE_WHITEBALANCE;Hvitbalanse -PREFERENCES_APPLNEXTSTARTUP;Endres ved neste oppstart -PREFERENCES_CACHEMAXENTRIES;Maksimalt antall cache oppføringer -PREFERENCES_CACHEOPTS;Cache innstillinger -PREFERENCES_CACHETHUMBHEIGHT;Maksimal Thumbnail Høyde -PREFERENCES_CLIPPINGIND;Markerings-indikasjon -PREFERENCES_DATEFORMAT;Datoformat -PREFERENCES_DATEFORMATHINT;Du kan bruke følgende formattering:\n%y : år\n%m : måned\n%d : dag\n\nF. eks. er ungarsk datoformat:\n%y/%m/%d -PREFERENCES_DIRHOME;Hjemmemappe -PREFERENCES_DIRLAST;Sidste besøkte mappe -PREFERENCES_DIROTHER;Annen -PREFERENCES_DIRSELECTDLG;Velg bildemappe ved oppstart... -PREFERENCES_DIRSOFTWARE;Installasjons-mappe -PREFERENCES_EXTERNALEDITOR;Ekstern editor -PREFERENCES_FBROWSEROPTS;Filfremviser-innstillinger -PREFERENCES_FILEFORMAT;Filformat -PREFERENCES_FORIMAGE;For bildefiler -PREFERENCES_FORRAW;For RAW-filer -PREFERENCES_GIMPPATH;GIMP installasjonsmappe -PREFERENCES_HLTHRESHOLD;Terskelverdi for markerte høylys -PREFERENCES_ICCDIR;Mappe til ICC-profiler -PREFERENCES_IMPROCPARAMS;Standard-bildebehandlingsparametre -PREFERENCES_INTENT_ABSOLUTE;Total kolorimetri -PREFERENCES_INTENT_PERCEPTUAL;Oppfattet kolorimetri -PREFERENCES_INTENT_RELATIVE;Relativ kolorimetri -PREFERENCES_INTENT_SATURATION;Metning -PREFERENCES_OUTDIR;Utmappe -PREFERENCES_OUTDIRFOLDER;Lagre til folder -PREFERENCES_OUTDIRFOLDERHINT;Send lagrede bilder til valgt folder -PREFERENCES_OUTDIRTEMPLATE;Bruk mal -PREFERENCES_OUTDIRTEMPLATEHINT;Du kan bruke følgende formattering:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nFormateringsstrengene refererer til folderne og understier av stien til RAW-filen.\n\nF. eks., hvis /home/tom/image/02-09-2006/dsc0012.nefhar vært åpnet, vil det bety at formateringsstrengen er:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nvis du vil lagre det prosesserte bildet der originalen er, skriv:\n%p1/%f\n\nHvis du vil lagre det prosesserte bildet i folderen 'converted' under inni originalfolderen, skriv:\n%p1/converted/%f\n\nHvis du vil lagre det prosesserte bildet i '/home/tom/converted' men beholde underfolderens datomerking, skriv:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Analyserte utvidelser -PREFERENCES_PARSEDEXTADD;Legg til utvidelse -PREFERENCES_PARSEDEXTADDHINT;Skriv inn en utvidelse og trykk på kanppen for å legge til listen -PREFERENCES_PARSEDEXTDELHINT;Fjern valgte utvidelse fra listen -PREFERENCES_PROFILEHANDLING;Prosesserer filbehandling -PREFERENCES_PROFILELOADPR;Profillastingsprioritet -PREFERENCES_PROFILEPRCACHE;Profil i Cache -PREFERENCES_PROFILEPRFILE;Profil i innfilen -PREFERENCES_PROFILESAVECACHE;Lagre prosesseringsparametre til cachen -PREFERENCES_PROFILESAVEINPUT;Lagre prosesseringsparametre i innfilen -PREFERENCES_PSPATH;Adobe Photoshop installasjonsfolder -PREFERENCES_SELECTLANG;Velg språk -PREFERENCES_SHOWBASICEXIF;Vis utvidet Exif-informasjon -PREFERENCES_SHOWDATETIME;Vis dato og tid -PREFERENCES_SHTHRESHOLD;Terskelverdi for markerte skygger -PREFERENCES_STARTUPIMDIR;Bildemappe som vises ved oppstart -PREFERENCES_TAB_BROWSER;Filfremviser -PREFERENCES_TAB_COLORMGR;Fargehåndtering -PREFERENCES_TAB_GENERAL;Generelt -PREFERENCES_TAB_IMPROC;Bildebehandling -PROFILEPANEL_LABEL;Bildebehandlingsprofiler -PROFILEPANEL_LOADDLGLABEL;Åpne bildebehandlingsparametre... -PROFILEPANEL_PCUSTOM;Egen -PROFILEPANEL_PFILE;Fra fil -PROFILEPANEL_PLASTSAVED;Seneste lagret -PROFILEPANEL_SAVEDLGLABEL;Lagre bildebehandlingsparametre... -PROFILEPANEL_TOOLTIPCOPY;Kopier gjeldende profil til utklippstavlen -PROFILEPANEL_TOOLTIPLOAD;Åpne profil fra fil -PROFILEPANEL_TOOLTIPPASTE; Lim inn profil fra utklippstavlen -PROFILEPANEL_TOOLTIPSAVE;Lagre nåværende profil -PROGRESSBAR_LOADING;Åpner bilde... -PROGRESSBAR_LOADJPEG;Åpner JPEG-fil... -PROGRESSBAR_LOADPNG;Åpner PNG-fil... -PROGRESSBAR_LOADTIFF;Åpner TIFF-fil... -PROGRESSBAR_PROCESSING;Bearbeider Bilde... -PROGRESSBAR_READY;Klar -PROGRESSBAR_SAVEJPEG;Lagre JPEG-fil... -PROGRESSBAR_SAVEPNG;Lagre PNG-fil... -PROGRESSBAR_SAVETIFF;Lagre TIFF-fil... -QINFO_ISO;ISO -QINFO_NOEXIF;Exifdata utilgjengelig. -SAVEDLG_FILEFORMAT;Filformat -SAVEDLG_JPEGQUAL;JPEG-kvalitet -SAVEDLG_PUTTOQUEUE;Sett i prosesseringskø -SAVEDLG_PUTTOQUEUEHEAD;Sett øverst i prosesseringskøen -SAVEDLG_PUTTOQUEUETAIL;Sett nederst i prosesseringskøen -SAVEDLG_SAVEIMMEDIATELY;Lagre med en gang -SAVEDLG_SAVESPP;Lagre bildebehandlingsparametre med bildene -TOOLBAR_TOOLTIP_CROP;Velg beskjæringsområde (shortcut key: C) -TOOLBAR_TOOLTIP_HAND;Håndverktøy (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Rett opp (shortcut key: S) -TOOLBAR_TOOLTIP_WB;Punkt-hvitbalanse (shortcut key: W) -TP_CACORRECTION_BLUE;Blå -TP_CACORRECTION_LABEL;C/A justering -TP_CACORRECTION_RED;Rød -TP_CHMIXER_BLUE;Blå -TP_CHMIXER_GREEN;Grønn -TP_CHMIXER_LABEL;Kanalmikser -TP_CHMIXER_RED;Rød -TP_COARSETRAF_TOOLTIP_HFLIP;Vend horisontalt -TP_COARSETRAF_TOOLTIP_ROTLEFT;Roter mot venstre -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Roter mot høyre -TP_COARSETRAF_TOOLTIP_VFLIP;Vend vertikalt -TP_CROP_FIXRATIO;Fast proporsjon -TP_CROP_GTDIAGONALS;Diagonalreglen -TP_CROP_GTNONE;Ingen -TP_CROP_GTRULETHIRDS;Tredjedelsreglen -TP_CROP_GUIDETYPE;Guidetype: -TP_CROP_H;H -TP_CROP_LABEL;Beskjæring -TP_CROP_W;B -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;Mengde -TP_DISTORTION_LABEL;Forvrengning -TP_EXPOSURE_AUTOLEVELS;Auto nivå -TP_EXPOSURE_BLACKLEVEL;Sort -TP_EXPOSURE_BRIGHTNESS;Lysstyrke -TP_EXPOSURE_CLIP;Klipp -TP_EXPOSURE_COMPRHIGHLIGHTS;Høylyskomprimering -TP_EXPOSURE_COMPRSHADOWS;Skyggekomprimering -TP_EXPOSURE_CONTRAST;Kontrast -TP_EXPOSURE_CURVEEDITOR;Tonekurve -TP_EXPOSURE_EXPCOMP;Eks. Komp. -TP_EXPOSURE_LABEL;Eksponering -TP_HLREC_CIELAB;CIELab Blending -TP_HLREC_COLOR;Fargespedning -TP_HLREC_LABEL;Høylys-forbedring -TP_HLREC_LUMINANCE;Forbedring av luminans -TP_HLREC_METHOD;Metode: -TP_ICM_INPUTCAMERA;Kameravalg -TP_ICM_INPUTCUSTOM;Egen -TP_ICM_INPUTDLGLABEL;Velg indgangs ICC-profil... -TP_ICM_INPUTEMBEDDED;Anvend intern, hvis mulig -TP_ICM_INPUTPROFILE;Inngangprofil -TP_ICM_LABEL;ICM -TP_ICM_NOICM;Ingen ICM: sRGB-profil -TP_ICM_OUTPUTPROFILE;Utgangsprofil -TP_ICM_WORKINGPROFILE;Arbeidsprofil -TP_RAW_DMETHOD;Metode -TP_RAW_FALSECOLOR;Falsk fargefortrengningsverdi -TP_RESIZE_H;H: -TP_RESIZE_LABEL;Endre størrelse -TP_RESIZE_METHOD;Metode: -TP_RESIZE_NEAREST;Nærmeste -TP_RESIZE_SCALE;Skala -TP_RESIZE_W;B: -TP_ROTATE_DEGREE;Antall grader -TP_ROTATE_LABEL;Rett opp -TP_ROTATE_SELECTLINE;Velg rett linje -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Høylys -TP_SHADOWSHLIGHTS_HLTONALW;Toneomfang -TP_SHADOWSHLIGHTS_LABEL;Skygger/høylys -TP_SHADOWSHLIGHTS_LOCALCONTR;Lokal kontrast -TP_SHADOWSHLIGHTS_RADIUS;Radius -TP_SHADOWSHLIGHTS_SHADOWS;Skygger -TP_SHADOWSHLIGHTS_SHTONALW;Toneomfang -TP_SHARPENING_AMOUNT;Mengde -TP_SHARPENING_EDRADIUS;Radius -TP_SHARPENING_EDTOLERANCE;Kanttoleranse -TP_SHARPENING_HALOCONTROL;Halo-kontroll -TP_SHARPENING_HCAMOUNT;Mengde -TP_SHARPENING_LABEL;Skarphet -TP_SHARPENING_METHOD;Metode -TP_SHARPENING_ONLYEDGES;Skarphet kun i kanter -TP_SHARPENING_RADIUS;Radius -TP_SHARPENING_RLD;RL Dekonvolusjon -TP_SHARPENING_RLD_AMOUNT;Mengde -TP_SHARPENING_RLD_DAMPING;Demping -TP_SHARPENING_RLD_ITERATIONS;Gjentakelse -TP_SHARPENING_THRESHOLD;Terskelverdi -TP_SHARPENING_USM;Uskarp maske -TP_VIGNETTING_AMOUNT;Mengde -TP_VIGNETTING_LABEL;Vignetterings-korrigering -TP_VIGNETTING_RADIUS;Radius -TP_WBALANCE_AUTO;Auto -TP_WBALANCE_CAMERA;Kamera -TP_WBALANCE_CUSTOM;Egen -TP_WBALANCE_GREEN;Nyanse -TP_WBALANCE_LABEL;Hvitbalanse -TP_WBALANCE_METHOD;Metode -TP_WBALANCE_SIZE;Størrelse: -TP_WBALANCE_SPOTWB;Punkt HB -TP_WBALANCE_TEMPERATURE;Temperatur - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) deleted file mode 100644 index 94e3fc154..000000000 --- a/rtdata/languages/Polish (Latin Characters) +++ /dev/null @@ -1,2334 +0,0 @@ -#01 2007-12-24 Mateusz Ludwin -#02 2010-01-08 Bartosz "Simek" Kaszubowski -#03 2011-09-06 Dariusz 'Salvadhor' Duma -#04 2011-11-30 DrSlony -#05 2012-01-14 DrSlony -#06 2012-01-30 DrSlony -#07 2012-04-02 DrSlony -#08 2013-05-21 DrSlony -#09 2014-10-16 DrSlony - -ABOUT_TAB_BUILD;Wersja -ABOUT_TAB_CREDITS;Zaslugi -ABOUT_TAB_LICENSE;Licencja -ABOUT_TAB_RELEASENOTES;Notatki eksploatacyjne -ABOUT_TAB_SPLASH;Ekran powitalny -BATCHQUEUE_AUTOSTART;Autostart -BATCHQUEUE_AUTOSTARTHINT;Rozpocznij przetwarzanie automatycznie gdy pojawi sie nowe zadanie. -BATCHQUEUE_DESTFILENAME;Sciezka i nazwa pliku -BATCH_PROCESSING;Przetwarzanie wsadowe -CURVEEDITOR_CURVE;Krzywa -CURVEEDITOR_CURVES;Krzywe -CURVEEDITOR_CUSTOM;Wlasna -CURVEEDITOR_DARKS;Ciemne -CURVEEDITOR_HIGHLIGHTS;Najjasniejsze -CURVEEDITOR_LIGHTS;Jasne -CURVEEDITOR_LINEAR;Liniowa -CURVEEDITOR_LOADDLGLABEL;Wczytaj krzywa... -CURVEEDITOR_MINMAXCPOINTS;Ekwalizator -CURVEEDITOR_NURBS;NURBS -CURVEEDITOR_PARAMETRIC;Parametryczna -CURVEEDITOR_SAVEDLGLABEL;Zapisz krzywa... -CURVEEDITOR_SHADOWS;Najciemniejsze -CURVEEDITOR_TOOLTIPCOPY;Skopiuj krzywa do schowka -CURVEEDITOR_TOOLTIPLINEAR;Zresetuj krzywa do liniowej -CURVEEDITOR_TOOLTIPLOAD;Wczytaj krzywa z pliku -CURVEEDITOR_TOOLTIPPASTE;Wstaw krzywa ze schowka -CURVEEDITOR_TOOLTIPSAVE;Zapisz krzywa -CURVEEDITOR_TYPE;Typ: -DIRBROWSER_FOLDERS;Katalogi -EDITWINDOW_TITLE;Edytor obrazu -EDIT_OBJECT_TOOLTIP;Wyswietla widzet na podgladzie ktory ulatwia ustawienie narzedzia. -EDIT_PIPETTE_TOOLTIP;Aby dodac punkt do krzywej nalezy trzymac wcisniety klawisz Ctrl podczas klikniecia lewym guzikiem myszki na danym obszarze glownego podgladu.\nAby zmienic ustawienie juz istniejacego punktu, nalezy trzymac wduszony klawisz Ctrl podczas klikniecia lewym guzikiem myszki na danym obszarze glownego podgladu, nastepnie nalezy puscic klawisz Ctrl (chyba ze chodzi nam o bardzo precyzyjne ustawienie dzieki spowolnieniu jakie trzymanie klawisza Ctrl nam daje) i podczas trzymania lewego guzika myszki nalezy myszka ruszac w pionie aby odpowiednio manipulowac punktem w pionie. -EXIFFILTER_APERTURE;Przyslona -EXIFFILTER_CAMERA;Aparat -EXIFFILTER_EXPOSURECOMPENSATION;Korekcja ekspozycji (EV) -EXIFFILTER_FILETYPE;Typ pliku -EXIFFILTER_FOCALLEN;Wartosc ogniskowej -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Obiektyw -EXIFFILTER_METADATAFILTER;Wlacz filtry metadanych -EXIFFILTER_SHUTTER;Migawka -EXIFPANEL_ADDEDIT;Dodaj/Edytuj -EXIFPANEL_ADDEDITHINT;Dodaje nowa etykiete lub edytuje etykiete -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Wpisz wartosc -EXIFPANEL_ADDTAGDLG_SELECTTAG;Wybierz etykiete -EXIFPANEL_ADDTAGDLG_TITLE;Dodaj/Edytuj etykiete -EXIFPANEL_KEEP;Zapamietaj -EXIFPANEL_KEEPHINT;Zapamietuje wybrane etykiety podczas zapisywania pliku wyjsciowego -EXIFPANEL_REMOVE;Usun -EXIFPANEL_REMOVEHINT;Usuwa wybrane etykiety podczas zapisywania pliku wyjsciowego -EXIFPANEL_RESET;Przywroc -EXIFPANEL_RESETALL;Przywroc wszystkie -EXIFPANEL_RESETALLHINT;Przywraca orginalne wartosci etykiet -EXIFPANEL_RESETHINT;Przywraca orginalne wartosci wybranych etykiet -EXIFPANEL_SUBDIRECTORY;Podkatalog -EXPORT_BYPASS_ALL;Zaznacz / Odznacz wszystkie -EXPORT_BYPASS_DEFRINGE;Pomin usuwanie widma -EXPORT_BYPASS_DIRPYRDENOISE;Pomin redukcje szumow -EXPORT_BYPASS_DIRPYREQUALIZER;Pomin kontrast wg. poziomu detali -EXPORT_BYPASS_RAW_CA;Pomin redukcje aberracji chromatycznej (raw) -EXPORT_BYPASS_RAW_CCSTEPS;Pomin tlumienie falszowania koloru (raw) -EXPORT_BYPASS_RAW_DCB_ENHANCE;Pomin poprawe DCB (raw) -EXPORT_BYPASS_RAW_DCB_ITERATIONS;Pomin liczbe powtorzen DCB (raw) -EXPORT_BYPASS_RAW_DF;Pomin czarna klatke (raw) -EXPORT_BYPASS_RAW_FF;Pomin puste pole (raw) -EXPORT_BYPASS_RAW_GREENTHRESH;Pomin wyrownanie zieleni (raw) -EXPORT_BYPASS_RAW_LINENOISE;Pomin redukcje szumow liniowych (raw) -EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Pomin poprawe LMMSE [raw] -EXPORT_BYPASS_SHARPENEDGE;Pomin wyostrzanie krawedzi -EXPORT_BYPASS_SHARPENING;Pomin wyostrzanie -EXPORT_BYPASS_SHARPENMICRO;Pomin mikrokontrast -EXPORT_BYPASS_SH_HQ;Pomin wysokiej jakosci korekte cieni/podswietlen -EXPORT_FASTEXPORTOPTIONS;Opcje szybkiego eksportu -EXPORT_INSTRUCTIONS;Opcje szybkiego eksportu umozliwiaja pominiecie pewnych narzedzi ktore moga byc dosc wymagajace na procesor oraz moga znacznie przedluzyc czas przetwarzania podczas eksportowania zdjec. Ta metoda jest zalecana w razie potrzeby szybkiego uzyskania zdjec o nizszej rozdzielczosci oraz jakosci kiedy zalezy nam na czasie a nie chcemy modyfikowac plikow PP3. -EXPORT_MAXHEIGHT;Maksymalna wysokosc: -EXPORT_MAXWIDTH;Maksymalna szerokosc: -EXPORT_PUTTOQUEUEFAST; Dodaj do kolejki szybkiego eksportu -EXPORT_RAW_DMETHOD;Algorytm demozaikowania -EXTPROGTARGET_1;raw -EXTPROGTARGET_2;wywolane w kolejce -FILEBROWSER_ADDDELTEMPLATE;Dodaj/Usun szablon... -FILEBROWSER_APPLYPROFILE;Zastosuj profil -FILEBROWSER_APPLYPROFILE_PARTIAL;Zastosuj czesciowy profil -FILEBROWSER_AUTODARKFRAME;Automatyczne uzycie czarnej klatki -FILEBROWSER_AUTOFLATFIELD;Automatyczne uzycie klatki typu puste pole -FILEBROWSER_BROWSEPATHHINT;Umozliwia przegladanie wprowadzonej sciezki\nCtrl-o zaznaczenie\nEnter, Ctrl-Enter (w menedzerze plikow) przegladanie\nSkroty:\n ~ - katalog domowy uzytkownika\n ! - katalog z obrazami uzytkownia -FILEBROWSER_CACHE;Pamiec podreczna -FILEBROWSER_CLEARPROFILE;Wyczysc profil -FILEBROWSER_COLORLABEL_TOOLTIP;Kolorowe etykiety\n\nUzyj za pomoca rozwijanej listy lub skrotow:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Czerwona\nShift-Ctrl-2 Zolta\nShift-Ctrl-3 Zielona\nShift-Ctrl-4 Niebieska\nShift-Ctrl-5 Purpurowa -FILEBROWSER_COPYPROFILE;Kopiuj profil -FILEBROWSER_CURRENT_NAME;Obecna nazwa: -FILEBROWSER_DARKFRAME;Czarna klatka -FILEBROWSER_DELETEDLGLABEL;Potwierdzenie usuniecia pliku -FILEBROWSER_DELETEDLGMSG;Na pewno usunac zaznaczone %1 plikow? -FILEBROWSER_DELETEDLGMSGINCLPROC;Na pewno usunac wybrany plik %1 WLACZNIE z wersja utworzona przez kolejke przetwarzania? -FILEBROWSER_EMPTYTRASH;Wyczysc kosz -FILEBROWSER_EMPTYTRASHHINT;Definitywnie usuwa pliki z kosza -FILEBROWSER_EXTPROGMENU;Otworz za pomoca -FILEBROWSER_FLATFIELD;Puste pole -FILEBROWSER_MOVETODARKFDIR;Przenies do katalogu zawierajacego czarne klatki -FILEBROWSER_MOVETOFLATFIELDDIR;Przenies do katalogu zawierajacego puste pola -FILEBROWSER_NEW_NAME;Nowa nazwa: -FILEBROWSER_OPENDEFAULTVIEWER;Domyslna przegladarka zdjec (z kolejki) -FILEBROWSER_PARTIALPASTEPROFILE;Wklej czesciowo -FILEBROWSER_PASTEPROFILE;Wklej profil -FILEBROWSER_POPUPCANCELJOB;Anuluj zadanie -FILEBROWSER_POPUPCOLORLABEL;Kolorowa etykieta -FILEBROWSER_POPUPCOLORLABEL0;Etykieta: Brak -FILEBROWSER_POPUPCOLORLABEL1;Etykieta: Czerwona -FILEBROWSER_POPUPCOLORLABEL2;Etykieta: Zolta -FILEBROWSER_POPUPCOLORLABEL3;Etykieta: Zielona -FILEBROWSER_POPUPCOLORLABEL4;Etykieta: Niebieska -FILEBROWSER_POPUPCOLORLABEL5;Etykieta: Purpurowa -FILEBROWSER_POPUPCOPYTO;Skopiuj do... -FILEBROWSER_POPUPFILEOPERATIONS;Operacje na plikach -FILEBROWSER_POPUPMOVEEND;Przenies na koniec kolejki -FILEBROWSER_POPUPMOVEHEAD;Przenies na poczatek kolejki -FILEBROWSER_POPUPMOVETO;Przenies do... -FILEBROWSER_POPUPOPEN;Otworz -FILEBROWSER_POPUPOPENINEDITOR;Otworz w edytorze -FILEBROWSER_POPUPPROCESS;Umiesc w kolejce do przetwarzania -FILEBROWSER_POPUPPROCESSFAST;Dodaj do kolejki szybkiego eksportu -FILEBROWSER_POPUPPROFILEOPERATIONS;Profile przetwarzania -FILEBROWSER_POPUPRANK;Ocena -FILEBROWSER_POPUPRANK0;Usun ocene -FILEBROWSER_POPUPRANK1;Ocena 1 * -FILEBROWSER_POPUPRANK2;Ocena 2 ** -FILEBROWSER_POPUPRANK3;Ocena 3 *** -FILEBROWSER_POPUPRANK4;Ocena 4 **** -FILEBROWSER_POPUPRANK5;Ocena 5 ***** -FILEBROWSER_POPUPREMOVE;Usun z dysku -FILEBROWSER_POPUPREMOVEINCLPROC;Usun z dysku wraz z wynikiem przetwarzania -FILEBROWSER_POPUPRENAME;Zmien nazwe -FILEBROWSER_POPUPSELECTALL;Zaznacz wszystkie -FILEBROWSER_POPUPTRASH;Przenies do kosza -FILEBROWSER_POPUPUNRANK;Usun ocene -FILEBROWSER_POPUPUNTRASH;Usun z kosza -FILEBROWSER_QUERYBUTTONHINT;Wyczysc haslo szukania -FILEBROWSER_QUERYHINT;Wprowadz czesc nazwy, by zlokalizowac plik. Oddziel hasla przecinkami, np.\n1001,1004,1199\n\nWyklucz hasla poprzedzajac je znakiem !=\nnp.\n!=1001,1004,1199\n\nSkroty:\nCtrl-f - przejdz do pola "Znajdz",\nEnter - szukaj,\nEsc - wyczysc pole "Znajdz",\nShift-Esc - wyjdz z pola "Znajdz". -FILEBROWSER_QUERYLABEL; Znajdz: -FILEBROWSER_RANK1_TOOLTIP;Ocen 1 *\nSkrot: Shift-1 -FILEBROWSER_RANK2_TOOLTIP;Ocen 2 *\nSkrot: Shift-2 -FILEBROWSER_RANK3_TOOLTIP;Ocen 3 *\nSkrot: Shift-3 -FILEBROWSER_RANK4_TOOLTIP;Ocen 4 *\nSkrot: Shift-4 -FILEBROWSER_RANK5_TOOLTIP;Ocen 5 *\nSkrot: Shift-5 -FILEBROWSER_RENAMEDLGLABEL;Zmien nazwe pliku -FILEBROWSER_SELECTDARKFRAME;Wybierz czarna klatke... -FILEBROWSER_SELECTFLATFIELD;Wybierz puste pole... -FILEBROWSER_SHOWCOLORLABEL1HINT;Pokazuje zdjecia z czerwona etykieta.\nSkrot: Alt-1 -FILEBROWSER_SHOWCOLORLABEL2HINT;Pokazuje zdjecia z zolta etykieta.\nSkrot: Alt-2 -FILEBROWSER_SHOWCOLORLABEL3HINT;Pokazuje zdjecia z zielona etykieta.\nSkrot: Alt-3 -FILEBROWSER_SHOWCOLORLABEL4HINT;Pokazuje zdjecia z niebieska etykieta.\nSkrot: Alt-4 -FILEBROWSER_SHOWCOLORLABEL5HINT;Pokazuje zdjecia z purpurowa etykieta.\nSkrot: Alt-5 -FILEBROWSER_SHOWDIRHINT;Wylacza wyszstkie filtry.\nSkrot: d -FILEBROWSER_SHOWEDITEDHINT;Pokazuje edytowane zdjecia.\nSkrot: 7 -FILEBROWSER_SHOWEDITEDNOTHINT;Pokazuje nieedytowane zdjecia.\nSkrot: 6 -FILEBROWSER_SHOWEXIFINFO;Pokaz dane Exif.\n\nSkroty:\ni - Tryb wielu zakladek,\nAlt-i - Tryb jednej zakladki. -FILEBROWSER_SHOWRANK1HINT;Pokazuje zdjecia ocenione na 1 gwiazdke.\nSkrot: 1 -FILEBROWSER_SHOWRANK2HINT;Pokazuje zdjecia ocenione na 2 gwiazdki.\nSkrot: 2 -FILEBROWSER_SHOWRANK3HINT;Pokazuje zdjecia ocenione na 3 gwiazdki.\nSkrot: 3 -FILEBROWSER_SHOWRANK4HINT;Pokazuje zdjecia ocenione na 4 gwiazdki.\nSkrot: 4 -FILEBROWSER_SHOWRANK5HINT;Pokazuje zdjecia ocenione na 5 gwiazdek.\nSkrot: 5 -FILEBROWSER_SHOWRECENTLYSAVEDHINT;Pokazuje zapisane zdjecia.\nSkrot: Alt-7 -FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Pokazuje niezapisane zdjecia.\nSkrot: Alt-6 -FILEBROWSER_SHOWTRASHHINT;Pokazuje zawartosc kosza.\nSkrot: Ctrl-t -FILEBROWSER_SHOWUNCOLORHINT;Pokazuje zdjecia bez kolorowej etykiety.\nSkrot: Alt-0 -FILEBROWSER_SHOWUNRANKHINT;Pokazuje nieocenione zdjecia.\nSkrot: 0 -FILEBROWSER_THUMBSIZE;Rozmiar minaturek -FILEBROWSER_UNRANK_TOOLTIP;Usun ocene.\nSkrot: Shift-0 -FILEBROWSER_ZOOMINHINT;Zwieksza rozmiar miniaturek.\n\nSkroty:\n+ - Tryb wielu zakladek,\nAlt-+ - Tryb pojedynczej zakladki. -FILEBROWSER_ZOOMOUTHINT;Zmniejsza rozmiar miniaturek.\n\nSkroty:\n- - Tryb wielu zakladek,\nAlt-- - Tryb pojedynczej zakladki. -GENERAL_ABOUT;O programie -GENERAL_AFTER;Po -GENERAL_AUTO;Automatyczne -GENERAL_BEFORE;Przed -GENERAL_CANCEL;Anuluj -GENERAL_CLOSE;Zamknij -GENERAL_DISABLE;Wylacz -GENERAL_DISABLED;Wylaczone -GENERAL_ENABLE;Wlacz -GENERAL_ENABLED;Wlaczone -GENERAL_FILE;Plik -GENERAL_LANDSCAPE;Poziomo -GENERAL_NA;nd. -GENERAL_NO;Nie -GENERAL_NONE;Zaden -GENERAL_OK;OK -GENERAL_PORTRAIT;Pionowo -GENERAL_SAVE;Zapisz -GENERAL_UNCHANGED;(Niezmienione) -GENERAL_WARNING;Uwaga -HISTOGRAM_TOOLTIP_B;Pokaz/Ukryj histogram blekitow. -HISTOGRAM_TOOLTIP_BAR;Pokazuje/Ukrywa wskaznik RGB.\nKlikniecie prawym przyciskiem myszy na podgladzie zdjecia blokuje/odblokowuje. -HISTOGRAM_TOOLTIP_CHRO;Pokaz/Ukryj histogram chromatycznosci. -HISTOGRAM_TOOLTIP_G;Pokaz/Ukryj histogram zieleni. -HISTOGRAM_TOOLTIP_L;Pokaz/Ukryj histogram luminancji CIELab. -HISTOGRAM_TOOLTIP_R;Pokaz/Ukryj histogram czerwieni. -HISTOGRAM_TOOLTIP_RAW;Pokaz/Ukryj histogram raw. -HISTORY_CHANGED;Zmieniono -HISTORY_CUSTOMCURVE;Krzywa wlasna -HISTORY_FROMCLIPBOARD;Ze schowka -HISTORY_LABEL;Historia -HISTORY_MSG_1;Zdjecie zaladowane -HISTORY_MSG_2;Profil zaladowany -HISTORY_MSG_3;Profil zmieniony -HISTORY_MSG_4;Przegladanie historii -HISTORY_MSG_5;Swiatlosc -HISTORY_MSG_6;Kontrast -HISTORY_MSG_7;Czern -HISTORY_MSG_8;Kompensacja ekspozycji -HISTORY_MSG_9;Kompresja podswietlen -HISTORY_MSG_10;Kompresja cieni -HISTORY_MSG_11;Krzywa tonalna -HISTORY_MSG_12;Automatyczna ekspozycja -HISTORY_MSG_13;Przycinanie ekspozycji -HISTORY_MSG_14;L*a*b* - Swiatlosc -HISTORY_MSG_15;L*a*b* - Kontrast -HISTORY_MSG_16;- -HISTORY_MSG_17;- -HISTORY_MSG_18;- -HISTORY_MSG_19;Krzywa L* -HISTORY_MSG_20;Wyostrzanie -HISTORY_MSG_21;USM - Promien -HISTORY_MSG_22;USM - Sila -HISTORY_MSG_23;USM - Prog wyostrzania -HISTORY_MSG_24;USM - Wyostrz tylko krawedzie -HISTORY_MSG_25;USM - Promien detekcji krawedzi -HISTORY_MSG_26;USM - Tolerancja krawedzi -HISTORY_MSG_27;USM - Kontrola poswiaty -HISTORY_MSG_28;USM - Stopien kontroli poswiaty -HISTORY_MSG_29;Metoda wyostrzania -HISTORY_MSG_30;RLD - Promien -HISTORY_MSG_31;RLD - Sila -HISTORY_MSG_32;RLD - Tlumienie -HISTORY_MSG_33;RLD - Powtorzenia -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 - Temperatura -HISTORY_MSG_40;BB - Odcien -HISTORY_MSG_41;Tryb krzywej 1 -HISTORY_MSG_42;Krzywa 1 -HISTORY_MSG_43;Tryb krzywej 2 -HISTORY_MSG_44;Odszumianie lum. - Promien -HISTORY_MSG_45;Odszumianie lum. - Tolerancja krawedzi -HISTORY_MSG_46;Odszumianie koloru -HISTORY_MSG_47;Mieszanie podswietlen ICC z matryca -HISTORY_MSG_48;Uzycie krzywej tonalnej z DCP -HISTORY_MSG_49;Illuminant DCP -HISTORY_MSG_50;Cienie/Podswietlenia -HISTORY_MSG_51;C/P - Podswietlenia -HISTORY_MSG_52;C/P - Cienie -HISTORY_MSG_53;C/P - Szerokosc tonalna podsw. -HISTORY_MSG_54;C/P - Szerokosc tonalna cieni -HISTORY_MSG_55;C/P - Kontrast lokalny -HISTORY_MSG_56;C/P - Promien -HISTORY_MSG_57;Obrot dyskretny -HISTORY_MSG_58;Odbicie w poziomie -HISTORY_MSG_59;Odbicie w pionie -HISTORY_MSG_60;Obrot -HISTORY_MSG_61;Auto-wypelnianie -HISTORY_MSG_62;Korekcja dystorsji obiektywu -HISTORY_MSG_63;Migawka wybrana -HISTORY_MSG_64;Kadrowanie -HISTORY_MSG_65;Korekcja aberracji chromatycznej -HISTORY_MSG_66;Rekonstrukcja przeswietlen -HISTORY_MSG_67;Rekonstrukcja przeswietlen - Sila -HISTORY_MSG_68;Rekonstrukcja przeswietlen - Metoda -HISTORY_MSG_69;Robocza przestrzen kolorow -HISTORY_MSG_70;Wyjsciowa przestrzen kolorow -HISTORY_MSG_71;Wejsciowa przestrzen kolorow -HISTORY_MSG_72;KW - Sila -HISTORY_MSG_73;Mieszacz kanalow -HISTORY_MSG_74;Zmiany rozmiaru - Skala -HISTORY_MSG_75;Zmiany rozmiaru - Metoda -HISTORY_MSG_76;Metadane Exif -HISTORY_MSG_77;Metadane IPTC -HISTORY_MSG_78;- -HISTORY_MSG_79;Zmiany rozmiaru - Szerokosc -HISTORY_MSG_80;Zmiany rozmiaru - Wysokosc -HISTORY_MSG_81;Zmiany rozmiaru -HISTORY_MSG_82;Profil zmieniony -HISTORY_MSG_83;C/P - Ostra maska -HISTORY_MSG_84;Korekcja perspektywy -HISTORY_MSG_85;LCP -HISTORY_MSG_86;Krzywe RGB - Tryb luminancji -HISTORY_MSG_87;Redukcja szumow impulsowych -HISTORY_MSG_88;RSI - Prog -HISTORY_MSG_89;Redukcja szumow -HISTORY_MSG_90;RS - Luminancja -HISTORY_MSG_91;RS - Chrominancja -HISTORY_MSG_92;RS - Gamma -HISTORY_MSG_93;Kontrast wg. poziomu detali -HISTORY_MSG_94;Kontrast wg. poziomu detali -HISTORY_MSG_95;L*a*b* - Chromatycznosc -HISTORY_MSG_96;Krzywa a* -HISTORY_MSG_97;Krzywa b* -HISTORY_MSG_98;Algorytm demozaikowania -HISTORY_MSG_99;Filtrowanie goracych pikseli -HISTORY_MSG_100;Nasycenie RGB -HISTORY_MSG_101;HSV - Odcien -HISTORY_MSG_102;HSV - Nasycenie -HISTORY_MSG_103;HSV - Mocy swiatla bialego -HISTORY_MSG_104;Ekwalizator HSV -HISTORY_MSG_105;Usuwanie widma -HISTORY_MSG_106;Usuwanie widma - Promien -HISTORY_MSG_107;Usuwanie widma - Prog -HISTORY_MSG_108;Prog kompresji przeswietlen -HISTORY_MSG_109;Zmiana rozmiaru - Wymiary obwodu -HISTORY_MSG_110;Zmiana rozmiaru dotyczy -HISTORY_MSG_111;L*a*b* - Unikaj przycinania koloru -HISTORY_MSG_112;- -HISTORY_MSG_113;L*a*b* - Ograniczenie nasyczenia -HISTORY_MSG_114;DCB - Liczba powtorzen -HISTORY_MSG_115;DCB - Zapobieganie falszowaniu koloru -HISTORY_MSG_116;DCB - Ulepszone -HISTORY_MSG_117;Korekcja aberracji raw - Czerwona -HISTORY_MSG_118;Korekcja aberracji raw - Niebieska -HISTORY_MSG_119;Redukcja szumow liniowych -HISTORY_MSG_120;Wyrownanie zieleni -HISTORY_MSG_121;Autokorekcja aberracji chromatycznej -HISTORY_MSG_122;Czarna klatka - Auto-wybor -HISTORY_MSG_123;Czarna klatka - Wybor -HISTORY_MSG_124;Korekcja punktu bieli -HISTORY_MSG_126;Puste pole - Wybor -HISTORY_MSG_127;Puste pole - Auto-wybor -HISTORY_MSG_128;Puste pole - Promien rozmycia -HISTORY_MSG_129;Puste pole - Typ rozmycia -HISTORY_MSG_130;Automatyczna korekcja dystorsji -HISTORY_MSG_131;RS - Luma -HISTORY_MSG_132;RS - Chroma -HISTORY_MSG_133;Gamma wyjsciowa -HISTORY_MSG_134;Wolna gamma -HISTORY_MSG_135;Wolna gamma -HISTORY_MSG_136;Nachylenie gamma -HISTORY_MSG_137;Poziom czerni - Zielony 1 -HISTORY_MSG_138;Poziom czerni - Czerwony -HISTORY_MSG_139;Poziom czerni - Niebieski -HISTORY_MSG_140;Poziom czerni - Zielony 2 -HISTORY_MSG_141;Poziom czerni - Polacz zielone -HISTORY_MSG_142;WK - Powtorzenia -HISTORY_MSG_143;WK - Sila -HISTORY_MSG_144;Mikrokontrast - Sila -HISTORY_MSG_145;Mikrokontrast - Jednolitosc -HISTORY_MSG_146;Wyostrzanie krawedzi -HISTORY_MSG_147;Wyostrzanie krawedzi - tylko luminacja -HISTORY_MSG_148;Mikrokontrast -HISTORY_MSG_149;Mikrokontrast - matryca 3×3 -HISTORY_MSG_150;Redukcja szumu i artefaktow po demozaikowaniu -HISTORY_MSG_151;Jaskrawosc -HISTORY_MSG_152;Jaskrawosc - Ppastelowe -HISTORY_MSG_153;Jaskrawosc - Nasycone -HISTORY_MSG_154;Jaskrawosc - Chron odcienie skory -HISTORY_MSG_155;Jaskrawosc - Zapobiegaj zmianom kolorow -HISTORY_MSG_156;Jaskrawosc - Polacz pastelowe i nasycone -HISTORY_MSG_157;Jaskrawosc - Prog pastelowych/nasyconych -HISTORY_MSG_158;TM - Sila -HISTORY_MSG_159;TM - Wyszukanie krawedzi -HISTORY_MSG_160;TM - Skala -HISTORY_MSG_161;TM - Powtarzanie rozwazania -HISTORY_MSG_162;Tone Mapping -HISTORY_MSG_163;Krzywe RGB - Czerwona -HISTORY_MSG_164;Krzywe RGB - Zielona -HISTORY_MSG_165;Krzywe RGB - Niebieska -HISTORY_MSG_167;Algorytm demozaikowania -HISTORY_MSG_168;L*a*b* - Krzywa CC -HISTORY_MSG_169;L*a*b* - Krzywa CH -HISTORY_MSG_170;Jaskrawosc - Krzywa HH -HISTORY_MSG_171;L*a*b* - Krzywa LC -HISTORY_MSG_172;L*a*b* - Ogranicz LC -HISTORY_MSG_174;CIECAM02 -HISTORY_MSG_175;CAM02 - Adaptacja CAT02 -HISTORY_MSG_176;CAM02 - Otoczenie -HISTORY_MSG_177;CAM02 - Luminancja sceny -HISTORY_MSG_178;CAM02 - Luminancja widowni -HISTORY_MSG_179;CAM02 - Model punktu bieli -HISTORY_MSG_180;CAM02 - Swiatlosc (J) -HISTORY_MSG_181;CAM02 - Chroma (C) -HISTORY_MSG_182;CAM02 - Automatyczne CAT02 -HISTORY_MSG_183;CAM02 - Kontrast (J) -HISTORY_MSG_184;CAM02 - Otoczenie sceny -HISTORY_MSG_185;CAM02 - Kontrola gamma -HISTORY_MSG_186;CAM02 - Algorytm -HISTORY_MSG_187;CAM02 - Ochrona czerwieni/skory -HISTORY_MSG_188;CAM02 - Jasnosc (Q) -HISTORY_MSG_189;CAM02 - Kontrast (Q) -HISTORY_MSG_190;CAM02 - Nasycenie (S) -HISTORY_MSG_191;CAM02 - Barwistosc (M) -HISTORY_MSG_192;CAM02 - Odcien (hue, h) -HISTORY_MSG_193;CAM02 - Krzywa tonalna 1 -HISTORY_MSG_194;CAM02 - Krzywa tonalna 2 -HISTORY_MSG_195;CAM02 - Krzywa tonalna 1 -HISTORY_MSG_196;CAM02 - Krzywa tonalna 2 -HISTORY_MSG_197;CAM02 - Krzywa koloru -HISTORY_MSG_198;CAM02 - Krzywa koloru -HISTORY_MSG_199;CAM02 - Histogramy wyjsciowe -HISTORY_MSG_200;CAMO2 - Tone mapping -HISTORY_MSG_201;RS - Chrominancja - R&G -HISTORY_MSG_202;RS - Chrominancja - B&Y -HISTORY_MSG_204;Kroki poprawy LMMSE -HISTORY_MSG_205;CAM02 - Gorace/uszkodzone px -HISTORY_MSG_206;CAT02 - Auto luminancja sceny -HISTORY_MSG_207;Usuwanie widma - Krzywa odcieni -HISTORY_MSG_208;BB - Ekwalizator N/C -HISTORY_MSG_210;FP - Kat -HISTORY_MSG_211;Filtr Polowkowy -HISTORY_MSG_212;Winietowanie - Sila -HISTORY_MSG_213;Winietowanie -HISTORY_MSG_214;Czarno-biale (B&W) -HISTORY_MSG_215;B&W - MK - Czerwony -HISTORY_MSG_216;B&W - MK - Zielony -HISTORY_MSG_217;B&W - MK - Niebieski -HISTORY_MSG_218;B&W - Gamma - Czerwony -HISTORY_MSG_219;B&W - Gamma - Zielony -HISTORY_MSG_220;B&W - Gamma - Niebieski -HISTORY_MSG_221;B&W - Filtr barwny -HISTORY_MSG_222;B&W - Ustawienia -HISTORY_MSG_223;B&W - MK - Pomaranczowy -HISTORY_MSG_224;B&W - MK - Zolty -HISTORY_MSG_225;B&W - MK - Cyjanowy -HISTORY_MSG_226;B&W - MK - Magenta -HISTORY_MSG_227;B&W - MK - Purpurowy -HISTORY_MSG_228;B&W - Ekwalizator luminancji -HISTORY_MSG_229;B&W - Ekwalizator luminancji -HISTORY_MSG_230;B&W - Tryb -HISTORY_MSG_231;B&W - Krzywa 'Przed' -HISTORY_MSG_232;B&W - Rodzaj krzywej 'Przed' -HISTORY_MSG_233;B&W - Krzywa 'Po' -HISTORY_MSG_234;B&W - Rodzaj krzywej 'Po' -HISTORY_MSG_236;- -HISTORY_MSG_238;FP - Wtapianie -HISTORY_MSG_239;FP - Sila -HISTORY_MSG_240;FP - Srodek -HISTORY_MSG_241;Winietowanie - Wtapianie -HISTORY_MSG_242;Winietowanie - Okraglosc -HISTORY_MSG_243;Winietowanie - Promien -HISTORY_MSG_244;Winietowanie - Sila -HISTORY_MSG_245;Winietowanie - Srodek -HISTORY_MSG_246;Krzywa CL -HISTORY_MSG_247;Krzywa LH -HISTORY_MSG_248;Krzywa HH -HISTORY_MSG_249;KwgPS - Prog -HISTORY_MSG_250;RS - Ulepszona -HISTORY_MSG_251;B&W - Algorytm -HISTORY_MSG_252;KwgPS - Odcienie skory -HISTORY_MSG_253;KwgPS - Redukcja bledow -HISTORY_MSG_254;KwgPS - Odcienie skory -HISTORY_MSG_255;RS - Filtr mediana -HISTORY_MSG_257;Koloryzacja -HISTORY_MSG_258;Koloryzacja - Kolor -HISTORY_MSG_259;Koloryzacja - Przezroczystosc -HISTORY_MSG_260;Koloryzacja - Przezroczystosc a*[b*] -HISTORY_MSG_261;Koloryzacja - Metoda -HISTORY_MSG_262;Koloryzacja - Przezroczystosc b* -HISTORY_MSG_263;Koloryzacja - Cienie - Czerwony -HISTORY_MSG_264;Koloryzacja - Cienie - Zielony -HISTORY_MSG_265;Koloryzacja - Cienie - Niebiski -HISTORY_MSG_266;Koloryzacja - Þolcienie - Czerwone -HISTORY_MSG_267;Koloryzacja - Þolcienie - Zielone -HISTORY_MSG_268;Koloryzacja - Þolcienie - Niebieskie -HISTORY_MSG_269;Koloryzacja - Podswietlenia - Czerwone -HISTORY_MSG_270;Koloryzacja - Podswietlenia - Zielona -HISTORY_MSG_271;Koloryzacja - Podswietlenia - Niebieskie -HISTORY_MSG_272;Koloryzacja - Balans -HISTORY_MSG_274;Koloryzacja - Nasycenie cieni -HISTORY_MSG_275;Koloryzacja - Nasycenie jasnych -HISTORY_MSG_276;Koloryzacja - Przezroczystosc -HISTORY_MSG_277;--unused-- -HISTORY_MSG_278;Koloryzacja - Zachowaj luminancje -HISTORY_MSG_279;Koloryzacja - Cienie -HISTORY_MSG_280;Koloryzacja - Tony jasne -HISTORY_MSG_281;Koloryzacja - Sila nasycenia -HISTORY_MSG_282;Koloryzacja - Prog nasycenia -HISTORY_MSG_283;Koloryzacja - Sila -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;Prog czerni - Czerwony -HISTORY_MSG_291;Prog czerni - Zielony -HISTORY_MSG_292;Prog czerni - Niebieski -HISTORY_MSG_293;Symulacja Kliszy -HISTORY_MSG_294;Symulacja Kliszy - Sila -HISTORY_MSG_295;Symulacja Kliszy - Klisza -HISTORY_MSG_296;RS - Modulacja luminancji -HISTORY_MSG_298;Filtrowanie martwych pikseli -HISTORY_NEWSNAPSHOT;Nowa migawka -HISTORY_NEWSNAPSHOT_TOOLTIP;Skrot: 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;Zasluga -IPTCPANEL_CREDITHINT;Identyfikuje dostawce zdjecia, niekoniecznie wlasciciela lub autora (Credit). -IPTCPANEL_DATECREATED;Data utworzenia -IPTCPANEL_EMBEDDED;Osadzony -IPTCPANEL_EMBEDDEDHINT;Resetuje dane IPTC do domyslnych ustawien osadzonych w orginalnym zdjeciu -IPTCPANEL_HEADLINE;Naglowek -IPTCPANEL_INSTRUCTIONS;Instrukcje -IPTCPANEL_KEYWORDS;Slowa kluczowe -IPTCPANEL_PASTEHINT;Wstawia ustawienia IPTC ze schowka -IPTCPANEL_RESET;Reset -IPTCPANEL_RESETHINT;Resetuje do domyslnych ustawien profilu -IPTCPANEL_SOURCE;Zrodlo -IPTCPANEL_TITLE;Tytul -MAIN_BUTTON_FULLSCREEN;Pelen ekran -MAIN_BUTTON_NAVNEXT_TOOLTIP;Przejdz do nastepnego zdjecia wzgledem zdjecia otwartego w Edytorze.\nSkrot: Shift-F4\n\nAby przejsc do nastepnego zdjecia wzgledem miniaturki wybranej w Nawigatorze Zdjec:\nSkrot: F4 -MAIN_BUTTON_NAVPREV_TOOLTIP;Przejdz do poprzedniego zdjecia wzgledem zdjecia otwartego w Edytorze.\nSkrot: Shift-F3 \n\nAby przejsc do poprzedniego zdjecia wzgledem miniaturki wybranej w Nawigatorze Zdjec:\nSkrot: F3 -MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronizuj Nawigator Zdjec z Edytorem aby ukazac miniaturke obecnie otwartego zdjecia, oraz usun filtry w Nawigatorze Zdjec.\nSkrot: x\n\nJak wyzej, ale bez usuwania filtrow:\nSkrot: y\n(Miniaturka otwartego zdjecia nie zostanie wyswietlona jesli filtr ja ukrywa). -MAIN_BUTTON_PREFERENCES;Ustawienia -MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Dodaj biezace zdjecie do kolejki przetwarzania Ctrl+B -MAIN_BUTTON_SAVE_TOOLTIP;Zapisz biezace zdjecieCtrl+S -MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Otworz biezace zdjecie w zewnetrznym edytorze.\nSkrot: Ctrl+e -MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Pokaz/Ukryj wszystkie panele boczne.\nSkrot: m -MAIN_BUTTON_UNFULLSCREEN;Zwolnij ekran -MAIN_FRAME_BATCHQUEUE;Kolejka -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Przetwarzanie wsadowe\nSkrot: Ctrl-F3 -MAIN_FRAME_EDITOR;Edytor -MAIN_FRAME_EDITOR_TOOLTIP;Edytor.\nSkrot: Ctrl-F4 -MAIN_FRAME_FILEBROWSER;Przegladarka plikow -MAIN_FRAME_FILEBROWSER_TOOLTIP; Przegladarka plikow.\nSkrot: Ctrl-F2 -MAIN_FRAME_PLACES;Miejsca -MAIN_FRAME_PLACES_ADD;Dodaj -MAIN_FRAME_RECENT;Ostatnio uzywane foldery -MAIN_MSG_ALREADYEXISTS;Plik juz istnieje. -MAIN_MSG_CANNOTLOAD;Nie mozna wczytac obrazu -MAIN_MSG_CANNOTSAVE;Blad zapisu pliku -MAIN_MSG_CANNOTSTARTEDITOR;Nie mozna uruchomic edytora. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Prosze wprowadzic prawidlowa sciezke w Ustawieniach. -MAIN_MSG_EMPTYFILENAME;Nie podano nazwy pliku! -MAIN_MSG_IMAGEUNPROCESSED;Ta komenda wymaga aby wszystkie wybrane zdjecia byly wpierw wywolane poprzez kolejke. -MAIN_MSG_NAVIGATOR;Nawigator -MAIN_MSG_OPERATIONCANCELLED;Operacje anulowano -MAIN_MSG_PATHDOESNTEXIST;Sciezka\n\n%1\n\nnie istnieje. Wybierz przawidlowa sciezke w Ustawieniach. -MAIN_MSG_QOVERWRITE;Zastapic? -MAIN_MSG_SETPATHFIRST;Aby uzyc tej funkcji nalezy wpierw wybrac odpowiednia sciezke docelowa w Ustawieniach! -MAIN_MSG_WRITEFAILED;Zapis nie powiodl sie:\n\n"%1"\n\nUpewnij sie, ze folder istnieje oraz ze mozna do niego zapisywac. -MAIN_TAB_COLOR;Kolor -MAIN_TAB_COLOR_TOOLTIP;Skrot: Alt-c -MAIN_TAB_DETAIL;Szczegoly -MAIN_TAB_DETAIL_TOOLTIP;Skrot: Alt-d -MAIN_TAB_DEVELOP; Przetwarzanie -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPORT; Szybki eksport -MAIN_TAB_EXPOSURE;Ekspozycja -MAIN_TAB_EXPOSURE_TOOLTIP;Skrot: Alt-e -MAIN_TAB_FILTER; Filtr -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadane -MAIN_TAB_METADATA_TOOLTIP;Skrot: Alt-m -MAIN_TAB_RAW;Raw -MAIN_TAB_RAW_TOOLTIP;Skrot: Alt-r -MAIN_TAB_TRANSFORM;Transformacje -MAIN_TAB_TRANSFORM_TOOLTIP;Skrot: Alt-t -MAIN_TOOLTIP_BACKCOLOR0;Kolor tla podgladu: Tematyczny\nSkrot: 9 -MAIN_TOOLTIP_BACKCOLOR1;Kolor tla podgladu: Czarny\nSkrot: 9 -MAIN_TOOLTIP_BACKCOLOR2;Kolor tla podgladu: Bialy\nSkrot: 9 -MAIN_TOOLTIP_BEFOREAFTERLOCK;Zablokuj / Odblokuj widok Przed\n\nZablokuj: nie zmieniaj widoku Przed - \nPrzydatne w porownywaniu zablokowanego obrazu z obrazem na ktorym wykonano wiele zmian.\n\nOdblokuj: widok Przed bedzie sledzil widok Po o jeden krok do tylu, pokazujac obraz przed efektem aktualnie uzytego narzedzia. -MAIN_TOOLTIP_HIDEHP;Pokaz/ukryj lewy panel (razem z historia).\nSkrot: l -MAIN_TOOLTIP_INDCLIPPEDH;Pokaz obciete przeswietlenia.\nSkrot: < -MAIN_TOOLTIP_INDCLIPPEDS;Pokaz obciete niedoswietlenia.\nSkrot: > -MAIN_TOOLTIP_PREVIEWB;Podglad kanalu niebieskiego.\nSkrot: b -MAIN_TOOLTIP_PREVIEWFOCUSMASK;Podglad maski ostrosci.\nSkrot: Shift-f\n\nDokladniejsze w przypadku zdjec o plytkiej glebi ostrosci, niskim pozimie szumow i o wiekszym przyblizeniu. W przypadku zdjec o wyzszym poziomie szumow maska ostrosci bedzie dokladniejsza przy mniejszym zoomie (10-30%). -MAIN_TOOLTIP_PREVIEWG;Podglad kanalu zielonego.\nSkrot: g -MAIN_TOOLTIP_PREVIEWL;Podglad kanalu jasnosci.\nSkrot: v\n\n0.299*R + 0.587*G + 0.114*B -MAIN_TOOLTIP_PREVIEWR;Podglad kanalu czerwonego.\nSkrot: r -MAIN_TOOLTIP_QINFO;Informacje o zdjeciu.\nSkrot: i -MAIN_TOOLTIP_SHOWHIDELP1;Pokaz/Ukryj lewy panel.\nSkrot: l -MAIN_TOOLTIP_SHOWHIDERP1;Pokaz/Ukryj prawy panel.\nSkrot: Alt-l -MAIN_TOOLTIP_SHOWHIDETP1;Pokaz/Ukryj gorny panel.\nSkrot: Shift-l -MAIN_TOOLTIP_THRESHOLD;Prog -MAIN_TOOLTIP_TOGGLE;Przelacz widok Przed/Po.\nSkrot: 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;Szerokosc: %1, Wysokosc: %2 -NAVIGATOR_XY_NA;x: --, y: -- -PARTIALPASTE_BASICGROUP;Podstawowe ustawienia -PARTIALPASTE_CACORRECTION;Korekcja aberacji chr. -PARTIALPASTE_CHANNELMIXER;Mieszacz kanalow -PARTIALPASTE_CHANNELMIXERBW;Czarno-biale -PARTIALPASTE_COARSETRANS;Obrot dyskretny / odbicie -PARTIALPASTE_COLORAPP;CIECAM02 -PARTIALPASTE_COLORGROUP;Ustawienia zwiazane z kolorem -PARTIALPASTE_COLORTONING;Koloryzacja -PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-wypelnianie -PARTIALPASTE_COMPOSITIONGROUP;Ustawienia kompozycji -PARTIALPASTE_CROP;Kadrowanie -PARTIALPASTE_DARKFRAMEAUTOSELECT;Auto-wybor czarnej klatki -PARTIALPASTE_DARKFRAMEFILE;Wybor czarnej klatki -PARTIALPASTE_DEFRINGE;Usuwanie widma -PARTIALPASTE_DETAILGROUP;Ustawienia szczegolowe -PARTIALPASTE_DIALOGLABEL;Czesciowe wklejenie profilu przetwarzania -PARTIALPASTE_DIRPYRDENOISE;Redukcja szumu -PARTIALPASTE_DIRPYREQUALIZER;Kontrast wg. poziomu detali -PARTIALPASTE_DISTORTION;Korekcja znieksztalcenia -PARTIALPASTE_EPD;Tone Mapping -PARTIALPASTE_EVERYTHING;Wszystko -PARTIALPASTE_EXIFCHANGES;Exif -PARTIALPASTE_EXPOSURE;Ekspozycja -PARTIALPASTE_FILMSIMULATION;Symulacja kliszy -PARTIALPASTE_FLATFIELDAUTOSELECT;Puste pole - Auto-wybor -PARTIALPASTE_FLATFIELDBLURRADIUS;Puste pole - Promien -PARTIALPASTE_FLATFIELDBLURTYPE;Puste pole - Typ -PARTIALPASTE_FLATFIELDCLIPCONTROL;Puste pole - Zabezp. przed obcinaniem -PARTIALPASTE_FLATFIELDFILE;Puste pole - Wybor -PARTIALPASTE_GRADIENT;Filtr polowkowy -PARTIALPASTE_HSVEQUALIZER;Ekwalizator HSV -PARTIALPASTE_ICMSETTINGS;Ustawienia ICM -PARTIALPASTE_IMPULSEDENOISE;Redukcja szumow impulsowych -PARTIALPASTE_IPTCINFO;IPTC -PARTIALPASTE_LABCURVE;Regulacje L*a*b* -PARTIALPASTE_LENSGROUP;Ustawienia zwiazane z obiektywem -PARTIALPASTE_LENSPROFILE;Profil korekcji obiektywu LCP -PARTIALPASTE_METAGROUP;Metadane -PARTIALPASTE_PCVIGNETTE;Winietowanie -PARTIALPASTE_PERSPECTIVE;Perspektywa -PARTIALPASTE_PREPROCESS_DEADPIXFILT;Filtr martwych pikseli -PARTIALPASTE_PREPROCESS_GREENEQUIL;Wyrownanie zieleni -PARTIALPASTE_PREPROCESS_HOTPIXFILT;Filtr goracych pikseli -PARTIALPASTE_PREPROCESS_LINEDENOISE;Redukcja szumow liniowych -PARTIALPASTE_RAWCACORR_AUTO;Autokorekcja aberracji chr. -PARTIALPASTE_RAWEXPOS_BLACK;Poziomy czerni -PARTIALPASTE_RAWEXPOS_LINEAR;Korekcja punktu bieli -PARTIALPASTE_RAWGROUP;Ustawienia raw -PARTIALPASTE_RAW_DCBENHANCE;Zastosuj poprawe DCB -PARTIALPASTE_RAW_DCBITERATIONS;Liczba powtorzen DCB -PARTIALPASTE_RAW_DMETHOD;Algorytm demozaikowania -PARTIALPASTE_RAW_FALSECOLOR;Tlumienie falszowania koloru -PARTIALPASTE_RAW_LMMSEITERATIONS;Kroki poprawy LMMSE -PARTIALPASTE_RESIZE;Zmiana rozmiaru -PARTIALPASTE_RGBCURVES;Krzywe RGB -PARTIALPASTE_ROTATION;Obrot -PARTIALPASTE_SHADOWSHIGHLIGHTS;Cienie/Podswietlenia -PARTIALPASTE_SHARPENEDGE;Krawedzie -PARTIALPASTE_SHARPENING;Wyostrzanie -PARTIALPASTE_SHARPENMICRO;Mikrokontrast -PARTIALPASTE_VIBRANCE;Jaskrawosc -PARTIALPASTE_VIGNETTING;Korekcja winietowania -PARTIALPASTE_WHITEBALANCE;Balans bieli -PREFERENCES_ADD;Dodaj -PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora -PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia -PREFERENCES_AUTOMONPROFILE;Automatycznie uzyj systemowego profilu monitora -PREFERENCES_BATCH_PROCESSING;Przetwarzanie wsadowe -PREFERENCES_BEHADDALL;'Dodaj' wszystkie -PREFERENCES_BEHADDALLHINT;Ustaw wszystkie narzedzia w tryb Dodaj.\nZmiany parametrow w panelu edycji zbiorczej zostana traktowane jako roznice do poprzednich wartosci. -PREFERENCES_BEHAVIOR;Zachowanie -PREFERENCES_BEHSETALL;'Ustaw' wszystkie -PREFERENCES_BEHSETALLHINT;Ustaw wszystkie narzedzia w tryb Ustaw.\nZmiany parametrow w panelu edycji zbiorczej zostana traktowane jako absolutne, nie biorac pod uwage poprzednich wartosci. -PREFERENCES_BLACKBODY;Wolfram -PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisow w pamieci podrecznej -PREFERENCES_CACHEOPTS;Opcje pamieci podrecznej -PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokosc miniatury -PREFERENCES_CLIPPINGIND;Pokazywanie obcietych przeswietlen/cieni -PREFERENCES_CLUTSDIR;Folder obrazow HaldCLUT -PREFERENCES_CUSTPROFBUILD;Zewnetrzny kreator profilow przetwarzania -PREFERENCES_CUSTPROFBUILDHINT;Plik wykonywalny (lub skrypt) uruchamiany kiedy trzeba wygenerowac profil przetwarzania dla zdjecia.\n\nSciezka pliku nosnego (w stylu *.ini czyli sekcje i klucze/parametry) wystepuje jako parametr wiersza polecen. Plik ten zawiera przerozne parametry oraz dane Exif dzieki ktorym odpowiedni program badz skrypt moze wygenerowac plik PP3 wedlug regul.\n\nUWAGA: Twoja odpowiedzialnoscia jest prawidlowe uzycie cudzyslowiow w przypadku sciezek zawierajacych spacje i znaki specjalne. -PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy -PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nazwa -PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -PREFERENCES_CUSTPROFBUILDPATH;Sciezka pliku wykonywalnego -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K -PREFERENCES_DARKFRAMEFOUND;Znaleziono -PREFERENCES_DARKFRAMESHOTS;zdjec(ia) -PREFERENCES_DARKFRAMETEMPLATES;szablonow(ny) -PREFERENCES_DATEFORMAT;Format daty -PREFERENCES_DATEFORMATHINT;Dozwolone sa nastepujace kody formatujace:\n%y - rok\n%m - miesiac\n%d - dzien\n\nNa przyklad wedlug standardu ISO 8601 format daty wyglada nastepujaco:\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;Uklad edytora -PREFERENCES_EXTERNALEDITOR;Zewnetrzny edytor -PREFERENCES_FBROWSEROPTS;Opcje przegladarki plikow -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 zdjec innych niz raw -PREFERENCES_FORRAW;Dla zdjec raw -PREFERENCES_GIMPPATH;Katalog, w ktorym zainstalowany jest GIMP -PREFERENCES_GREY;Luminancja Yb urzadzenia wyjsciowego (%) -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 glownego histogramu i Nawigatora -PREFERENCES_HISTOGRAM_TOOLTIP;Jesli opcja jest wlaczona profil roboczy jest uzyty do obliczenia glownego histogramu oraz panelu Nawigatora, inaczej profil wyjsciowy z korekta gamma zostanie uzyty. -PREFERENCES_HLTHRESHOLD;Prog dla przeswietlen -PREFERENCES_ICCDIR;Katalog z profilami koloru ICC -PREFERENCES_IMPROCPARAMS;Domyslne parametry przetwarzania obrazu -PREFERENCES_INTENT_ABSOLUTE;Absolutnie kolorymetryczny -PREFERENCES_INTENT_PERCEPTUAL;Percepcyjny -PREFERENCES_INTENT_RELATIVE;Wzglednie kolorymetryczny -PREFERENCES_INTENT_SATURATION;Nasyceniowy -PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Pokaz osadzona miniature JPEG jesli plik raw jest nieedytowany -PREFERENCES_LANGAUTODETECT;Uzyj jezyka systemowego -PREFERENCES_MENUGROUPEXTPROGS;Grupuj "Otworz za pomoca" -PREFERENCES_MENUGROUPFILEOPERATIONS;Grupuj operacje plikow -PREFERENCES_MENUGROUPLABEL;Grupuj operacje etykiet -PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupuj operacje profili przetwarzania -PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny -PREFERENCES_MENUOPTIONS;Opcje menu -PREFERENCES_METADATA;Metadane -PREFERENCES_MULTITAB;Tryb wielu zakladek -PREFERENCES_MULTITABDUALMON;Tryb wielu zakladek (na drugim monitorze jesli dostepny) -PREFERENCES_OUTDIR;Katalog wyjsciowy -PREFERENCES_OUTDIRFOLDER;Zapisz do katalogu -PREFERENCES_OUTDIRFOLDERHINT;Umieszcza zapisywane zdjecia w wybranym katalogu -PREFERENCES_OUTDIRTEMPLATE;Uzyj schemat -PREFERENCES_OUTDIRTEMPLATEHINT;Dozwolone sa nastepujace kody formatujace:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nKody formatujace odnosza sie do roznych elementow sciezki zdjecia, atrybutow zdjecia oraz do arbitralnego ciagu numerycznego operacji wsadowej.\n\nPrzykladowo, jesli zdjecie obrabiane ma nastepujaca sciezke:\n/home/andrzej/zdjecia/2010-10-31/dsc0042.nef\nznaczenie kodow formatujacych jest nastepujace:\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 zastapione ocena zdjecia. Jesli zdjecie nie posiada oceny, %r zostanie zastapione liczba '0'. Jesli zdjecie lezy w smietniku, %r zostanie zastapione znakiem 'x'.\n\n%s1, %s2, etc. zostanie zastapione ciagniem numerycznym dopelnionym od jednej do dziewieciu cyfr. Ciag ten zostanie rozpoczniety od "1" za kazdym razem gdy kolejka przetwarzania zostanie uruchomiona, i liczba jest zwiekszona o "1" dla kazdego zapisanego obrazu.\n\nJesli chcesz zapisac obraz wyjsciowy obok obrazu wejsciowego, napisz:\n%p1/%f\n\nJesli chcesz zapisac obraz wyjsciowy w folderze o nazwie "wywolane" znajdujacego sie w katalogu zawierajacym otwarty obraz, napisz:\n%p1/wywolane/%f\n\nJesli chcesz zapisac obraz wyjsciowy w folderze o nazwie "/home/andrzej/zdjecia/wywolane/2010-10-31", napisz:\n%p2/wywolane/%d1/%f -PREFERENCES_OVERLAY_FILENAMES;Nakladaj nazwy pliku na miniatury -PREFERENCES_OVERWRITEOUTPUTFILE;Nadpisuj istniejace pliki -PREFERENCES_PANFACTORLABEL;Wspolczynnik -PREFERENCES_PARSEDEXT;Przetwarzane rozszerzenia -PREFERENCES_PARSEDEXTADD;Dodaj rozszerzenie -PREFERENCES_PARSEDEXTADDHINT;Prosze wprowadzic rozszerzenie i zatwierdzic przyciskiem, by dodac do listy -PREFERENCES_PARSEDEXTDELHINT;Skasuje wybrane rozszerzenie z listy -PREFERENCES_PROFILEHANDLING;Obsluga profili -PREFERENCES_PROFILELOADPR;Priorytet wczytywania profilu -PREFERENCES_PROFILEPRCACHE;Profil w pamieci podrecznej -PREFERENCES_PROFILEPRFILE;Profil przy pliku wejsciowym -PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamieci podrecznej -PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejsciowego -PREFERENCES_PROPERTY;Wlasnosc -PREFERENCES_PSPATH;Katalog w ktorym zainstalowany jest Adobe Photoshop -PREFERENCES_SELECTLANG;Wybierz jezyk -PREFERENCES_SET;Ustaw -PREFERENCES_SHOWBASICEXIF;Pokaz podstawowe dane Exif -PREFERENCES_SHOWDATETIME;Pokaz date i czas -PREFERENCES_SHOWEXPOSURECOMPENSATION;Pokaz korekte ekspozycji -PREFERENCES_SHTHRESHOLD;Prog dla niedoswietlen -PREFERENCES_SINGLETAB;Tryb pojedynczej zakladki -PREFERENCES_SINGLETABVERTAB;Tryb pojedynczej zakladki, pionowy uklad -PREFERENCES_SND_BATCHQUEUEDONE;Zakonczono przetwarzanie wsadowe -PREFERENCES_SND_HELP;Nalezy wprowadzic sciezke do pliku, badz pozostawic niewypelnione (brak dzwiekow).\nW systemie Windows mozna stosowac "SystemDefault", "SystemAsterisk" itp. dla dzwiekow systemowych.\nW systemie Linux mozna stosowac "complete", "window-attention" etc. dla dzwiekow systemowych. -PREFERENCES_SND_LNGEDITPROCDONE;Praca edytora wykonana -PREFERENCES_SND_THRESHOLDSECS;po sekundach -PREFERENCES_STARTUPIMDIR;Katalog startowy -PREFERENCES_TAB_BROWSER;Przegladarka plikow -PREFERENCES_TAB_COLORMGR;Zarzadzanie kolorami -PREFERENCES_TAB_GENERAL;Ogolne -PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu -PREFERENCES_TAB_SOUND;Dzwieki -PREFERENCES_TP_LABEL;Panel narzedzi: -PREFERENCES_TP_VSCROLLBAR;Ukry pionowy pasek przesuwania -PREFERENCES_USEBUNDLEDPROFILES;Uzyj zalaczone profile przetwarzania -PREFERENCES_VIEW;Balans bieli urzadzenia wyjsciowego (monitora, TV, projektora, widowni, etc.) -PREFERENCES_WORKFLOW;Tok pracy -PROFILEPANEL_COPYPPASTE;Parametry do skopiowania -PROFILEPANEL_GLOBALPROFILES;Zalaczone profile przetwarzania -PROFILEPANEL_LABEL;Profil przetwarzania -PROFILEPANEL_LOADDLGLABEL;Wczytaj profil przetwarzania koncowego... -PROFILEPANEL_LOADPPASTE;Parametry do zaladowania -PROFILEPANEL_MODE_TIP;Tryb wypelnienia parametrow przetwarzania.\n\nWduszone: czesciowe profile zostana przetworzone w profile pelne; brakujace wartosci zostana wypelnione domyslnymi, zakodowanymi w silniku RawTherapee.\n\nWylaczone: profile zostana zastosowane takie, jakie sa, zmieniajac tylko te wartosci, ktore zawieraja. -PROFILEPANEL_MYPROFILES;Moje profile przetwarzania -PROFILEPANEL_PASTEPPASTE;Parametry do wklejenia -PROFILEPANEL_PCUSTOM;Wlasny -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;Laduj profil z pliku.\nCtrl+klik aby wybrac parametry do ladowania. -PROFILEPANEL_TOOLTIPPASTE;Wklej profil ze schowka.\nCtrl+klik aby wybrac parametry do wklejenia. -PROFILEPANEL_TOOLTIPSAVE;Zapisz aktualny profil.\nCtrl+klik aby wybrac parametry do zapisania. -PROGRESSBAR_LOADING;Wczytywanie obrazu... -PROGRESSBAR_LOADINGTHUMBS;Wczytywanie miniatur... -PROGRESSBAR_LOADJPEG;Ladowanie pliku JPEG... -PROGRESSBAR_LOADPNG;Ladowanie pliku PNG... -PROGRESSBAR_LOADTIFF;Ladowanie pliku TIFF... -PROGRESSBAR_NOIMAGES;Nie znaleziono zadnych obrazow -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 migawke -PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmieniony w przegladarce -QINFO_ISO;ISO -QINFO_NOEXIF;Dane Exif niedostepne. -SAVEDLG_AUTOSUFFIX;Automatycznie dodaj przyrostek, jezeli plik juz istnieje -SAVEDLG_FILEFORMAT;Format pliku -SAVEDLG_FORCEFORMATOPTS;Wymus opcje zapisu -SAVEDLG_JPEGQUAL;Jakosc JPEG -SAVEDLG_PUTTOQUEUE;Umiesc w kolejce przetwarzania -SAVEDLG_PUTTOQUEUEHEAD;Umiesc na poczatku kolejki przetwarzania -SAVEDLG_PUTTOQUEUETAIL;Umiesc na koncu 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;Pomiedzy -SAVEDLG_SUBSAMP_3;Najlepsza jakosc -SAVEDLG_TIFFUNCOMPRESSED;Nieskompresowany TIFF -SAVEDLG_WARNFILENAME;Plik zostanie nazwany -SHCSELECTOR_TOOLTIP;Kliknij prawym przyciskiem myszki aby zresetowac poycje trzech suwakow. -THRESHOLDSELECTOR_B;Dolny -THRESHOLDSELECTOR_BL;Dolny lewy -THRESHOLDSELECTOR_BR;Dolny prawy -THRESHOLDSELECTOR_HINT;Uzyj Shift aby przesuwac poszczegolne punkty kontrolne. -THRESHOLDSELECTOR_T;Top -THRESHOLDSELECTOR_TL;Gorny lewy -THRESHOLDSELECTOR_TR;Gorny prawy -TOOLBAR_TOOLTIP_CROP;Kadruj.\nSkrot: c\nMozna przesuwac obszar kadrowania za pomoca Shift-przeciagniecia myszki -TOOLBAR_TOOLTIP_HAND;Przesun.\nSkrot: h -TOOLBAR_TOOLTIP_STRAIGHTEN;Wyprostuj / obroc.\nSkrot: s\n\nWyznacz pionowa lub pozioma poprzez narysowanie linii prowadnicy na podgladzie. Kat obrotu zostanie pokazany obok linii prowadnicy. Punktem obrotu jest geometryczny srodek obrazu. -TOOLBAR_TOOLTIP_WB;Wskaz balans bieli.\nSkrot: w -TP_BWMIX_ALGO;Algorytm PZCRM -TP_BWMIX_ALGO_LI;Liniowy -TP_BWMIX_ALGO_SP;Efekty specjalne -TP_BWMIX_ALGO_TOOLTIP;Liniowy: mieszanie kanalow liniowo.\nEfekty specjalne: kanaly zostana mieszane nieliniowo. -TP_BWMIX_AUTOCH;Auto -TP_BWMIX_CC_ENABLED;Dopasuj barwy dopelniajace -TP_BWMIX_CC_TOOLTIP;Wlacz aby umozliwic automatyczne dopasowanie barw dopelniajacych w trybie CPZZCNPM. -TP_BWMIX_CHANNEL;Ekwalizator luminancji -TP_BWMIX_CURVEEDITOR1;Krzywa 'Przed' -TP_BWMIX_CURVEEDITOR2;Krzywa 'Po' -TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Krzywa po konwersji obrazu na czarnobialy. -TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Krzywa przed konwersja obrazu na czarnobialy.\nWspolczynniki koloru moga miec wplyw. -TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminancja wedlug odcieni (hue) L=f(H).\nNalezy zwrocic uwage na ekstremalne ustawienia poniewaz moga pojawic sie znieksztalcenia sygnalu w obrazie. -TP_BWMIX_FILTER;Filtr barwny -TP_BWMIX_FILTER_BLUE;Niebieski -TP_BWMIX_FILTER_BLUEGREEN;Niebieski-Zielony -TP_BWMIX_FILTER_GREEN;Zielony -TP_BWMIX_FILTER_GREENYELLOW;Zielony-Zolty -TP_BWMIX_FILTER_NONE;Brak -TP_BWMIX_FILTER_PURPLE;Purpurowy -TP_BWMIX_FILTER_RED;Czerwony -TP_BWMIX_FILTER_REDYELLOW;Czerwony-Zolty -TP_BWMIX_FILTER_TOOLTIP;Filtr barwny symuluje dzialanie prawdziwego filtru barwnego usytuowanego przed obiektywem. Filtry barwne obnizaja transmitancje specyficznych kolorow a zatem maja wplyw na ich jasnosc, np. filtr czerwony przyciemnia niebieskie niebo. -TP_BWMIX_FILTER_YELLOW;Zolty -TP_BWMIX_GAMMA;Korekcja gamma -TP_BWMIX_GAM_TOOLTIP;Korekcja gamma dla kazdego kanalu RGB. -TP_BWMIX_LABEL;Czarno-Bialy -TP_BWMIX_MET;Metoda -TP_BWMIX_MET_CHANMIX;Mieszacz kanalow -TP_BWMIX_MET_DESAT;Desaturacja -TP_BWMIX_MET_LUMEQUAL;Ekwalizator luminancji -TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -TP_BWMIX_RGBLABEL_HINT;Ostateczne wartosci RGB ktore uwzgledniaja wszystkie opcje mieszacza.\n"Total" wyswietla sume wartosci RGB:\n- zawsze 100% w trybie relatywnym,\n- ponad (jasniej) lub ponizej (ciemniej) 100% w trybie absolutnym. -TP_BWMIX_RGB_TOOLTIP;Miesza kanaly RGB. Kieruj sie gotowymi ustawieniami.\nNalezy zwrocic uwage na ujemne wartosci poniewaz moga pojawic sie znieksztalcenia sygnalu w obrazie lub dzialac w sposob nieprzewidywalny. -TP_BWMIX_SETTING;Gotowe ustawienia -TP_BWMIX_SETTING_TOOLTIP;Rozne gotowe ustawienia (klisza, krajobraz, etc.) oraz recznie ustawienia mieszacza kanalow. -TP_BWMIX_SET_HIGHCONTAST;Wysoki kontrast -TP_BWMIX_SET_HIGHSENSIT;Wysoka czulosc -TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -TP_BWMIX_SET_INFRARED;Podczerwien -TP_BWMIX_SET_LANDSCAPE;Krajobraz -TP_BWMIX_SET_LOWSENSIT;Niska czulosc -TP_BWMIX_SET_LUMINANCE;Luminancja -TP_BWMIX_SET_NORMCONTAST;Normalny kontrast -TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -TP_BWMIX_SET_PANCHRO;Panchromatic -TP_BWMIX_SET_PORTRAIT;Portret -TP_BWMIX_SET_RGBABS;Absolutny RGB -TP_BWMIX_SET_RGBREL;Relatywny RGB -TP_BWMIX_SET_ROYGCBPMABS;Absolutny CPZZCNPM -TP_BWMIX_SET_ROYGCBPMREL;Relatywny CPZZCNPM -TP_BWMIX_TCMODE_FILMLIKE;B&W Klisza -TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Mieszanie Nasycenia i Mocy Swiatla Bialego -TP_BWMIX_TCMODE_STANDARD;B&W Standardowa -TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Wazona Standardowa -TP_BWMIX_VAL;L -TP_CACORRECTION_BLUE;Niebieski -TP_CACORRECTION_LABEL;Korekcja aberracji chromatycznej -TP_CACORRECTION_RED;Czerwony -TP_CHMIXER_BLUE;Niebieski -TP_CHMIXER_GREEN;Zielony -TP_CHMIXER_LABEL;Mieszacz kanalow -TP_CHMIXER_RED;Czerwony -TP_CHROMATABERR_LABEL;Aberracja chromatyczna -TP_COARSETRAF_TOOLTIP_HFLIP;Odbij w poziomie -TP_COARSETRAF_TOOLTIP_ROTLEFT;Obroc w lewo.\n\nSkroty:\n[ - Tryb wielu zakladek,\nAlt-[ - Tryb jednej zakladki. -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Obroc w prawo.\n\nSkroty:\n] - Tryb wielu zakladek,\nAlt-] - Tryb jednej zakladki. -TP_COARSETRAF_TOOLTIP_VFLIP;Odbij w pionie -TP_COLORAPP_ALGO;Algorytm -TP_COLORAPP_ALGO_ALL;Wszystkie -TP_COLORAPP_ALGO_JC;Swiatlosc + Chroma (JC) -TP_COLORAPP_ALGO_JS;Swiatlosc + Nasycenie (JS) -TP_COLORAPP_ALGO_QM;Jasnosc + Barwistosc (QM) -TP_COLORAPP_ALGO_TOOLTIP;Umozliwia wybor wszystkich parametrow lub ich podzespol. -TP_COLORAPP_BADPIXSL;Filtr pikseli goracych/uszkodzonych -TP_COLORAPP_BADPIXSL_TOOLTIP;Usuwanie goracych/uszkodzonych (swiecacych) pikseli.\n0 = Wylaczone\n1 = Metoda Mediana\n2 = Metoda Gaussa.\nMozna rowniez dostroic zdjecie tak, aby unikac bardzo ciemnych miejsc.\n\nTe anomalie wynikaja z limitacji CIECAM02. -TP_COLORAPP_BRIGHT;Jasnosc (Q) -TP_COLORAPP_BRIGHT_TOOLTIP;Jasnosc w CIECAM02 bierze pod uwage luminancje bieli i rozni sie od jasnosci L*a*b* oraz RGB. -TP_COLORAPP_CHROMA;Chroma (C) -TP_COLORAPP_CHROMA_M;Barwistosc (M) -TP_COLORAPP_CHROMA_M_TOOLTIP;Barwistosc w CIECAM02 rozni sie od barwistosci L*a*b* oraz RGB. -TP_COLORAPP_CHROMA_S;Nasycenie (S) -TP_COLORAPP_CHROMA_S_TOOLTIP;Nasycenie w CIECAM02 rozni sie od nasycenia L*a*b* oraz RGB. -TP_COLORAPP_CHROMA_TOOLTIP;Chroma w CIECAM02 rozni sie od chromy L*a*b* oraz RGB. -TP_COLORAPP_CIECAT_DEGREE;Adaptacja CAT02 -TP_COLORAPP_CONTRAST;Kontrast (J) -TP_COLORAPP_CONTRAST_Q;Kontrast (Q) -TP_COLORAPP_CONTRAST_Q_TOOLTIP;Kontrast w CIECAM02 dla suwaka Q rozni sie od kontrastu L*a*b* oraz RGB. -TP_COLORAPP_CONTRAST_TOOLTIP;Kontrast w CIECAM02 dla suwaka J rozni sie od kontrastu L*a*b* oraz RGB. -TP_COLORAPP_CURVEEDITOR1;Krzywa tonalna 1 -TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Pokazuje histogram L* (L*a*b*) przed CIECAM02.\nJesli opcja "Pokaz histogramy wyjsciowe CIECAM02 za krzywymi" jest wlaczona, pokazuje histogram J i Q po CIECAM02.\n\nJ i Q nie sa pokazywane w glownym histogramie.\n\nEfekt koncowy jest przedstawiony w glownym histogramie. -TP_COLORAPP_CURVEEDITOR2;Krzywa tonalna 2 -TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Tak samo dziala jak krzywa tonalna 1. -TP_COLORAPP_CURVEEDITOR3;Krzywa koloru -TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Ustawienie chromy, nasycenia badz barwistosci.\n\nPokazuje histogram chromatycznosci (L*a*b*) przed CIECAM02.\nJesli opcja "Pokaz histogramy wyjsciowe CIECAM02 za krzywymi" jest wlaczona, pokazuje histogram C, s badz M po CIECAM02.\n\nC, s oraz M nie sa pokazywane w glownym histogramie.\nEfekt koncowy jest przedstawiony w glownym histogramie. -TP_COLORAPP_DATACIE;Pokaz histogramy wyjsciowe CIECAM02 za krzywymi -TP_COLORAPP_DATACIE_TOOLTIP;Kiedy opcja jest wlaczona, histogramy za krzywymi CIECAM02 pokazuja przyblizone wartosci/zakresy J lub Q, oraz C, s lub M po korekcjach CIECAM02.\nTen wybor nie ma wplywu na glowny histogram.\n\nKiedy opcja jest wylaczona, histogramy za krzywymi CIECAM02 pokazuja wartosci L*a*b* przed korekcjami CIECAM02. -TP_COLORAPP_GAMUT;Kontrola gamma (L*a*b*). -TP_COLORAPP_GAMUT_TOOLTIP;Wlacz kontrole gamma w trybie L*a*b*. -TP_COLORAPP_HUE;Odcien (hue, h) -TP_COLORAPP_HUE_TOOLTIP;Odcien (hue, h) - kat pomiedzy 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;Wlasnosci Widowni -TP_COLORAPP_LIGHT;Swiatlosc (J) -TP_COLORAPP_LIGHT_TOOLTIP;Swiatlosc w CIECAM02 rozni sie od swiatlosci CIELab oraz RGB -TP_COLORAPP_MODEL;Model PB -TP_COLORAPP_MODEL_TOOLTIP;Model punktu bieli.\n\nBB [RT] + [wyjsciowy]:\nBalans bieli RawTherapee jest uzyty dla sceny, CIECAM02 jest ustawione na D50, i balans bieli urzadzenia wyjsciowego ustawiony jest w Ustawieniach > Zarzadzanie Kolorami\n\nBB [RT+CAT02] + [wyjsciowe]:\nUstawienia balansu bieli RawTherapee sa uzywane przez CAT02, i balans bieli urzadzenia wyjsciowego jest ustawione w Ustawieniach > Zarzadzanie Kolorami. -TP_COLORAPP_RSTPRO;Ochrona odcieni skory i czerwieni -TP_COLORAPP_RSTPRO_TOOLTIP;Ochrona odcieni skory i czerwieni (suwaki i krzywe) -TP_COLORAPP_SURROUND;Otoczenie -TP_COLORAPP_SURROUND_AVER;Srednie -TP_COLORAPP_SURROUND_DARK;Ciemne -TP_COLORAPP_SURROUND_DIM;Przycmione -TP_COLORAPP_SURROUND_EXDARK;Bardzo Ciemne (Cut-sheet) -TP_COLORAPP_SURROUND_TOOLTIP;Zmienia barwy i kolory aby wziac pod uwage wlasnosci widowni urzadzenia wyjsciowego.\n\nSrednie:\nSrednie swiatlo otoczenia (standardowe). Obraz sie nie zmieni.\n\nPrzycmione:\nPrzycmione otoczenie (TV). Obraz stanie sie troszke ciemniejszy.\n\nCiemne:\nCiemne otoczenie (projektor). Obraz stanie sie jeszcze ciemniejszy.\n\nBardzo Ciemne:\nBardzo ciemne otoczenie (cut-sheet). Obraz stanie sie bardzo ciemny. -TP_COLORAPP_SURSOURCE;Ciemne otoczenie -TP_COLORAPP_SURSOURCE_TOOLTIP;Mozna uzyc kiedy np. obraz wejsciowy ma ciemne krawedzie. -TP_COLORAPP_TCMODE_BRIGHTNESS;Jasnosc -TP_COLORAPP_TCMODE_CHROMA;Chroma -TP_COLORAPP_TCMODE_COLORF;Barwistosc -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;Swiatlosc -TP_COLORAPP_TCMODE_SATUR;Nasycenie -TP_COLORAPP_TONECIE;Tone mapping za pomoca jasnosci CIECAM02 (Q) -TP_COLORAPP_TONECIE_TOOLTIP;Jesli ta opcja jest wylaczona, tone mapping odbywa sie w przestrzeni kolorow L*a*b*, zas jesli jest wlaczona, w przestrzeni kolorow CIECAM02.\nNarzedzie Tone Mapping musi byc wlaczone aby to utawienie dzialalo. -TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Bezwzgledna luminancja widowni\n(zazwyczaj 16cd/m²). -TP_COLORAPP_WBCAM;BB [RT+CAT02] + [wyjsciowy] -TP_COLORAPP_WBRT;BB [RT] + [wyjsciowy] -TP_COLORTONING_AB;o C/L -TP_COLORTONING_AUTOSAT;Automatyczna -TP_COLORTONING_BALANCE;Balans -TP_COLORTONING_BY;o C/L -TP_COLORTONING_CHROMAC;Przezroczystosc -TP_COLORTONING_COLOR;Kolor -TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Przezroczystosc chromy wedlug luminancji oC=f(L) -TP_COLORTONING_HIGHLIGHT;Podswietlenia -TP_COLORTONING_HUE;Odcien (hue) -TP_COLORTONING_LAB;Mieszanie L*a*b* -TP_COLORTONING_LABEL;Koloryzacja -TP_COLORTONING_LUMA;Luminancja -TP_COLORTONING_LUMAMODE;Zachowaj luminancje -TP_COLORTONING_LUMAMODE_TOOLTIP;Luminancja zostanie zachowana przy zmianie kolorow. -TP_COLORTONING_METHOD;Metoda -TP_COLORTONING_METHOD_TOOLTIP;"Mieszanie L*a*b*", "Suwaki RGB" oraz "Krzywe RGB" stosuja interpolacje do mieszania kolorow.\n"Balansowanie kolorow (cienie, polcienie, podswietlenia)" oraz "Nasycenie - Dwa Kolory" stosuja kolory bezposrednio.\n\nNarzedzie "Czarno-biale" mozna uzywac jednoczesnie z narzedziem "Koloryzacji", co umozliwi tonowanie zdjecia. -TP_COLORTONING_MIDTONES;Polcienie -TP_COLORTONING_NEUTRAL;Zresetuj suwaki -TP_COLORTONING_NEUTRAL_TIP;Zresetuj wszystkie wartosci (cienie, polcienie, podswietlenia) na domyslne. -TP_COLORTONING_OPACITY;Przezroczystosc -TP_COLORTONING_RGBCURVES;RGB - Krzywe -TP_COLORTONING_RGBSLIDERS;RGB - Suwaki -TP_COLORTONING_SA;Ochrona przed przesyceniem -TP_COLORTONING_SATURATEDOPACITY;Sila -TP_COLORTONING_SATURATIONTHRESHOLD;Prog -TP_COLORTONING_SHADOWS;Cienie -TP_COLORTONING_SPLITCO;Cienie/polcienie/podswietlenia -TP_COLORTONING_SPLITCOCO;Balans kolorow - cienie/polcienie/podswietlenia -TP_COLORTONING_SPLITLR;Nasycenie - dwa kolory -TP_COLORTONING_STR;Sila -TP_COLORTONING_STRENGTH;Sila -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 kanalow, a* = b*.\n\nSpecjalna chroma:\nLiniowe mieszanie kanalow, a* = b*, ale nieograniczone - sprobuj krzywa zagiac pod przekatna.\n\nSpecialne a* i b*:\nLiniowe nieograniczone mieszanie kanalow z osobnymi krzywymi dla a* i b*. Przeznaczone dla efektow specjalnych.\n\nSpecjalna chroma - dwa kolory:\nBardziej nieprzewidywalne. -TP_COLORTONING_TWOSTD;Standardowa chroma -TP_CROP_FIXRATIO;Zablokuj proporcje -TP_CROP_GTDIAGONALS;Przekatna -TP_CROP_GTEPASSPORT;Paszport biometryczny -TP_CROP_GTFRAME;Ramka -TP_CROP_GTGRID;Siatka -TP_CROP_GTNONE;Nic -TP_CROP_GTRULETHIRDS;Trojpodzial -TP_CROP_GUIDETYPE;Typ pomocy: -TP_CROP_H;Wysokosc -TP_CROP_LABEL;Kadrowanie -TP_CROP_W;Szerokosc -TP_CROP_X;X -TP_CROP_Y;Y -TP_DARKFRAME_AUTOSELECT;Autowybor -TP_DARKFRAME_LABEL;Czarna klatka -TP_DEFRINGE_LABEL;Usuwanie widma -TP_DEFRINGE_RADIUS;Promien -TP_DEFRINGE_THRESHOLD;Prog -TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominancja - Blekit-zolc -TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Chrominancja - Glowna -TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominancja - Czerwien-zielen -TP_DIRPYRDENOISE_ENH;Tryb ulepszony -TP_DIRPYRDENOISE_ENH_TOOLTIP;Ulepsza jakosc usuwania szumow kosztem okolo 20% wzrostu czasu przetwarzania. -TP_DIRPYRDENOISE_LUMINANCE_CURVE;Krzywa luminancji -TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegolowosc luminancji -TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminacja -TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metoda -TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Dla obrazow raw mozna uzywac metody RGB oraz L*a*b*.\n\nDla obrazow nie-raw metoda L*a*b* zostanie uzyta niezaleznie od wyboru. -TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma skupia sile redukcji szumow na danym predziale zakresu tonalnego. Mniejsze wartosci gamma powoduja skupienie na ciemniejszych barwach, natomiast wieksze wartosci rozciagna zakres dzialania rowniez na barwy jasne. -TP_DIRPYRDENOISE_MAIN_MODE;Jakosc -TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Wysoka -TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standardowa -TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Jakosc moze zostac dopasowana do wzoru szumow. Ustawienie "wysoka" ulepsza odszumianie okolo 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 luminancja -TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;Przy uzyciu metod "tylko luminancja" 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 powtorzen mediana -TP_DIRPYRDENOISE_MEDIAN_TYPE;Rodzaj mediana -TP_DIRPYREQUALIZER_ALGO;Zakres odcieni skory -TP_DIRPYREQUALIZER_ALGO_TOOLTIP;- -TP_DIRPYREQUALIZER_HUESKIN;Odcien skory -TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;Piramida wyznacza zakres kolorow uwazany jako zakres odcieni skory. Wiekszosc odcieni skory - bialej, czarnej, i pomiedzy - ma te sama odcien. Male poprawki sa dopuszczalne, jednak jesli potrzebna jest wieksza zmiana w lewo lub prawo, lub jesli sa widoczne artefakty, to najprawdopobniej balans bieli jest niepoprawny. -TP_DIRPYREQUALIZER_LABEL;Kontrast wg. precyzji detali -TP_DIRPYREQUALIZER_LUMACOARSEST;Zgrubne -TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Kontrast- -TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Kontrast+ -TP_DIRPYREQUALIZER_LUMAFINEST;Delikatne -TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutralne -TP_DIRPYREQUALIZER_SKIN;Ochrona/celowanie odcieni skory -TP_DIRPYREQUALIZER_SKIN_TOOLTIP;Przy -100 oddzialywanie efektu odbywa sie wylacznie na odcieniach skory.\nPrzy 0 oddzialywanie efektu odbywa sie jednakowo na wszystkich odcieniach.\nPrzy +100 odcienie skory sa pomijane podczas gdy oddzialywanie odbywa sie na wszystkich pozostalych odcieniach. -TP_DIRPYREQUALIZER_THRESHOLD;Prog -TP_DIRPYREQUALIZER_TOOLTIP;Zapobiega artefaktom w strefach przejscia pomiedzy odcieniom skory (hue, chrominancja, luminancja) a pozostalym odcieniom. -TP_DISTORTION_AMOUNT;Sila -TP_DISTORTION_LABEL;Dystorsja -TP_EPD_EDGESTOPPING;Wyszukiwanie krawedzi -TP_EPD_LABEL;Tone Mapping -TP_EPD_REWEIGHTINGITERATES;Powtarzanie rozwazania -TP_EPD_SCALE;Skala -TP_EPD_STRENGTH;Sila -TP_EXPOSURE_AUTOLEVELS;Wyrownaj poziomy -TP_EXPOSURE_AUTOLEVELS_TIP;Dokonaj automatycznego ustawienia parametrow ekspozycji na podstawie analizy obrazu -TP_EXPOSURE_BLACKLEVEL;Czern -TP_EXPOSURE_BRIGHTNESS;Jasnosc -TP_EXPOSURE_CLIP;Przytnij % -TP_EXPOSURE_CLIP_TIP;Ulamek pikseli ktore maja zostac rozjasnione do punktu przeswietlenia podczas automatycznego wyrownania poziomow. -TP_EXPOSURE_COMPRHIGHLIGHTS;Kompresja podswietlen -TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Prog kompresji podswietlen -TP_EXPOSURE_COMPRSHADOWS;Kompresja cieni -TP_EXPOSURE_CONTRAST;Kontrast -TP_EXPOSURE_CURVEEDITOR;Krzywa tonalna -TP_EXPOSURE_CURVEEDITOR1;Krzywa Tonalna 1 -TP_EXPOSURE_CURVEEDITOR2;Krzywa Tonalna 2 -TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Wiecej informacji na temat optymalnego wykorzystania obu krzywych jest dostepne w podreczniku (RawTherapee Manual) w dziale:\nThe Toolbox > Exposure Tab > Exposure Panel > Tone Curve\n(Narzedzie > Zakladka 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 swiatla bialego -TP_EXPOSURE_TCMODE_STANDARD;Standardowa -TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Wazona standardowa -TP_EXPOS_BLACKPOINT_LABEL;Punkt czerni raw -TP_EXPOS_WHITEPOINT_LABEL;Punkt bieli raw -TP_FILMSIMULATION_LABEL;Symulacja Kliszy -TP_FILMSIMULATION_STRENGTH;Sila -TP_FILMSIMULATION_ZEROCLUTSFOUND;Ustaw folder HaldCLUT w Ustawieniach -TP_FLATFIELD_AUTOSELECT;Autowybor -TP_FLATFIELD_BLURRADIUS;Promien 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 podswietlen ktore moze zaistniec przy stosowaniu obrazow type "puste pole". Nalezy zachowac ostroznosc, poniewaz jesli obciete rejony istnieja przed zastosowaniem pustego pola, funkcja ta moze spowodowac zabarwienie tych rejonow ktore powinny byc biale. -TP_FLATFIELD_LABEL;Puste pole -TP_GENERAL_11SCALE_TOOLTIP;Efekty tego narzedzia sa widoczne badz poprawne przy przyblizeniu 100% lub wiecej. -TP_GRADIENT_CENTER;Srodek -TP_GRADIENT_CENTER_X;Srodek X -TP_GRADIENT_CENTER_X_TOOLTIP;Przesun filtr do lewej (ujemne wartosci) lub prawej (dodatne wartosci). -TP_GRADIENT_CENTER_Y;Srodek Y -TP_GRADIENT_CENTER_Y_TOOLTIP;Przesun filtr do gory (ujemne wartosci) lub do dolu (dodatne wartosci). -TP_GRADIENT_DEGREE;Kat -TP_GRADIENT_DEGREE_TOOLTIP;Kat obrotu filtra w stopniach. -TP_GRADIENT_FEATHER;Wtapianie -TP_GRADIENT_FEATHER_TOOLTIP;Szerokosc nachylenia zbocza w procentach przekatnej. -TP_GRADIENT_LABEL;Filtr Polowkowy -TP_GRADIENT_STRENGTH;Sila -TP_GRADIENT_STRENGTH_TOOLTIP;Sila filtru w jednostkach EV. -TP_HLREC_BLEND;Mieszanie -TP_HLREC_CIELAB;Mieszanie koloru CIELab -TP_HLREC_COLOR;Propagacja koloru -TP_HLREC_ENA_TOOLTIP;Moze zostac automatycznie wlaczone w skutek dzialania automatycznej ekspozycji -TP_HLREC_LABEL;Odzyskiwanie przeswietlen -TP_HLREC_LUMINANCE;Odzyskiwanie luminancji -TP_HLREC_METHOD;Metoda: -TP_HSVEQUALIZER_CHANNEL;Kanal -TP_HSVEQUALIZER_HUE;H -TP_HSVEQUALIZER_LABEL;Ekwalizator HSV -TP_HSVEQUALIZER_SAT;S -TP_HSVEQUALIZER_VAL;V -TP_ICM_BLENDCMSMATRIX;Tlumienie przeswietlen danymi z matrycy -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Wlacz odzyskiwanie przeswietlonych regionow jesli profil ICC wykorzystuje LUT (tablicowanie). -TP_ICM_DCPILLUMINANT;Iluminant -TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolowany -TP_ICM_DCPILLUMINANT_TOOLTIP;Wybierz ktory osadzony iluminant DCP nalezy uzyc. Domyslna opcja jest "interpolowany", czyli wartosc jest mieszanina pomiedzy dwoma osadzonymi wartosciami iluminantu zaleznie od balansu bieli. Ten wybor jest mozliwy jedynie kiedy DCP zawiera dwa iluminanty z mozliwoscia interpolacji. -TP_ICM_INPUTCAMERA;Domyslny aparatu -TP_ICM_INPUTCAMERAICC;Domyslny aparatu lub ICC -TP_ICM_INPUTCAMERAICC_TOOLTIP;Uzyj profil ICC stworzony specjalnie na potrzeby RawTherapee. Jest bardziej dokladny niz domyslny matrycowy profil ICC, lecz dostepny tylko dla niektorych aparatow. -TP_ICM_INPUTCAMERA_TOOLTIP;Uzyj prostej domyslnej matrycy kolorow z DCRAW badz zapisanej w DNG. -TP_ICM_INPUTCUSTOM;Wlasny -TP_ICM_INPUTCUSTOM_TOOLTIP;Wczytaj wlasny profil ICC z pliku. -TP_ICM_INPUTDLGLABEL;Wybierz wejsciowy profil ICC... -TP_ICM_INPUTEMBEDDED;Jesli to mozliwe, uzyj osadzonego -TP_ICM_INPUTEMBEDDED_TOOLTIP;Uzyj profil ICC zapisany w plikach innych niz raw. -TP_ICM_INPUTNONE;Bez profilu -TP_ICM_INPUTNONE_TOOLTIP;Nie uzywaj zadnego profilu kolorow. Pozyteczne jedynie w wyjatkowych przypadkach. -TP_ICM_INPUTPROFILE;Profil wejsciowy -TP_ICM_LABEL;ICM -TP_ICM_NOICM;Brak ICM: Wyjscie sRGB -TP_ICM_OUTPUTPROFILE;Profil wyjsciowy -TP_ICM_SAVEREFERENCE_TOOLTIP;Zapisz liniowy obraz TIFF zanim profil wejsciowy zostanie zastosowany. Obraz ten mozna uzyc do kalibracji oraz do wytworzenia profilu aparatu. -TP_ICM_TONECURVE;Uzyj krzywa tonalna z DCP -TP_ICM_TONECURVE_TOOLTIP;Wlacz aby uzyc krzywa tonalna znajdujaca sie w profilu DCP. Opcja ta jest tylko aktywna jesli profil DCP zawiera krzywa tonalna. -TP_ICM_WORKINGPROFILE;Profil roboczy -TP_IMPULSEDENOISE_LABEL;Redukcja Szumow Impulsowych -TP_IMPULSEDENOISE_THRESH;Prog -TP_LABCURVE_AVOIDCOLORSHIFT;Zapobiegaj zmianom koloru -TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Umieszcza kolory w gamie roboczej przestrzeni kolorow i stosuje korekte Munsell'a -TP_LABCURVE_BRIGHTNESS;Swiatlosc -TP_LABCURVE_CHROMATICITY;Chromatycznosc -TP_LABCURVE_CHROMA_TOOLTIP;Aby zastosowac tonowanie zdjecia B&W, ustaw chromatycznosc na -100. -TP_LABCURVE_CONTRAST;Kontrast -TP_LABCURVE_CURVEEDITOR;Krzywa 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;Niebieskie Nasycone -TP_LABCURVE_CURVEEDITOR_B_RANGE2;Niebieskie Pastelowe -TP_LABCURVE_CURVEEDITOR_B_RANGE3;Zolte Pastelowe -TP_LABCURVE_CURVEEDITOR_B_RANGE4;Zolte Nasycone -TP_LABCURVE_CURVEEDITOR_CC;CC -TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutralne -TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Metne -TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastelowe -TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Nasycone -TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromatycznosc wedlug chromatycznosci C=f(C). -TP_LABCURVE_CURVEEDITOR_CH;CH -TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromatycznosc wedlug odcieni (hue) C=f(H) -TP_LABCURVE_CURVEEDITOR_CL;CL -TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromatycznosc wedlug luminancji C=f(L) -TP_LABCURVE_CURVEEDITOR_HH;HH -TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Odcien (hue) wedlug odcieni H=f(H) -TP_LABCURVE_CURVEEDITOR_LC;LC -TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminancja wedlug chromatycznosci L=f(C) -TP_LABCURVE_CURVEEDITOR_LH;LH -TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance wedlug odcieni (hue) L=f(H) -TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminancja wedlug luminancji L=f(L) -TP_LABCURVE_LABEL;Regulacja L*a*b* -TP_LABCURVE_LCREDSK;Ogranicz LC do odcieni skory oraz czerwieni -TP_LABCURVE_LCREDSK_TIP;Kiedy opcja jest wlaczona, wplyw krzywej LC (Luminancja wedlug chromatycznosci) jest ograniczony do odcieni skory oraz czerwieni.\nKiedy opcja jest wylaczona, krzywa LC wplywa na wszystkie barwy. -TP_LABCURVE_RSTPROTECTION;Ochrona skory oraz czerwieni -TP_LABCURVE_RSTPRO_TOOLTIP;Ma wplyw na suwak Chromatycznosci oraz na krzywa CC. -TP_LENSGEOM_AUTOCROP;Auto-kadrowanie -TP_LENSGEOM_FILL;Auto-wypelnienie -TP_LENSGEOM_LABEL;Obiektyw / Geometria -TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP -TP_NEUTRAL_TIP;Zresetuj ustawienia do wartosci neutralnych.\nDziala na tych samych suwakach na ktorych funkcja "Wyrownaj poziomy" dziala, niezaleznie od tego czy funkcja ta byla uzyta czy nie. -TP_PCVIGNETTE_FEATHER;Wtapianie -TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pol drogi do srodka,\n100 = az do srodka. -TP_PCVIGNETTE_LABEL;Winietowanie -TP_PCVIGNETTE_ROUNDNESS;Okraglosc -TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Okraglosc:\n0 = prostokat,\n50 = dopasowana elipsa,\n100 = okrag. -TP_PCVIGNETTE_STRENGTH;Sila -TP_PCVIGNETTE_STRENGTH_TOOLTIP;Sila filtru w katach w jednostkach EV. -TP_PERSPECTIVE_HORIZONTAL;Pozioma -TP_PERSPECTIVE_LABEL;Perspektywa -TP_PERSPECTIVE_VERTICAL;Pionowa -TP_PFCURVE_CURVEEDITOR_CH;Odcien -TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Ogranicza natezenie usuwania widma wedlug kolorow.\nWyzej = bardziej,\nNizej = mniej. -TP_PREPROCESS_DEADPIXFILT;Filtr martwych pikseli -TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Lata martwe piksele (pojedyncze czarne piksele). -TP_PREPROCESS_GREENEQUIL;Wyrownanie zieleni -TP_PREPROCESS_HOTPIXFILT;Filtr goracych pikseli -TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Lata gorace piksele (pojedyncze swiecace, przesycone piksele). -TP_PREPROCESS_LABEL;Przetwarzanie poczatkowe -TP_PREPROCESS_LINEDENOISE;Filtr zaklocen liniowych -TP_PREPROCESS_NO_FOUND;Nic nie znaleziono -TP_RAWCACORR_AUTO;Autokorekcja -TP_RAWCACORR_CABLUE;Niebieski -TP_RAWCACORR_CARED;Czerwony -TP_RAWEXPOS_BLACKS;Poziomy czerni -TP_RAWEXPOS_BLACK_0;Zielony 1 (glowny) -TP_RAWEXPOS_BLACK_1;Czerwony -TP_RAWEXPOS_BLACK_2;Niebieski -TP_RAWEXPOS_BLACK_3;Zielony 2 -TP_RAWEXPOS_BLACK_BLUE;Niebieski -TP_RAWEXPOS_BLACK_GREEN;Zielony -TP_RAWEXPOS_BLACK_RED;Czerwony -TP_RAWEXPOS_LINEAR;Liniowy wspolczynnik korekcji -TP_RAWEXPOS_RGB;Czerwony, Zielony, Niebieski -TP_RAWEXPOS_TWOGREEN;Polacz obie zielenie -TP_RAW_DCBENHANCE;Zastosuj poprawe DCB -TP_RAW_DCBITERATIONS;Liczba powtorzen 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 sa przeznaczone dla zdjec raw o wysokim poziomie szumow (wysokie ISO) aby zapobiec utworzeniu sie wzorkow w ksztalcie malych labiryntow, posteryzacji oraz mydlanego wygladu. -TP_RAW_FALSECOLOR;Kroki zapobiegajace falszowaniu kolorow -TP_RAW_LABEL;Demozaikowanie -TP_RAW_LMMSEITERATIONS;Ilosc krokow udoskonalenia LMMSE -TP_RAW_LMMSE_TOOLTIP;Aby zmniejszyc ilosc artefaktow i poprawic stosunek sygnalu do szumow, mozna wykorzystac nastepujace ustawienia:\n1: Gamma\n2-4: Srednia mediana\n5-6: Rafinowanie -TP_RAW_SENSOR_BAYER_LABEL;Matryca z filtrem Bayera -TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Trzy powtorzenia prowadza do najlepszych rezultatow (zalecane dla zdjec o niskim ISO).\nJedno powtorzenie jest prawie nie do odroznienia od trzech dla zdjec 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;Calego zdjecia -TP_RESIZE_H;Wysokosc: -TP_RESIZE_HEIGHT;Wysokosc -TP_RESIZE_LABEL;Zmiana rozmiaru -TP_RESIZE_LANCZOS;Lanczos -TP_RESIZE_METHOD;Metoda: -TP_RESIZE_NEAREST;Najblizsza -TP_RESIZE_SCALE;Skale -TP_RESIZE_SPECIFY;Okresl: -TP_RESIZE_W;Szerokosc -TP_RESIZE_WIDTH;Szerokosc -TP_RGBCURVES_BLUE;B -TP_RGBCURVES_CHANNEL;Kanal -TP_RGBCURVES_GREEN;G -TP_RGBCURVES_LABEL;Krzywe RGB -TP_RGBCURVES_LUMAMODE;Tryb Luminancji -TP_RGBCURVES_LUMAMODE_TOOLTIP;Tryb Luminancji pozwala na zmiane wplywu kanalow R, G i B na luminancje obrazu bez zmian kolorow. -TP_RGBCURVES_RED;R -TP_ROTATE_DEGREE;Stopnie -TP_ROTATE_LABEL;Obrot -TP_ROTATE_SELECTLINE;Wyprostuj obraz -TP_SAVEDIALOG_OK_TIP;Skrot: Ctrl-Enter -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Podswietlenia -TP_SHADOWSHLIGHTS_HLTONALW;Szerokosc tonalna -TP_SHADOWSHLIGHTS_LABEL;Cienie/Podswietlenia -TP_SHADOWSHLIGHTS_LOCALCONTR;Kontrast lokalny -TP_SHADOWSHLIGHTS_RADIUS;Promien -TP_SHADOWSHLIGHTS_SHADOWS;Cienie -TP_SHADOWSHLIGHTS_SHARPMASK;Ostra maska -TP_SHADOWSHLIGHTS_SHTONALW;Szerokosc tonalna -TP_SHARPENEDGE_AMOUNT;Sila -TP_SHARPENEDGE_LABEL;Krawedzie -TP_SHARPENEDGE_PASSES;Powtorzenia -TP_SHARPENEDGE_THREE;Tylko luminancja -TP_SHARPENING_AMOUNT;Sila -TP_SHARPENING_EDRADIUS;Promien -TP_SHARPENING_EDTOLERANCE;Tolerancja krawedzi -TP_SHARPENING_HALOCONTROL;Kontrola poswiaty -TP_SHARPENING_HCAMOUNT;Sila -TP_SHARPENING_LABEL;Wyostrzanie -TP_SHARPENING_METHOD;Metoda -TP_SHARPENING_ONLYEDGES;Wyostrz tylko krawedzie -TP_SHARPENING_RADIUS;Promien -TP_SHARPENING_RLD;Dekonwolucja RL -TP_SHARPENING_RLD_AMOUNT;Sila -TP_SHARPENING_RLD_DAMPING;Tlumienie -TP_SHARPENING_RLD_ITERATIONS;Powtorzenia -TP_SHARPENING_THRESHOLD;Prog -TP_SHARPENING_USM;Maska wyostrzajaca -TP_SHARPENMICRO_AMOUNT;Sila -TP_SHARPENMICRO_LABEL;Mikrokontrast -TP_SHARPENMICRO_MATRIX;Matryca 3×3 zamiast 5×5 -TP_SHARPENMICRO_UNIFORMITY;Jednolitosc -TP_VIBRANCE_AVOIDCOLORSHIFT;Zapobiegaj przesuniecia kolorow -TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Odcienie skory -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Czerwone/Purpurowe -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Czerwone -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Czerwone/Zolte -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Zolte -TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Odcien (hue) wedlug odcieni H=f(H) -TP_VIBRANCE_LABEL;Jaskrawosc -TP_VIBRANCE_PASTELS;Odcienie pastelowe -TP_VIBRANCE_PASTSATTOG;Polacz odcienie pastelowe i nasycone -TP_VIBRANCE_PROTECTSKINS;Zachowaj odcienie skory -TP_VIBRANCE_PSTHRESHOLD;Prog odcieni pastelowych/nasyconych -TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Prog nasycenia -TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;Os pionowa odpowiada barwa pastelowym na dole oraz nasyconym na gorze.\nOs pozioma przedstawia zakres nasycenia. -TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Wazenie przejscia barw pastelowych/nasyconych -TP_VIBRANCE_SATURATED;Odcienie nasycone -TP_VIGNETTING_AMOUNT;Ilosc -TP_VIGNETTING_CENTER;Srodek -TP_VIGNETTING_CENTER_X;Srodek X -TP_VIGNETTING_CENTER_Y;Srodek Y -TP_VIGNETTING_LABEL;Korekcja winietowania -TP_VIGNETTING_RADIUS;Promien -TP_VIGNETTING_STRENGTH;Sila -TP_WBALANCE_AUTO;Auto -TP_WBALANCE_CAMERA;Z aparatu -TP_WBALANCE_CLOUDY;Pochmurnie -TP_WBALANCE_CUSTOM;Wlasny -TP_WBALANCE_DAYLIGHT;Swiatlo dzienne (slonecznie) -TP_WBALANCE_EQBLUERED;Ekwalizator niebieskosci/czerwieni -TP_WBALANCE_EQBLUERED_TOOLTIP;Pozwala na odchylke od typowego uzytku balansu bieli poprzez modulacje balansu niebieskosci/czerwieni.\nJest to przydatne kiedy:\na) warunki miejsca fotografii sa oddalone od standardowego iluminantu (swiatla o okreslonych parametrach za pomoca ktorego kalibruje sie profil wejsciowy aparatu), np. zdjecia robione pod woda,\nb) warunki fotografii sa oddalone od warunkow pod ktorymi kalibracje zostaly wykonane,\nc) macierze oraz profile ICC/DCP sa 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 - Swiatlo dzienne -TP_WBALANCE_FLUO2;F2 - Chlodne biale -TP_WBALANCE_FLUO3;F3 - Biale -TP_WBALANCE_FLUO4;F4 - Cieple biale -TP_WBALANCE_FLUO5;F5 - Swiatlo dzienne -TP_WBALANCE_FLUO6;F6 - Biale Lite -TP_WBALANCE_FLUO7;F7 - D65 Symulator swiatla dziennego -TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -TP_WBALANCE_FLUO9;F9 - Chlodne biale 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;Odcien -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;Cien -TP_WBALANCE_SIZE;Wielkosc: -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 woda 1 -TP_WBALANCE_WATER2;Pod woda 2 -TP_WBALANCE_WATER_HEADER;Pod woda -ZOOMPANEL_100;(100%) -ZOOMPANEL_NEWCROPWINDOW;Otworz (nowa) lupe -ZOOMPANEL_ZOOM100;Powieksz do 100%\nSkrot: z -ZOOMPANEL_ZOOMFITCROPSCREEN;Dopasuj kadr do ekranu\nSkrot: f -ZOOMPANEL_ZOOMFITSCREEN;Dopasuj caly obraz do ekranu\nSkrot: Alt-f -ZOOMPANEL_ZOOMIN;Przybliz\nSkrot: + -ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - - -!!!!!!!!!!!!!!!!!!!!!!!!! -! 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_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!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_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_FRAME_PLACES_DEL;Remove -!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_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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!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_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!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_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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 -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!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_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_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!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 selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!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". diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) deleted file mode 100644 index fcb0d7ef0..000000000 --- a/rtdata/languages/Serbian (Latin Characters) +++ /dev/null @@ -1,2329 +0,0 @@ -#01 2010-11-16 gpopac - -ABOUT_TAB_BUILD;Izdanje -ABOUT_TAB_CREDITS;Zasluge -ABOUT_TAB_LICENSE;Licenca -ABOUT_TAB_RELEASENOTES;Beleške o izdanju -ABOUT_TAB_SPLASH;Uvod -BATCHQUEUE_AUTOSTART;Sam započni -BATCHQUEUE_AUTOSTARTHINT;Pokreće obradu fotografija kada ih zakažete -BATCHQUEUE_DESTFILENAME;Putanja i ime datoteke -BATCH_PROCESSING;obrada -CURVEEDITOR_CURVE;Krivulja -CURVEEDITOR_CURVES;Krivulje -CURVEEDITOR_CUSTOM;Proizvoljno -CURVEEDITOR_DARKS;Tamno -CURVEEDITOR_HIGHLIGHTS;Presvetlo -CURVEEDITOR_LIGHTS;Svetlo -CURVEEDITOR_LINEAR;Linearno -CURVEEDITOR_LOADDLGLABEL;Učitaj krivu... -CURVEEDITOR_MINMAXCPOINTS;Min/maks. kontrolne tačke -CURVEEDITOR_NURBS;Sa kavezom -CURVEEDITOR_PARAMETRIC;Parametarski -CURVEEDITOR_SAVEDLGLABEL;Sačuvaj krivu... -CURVEEDITOR_SHADOWS;Senke -CURVEEDITOR_TOOLTIPCOPY;Umnožava trenutnu krivulju u ostavu -CURVEEDITOR_TOOLTIPLINEAR;Vraća krivu na linearnu -CURVEEDITOR_TOOLTIPLOAD;Učitava krivulju iz datoteke -CURVEEDITOR_TOOLTIPPASTE;Ubacuje krivulju iz ostave -CURVEEDITOR_TOOLTIPSAVE;Čuva trenutnu krivulju -CURVEEDITOR_TYPE;Vrsta: -EDITWINDOW_TITLE;Uređivanje slike -EXIFFILTER_APERTURE;Otvor blende -EXIFFILTER_CAMERA;Foto aparat -EXIFFILTER_EXPOSURECOMPENSATION;Kompenzacija ekspozicije (EV) -EXIFFILTER_FILETYPE;Vrsta datoteke -EXIFFILTER_FOCALLEN;Žižna daljina -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Objektiv -EXIFFILTER_METADATAFILTER;Filtriraj metapodatke -EXIFFILTER_SHUTTER;Ekspozicija -EXIFPANEL_ADDEDIT;Dodaj/Izmeni -EXIFPANEL_ADDEDITHINT;Dodaje novu oznaku ili uređuje postojeću -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Unesite vrednost -EXIFPANEL_ADDTAGDLG_SELECTTAG;Izaberite oznaku -EXIFPANEL_ADDTAGDLG_TITLE;Dodaj/Izmeni oznaku -EXIFPANEL_KEEP;Zadrži -EXIFPANEL_KEEPHINT;Zadržava izabrane oznake pri upisu izlazne datoteke -EXIFPANEL_REMOVE;Ukloni -EXIFPANEL_REMOVEHINT;Uklanja izabrane oznake pri upisu izlazne datoteke -EXIFPANEL_RESET;Vrati -EXIFPANEL_RESETALL;Vrati sve -EXIFPANEL_RESETALLHINT;Vraća sve oznake na početne vrednosti -EXIFPANEL_RESETHINT;Vraća izabranu oznaku na početnu vrednosti -EXIFPANEL_SUBDIRECTORY;Poddirektorijum -EXPORT_BYPASS_ALL;Izaberi / poništi sve -EXPORT_BYPASS_DEFRINGE;Zanemari uklanjanje oreola -EXPORT_BYPASS_DIRPYRDENOISE;Zanemari uklanjanje šuma -EXPORT_BYPASS_DIRPYREQUALIZER;Zanemari detaljni nivo kontrasta -EXPORT_BYPASS_RAW_CA;Zanemari [raw] ispravljanje hromatskih aberacija -EXPORT_BYPASS_RAW_CCSTEPS;Zanemari [raw] prigušivanje lažne boje -EXPORT_BYPASS_RAW_DCB_ENHANCE;Zanemari [raw] DCB poboljšanje -EXPORT_BYPASS_RAW_DCB_ITERATIONS;Zanemari [raw] broj DCB prolaza -EXPORT_BYPASS_RAW_DF;Zanemari [raw] tamno polje -EXPORT_BYPASS_RAW_FF;Zanemari [raw] ravno polje -EXPORT_BYPASS_RAW_GREENTHRESH;Zanemari [raw] kalibraciju zelene boje -EXPORT_BYPASS_RAW_LINENOISE;Zanemari [raw] linijski filter šuma -EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Zanemari [raw] LMMSE korake za poboljšanje -EXPORT_BYPASS_SHARPENEDGE;Zanemari oštrenje ivice -EXPORT_BYPASS_SHARPENING;Zanemari oštrenje -EXPORT_BYPASS_SHARPENMICRO;Zanemari mikrokontrast -EXPORT_BYPASS_SH_HQ;Zanemari oštru masku za Senke/Svetlo -EXPORT_FASTEXPORTOPTIONS;Opcije za brz izvoz -EXPORT_INSTRUCTIONS;Brz izvoz omogućava da zaobiđete neke od zahtevnih i sporijih procesa prilikom razvijanja slika i da zakažete fotografije za brzo razvijanje. Ovj metod je dobar za brzo razvijanje slika u manjoj rezoluciji, kada vam je bitno da fotografije dobijete što pre ili kada želite primenite zadovoljavajuće parametre za razvijanje većeg broja fotografija odjednom bez izmene njihovih profila. -EXPORT_MAXHEIGHT;Najveća visina: -EXPORT_MAXWIDTH;Najveća dužina: -EXPORT_PUTTOQUEUEFAST; Zakaži za brz izvoz -EXPORT_RAW_DMETHOD;Način rasklapanja mozaika -EXTPROGTARGET_1;raw -EXTPROGTARGET_2;zakazano-razvijeno -FILEBROWSER_ADDDELTEMPLATE;Dodaj/ukloni šablone... -FILEBROWSER_APPLYPROFILE;Primeni profil -FILEBROWSER_APPLYPROFILE_PARTIAL;Primeni profil (polovično) -FILEBROWSER_AUTODARKFRAME;Sam odredi tamni kadar -FILEBROWSER_AUTOFLATFIELD;Automatski odredi ravno polje -FILEBROWSER_BROWSEPATHHINT;Ukucajte putanju za razgledanje (Ctrl-o postavlja fokus, Ctrl-Enter prikazuje u razgledaču datoteka);nPrečice putanja: ~ — lični direktorijum, ! — direktorijum sa slikama -FILEBROWSER_CACHE;Ostava -FILEBROWSER_CLEARPROFILE;Obriši profil -FILEBROWSER_COLORLABEL_TOOLTIP;Natpis u boji.\n\nKoristite priloženi meni ili prečice:\nShift-Ctrl-0 Bez boje\nShift-Ctrl-1 Crvena\nShift-Ctrl-2 Žuta\nShift-Ctrl-3 Zelena\nShift-Ctrl-4 Plana\nShift-Ctrl-5 Ljubičasta -FILEBROWSER_COPYPROFILE;Umnoži profil -FILEBROWSER_CURRENT_NAME;Trenutno ime: -FILEBROWSER_DARKFRAME;Tamni kadar -FILEBROWSER_DELETEDLGLABEL;Brisanje datoteke -FILEBROWSER_DELETEDLGMSG;Da li sigurno želite da obrišete %1 datoteka? -FILEBROWSER_DELETEDLGMSGINCLPROC;Da li želite da obrišete %1 izabranih datoteka, uključujući i one koje su zakazane? -FILEBROWSER_EMPTYTRASH;Izbaci smeće -FILEBROWSER_EMPTYTRASHHINT;Trajno briše datoteke iz smeća -FILEBROWSER_EXTPROGMENU;Otvori pomoću -FILEBROWSER_FLATFIELD;Ravno polje -FILEBROWSER_MOVETODARKFDIR;Prebaci u fasciklu sa tamnim kadrovima -FILEBROWSER_MOVETOFLATFIELDDIR;Premesti u fascikli sa ravnim poljima -FILEBROWSER_NEW_NAME;Novo ime: -FILEBROWSER_OPENDEFAULTVIEWER;Podrazumevani prikaz prozora (zakazano-razvijeno) -FILEBROWSER_PARTIALPASTEPROFILE;Delimično ubaci -FILEBROWSER_PASTEPROFILE;Ubaci profil -FILEBROWSER_POPUPCANCELJOB;Otkaži zadatak -FILEBROWSER_POPUPCOLORLABEL;Obojena oznaka -FILEBROWSER_POPUPCOPYTO;Umnoži u... -FILEBROWSER_POPUPFILEOPERATIONS;Datoteka -FILEBROWSER_POPUPMOVEEND;Premesti na kraj zakazanih -FILEBROWSER_POPUPMOVEHEAD;Premesti na početak zakazanih -FILEBROWSER_POPUPMOVETO;Premesti u... -FILEBROWSER_POPUPOPEN;Otvori -FILEBROWSER_POPUPPROCESS;Zakaži za obradu -FILEBROWSER_POPUPPROCESSFAST;Dodaj u zakazano (brzi izvoz) -FILEBROWSER_POPUPPROFILEOPERATIONS;Profil -FILEBROWSER_POPUPRANK;Ocena -FILEBROWSER_POPUPREMOVE;Ukloni iz sistema datoteka -FILEBROWSER_POPUPREMOVEINCLPROC;Ukloni iz sistema datoteka i zakazanog -FILEBROWSER_POPUPRENAME;Preimenuj -FILEBROWSER_POPUPSELECTALL;Izaberi sve -FILEBROWSER_POPUPTRASH;Premesti u smeće -FILEBROWSER_POPUPUNRANK;Ukloni ocenu -FILEBROWSER_POPUPUNTRASH;Ukloni iz smeća -FILEBROWSER_QUERYBUTTONHINT;Očisti polje za pretragu -FILEBROWSER_QUERYHINT;Unesite deo imena datoteke za pretragu nCtrl-f postavlja fokus (u Razgledaču datoteka);nEnter pretražuje -FILEBROWSER_QUERYLABEL; Traži: -FILEBROWSER_RANK1_TOOLTIP;Ocena 1 *\nPrečica: Shift-1 -FILEBROWSER_RANK2_TOOLTIP;Ocena 2 *\nPrečica: Shift-2 -FILEBROWSER_RANK3_TOOLTIP;Ocena 3 *\nPrečica: Shift-3 -FILEBROWSER_RANK4_TOOLTIP;Ocena 4 *\nPrečica: Shift-4 -FILEBROWSER_RANK5_TOOLTIP;Ocena 5 *\nPrečica: Shift-5 -FILEBROWSER_RENAMEDLGLABEL;Preimenuj datoteku -FILEBROWSER_SELECTDARKFRAME;Izaberi tamni kadar... -FILEBROWSER_SELECTFLATFIELD;Izaberi ravno polje... -FILEBROWSER_SHOWCOLORLABEL1HINT;Prikazuje slike označene crvenom Alt-1 -FILEBROWSER_SHOWCOLORLABEL2HINT;Prikazuje slike označene žutom Alt-2 -FILEBROWSER_SHOWCOLORLABEL3HINT;Prikazujeslike označene zelenom Alt-3 -FILEBROWSER_SHOWCOLORLABEL4HINT;Prikazuje slike označene plavom Alt-4 -FILEBROWSER_SHOWCOLORLABEL5HINT;Prikazuje slike označene ljubičastom Alt-5 -FILEBROWSER_SHOWDIRHINT;Prikazuje sve slike iz direktorijuma -FILEBROWSER_SHOWEDITEDHINT;Prikazuje samo izmenjene slike 7 -FILEBROWSER_SHOWEDITEDNOTHINT;Prikazuje samo neismenjene slike 6 -FILEBROWSER_SHOWEXIFINFO;Prikazuje EXIF podatke i -FILEBROWSER_SHOWRANK1HINT;Prikazuje slike ocenjene sa 1 zvezdicom -FILEBROWSER_SHOWRANK2HINT;Prikazuje slike ocenjene sa 2 zvezdice -FILEBROWSER_SHOWRANK3HINT;Prikazuje slike ocenjene sa 3 zvezdice -FILEBROWSER_SHOWRANK4HINT;Prikazuje slike ocenjene sa 4 zvezdice -FILEBROWSER_SHOWRANK5HINT;Prikazuje slike ocenjene sa 5 zvezdica -FILEBROWSER_SHOWRECENTLYSAVEDHINT;Prikazuje nedavno sačuvane slike Alt-7 -FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Prikazuje slike koje nisu skoro sačuvane Alt-6 -FILEBROWSER_SHOWTRASHHINT;Prikazuje slike u smeću -FILEBROWSER_SHOWUNCOLORHINT;Prikazuje slike koje nisu označene bojom Alt-0 -FILEBROWSER_SHOWUNRANKHINT;Prikaži neocenjene slike -FILEBROWSER_THUMBSIZE;Pregled -FILEBROWSER_UNRANK_TOOLTIP;Neocenjeno.\nPrečica: Shift-0 -FILEBROWSER_ZOOMINHINT;Uvećava pregled -FILEBROWSER_ZOOMOUTHINT;Umanjuje pregled -GENERAL_ABOUT;O programu -GENERAL_AFTER;Posle -GENERAL_AUTO;Automatski -GENERAL_BEFORE;Pre -GENERAL_CANCEL;Otkaži -GENERAL_CLOSE;Zatvori -GENERAL_DISABLE;Isključi -GENERAL_DISABLED;Isključeno -GENERAL_ENABLE;Uključi -GENERAL_ENABLED;Uključi -GENERAL_FILE;Datoteka -GENERAL_LANDSCAPE;Položeno -GENERAL_NA;nema -GENERAL_NO;Ne -GENERAL_NONE;Ništa -GENERAL_OK;U redu -GENERAL_PORTRAIT;Uspravno -GENERAL_SAVE;Sačuvaj -GENERAL_UNCHANGED;(neizmenjeno) -GENERAL_WARNING;Upozorenje -HISTOGRAM_TOOLTIP_B;Prikazuje plavi histogram -HISTOGRAM_TOOLTIP_BAR;Prikazuje/sakriva RGB indikator. Kliknite desni taster miša na umanjeni prikaz da zamrznete -HISTOGRAM_TOOLTIP_CHRO;Prikaži/sakrij histogram hrominanse. -HISTOGRAM_TOOLTIP_G;Prikazuje zeleni histogram -HISTOGRAM_TOOLTIP_L;Prikazuje CieLab hitogram -HISTOGRAM_TOOLTIP_R;Prikazuje crveni histogram -HISTOGRAM_TOOLTIP_RAW;Prikazuje/skriva RAW histogram -HISTORY_CHANGED;Izmenjeno -HISTORY_CUSTOMCURVE;Proizvoljna kriva -HISTORY_FROMCLIPBOARD;Iz ostave -HISTORY_LABEL;Istorijat -HISTORY_MSG_1;Slika je učitana -HISTORY_MSG_2;Profil je učitan -HISTORY_MSG_3;Izmena profila -HISTORY_MSG_4;Razgledanje istorijata -HISTORY_MSG_5;Osvetljenost -HISTORY_MSG_6;Kontrast -HISTORY_MSG_7;Crna -HISTORY_MSG_8;Kompenzacija ekspozicije -HISTORY_MSG_9;Sabijanje svetlog -HISTORY_MSG_10;Sabijanje senki -HISTORY_MSG_11;Kriva nijansi -HISTORY_MSG_12;Auto ekspozicija -HISTORY_MSG_13;Odsecanje ekspozicije -HISTORY_MSG_14;Svetlina luminanse -HISTORY_MSG_15;Kontrast luminanse -HISTORY_MSG_16;Crna luminanse -HISTORY_MSG_17;Sabijanje senki l. -HISTORY_MSG_18;Sabijanje svetlog l. -HISTORY_MSG_19;Kriva luminanse -HISTORY_MSG_20;Oštrenje -HISTORY_MSG_21;Poluprečnik oštrenja -HISTORY_MSG_22;Količina oštrenja -HISTORY_MSG_23;Prag oštrenja -HISTORY_MSG_24;Izoštri samo ivice -HISTORY_MSG_25;Poluprečnik za nalaženje ivica -HISTORY_MSG_26;Tolerancija za nalaženje ivica -HISTORY_MSG_27;Kontrola areola oštrenja -HISTORY_MSG_28;Količina kontrole areala -HISTORY_MSG_29;Način oštrenja -HISTORY_MSG_30;Poluprečnik dekonvolucije -HISTORY_MSG_31;Količina dekonvolucije -HISTORY_MSG_32;Prigušivanje dekonvolucije -HISTORY_MSG_33;Ponavljanja dekonvolucije -HISTORY_MSG_34;Izbegni odsecanje boja -HISTORY_MSG_35;Graničnik zasićenja -HISTORY_MSG_36;Ograniči zasićenje -HISTORY_MSG_37;Pojačanje boja -HISTORY_MSG_38;Način balansiranja bele -HISTORY_MSG_39;Temperatura boje -HISTORY_MSG_40;Zalenilo boje -HISTORY_MSG_41;Pomeranje boje „A“ -HISTORY_MSG_42;Pomeranje boje „B“ -HISTORY_MSG_43;Uklanjanje svetlosnog šuma -HISTORY_MSG_44;Radijus ukl. svetlosnog šuma -HISTORY_MSG_45;Tolerancija ivice ukl. s. šuma -HISTORY_MSG_46;Uklanjanje kolornog šuma -HISTORY_MSG_47;Poluprečnik ukl. kolornog šuma -HISTORY_MSG_48;Tolerancija ivice ukl. k. šuma -HISTORY_MSG_49;Osetljivost ivice ukl. k. šuma -HISTORY_MSG_50;Alat za senke/svetlo -HISTORY_MSG_51;Pojačavanje svetline -HISTORY_MSG_52;Pojačavanje senki -HISTORY_MSG_53;Širina tonova za svetlo -HISTORY_MSG_54;Širina tonova za senke -HISTORY_MSG_55;Likalni kontrast -HISTORY_MSG_56;Poluprečnik senki/svetlog -HISTORY_MSG_57;Gruba rotacija -HISTORY_MSG_58;Horizontalno izvrtanje -HISTORY_MSG_59;Vertikalno izvrtanje -HISTORY_MSG_60;Rotacija -HISTORY_MSG_61;Rotacija -HISTORY_MSG_62;Ispravljanje izobličenja sočiva -HISTORY_MSG_63;Ibor snimka -HISTORY_MSG_64;Iseci fotografiju -HISTORY_MSG_65;Ispravljanje hr. aberacija -HISTORY_MSG_66;Čupanje svetla -HISTORY_MSG_67;Količina čupanja svetla -HISTORY_MSG_68;Način čupanja svetla -HISTORY_MSG_69;Radni prostor boja -HISTORY_MSG_70;Izlazni prostor boja -HISTORY_MSG_71;Ulazni profil boja -HISTORY_MSG_72;Ispravljanje vinjetarenja -HISTORY_MSG_73;Mešanje kanala -HISTORY_MSG_74;Promena veličine -HISTORY_MSG_75;Način promene veličine -HISTORY_MSG_76;Exif metapodaci -HISTORY_MSG_77;IPTC metapodaci -HISTORY_MSG_78;Podaci za promeni veličine -HISTORY_MSG_79;Širina pri promeni veličine -HISTORY_MSG_80;Visina pri promeni veličine -HISTORY_MSG_81;Uključena promena veličina -HISTORY_MSG_82;Profil je izmenjen -HISTORY_MSG_83;Kvalitetno svetlost/senke -HISTORY_MSG_84;Ispravljanje perspektive -HISTORY_MSG_85;Taloasni koeficijenti -HISTORY_MSG_86;Talasno ujednačenje -HISTORY_MSG_87;Uklanjanje šuma „biber i so“ -HISTORY_MSG_88;Prag uklanjanja šuma za „biber i so“ -HISTORY_MSG_89;Uklanjanje šuma -HISTORY_MSG_90;Šum — osvetljenost -HISTORY_MSG_91;Šum — boje -HISTORY_MSG_92;Šum — gama -HISTORY_MSG_93;Kontrast detanjnom vrednošću nivoa -HISTORY_MSG_94;Detanjni nivo kontrasta -HISTORY_MSG_95;Zasićenost -HISTORY_MSG_96;„a“ kriva -HISTORY_MSG_97;„b“ kriva -HISTORY_MSG_98;Rastavljam mozaik -HISTORY_MSG_99;Obrađujem -HISTORY_MSG_100;RGB zasićenost -HISTORY_MSG_101;HSV EQ — Nijansa -HISTORY_MSG_102;HSV EQ — Zasićenost -HISTORY_MSG_103;HSV EQ — Vrednsot -HISTORY_MSG_104;Ujednačenje HSV -HISTORY_MSG_105;Uklanjanje oreola -HISTORY_MSG_106;Poluprečnik -HISTORY_MSG_107;Prag -HISTORY_MSG_108;Prag kompenz. svetlog -HISTORY_MSG_109;Okvir za promenu veličine -HISTORY_MSG_110;Promena veličine primenjena na -HISTORY_MSG_111;Izbegni isecanje boja -HISTORY_MSG_112;Ograničavanje zasićenja -HISTORY_MSG_113;Graničnik zasićenja -HISTORY_MSG_114;DCB ponavljanja -HISTORY_MSG_115;Ponavljanje lažnih boja -HISTORY_MSG_116;Unapređeni DCB -HISTORY_MSG_117;Popravka crvene hrominanse -HISTORY_MSG_118;Popravka plave hrominanse -HISTORY_MSG_119;Linijsko uklaljanje šuma -HISTORY_MSG_120;Prag ujednačenja zelene -HISTORY_MSG_121;Sam ispravi aberacije -HISTORY_MSG_122;Sam primeni tamni kadar -HISTORY_MSG_123;Datoteka za tamni kadar -HISTORY_MSG_124;Linearna ispravka eksp. -HISTORY_MSG_126;Datoteka sa ravnim poljem -HISTORY_MSG_127;Sam izaberi ravno polje -HISTORY_MSG_128;Poluprečnik ravnog polja -HISTORY_MSG_129;Način zamućenja ravnog polja -HISTORY_MSG_130;Automatska distorzija -HISTORY_MSG_131;Uklanjanje šuma luminanse -HISTORY_MSG_132;Uklanjanje šuma boje -HISTORY_MSG_133;Gama -HISTORY_MSG_134;Gama pozicija -HISTORY_MSG_135;Gama sloboda -HISTORY_MSG_136;Gama nagib -HISTORY_MSG_137;Nivo crne zelena 1 -HISTORY_MSG_138;Nivo crne crvena -HISTORY_MSG_139;Nivo crne plava -HISTORY_MSG_140;Nivo crne zelena 2 -HISTORY_MSG_141;Nivo crne obe zelene -HISTORY_MSG_142;Oštrenje ivica - br. ponavljanja -HISTORY_MSG_143;Oštrenje ivica - količina -HISTORY_MSG_144;Mikrokontrast - količina -HISTORY_MSG_145;Mikrokontrast - ujednačenost -HISTORY_MSG_146;Oštrenje ivica -HISTORY_MSG_147;Oštrenje ivica - samo luminansa -HISTORY_MSG_148;Mikrokontrast -HISTORY_MSG_149;Mikrokontrast - 3×3 matrica -HISTORY_MSG_150;Uklanjanje artefakta/šuma nakon rasklapanja mozaika -HISTORY_MSG_151;Živost boja -HISTORY_MSG_152;Živ - Pastelni tonovi -HISTORY_MSG_153;Živ - Zasićeni tonovi -HISTORY_MSG_154;Živ - Zaštiti boju kože -HISTORY_MSG_155;Živ - Izbegni pomeranje boja -HISTORY_MSG_156;Živ - Poveži pastelno i zasićeno -HISTORY_MSG_157;Živ - P/S prag -HISTORY_MSG_158;MT - Jačina -HISTORY_MSG_159;MT - Zaustavljanje ivice -HISTORY_MSG_160;MT - Razmera -HISTORY_MSG_161;MT - Ponavljanje premeravanja -HISTORY_MSG_162;Mapiranje tonova -HISTORY_MSG_163;RGB krive - crvena -HISTORY_MSG_164;RGB krive - zelena -HISTORY_MSG_165;RGB krive - plava -HISTORY_MSG_166;Neutralni nivoi -HISTORY_MSG_167;--neiskorišćeno-- -HISTORY_MSG_168;„CC“ kriva -HISTORY_MSG_169;„CH“ kriva -HISTORY_MSG_170;Živ - kriva -HISTORY_MSG_171;„LC“ kriva -HISTORY_MSG_172;Lab - Zabrani LC -HISTORY_MSG_174;CIECAM02 -HISTORY_MSG_175;CAM02 - CAT02 adaptacija -HISTORY_MSG_176;CAM02 - Okolina prikaza -HISTORY_MSG_177;CAM02 - Luminansa kadra -HISTORY_MSG_178;CAM02 - Luminansa prikaza -HISTORY_MSG_179;CAM02 - Model bele tačke -HISTORY_MSG_180;CAM02 - Svetlina (J) -HISTORY_MSG_181;CAM02 - Boja (C) -HISTORY_MSG_182;CAM02 - Automatski CAT02 -HISTORY_MSG_183;CAM02 - Kontrast (J) -HISTORY_MSG_184;CAM02 - Okolina scene -HISTORY_MSG_185;CAM02 - Kontrola širine tonova -HISTORY_MSG_186;CAM02 - Algoritam -HISTORY_MSG_187;CAM02 - Zaštita crvene i boje kože -HISTORY_MSG_188;CAM02 - Svetlina (Q) -HISTORY_MSG_189;CAM02 - Kontrast (Q) -HISTORY_MSG_190;CAM02 - Zasićenost (S) -HISTORY_MSG_191;CAM02 - Živopisnost (M) -HISTORY_MSG_192;CAM02 - Nijansa (h) -HISTORY_MSG_193;CAM02 - Kriva tonova 1 -HISTORY_MSG_194;CAM02 - Kriva tonova 2 -HISTORY_MSG_195;CAM02 - Kriva tonova 1 -HISTORY_MSG_196;CAM02 - Kriva tonova 2 -HISTORY_MSG_197;CAM02 - Kriva boje -HISTORY_MSG_198;CAM02 - Kriva boje -HISTORY_MSG_199;CAM02 - Izlazni histogrami -HISTORY_MSG_200;CAM02 - Mapiranje tonova -HISTORY_MSG_201;UŠ - Hrominansa C,Z -HISTORY_MSG_202;UŠ - Hrominansa P,Y -HISTORY_MSG_204;LMMSE koraci poboljšanja -HISTORY_MSG_205;CAM02 - Vrući/loš pikseli -HISTORY_MSG_206;CAT02 - Automatska luminansa kadra -HISTORY_MSG_207;Uklanjanje oreola - kriva nijanse -HISTORY_MSG_208;BB - Balans C i P -HISTORY_MSG_210;FG - Ugao -HISTORY_MSG_211;Filter gradijenta -HISTORY_MSG_212;FV - Jačina -HISTORY_MSG_213;Filter vinjetarenja -HISTORY_MSG_214;Crno-bela slika -HISTORY_MSG_215;CB - CM - Crvena -HISTORY_MSG_216;CB - CM - Zelena -HISTORY_MSG_217;CB - CM - Plava -HISTORY_MSG_218;CB - Gama - Crvena -HISTORY_MSG_219;CB - Gama - Zelena -HISTORY_MSG_220;CB - Gama - Plana -HISTORY_MSG_221;CB - Filter boje -HISTORY_MSG_222;CB - Predpodešavanja -HISTORY_MSG_223;CB - CM - Narandžasta -HISTORY_MSG_224;CB - CM - Žuta -HISTORY_MSG_225;CB - CM - Svetlo plava -HISTORY_MSG_226;CB - CM - Svetlo ljubičasta -HISTORY_MSG_227;CB - CM - Ljubičasta -HISTORY_MSG_228;CB - Ujednačenje luminanse -HISTORY_MSG_229;CB - Ujednačenje luminanse -HISTORY_MSG_230;CB - Režim -HISTORY_MSG_231;CB - Pre krive -HISTORY_MSG_232;CB - Pre vrste krive -HISTORY_MSG_233;CB - Nakon prive -HISTORY_MSG_234;CB - Nakon vrste krive -HISTORY_MSG_236;--neiskorišćeno-- -HISTORY_MSG_238;FG - Umekšanje -HISTORY_MSG_239;FG - Jačina -HISTORY_MSG_240;FG - Centar -HISTORY_MSG_241;FV - Umekšanje -HISTORY_MSG_242;FV - Krivoća -HISTORY_MSG_243;FV - Prečnik -HISTORY_MSG_244;FV - Jačina -HISTORY_MSG_245;FV - Centar -HISTORY_MSG_246;CL kriva -HISTORY_MSG_247;LH kriva -HISTORY_MSG_248;HH kriva -HISTORY_MSG_249;CbDL - Prag -HISTORY_MSG_250;UŠ - Poboljšanje -HISTORY_MSG_251;CB - Algoritam -HISTORY_NEWSNAPSHOT;Dodaj -HISTORY_NEWSNAPSHOT_TOOLTIP;Prečica: Alt-s -HISTORY_SNAPSHOT;Snimak -HISTORY_SNAPSHOTS;Snimak -HRESHOLDSELECTOR_BL;Dole-levo -IPTCPANEL_CATEGORY;Kategorija -IPTCPANEL_CITY;Grad -IPTCPANEL_COPYHINT;Koppiraj IPTC pšodešavanja u ostavu -IPTCPANEL_COUNTRY;Država -IPTCPANEL_CREDIT;Zasluge -IPTCPANEL_CREDITHINT;Ukazuje da onaj ko izdaje sliku ne mora biti autor/vlasnik (Zasluge). -IPTCPANEL_DATECREATED;Datum nastanka -IPTCPANEL_EMBEDDED;Ugnježđeno -IPTCPANEL_EMBEDDEDHINT;Vrati polja na IPTC podatke ugnježđene u sliku -IPTCPANEL_HEADLINE;Naslov -IPTCPANEL_INSTRUCTIONS;Uputstva -IPTCPANEL_KEYWORDS;Ključne reči -IPTCPANEL_PASTEHINT;Ubaci IPTC podešavanja iz ostave -IPTCPANEL_RESET;Vrati -IPTCPANEL_RESETHINT;Postavlja podrazumevane vrednosti profila -IPTCPANEL_SOURCE;Izvor -IPTCPANEL_TITLE;Natpis -MAIN_BUTTON_FULLSCREEN;Ceo ekran -MAIN_BUTTON_NAVNEXT_TOOLTIP;Šalje vas na narednu sliku u odnosu na otvorenu u prozoru za uređivanje.\nPrečica: Shift-F4\n\nTakođe, omoguća vam da idete na narednu sliku u odnosu na trenutno izabranu u razgledaču ili filmskoj traci.\nPrečica: F4 -MAIN_BUTTON_NAVPREV_TOOLTIP;Šalje vas na prethodnu sliku u odnosu na otvorenu u prozoru za uređivanje.\nPrečica: Shift-F3\n\nnTakođe, omoguća vam da idete na narednu sliku u odnosu na trenutno izabranu u razgledaču ili filmskoj traci.\nPrečica: F3 -MAIN_BUTTON_NAVSYNC_TOOLTIP;Usaglašava razgledač datoteka ili filmsku traku sa delom za uređivanje radi umanjenog prikaza trenutno otvorene slike i čisti sve izabrane filtere.\nPrečica: x\n\nKao i prethodna operacija, ali bez čišćenja izabranih filtera:\nPrečica: y\n(Umanjeni prikaz otvorene slike neće biti prikazan ukoliko je izfiltriran). -MAIN_BUTTON_PREFERENCES;Postavke -MAIN_BUTTON_PUTTOQUEUE;Zakaži -MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Dodaje trenutnu sliku u zakazane Ctrl+B -MAIN_BUTTON_SAVE;Sačuvaj -MAIN_BUTTON_SAVE_TOOLTIP;Čuva trenutnu sliku Ctrl+S -MAIN_BUTTON_SENDTOEDITOR;Uredi -MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Uređuje trenutnu sliku u spoljnom programu Ctrl+E -MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Prikazuje/sakriva sve bočne površine m -MAIN_BUTTON_UNFULLSCREEN;Napusti ceo ekran -MAIN_FRAME_BATCHQUEUE;Zakazane datoteke -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Zakazano Ctrl-F3 -MAIN_FRAME_EDITOR;Uređivač -MAIN_FRAME_EDITOR_TOOLTIP; Uređivač Ctrl-F4 -MAIN_FRAME_FILEBROWSER;Razgledač datoteka -MAIN_FRAME_FILEBROWSER_TOOLTIP; Razgledač datoteka Ctrl-F2 -MAIN_FRAME_PLACES;Mesta -MAIN_FRAME_PLACES_ADD;Dodaj -MAIN_FRAME_RECENT;Recent Fascikle -MAIN_MSG_ALREADYEXISTS;Datoteka već postoji. -MAIN_MSG_CANNOTLOAD;Ne mogu da učitam sliku -MAIN_MSG_CANNOTSAVE;Greška pri čuvanju datoteke -MAIN_MSG_CANNOTSTARTEDITOR;Ne mogu da pokrenem program za uređivanje. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Izaberite ispravnu putanju u „Postavkama“. -MAIN_MSG_EMPTYFILENAME;Nije određeno ime datoteke! -MAIN_MSG_IMAGEUNPROCESSED;Ova radnja zahteva da najpre stavite izabrane slike u listu zakazanih. -MAIN_MSG_NAVIGATOR;Navigator -MAIN_MSG_OPERATIONCANCELLED;Radnja je otkazana -MAIN_MSG_PATHDOESNTEXIST;Ne postoji putanja \n\n%1\n\n. Postavite ispravnu putanji iz podešavanja programa. -MAIN_MSG_QOVERWRITE;Da li želite da prepišete? -MAIN_MSG_SETPATHFIRST;Morate izabrati ciljnu putanju iz podešavanja programa\nkako bi koristili ovu funkciju! -MAIN_MSG_WRITEFAILED;Ne mogu da upišem\n\n"%1"\n\nProverite da li fascikla postoji i da li imate ovlašćenja za upis u nju. -MAIN_TAB_COLOR;Boja -MAIN_TAB_COLOR_TOOLTIP;Alt-c -MAIN_TAB_DETAIL;Detalji -MAIN_TAB_DETAIL_TOOLTIP;Alt-d -MAIN_TAB_DEVELOP;Razvijanje -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPORT; Brzi izvoz -MAIN_TAB_EXPOSURE;Svetlost -MAIN_TAB_EXPOSURE_TOOLTIP;Alt-e -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metapodaci -MAIN_TAB_METADATA_TOOLTIP;Alt-m -MAIN_TAB_RAW;RAW -MAIN_TAB_RAW_TOOLTIP;Alt-r -MAIN_TAB_TRANSFORM;Ispravke -MAIN_TAB_TRANSFORM_TOOLTIP;Alt-t -MAIN_TOOLTIP_BACKCOLOR0;Boja pozadine za pregled: Na osnovu teme\nPrečica: 9 -MAIN_TOOLTIP_BACKCOLOR1;Boja pozadine za pregled: Crna\nPrečica: 9 -MAIN_TOOLTIP_BACKCOLOR2;Boja pozadine za pregled: Bela\nPrečica: 9 -MAIN_TOOLTIP_BEFOREAFTERLOCK;Zaključaj / otključaj pre prikaza\n\nZaključaj: zadrži prethodni prikaz.\nKorisno ukoliko želite da prikažete ukupni efekat više alata.\nPoređenje se još može napraviti i za bilo koje stanje iz Istorije.\n\nOtključaj: prethodni prikaz dolazi nakon prikaza jednog poslednjeg koraka, prikazujući sliku pre primene trenutnog alata. -MAIN_TOOLTIP_HIDEHP;Prikazuje/sakriva levu površ, zajedno sa istorijatom (prečica: H) -MAIN_TOOLTIP_INDCLIPPEDH;Prikazuje isečene svetle delove -MAIN_TOOLTIP_INDCLIPPEDS;Prikazuje isečene tamne delove -MAIN_TOOLTIP_PREVIEWB;Pregled plavog kanaza.\nPrečica: b -MAIN_TOOLTIP_PREVIEWFOCUSMASK;Prikazuje oblast u fokusu.\nPrečica: Shift-f\n\nNa uvećanju preciznije radi sa slikama koje imaju malu dubinsku oštrinu i malo šuma.\n\nZa precizniji prikaz kod slika sa šumom pregledajte fokus na manjem uvećanju od oko 10-30%.\n\nPrikaz fokusirane oblasti će usporiti pregled fotografija. -MAIN_TOOLTIP_PREVIEWG;Pregled zelenog kanala.\nPrečica: g -MAIN_TOOLTIP_PREVIEWL;Pregled luminanse.\nPrečica: v\n\n0.299*R + 0.587*G + 0.114*B -MAIN_TOOLTIP_PREVIEWR;Pregled crvenog kanala.\nPrečica: r -MAIN_TOOLTIP_QINFO;Osnovni podaci o slici I -MAIN_TOOLTIP_SHOWHIDELP1;Prikazuje/sakriva levu površ l -MAIN_TOOLTIP_SHOWHIDERP1;Prikazuje/sakriva desnu površ Alt-l -MAIN_TOOLTIP_SHOWHIDETP1;Prikazuje/sakriva gornju površ Shift-L -MAIN_TOOLTIP_THRESHOLD;Prag -MAIN_TOOLTIP_TOGGLE;Prikazuje sliku pre i posle obrade B -NAVIGATOR_XY_FULL;Širina = %1, Visina = %2 -NAVIGATOR_XY_NA;x = ○, y = ○ -PARTIALPASTE_BASICGROUP;Osnovna podešavanja -PARTIALPASTE_CACORRECTION;Ispravljanje aberacija -PARTIALPASTE_CHANNELMIXER;Mešanje kanala -PARTIALPASTE_CHANNELMIXERBW;Crno-bela fotografija -PARTIALPASTE_COARSETRANS;Rotacija za 90˚ / izvrtanje -PARTIALPASTE_COLORAPP;CIECAM 2002 model izgleda boja -PARTIALPASTE_COLORGROUP;Podešavanje boja -PARTIALPASTE_COMMONTRANSFORMPARAMS;Sam popuni -PARTIALPASTE_COMPOSITIONGROUP;Podešavanje kompozicije -PARTIALPASTE_CROP;Iseci -PARTIALPASTE_DARKFRAMEAUTOSELECT;Automatski izbor tamnog kadra -PARTIALPASTE_DARKFRAMEFILE;Datoteka za tamni kadar -PARTIALPASTE_DEFRINGE;Uklanjanje oreola -PARTIALPASTE_DETAILGROUP;Podešavanje detalja -PARTIALPASTE_DIALOGLABEL;Delimočno ubacuje profil za obradu -PARTIALPASTE_DIRPYRDENOISE;Uklanjanje šuma -PARTIALPASTE_DIRPYREQUALIZER;Kontrast nivoima detalja -PARTIALPASTE_DISTORTION;Ispravljanje izobličenja -PARTIALPASTE_EPD;Mapiranje tonova -PARTIALPASTE_EVERYTHING;Sve -PARTIALPASTE_EXIFCHANGES;Izmene exif podataka -PARTIALPASTE_EXPOSURE;Ekspozicija -PARTIALPASTE_FLATFIELDAUTOSELECT;Automatski izbor RK -PARTIALPASTE_FLATFIELDBLURRADIUS;Poluprečnik zamućenja RK -PARTIALPASTE_FLATFIELDBLURTYPE;Način zamućenja RK -PARTIALPASTE_FLATFIELDFILE;Datoteka za ravni kadar -PARTIALPASTE_GRADIENT;Filter gradijenta -PARTIALPASTE_HSVEQUALIZER;Ujednačenje HSV -PARTIALPASTE_ICMSETTINGS;ICM podešavanja -PARTIALPASTE_IMPULSEDENOISE;Impulsno uklanjanje šuma -PARTIALPASTE_IPTCINFO;IPTC podavi -PARTIALPASTE_LABCURVE;Lab kriva -PARTIALPASTE_LENSGROUP;Podešavanja objektiva -PARTIALPASTE_LENSPROFILE;Profil za ispravke objektiva -PARTIALPASTE_PCVIGNETTE;Filter vinjetarenja -PARTIALPASTE_PERSPECTIVE;Perspektiva -PARTIALPASTE_PREPROCESS_GREENEQUIL;Ujednačavanje zelene -PARTIALPASTE_PREPROCESS_LINEDENOISE;Linijski filter šuma -PARTIALPASTE_RAWCACORR_AUTO;Auto hromatske aberacije -PARTIALPASTE_RAWEXPOS_BLACK;Nivo crne -PARTIALPASTE_RAWEXPOS_LINEAR;Linearni faktor ispravke RAW bele tačke -PARTIALPASTE_RAWGROUP;Raw podešavanja -PARTIALPASTE_RAW_DCBENHANCE;Primeni korak DCB poboljšanja -PARTIALPASTE_RAW_DCBITERATIONS;Broj DCB ponavljanja -PARTIALPASTE_RAW_DMETHOD;Način rasklapanja mozaika -PARTIALPASTE_RAW_FALSECOLOR;Koraci prigušenja lažne boje pri rasklapanju mozaika -PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE koraci poboljšanja -PARTIALPASTE_RESIZE;Promena veličine -PARTIALPASTE_RGBCURVES;RGB krive -PARTIALPASTE_ROTATION;Rotacija -PARTIALPASTE_SHADOWSHIGHLIGHTS;Senke/Svetlost -PARTIALPASTE_SHARPENEDGE;Ivice -PARTIALPASTE_SHARPENING;Oštrenje -PARTIALPASTE_SHARPENMICRO;Mikrokontrast -PARTIALPASTE_VIBRANCE;Živost boja -PARTIALPASTE_VIGNETTING;Ispravljanje vinjetarenja -PARTIALPASTE_WHITEBALANCE;Balans bele -PREFERENCES_ADD;Dodaj -PREFERENCES_APPLNEXTSTARTUP;primenjuje se nakon ponovnog pokretanja -PREFERENCES_AUTOMONPROFILE;Sam primeni profile monitora iz operativnog sistema -PREFERENCES_BATCH_PROCESSING;Obrada zakzanog -PREFERENCES_BEHADDALL;Sve u „Dodaj“ -PREFERENCES_BEHADDALLHINT;Postavlja sve parametre u režim Dodaj.\nNjihovo podešavanje pomoću alata iz panela za zakazano će biti razlike sačuvanih vrednosti. -PREFERENCES_BEHAVIOR;Ponašanje -PREFERENCES_BEHSETALL;Sve u „Postavi“ -PREFERENCES_BEHSETALLHINT;Postavlja sve parametre u režim Postavi.\nNjihovo podešavanje pomoću alata iz panela za zakazano će biti apsolutne vrednosti kao što su i izabrane. -PREFERENCES_BLACKBODY;Obična sijalica -PREFERENCES_CACHEMAXENTRIES;Najveći broj mest u ostavi -PREFERENCES_CACHEOPTS;Podešavanje ostave -PREFERENCES_CACHETHUMBHEIGHT;Najveća visina prikaza -PREFERENCES_CLIPPINGIND;Pokazivači odsečenih delova -PREFERENCES_CUSTPROFBUILD;Izgradnja proizvoljnog početnog profila slike -PREFERENCES_CUSTPROFBUILDHINT;Izvršna datoteka (ili skripta) koja se poziva kada izgrađujete novi početni profil za sliku.nPrihvata parametre iz komandne linije radi pravljenja .pp3 datoteke na osnovu nekih pravila:n[Putanja do RAW/JPG] [Putanja podrazumevanog profila] [Blenda] [Ekspozicija u s] [Žižna dužina mm] [ISO] [Objektiv] [Foto-aparat] -PREFERENCES_CUSTPROFBUILDKEYFORMAT;Ključni formati -PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Naziv -PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;BrOznake -PREFERENCES_CUSTPROFBUILDPATH;Izvršna putanja -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K -PREFERENCES_DARKFRAMEFOUND;Nađen -PREFERENCES_DARKFRAMESHOTS;snimaka -PREFERENCES_DARKFRAMETEMPLATES;šabloni -PREFERENCES_DATEFORMAT;Format datuma -PREFERENCES_DATEFORMATHINT;Možete zadati sledeće formate:\n%y :godina\n%m : mesec\n%d : dan\n\nU Srbiji se najviše koristi:\n%d.%m.%y -PREFERENCES_DIRDARKFRAMES;Direktorijum tamnog kadra -PREFERENCES_DIRHOME;Lični direktorijum -PREFERENCES_DIRLAST;Poslednji direktorijum -PREFERENCES_DIROTHER;Neki drugi -PREFERENCES_DIRSELECTDLG;Bira određeni direktorijum sa slikama... -PREFERENCES_DIRSOFTWARE;Direktorijum sa instalacijom -PREFERENCES_EDITORLAYOUT;Razmeštaj programa -PREFERENCES_EXTERNALEDITOR;Spoljni uređivač -PREFERENCES_FBROWSEROPTS;Opcije razgledača datoteke -PREFERENCES_FILEFORMAT;Format datoteke -PREFERENCES_FLATFIELDFOUND;Nađeno -PREFERENCES_FLATFIELDSDIR;Direktorijum za ravna polja -PREFERENCES_FLATFIELDSHOTS;snimaka -PREFERENCES_FLATFIELDTEMPLATES;šabloni -PREFERENCES_FLUOF2;Florescentna F2 -PREFERENCES_FLUOF7;Florescentna F7 -PREFERENCES_FLUOF11;Florescentna F11 -PREFERENCES_FORIMAGE;Za datoteke sa slikama -PREFERENCES_FORRAW;Za RAW datoteke -PREFERENCES_GIMPPATH;Direktorijum sa instaliranim Gimpom -PREFERENCES_GREY;Yb luminansa izlaznog uređaja (%) -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 u levoj površi -PREFERENCES_HLTHRESHOLD;Prag za odsečene svetle delove -PREFERENCES_ICCDIR;ICC direktorijum -PREFERENCES_IMPROCPARAMS;Podrazumevani parametri za obradu slika -PREFERENCES_INTENT_ABSOLUTE;Apsolutno kolorimetrijski -PREFERENCES_INTENT_PERCEPTUAL;Perceptualno -PREFERENCES_INTENT_RELATIVE;Relativno kolorimetrijski -PREFERENCES_INTENT_SATURATION;Zasićeni prikaz -PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Koristi ugnježđeni RAW prikaz do izmene -PREFERENCES_LANGAUTODETECT;Sam otkrij -PREFERENCES_MENUGROUPEXTPROGS;Grupiši "Otvori sa" -PREFERENCES_MENUGROUPFILEOPERATIONS;Grupiši radnje nad datotekama -PREFERENCES_MENUGROUPLABEL;Grupiši obeležavanje -PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupiši radnje sa profilima -PREFERENCES_MENUGROUPRANK;Grupiši ocenjivanje -PREFERENCES_MENUOPTIONS;Opcije menija -PREFERENCES_METADATA;Metapodaci -PREFERENCES_MULTITAB;Režim u više listova -PREFERENCES_MULTITABDUALMON;Režim u više listova, na drugom monitoru -PREFERENCES_OUTDIR;Izlazni direktorijum -PREFERENCES_OUTDIRFOLDER;Sačuvaj u fasciklu -PREFERENCES_OUTDIRFOLDERHINT;Stavlja sačuvane slike u -PREFERENCES_OUTDIRTEMPLATE;Upotrebi šablon -PREFERENCES_OUTDIRTEMPLATEHINT;Možete da zadate sledeće skraćenice za formatiranje:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nOvi znakovi za formatiranje se odnose na direktorijume, podputanje putanja do raw datoteke.\n\nNa primer, ukoliko je otvorena slika /home/ivan/slike/02.09.2010/dsc0012.nef, skraćenice označavaju:\n%f=dsc0012, %d1=02.09.2010, %d2=slike, ...\n%p1=/home/ivan/slike/02.09.2010, %p2=/home/ivan/slike, %p3=/home/ivan, ...\n\nUkoliko želite da sačuvate razvijenu sliku pored originala, unesite:\n%p1/%f\n\nUkoliko želite da sačuvate izlaznu sliku u direktorijum „razvijene“ koji se nalazi gde i originalna slika, unesite:\n%p1/razvijene/%f\n\nUkoliko želite da sačuvate razvijenu sliku u direktorijum „/home/ivan/razvijene“, a da struktura poddirektorijuma ostane očuvana, unesite:\n%p2/razvijene/%d1/%f -PREFERENCES_OVERLAY_FILENAMES;Postavi preko umanjenog prikaza -PREFERENCES_OVERWRITEOUTPUTFILE;Prepiši postojeće izlazne datoteke -PREFERENCES_PANFACTORLABEL;Faktor -PREFERENCES_PARSEDEXT;Ekstenzije za prikaz -PREFERENCES_PARSEDEXTADD;Dodaj ekstenziju -PREFERENCES_PARSEDEXTADDHINT;Dodaje upisanu ekstenziju na spisak -PREFERENCES_PARSEDEXTDELHINT;Briše izabranu ekstenziju iz spiska -PREFERENCES_PROFILEHANDLING;Rad sa profilima obrade -PREFERENCES_PROFILELOADPR;Prioritet učitavanja profila -PREFERENCES_PROFILEPRCACHE;Profil u ostavu -PREFERENCES_PROFILEPRFILE;Profil uz ulaznu datoteku -PREFERENCES_PROFILESAVECACHE;Sačuvaj parametre obrade u ostavu -PREFERENCES_PROFILESAVEINPUT;Sačuvaj paramtre obrade pored ulazne datoteke -PREFERENCES_PROPERTY;Osobina -PREFERENCES_PSPATH;Direktorijum sa instaliranim Adobe Fotošopom -PREFERENCES_SELECTLANG;Jezik -PREFERENCES_SET;Postavi -PREFERENCES_SHOWBASICEXIF;Prikaži osnovne Exif podatke -PREFERENCES_SHOWDATETIME;Prikaži datum i vreme -PREFERENCES_SHOWEXPOSURECOMPENSATION;Dodaj kompenzaciju ekspozicije -PREFERENCES_SHTHRESHOLD;Prag za odsečene tamne delove -PREFERENCES_SINGLETAB;Režim u jednom listu -PREFERENCES_SINGLETABVERTAB;Režim u jednom listu, vertikalni listovi -PREFERENCES_SND_BATCHQUEUEDONE;Obrađene su zakazane datoteke -PREFERENCES_SND_HELP;Unesite putanju do datoteke ili ostavite prazno ukoliko ne želite zvuk. Na Windows-u možete da koristite „SystemDefault“, „SystemAsterisk“ za sistemske zvuke. -PREFERENCES_SND_LNGEDITPROCDONE;Urednik je završio obradu -PREFERENCES_SND_THRESHOLDSECS;br. sekundi -PREFERENCES_STARTUPIMDIR;Direktorijum po pokretanju -PREFERENCES_TAB_BROWSER;Pregled datoteka -PREFERENCES_TAB_COLORMGR;Upravljanje bojama -PREFERENCES_TAB_GENERAL;Opšte -PREFERENCES_TAB_IMPROC;Obrada slike -PREFERENCES_TAB_SOUND;Zvuci -PREFERENCES_TP_LABEL;Površ alata: -PREFERENCES_TP_VSCROLLBAR;Sakrij klizače u oblasti sa alatkama -PREFERENCES_TUNNELMETADATA;Kopiraj neizmenjene IPTC/XMP (kada je slika označena drugim programom) -PREFERENCES_USEBUNDLEDPROFILES;Koristi profile koji dolaze uz program -PREFERENCES_VIEW;Balans bele izlaznog uređaja (monitor, TV, projaketor i dr.) -PREFERENCES_WORKFLOW;Tok obrade -PROFILEPANEL_COPYPPASTE;Parametri za kopiranje -PROFILEPANEL_GLOBALPROFILES;Profili iz programa -PROFILEPANEL_LABEL;Profili obrade -PROFILEPANEL_LOADDLGLABEL;Učitaj profil za obradu... -PROFILEPANEL_LOADPPASTE;Parametri za učitavanje -PROFILEPANEL_MODE_TIP;Način dopune profila koji se koristi za obradu.\n\nPritisnuta dugmad: delimični profili se prevode u potpune profile, a nedostajuće vrednosoti se menjaju podrazumevanim vrednostim.\n\nPuštena dugmad: profili će biti primenjeni kakvi jesu, uz izmeni samo onih vrednosti koje sadrži profil. -PROFILEPANEL_MYPROFILES;Moji profili -PROFILEPANEL_PASTEPPASTE;Parametri za ubacivanje -PROFILEPANEL_PCUSTOM;Proizvoljno -PROFILEPANEL_PFILE;Iz datoteke -PROFILEPANEL_PINTERNAL;Neutralno -PROFILEPANEL_PLASTSAVED;Od poslednjeg čuvanja -PROFILEPANEL_SAVEDLGLABEL;Čuva parametre za obradu... -PROFILEPANEL_SAVEPPASTE;Parametri za čuvanje -PROFILEPANEL_TOOLTIPCOPY;Kopira trenutni profil u ostavu -PROFILEPANEL_TOOLTIPLOAD;Učitava profil iz datoteke -PROFILEPANEL_TOOLTIPPASTE; Učitava profil iz -PROFILEPANEL_TOOLTIPSAVE;Čuva trenutni profil -PROGRESSBAR_LOADING;Učitavam sliku... -PROGRESSBAR_LOADINGTHUMBS;Učitavam prikaze... -PROGRESSBAR_LOADJPEG;Učitavam JPEG datoteku... -PROGRESSBAR_LOADPNG;Učitavam PNG datoteku... -PROGRESSBAR_LOADTIFF;Učitavam TIFF datoteku... -PROGRESSBAR_NOIMAGES;Nisu pronađene slike -PROGRESSBAR_PROCESSING;Obrađujem sliku... -PROGRESSBAR_PROCESSING_PROFILESAVED;Obrađujem sačuvani profil -PROGRESSBAR_READY;Čekam -PROGRESSBAR_SAVEJPEG;Čuvam JPEG datoteku... -PROGRESSBAR_SAVEPNG;Čuvam PNG datoteku... -PROGRESSBAR_SAVETIFF;Čuvam TIFF datoteku... -PROGRESSBAR_SNAPSHOT_ADDED;Dodat je snimak -PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil izmenjen u razgledaču -QINFO_ISO;ISO -QINFO_NOEXIF;Nisu dostupni Exif podaci. -SAVEDLG_AUTOSUFFIX;Sam dodaj sufiks ukoliko datoteka već postoji -SAVEDLG_FILEFORMAT;Format datoteke -SAVEDLG_FORCEFORMATOPTS;Primoraj mogućnosti za čuvanje -SAVEDLG_JPEGQUAL;JPEG kvalitet -SAVEDLG_PUTTOQUEUE;Zakazuje sliku za obradu -SAVEDLG_PUTTOQUEUEHEAD;Premešta sliku na početak zakazanih -SAVEDLG_PUTTOQUEUETAIL;Premešta sliku na kraj zakazanih -SAVEDLG_SAVEIMMEDIATELY;Odmah sačuvaj -SAVEDLG_SAVESPP;Sačuvaj parametre obrade uz sliku -SAVEDLG_SUBSAMP;Poduzorkovanje -SAVEDLG_SUBSAMP_1;Najbolja kompresija -SAVEDLG_SUBSAMP_2;Balansirano -SAVEDLG_SUBSAMP_3;Najbolji kvalitet -SAVEDLG_SUBSAMP_TOOLTIP;Najbolja kompresija: 4:1:1\nBalansirano: 4:2:2\nNajbolji kvalitet: 4:4:4 -SAVEDLG_TIFFUNCOMPRESSED;Nezapakovani TIFF -SAVEDLG_WARNFILENAME;Datoteka će biti nazvana -SHCSELECTOR_TOOLTIP;Kliknite desno dugme miša da ponovo vratite poziciju ova tri klizača. -THRESHOLDSELECTOR_B;Dole -THRESHOLDSELECTOR_BR;Dole-desno -THRESHOLDSELECTOR_HINT;Pritisnite dugme Shift za pomeranje pojedinačnih tačaka. -THRESHOLDSELECTOR_T;Gore -THRESHOLDSELECTOR_TL;Gore-levo -THRESHOLDSELECTOR_TR;Gore-desno -TOOLBAR_TOOLTIP_CROP;Postavlja okvir za isecanje (prečica: C) -TOOLBAR_TOOLTIP_HAND;Alat za pomeranje (prečica: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Ispravlja liniju horizonta (prečica: S) -TOOLBAR_TOOLTIP_WB;Određuje balans bele iz tačke (prečica: W) -TP_BWMIX_ALGO;OYCPM algoritam -TP_BWMIX_ALGO_LI;Linearno -TP_BWMIX_ALGO_SP;Specijalni efekti -TP_BWMIX_ALGO_TOOLTIP;Linearno: proizvodi normalni linearni odgovor.\nSpecijalni efekti: proizvodi specijalne efekte mešajući kanale nelinearno. -TP_BWMIX_AUTOCH;Auto -TP_BWMIX_CC_ENABLED;Podesi komplementarnu boju -TP_BWMIX_CC_TOOLTIP;Omogući za automatsko podešavanje komplementarne boje u ROYGCBPM režimu. -TP_BWMIX_CHANNEL;Ujednačavanje luminanse -TP_BWMIX_CURVEEDITOR1;„Pre“ krivulje -TP_BWMIX_CURVEEDITOR2;„Nakon“ krivulje -TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Kriva tonova nakon CB prevođenja, na kraju tretmana. -TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Kriva tonova, tik pred CB prevođenje.\nMože da uzme u obzir i komponente boje. -TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminansa na osnovu nijanse L=f(H).\nObratite pažnju na ekstremne vrednosti pošto one mogu da naprave neželjene efekte. -TP_BWMIX_FILTER;Filter boja -TP_BWMIX_FILTER_BLUE;Plava -TP_BWMIX_FILTER_BLUEGREEN;Plavo-zelena -TP_BWMIX_FILTER_GREEN;Zelena -TP_BWMIX_FILTER_GREENYELLOW;Zeleno-žuta -TP_BWMIX_FILTER_NONE;Ni jedna -TP_BWMIX_FILTER_PURPLE;Ljubičasta -TP_BWMIX_FILTER_RED;Crvena -TP_BWMIX_FILTER_REDYELLOW;Crveno-Žuta -TP_BWMIX_LABEL;Crna i bela -TP_BWMIX_MET;Način -TP_BWMIX_MET_CHANMIX;Mešanje kanala -TP_BWMIX_MET_DESAT;Uklanjanje boje -TP_BWMIX_MET_LUMEQUAL;Ujednačavanje luminanse -TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Ukupno: %4%% -TP_BWMIX_RGBLABEL_HINT;Konačni RGB faktori koji se brinu o opcijama za mešanje.\n„Ukupno“ prikazuje zbir RGB vrednosti:\n- u 100% u relativnom režimu\n- više (svetlije) ili manje (tamnije) od 100% u apsolutnom režimu. -TP_BWMIX_RGB_TOOLTIP;Mešanje RGB kanala. Koristite postojeće prepodešene parametre kao vodilju.\nObratite pažnju na negativne vrednsti koje mogu da naprave greške unutar slike ili izazovu nepravilno ponašanje. -TP_BWMIX_SETTING;Prepodešeno -TP_BWMIX_SETTING_TOOLTIP;Različite podešene vrednosti (film, pejzaž i dr.) ili ručno podešene vrednosti mešanja kanala. -TP_BWMIX_SET_HIGHCONTAST;Veliki kontrast -TP_BWMIX_SET_HIGHSENSIT;Velika osetljivost -TP_BWMIX_SET_HYPERPANCHRO;Jako panhromatski -TP_BWMIX_SET_INFRARED;Infracrveno -TP_BWMIX_SET_LANDSCAPE;Pejzaž -TP_BWMIX_SET_LOWSENSIT;Niska osetljivost -TP_BWMIX_SET_LUMINANCE;Luminansa -TP_BWMIX_SET_NORMCONTAST;Normalni kontrast -TP_BWMIX_SET_ORTHOCHRO;Ortohromatski -TP_BWMIX_SET_PANCHRO;Panhromatski -TP_BWMIX_SET_PORTRAIT;Portret -TP_BWMIX_SET_RGBABS;Apsolutni RGB mešanja kanala -TP_BWMIX_SET_RGBREL;Relativni RGB mešanja kanala -TP_BWMIX_SET_ROYGCBPMABS;Apsolutni ROYGCBPM mešanja kanala -TP_BWMIX_SET_ROYGCBPMREL;Relativni ROYGCBPM mešanja kanala -TP_BWMIX_TCMODE_FILMLIKE;Crno-belo, nalik filmu -TP_BWMIX_TCMODE_SATANDVALBLENDING;Crno-beli, stapanje zasićenosti i vrednosti -TP_BWMIX_TCMODE_STANDARD;Crno-beli, uobičajeni -TP_BWMIX_TCMODE_WEIGHTEDSTD;Crno-beli, mereni standard -TP_BWMIX_VAL;L -TP_CACORRECTION_BLUE;Plava -TP_CACORRECTION_LABEL;Hromatke aberacije -TP_CACORRECTION_RED;Crvena -TP_CHMIXER_BLUE;Plava -TP_CHMIXER_GREEN;Zelena -TP_CHMIXER_LABEL;Mešanje kanala -TP_CHMIXER_RED;Crvena -TP_CHROMATABERR_LABEL;Hromatske aberacije -TP_COARSETRAF_TOOLTIP_HFLIP;Izvrće sliku horizontalno -TP_COARSETRAF_TOOLTIP_ROTLEFT;Okreće sliku ulevo -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Okreće sliku udesno -TP_COARSETRAF_TOOLTIP_VFLIP;Izvrće sliku vertikalno -TP_COLORAPP_ALGO;Algoritam -TP_COLORAPP_ALGO_ALL;Sve -TP_COLORAPP_ALGO_JC;Svetlina + Boja (JC) -TP_COLORAPP_ALGO_JS;Svetlina + Hrominansa (JS) -TP_COLORAPP_ALGO_QM;Osvetljenost + Živost boja (QM) -TP_COLORAPP_ALGO_TOOLTIP;Omogućava izbor između podskupa parametara ili svih parametara. -TP_COLORAPP_BADPIXSL;Filter vrućih/loših piksela -TP_COLORAPP_BADPIXSL_TOOLTIP;Potiskivanje vrućih/loših (presvetlo obojenih) piksela.\n0 = bez efekta\n1 = medijan\n2 = gauzijan.\n\nOve greške se javljaju usled CIECAM02 ograničenja. Drugi način za izbegavanje grešaka je da podesite sliku tako da izbegnete veoma tamne senke. -TP_COLORAPP_BRIGHT;Osvetljenost (Q) -TP_COLORAPP_BRIGHT_TOOLTIP;Osvetljenost u CIECAM02 sistemu uzima u obzir luminansu bele i razlikuje se u odnosu na Lab i RGB osvetljenost. -TP_COLORAPP_CHROMA;Hroma (C) -TP_COLORAPP_CHROMA_M;Živost boja (M) -TP_COLORAPP_CHROMA_M_TOOLTIP;Živost boja u CIECAM02 sistemu se razlikuje u odnosu na Lab i RGB osvetljenost. -TP_COLORAPP_CHROMA_S;Zasićenost (S) -TP_COLORAPP_CHROMA_S_TOOLTIP;Zasićenost u CIECAM02 sistemu se razlikuje u odnosu na Lab i RGB osvetljenost. -TP_COLORAPP_CHROMA_TOOLTIP;Hroma u CIECAM02 sistemu se razlikuje u odnosu na Lab i RGB osvetljenost. -TP_COLORAPP_CIECAT_DEGREE;prilagođavanje za CAT02 -TP_COLORAPP_CONTRAST;Kontrast (J) -TP_COLORAPP_CONTRAST_Q;Kontrast (Q) -TP_COLORAPP_CONTRAST_Q_TOOLTIP;Kontrast u CIECAM02 sistemu za Q klizač; razlikuje se od Lab i RGB kontrasta. -TP_COLORAPP_CONTRAST_TOOLTIP;Kontrast u CIECAM02 sistemu za J klizač; razlikuje se od Lab i RGB kontrasta. -TP_COLORAPP_CURVEEDITOR1;Kriva tonova 1 -TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Prikazuje histogram za L (Lab) pre CIECAM02.\nUkoliko je omogućeno „CIECAM02 izlazni histogram u krivuljama“, prikazujer histogram za J ili Q nakon CIECAM02.\n\nJ i Q se ne prikazuju u glavnoj površi histograma.\n\nZa konaačni izla pogledajte glavnu površ histograma. -TP_COLORAPP_CURVEEDITOR2;Kriva tonova 2 -TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Koristi se na isti način kao i druga kriva tonova ekspozicije. -TP_COLORAPP_CURVEEDITOR3;Kriva boja -TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Podešava bilo hromu, zasićenost ili živost boja.\n\nPrikazuje histogram hromatise (Lab) pre CIECAM02.\nUkoliko je omogućeno „CIECAM02 izlazni histogram u krivuljama“, prikazuje histogram za C, s ili M nakon CIECAM02.\n\nC, s i M se ne prikazuju u glavnoj površi za histogram.\nZa konaačni izla pogledajte glavnu površ histograma. -TP_COLORAPP_DATACIE;CIECAM02 izlazni histogram u krivuljama -TP_COLORAPP_DATACIE_TOOLTIP;Kada je omogućeno, histogrami u CIECAM02 krivim prikazuju približne vrednosti/opsege za J ili Q, i C, s ili M nakon CIECAM02 podešavanja.\nOvaj izbor ne utiče na prikaz u glavnoj površi za histogram.\n\nKada je isključeno, histogrami u CIECAM02 krivim prikazuju Lab vrednosti pre CIECAM02 podešavanja. -TP_COLORAPP_GAMUT;Kontrola gamuta (Lab) -TP_COLORAPP_GAMUT_TOOLTIP;Omogućava kontrolu gamuta u Lab režimu. -TP_COLORAPP_HUE;Nijansa (h) -TP_COLORAPP_HUE_TOOLTIP;Nijansa (h) - ugao između 0° i 360°. -TP_COLORAPP_LABEL;CIECAM 2002 model izgleda boja -TP_COLORAPP_LABEL_CAM02;Podešavanja slike -TP_COLORAPP_LABEL_SCENE;Uslovi scene -TP_COLORAPP_LABEL_VIEWING;Uslovi za pregled -TP_COLORAPP_LIGHT;Svetlina (J) -TP_COLORAPP_LIGHT_TOOLTIP;Svetlina u CIECAM02 se razlikuje od Lab ili RGB svetline. -TP_COLORAPP_MODEL;WP model -TP_COLORAPP_MODEL_TOOLTIP;Model bele-tačke.\n\nBalans bele [RT] + [izlaz]: balans bele iz programa se koristi za kadar, CIECAM02 se postavlja na D50, a balans bele izlaznog uređaja se određuje iz Podešavanja > Upravljanje bojama.\n\nBalans bele [RT+CAT02] + [izlaz]: podešavanja balansa bele iz programa se koriste od strane CAT02, a balans bele izlaznog uređaja se određuje iz Podešavanja - Upravljanje bojama. -TP_COLORAPP_RSTPRO;Zaštita crvene i boje kože -TP_COLORAPP_RSTPRO_TOOLTIP;Zaštita crvene boje i boje kože (klizači i krive). -TP_COLORAPP_SURROUND;Okruženo -TP_COLORAPP_SURROUND_AVER;Prosečno -TP_COLORAPP_SURROUND_DARK;Tamno -TP_COLORAPP_SURROUND_DIM;Zatamnjeno -TP_COLORAPP_SURROUND_EXDARK;Jako tamno -TP_COLORAPP_SURROUND_TOOLTIP;Menja tonove i boje kako bi se prilagodilo uslovima uređaja za prikaz.\n\nProsečno: Prosečno osvetljeno okruženje (uobičajeno). Slika neće biti izmenjena.\n\nZatamnjeno: Zatamnjeno okruženje (TV). Slika će postati za nijansu tamnija.\n\nTamno: Tamno okruženje (projektor). Slika će postati još više tamna.\n\nJako tamno: Ekstramno tamno okruženje (cutsheet). Slika će postati izuzetno tamna. -TP_COLORAPP_SURSOURCE;Tamno okruženje -TP_COLORAPP_SURSOURCE_TOOLTIP;Može da se koristi ukoliko slika ima tamne ivice. -TP_COLORAPP_TCMODE_BRIGHTNESS;Osvtljenost -TP_COLORAPP_TCMODE_CHROMA;Hroma -TP_COLORAPP_TCMODE_COLORF;Živost boja -TP_COLORAPP_TCMODE_LABEL1;Režim krive 1 -TP_COLORAPP_TCMODE_LABEL2;Režim krive 2 -TP_COLORAPP_TCMODE_LABEL3;Kriva u hrom režimu -TP_COLORAPP_TCMODE_LIGHTNESS;Svetlina -TP_COLORAPP_TCMODE_SATUR;Zasićenost -TP_COLORAPP_TONECIE;Mapiranje tonova u CIECAM02 -TP_COLORAPP_TONECIE_TOOLTIP;Ukoliko je isključena ova opcija, mapiranje tonova se vrši u Lab okruženju.\nUkoliko je uključena, mapiranje se vrši pomoću CIECAM02.\nMorate koristiti alat za mapiranje tonova kako bi ova opcija bila primenjena. -TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Apsolutna luminoznost okruženja za pregled\n(obično 16cd/m²). -TP_COLORAPP_WBCAM;Balans bele [RT+CAT02] + [izlaz] -TP_COLORAPP_WBRT;Balans bele [RT] + [izlaz] -TP_CROP_FIXRATIO;Srazmerno: -TP_CROP_GTDIAGONALS;Pravilo dijagonala -TP_CROP_GTEPASSPORT;Biometrijski pasoš -TP_CROP_GTFRAME;Okvir -TP_CROP_GTGRID;Mreža -TP_CROP_GTNONE;Ništa -TP_CROP_GTRULETHIRDS;Pravilo trećina -TP_CROP_GUIDETYPE;Vođice: -TP_CROP_H;V -TP_CROP_LABEL;Isecanje -TP_CROP_W;Š -TP_CROP_X;x -TP_CROP_Y;y -TP_DARKFRAME_AUTOSELECT;Sam izaberi -TP_DARKFRAME_LABEL;Tamni kadar -TP_DEFRINGE_LABEL;Uklaljanje oreola -TP_DEFRINGE_RADIUS;Poluprečnik -TP_DEFRINGE_THRESHOLD;Prag -TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Hrominansa: Plava-Žuta -TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Boja -TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Hrominansa - crvena-zelena -TP_DIRPYRDENOISE_ENH;Poboljšani režim -TP_DIRPYRDENOISE_ENH_TOOLTIP;Povećava kvalitet uklanjanja šuma na uštrb oko 20% vremena za obradu. -TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detalji luminanse -TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminansa -TP_DIRPYRDENOISE_MAIN_COLORSPACE;Način -TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Za rav slike možete koristiti RGB ili Lab režime.\n\nZa ostale slike se koristi Lab, bez obzira na izbor. -TP_DIRPYRDENOISE_MAIN_GAMMA;Gama -TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gama utiče na jačinu uklanjanja šuma preko opseg tonova. Manja vrednost će uticati na senke, veća će povećati ovaj efekat i na svetlije tonove. -TP_DIRPYREQUALIZER_LABEL;Detaljni nivo kontrasta -TP_DIRPYREQUALIZER_LUMACOARSEST;grubo -TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Kontrast- -TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Kontrast+ -TP_DIRPYREQUALIZER_LUMAFINEST;fino -TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutralno -TP_DIRPYREQUALIZER_THRESHOLD;Prag -TP_DISTORTION_AMOUNT;Količina -TP_DISTORTION_LABEL;Izobličenja -TP_EPD_EDGESTOPPING;Izoštravanje ivice -TP_EPD_LABEL;Mapiranje tonova -TP_EPD_REWEIGHTINGITERATES;Broj ponovnih merenja -TP_EPD_SCALE;Razmera -TP_EPD_STRENGTH;Jačina -TP_EXPOSURE_AUTOLEVELS;Auto-nivoi -TP_EXPOSURE_AUTOLEVELS_TIP;Omogućava automatsko određivanje nivoa, koji podešava klizače ekspozicije na osnovu podatka o samoj slici.\nUključuje čupanje svetlih delova ukoliko je neophodno. -TP_EXPOSURE_BLACKLEVEL;Crna -TP_EXPOSURE_BRIGHTNESS;Osvetljenost -TP_EXPOSURE_CLIP;Odseci -TP_EXPOSURE_CLIP_TIP;Deo piksela koje će biti odsečeni primenom automatskih nivoa. -TP_EXPOSURE_COMPRHIGHLIGHTS;Sabijanje svetlog -TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Prag za čupanje svetlih delova -TP_EXPOSURE_COMPRSHADOWS;Sabijanje senki -TP_EXPOSURE_CONTRAST;Kontrast -TP_EXPOSURE_CURVEEDITOR;Kriva nijansi -TP_EXPOSURE_CURVEEDITOR1;Kriva tonova 1 -TP_EXPOSURE_CURVEEDITOR2;Kriva tonova 2 -TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Pogledajte „Ekspozicija > Krive tonova“ unutar članka na sajtu RawPedia kako bi naučili kako se postižu najbolji rezučtati uspotrebom dve krive tonova. -TP_EXPOSURE_EXPCOMP;Kompenzacija -TP_EXPOSURE_LABEL;Ekspozicija -TP_EXPOSURE_SATURATION;Zasićenost -TP_EXPOSURE_TCMODE_FILMLIKE;Nalik foto-filmu -TP_EXPOSURE_TCMODE_LABEL1;1. režim krive -TP_EXPOSURE_TCMODE_LABEL2;2. režim krive -TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Utapanje zasićenosti i vrednosti -TP_EXPOSURE_TCMODE_STANDARD;Standard -TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Uravnoteženi standard -TP_FLATFIELD_AUTOSELECT;Sam izaberi -TP_FLATFIELD_BLURRADIUS;Poluprečnik zamućenja -TP_FLATFIELD_BLURTYPE;Zamuti -TP_FLATFIELD_BT_AREA;Oblast -TP_FLATFIELD_BT_HORIZONTAL;Horizontalno -TP_FLATFIELD_BT_VERTHORIZ;Horiz. i vertik. -TP_FLATFIELD_BT_VERTICAL;Vertikalno -TP_FLATFIELD_LABEL;Ravno polje -TP_GENERAL_11SCALE_TOOLTIP;Efekt ovog alata ili njegovih opcija se vidi samo u razmeri 1:1. -TP_GRADIENT_CENTER;Centar -TP_GRADIENT_CENTER_X;Centar X -TP_GRADIENT_CENTER_X_TOOLTIP;Pomera gradijent ulevo (negativne vrednosti) ili udesno (pozitivne vrednosti). -TP_GRADIENT_CENTER_Y;Centar Y -TP_GRADIENT_CENTER_Y_TOOLTIP;Pomera gradijent na gore (negativne vrednosti) ili na dole (pozitivne vrednosti). -TP_GRADIENT_DEGREE;Ugao -TP_GRADIENT_DEGREE_TOOLTIP;Okreće ugao gradijenta za odabrani broj stepeni. -TP_GRADIENT_FEATHER;Umekšavanje -TP_GRADIENT_FEATHER_TOOLTIP;Širina gradijenta u procentima dijagonale slike. -TP_GRADIENT_LABEL;Filter gradijenta -TP_GRADIENT_STRENGTH;Jačina -TP_GRADIENT_STRENGTH_TOOLTIP;Jačina filtera u broju tačaka prekida. -TP_HLREC_BLEND;Utapanje -TP_HLREC_CIELAB;CieLab stapanje -TP_HLREC_COLOR;Propaginacija boje -TP_HLREC_ENA_TOOLTIP;Može se aktivirati opcijom „Auto-nivoi“. -TP_HLREC_LABEL;Čupanje svetlih delova -TP_HLREC_LUMINANCE;Izvlačenje luminanse -TP_HLREC_METHOD;Način: -TP_HSVEQUALIZER_CHANNEL;HSV kanal -TP_HSVEQUALIZER_HUE;Nijansa -TP_HSVEQUALIZER_LABEL;Ujednačenje HSV kanala -TP_HSVEQUALIZER_SAT;Zasićenost -TP_HSVEQUALIZER_VAL;Vrednost -TP_ICM_BLENDCMSMATRIX;Utopi svetle delove u matricu -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Omogućite kako bi povratili preosvetljene delove ukoliko koristite LUT ICC profile. -TP_ICM_DCPILLUMINANT;Iluminantno -TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolirano -TP_ICM_INPUTCAMERA;Podrazumevano iz aparata -TP_ICM_INPUTCAMERAICC;Foto-aparat ili standardni ICC -TP_ICM_INPUTCAMERA_TOOLTIP;Koristi prostu matricu boja iz programa dcraw, unapređenu RawTherapee verziju (koja god da je dostupna za vaš model foto-aparata) ili neki od ugrađenih DNG profila. -TP_ICM_INPUTCUSTOM;Proizvoljno -TP_ICM_INPUTCUSTOM_TOOLTIP;Izaberite željeni DCP/ICC profil boja za foto-aparat. -TP_ICM_INPUTDLGLABEL;Izaberite ulazni ICC profil... -TP_ICM_INPUTEMBEDDED;Ugnježđeno, ukoliko je moguće -TP_ICM_INPUTEMBEDDED_TOOLTIP;Koristi profil boja koji je ugrađen u ne-raw datoteke. -TP_ICM_INPUTNONE;Nema profila -TP_ICM_INPUTNONE_TOOLTIP;Uopšte ne koristi ulazni profil boja.\nPrimenjuje se samo u posebnim okolnostima. -TP_ICM_INPUTPROFILE;Ulazni profil -TP_ICM_LABEL;ICM -TP_ICM_NOICM;No ICM: sRGB izlaz -TP_ICM_OUTPUTPROFILE;Izlazni profil -TP_ICM_SAVEREFERENCE_TOOLTIP;Sačuvaj linearnu TIFF sliku pre primene ulaznog profila. Rezultat može da se koristi za kalibraciju i izradu profila foto-aparata. -TP_ICM_TONECURVE;Koristi DCP krivu tonova -TP_ICM_TONECURVE_TOOLTIP;Upotrebljava ugrađenu DCP krivu tonova. Ovo podešavanje je omogućeno samo ako izabrani DCP ima krivu tonova. -TP_ICM_WORKINGPROFILE;Radni profil -TP_IMPULSEDENOISE_LABEL;Impulsno uklanjanje šuma -TP_IMPULSEDENOISE_THRESH;Prag -TP_LABCURVE_AVOIDCOLORSHIFT;Izbegni pomeranje boja -TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Postavlja boje u opseg trenutnog radnog prostora boja i primenjuje Munselovu korekciju. -TP_LABCURVE_BRIGHTNESS;Osvetljenost -TP_LABCURVE_CHROMATICITY;Boje -TP_LABCURVE_CHROMA_TOOLTIP;To apply CB toning, set Chromaticity to -100. -TP_LABCURVE_CONTRAST;Kontrast -TP_LABCURVE_CURVEEDITOR;Kriva svetlosti -TP_LABCURVE_CURVEEDITOR_A_RANGE1;Zasićena zelena -TP_LABCURVE_CURVEEDITOR_A_RANGE2;Pastelna zelena -TP_LABCURVE_CURVEEDITOR_A_RANGE3;Pastelna crvena -TP_LABCURVE_CURVEEDITOR_A_RANGE4;Zasićena crvena -TP_LABCURVE_CURVEEDITOR_B_RANGE1;Zasićena plava -TP_LABCURVE_CURVEEDITOR_B_RANGE2;Pastelna plava -TP_LABCURVE_CURVEEDITOR_B_RANGE3;Pastelna žuta -TP_LABCURVE_CURVEEDITOR_B_RANGE4;Zasićena žuta -TP_LABCURVE_CURVEEDITOR_CC;CC -TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutralno -TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Isprano -TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastelno -TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Zasićeno -TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Boja kao funkcija boje C=f(C) -TP_LABCURVE_CURVEEDITOR_CH;CH -TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Boja kao funkcija nijanse C=f(H) -TP_LABCURVE_CURVEEDITOR_CL;CL -TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Hrominansa na osnovu luminanse C=f(L) -TP_LABCURVE_CURVEEDITOR_HH;HH -TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Nijansa kao funkcija nijanse H=f(H) -TP_LABCURVE_CURVEEDITOR_LC;LC -TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Svetnost kao funkcija boje L=f(C) -TP_LABCURVE_CURVEEDITOR_LH;LH -TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Svetlost kao funkcija nijanse L=f(H) -TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Svetlost kao funkcija svetlosti L=f(L) -TP_LABCURVE_LABEL;Lab kriva -TP_LABCURVE_LCREDSK;Ograniči LC na crvenu i boju kože -TP_LABCURVE_LCREDSK_TIP;Ukoliko je uključeno, LC kriva će uticati samo na crvenu i boju kože.\nU suprotnom se primenjuje na sve tonove. -TP_LABCURVE_RSTPROTECTION;Zaštita crvene i boje kože -TP_LABCURVE_RSTPRO_TOOLTIP;Može se koristiti sa klizačem za Hrominansu i CC krivom. -TP_LENSGEOM_AUTOCROP;Sam iseci -TP_LENSGEOM_FILL;Sam popuni -TP_LENSGEOM_LABEL;Objektiv i geometrija -TP_LENSPROFILE_LABEL;Profili za ispravljanje izobličenja objektiva -TP_NEUTRAL;Neutralno -TP_NEUTRAL_TIP;Vraća klizače ekspozicije na neutralne vrednosti.\nPrimenjuje se na iste kontrole kao u Auto nivoi, bez obzira na to da li ste koristili Auto nivoe ili ne. -TP_PCVIGNETTE_FEATHER;Umekšavanje -TP_PCVIGNETTE_FEATHER_TOOLTIP;Umekšavanje:\n0 = samo uglove,\n50 = na polovinu od centra,\n100 = centar. -TP_PCVIGNETTE_LABEL;Filter vinjetarenja -TP_PCVIGNETTE_ROUNDNESS;Zaokrugljenost -TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Zaokrugljenost:\n0 = kvadrat,\n50 = prelaz od kvadrata ka krugu,\n100 = krug. -TP_PCVIGNETTE_STRENGTH;Jačina -TP_PCVIGNETTE_STRENGTH_TOOLTIP;Jačina filtera u prekidima (koji se dostižu na uglovima). -TP_PERSPECTIVE_HORIZONTAL;Horizontalna -TP_PERSPECTIVE_LABEL;Perspektiva -TP_PERSPECTIVE_VERTICAL;Vertikalna -TP_PFCURVE_CURVEEDITOR_CH;Nijansa -TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Određuje jačinu uklaljanja boje.\nVišlje = više,\nNiže = manje. -TP_PREPROCESS_GREENEQUIL;Kalibracija zelene boje -TP_PREPROCESS_LABEL;Predobrada -TP_PREPROCESS_LINEDENOISE;Linijski filter šuma -TP_PREPROCESS_NO_FOUND;Nije pronađeno -TP_RAWCACORR_AUTO;Ispravi hromatske aberacije -TP_RAWCACORR_CABLUE;Plava -TP_RAWCACORR_CARED;Crvena -TP_RAWEXPOS_BLACKS;Nivo crne -TP_RAWEXPOS_LINEAR;Linearni faktor korekcije -TP_RAWEXPOS_TWOGREEN;Obe zelene -TP_RAW_DCBENHANCE;Primeni DCB poboljšanje -TP_RAW_DCBITERATIONS;Broj DCB prolaza -TP_RAW_DMETHOD;Način -TP_RAW_DMETHOD_PROGRESSBAR;%1 rasklapam mozaik... -TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Poboljšavam mozaik... -TP_RAW_DMETHOD_TOOLTIP;Primedba: IGV i LMMSE služe kod velikih ISO vrednosti slike i služe za ispomoć pri uklanjanje šuma kako ne bi došlo do efekta posterizacije ili ispranog izlgeda. -TP_RAW_FALSECOLOR;Koraci za prigušivanje lažne boje -TP_RAW_LABEL;Rasklapanje mozaika -TP_RAW_LMMSEITERATIONS;Koraci LMMSE poboljšanja -TP_RAW_LMMSE_TOOLTIP;Dodaje gamu (korak 1), medijan (koraci 2-4) i poboljšanja (koraci 5-6) kako bi smanjio neispravnosti i poboljšao odnos signal-prema-šum. -TP_RESIZE_APPLIESTO;Primeni na: -TP_RESIZE_CROPPEDAREA;Isečenu oblast -TP_RESIZE_FITBOX;Širinu i visinu -TP_RESIZE_FULLIMAGE;Celu sliku -TP_RESIZE_H;V: -TP_RESIZE_HEIGHT;Visinu -TP_RESIZE_LABEL;Veličina slike -TP_RESIZE_LANCZOS;Lanhoz -TP_RESIZE_METHOD;Način: -TP_RESIZE_NEAREST;Najbliže -TP_RESIZE_SCALE;Umanjenje -TP_RESIZE_SPECIFY;Izaberi: -TP_RESIZE_W;Š: -TP_RESIZE_WIDTH;Širinu -TP_RGBCURVES_BLUE;P -TP_RGBCURVES_CHANNEL;Kanal -TP_RGBCURVES_GREEN;Z -TP_RGBCURVES_LABEL;RGB krive -TP_RGBCURVES_LUMAMODE;Režim luminanse -TP_RGBCURVES_LUMAMODE_TOOLTIP;Režim liminanse omogućava da menjate udeo crvenog, zelenog i plavog kanala iz luminanse slike što ne utiče na promenu boje fotografije. -TP_RGBCURVES_RED;C -TP_ROTATE_DEGREE;Stepeni: -TP_ROTATE_LABEL;Rotacija -TP_ROTATE_SELECTLINE; Postavi pravu liniju -TP_SAVEDIALOG_OK_TIP;Prečica: Ctrl-Enter -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Svetlo -TP_SHADOWSHLIGHTS_HLTONALW;Širina tonova -TP_SHADOWSHLIGHTS_LABEL;Senke/Svetlo -TP_SHADOWSHLIGHTS_LOCALCONTR;Lokalni kontrast -TP_SHADOWSHLIGHTS_RADIUS;Poluprečnik -TP_SHADOWSHLIGHTS_SHADOWS;Senke -TP_SHADOWSHLIGHTS_SHARPMASK;Oštra maska -TP_SHADOWSHLIGHTS_SHTONALW;Širina tonova -TP_SHARPENEDGE_AMOUNT;Količina -TP_SHARPENEDGE_LABEL;Ivice -TP_SHARPENEDGE_PASSES;Ponavljanja -TP_SHARPENEDGE_THREE;Samo luminansa -TP_SHARPENING_AMOUNT;Količina -TP_SHARPENING_EDRADIUS;Poluprečnik -TP_SHARPENING_EDTOLERANCE;Tolerancija ivice -TP_SHARPENING_HALOCONTROL;Ukloni oreol -TP_SHARPENING_HCAMOUNT;Količina -TP_SHARPENING_LABEL;Oštrenje -TP_SHARPENING_METHOD;Način -TP_SHARPENING_ONLYEDGES;Izoštri samo ivice -TP_SHARPENING_RADIUS;Poluprečnik -TP_SHARPENING_RLD;RL dekonvolucija -TP_SHARPENING_RLD_AMOUNT;Količina -TP_SHARPENING_RLD_DAMPING;Prigušivanje -TP_SHARPENING_RLD_ITERATIONS;Ponavljanja -TP_SHARPENING_THRESHOLD;Prag -TP_SHARPENING_USM;Oštrina maske -TP_SHARPENMICRO_AMOUNT;Količina -TP_SHARPENMICRO_LABEL;Mikrokonttrast -TP_SHARPENMICRO_MATRIX;3×3 matrica umesto 5×5 -TP_SHARPENMICRO_UNIFORMITY;Ujednačenost -TP_VIBRANCE_AVOIDCOLORSHIFT;Izbegni pomeranje boja -TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Boja kože -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Crvena/ljubičasta -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Crvena -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Crvena/žuta -TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Žuta -TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Nijansa na osnovu HUE H=f(H) -TP_VIBRANCE_LABEL;Živost boja -TP_VIBRANCE_PASTELS;Pastelne boje -TP_VIBRANCE_PASTSATTOG;Poveži zasićene i pastelne boje -TP_VIBRANCE_PROTECTSKINS;Očuvaj boju kože -TP_VIBRANCE_PSTHRESHOLD;Prag za pastelne/zasićene boje -TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Prag za zasićene boje -TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;Vertikalna osa sadrži pastelne tonove pri dnu i zasićene tonove na vrhu.\nHorizontalna osa predstavlja opseg zasićenja. -TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Težina prelaza pastelnih/zasićenih boja -TP_VIBRANCE_SATURATED;Zasićene boje -TP_VIGNETTING_AMOUNT;Količina -TP_VIGNETTING_CENTER;Centar -TP_VIGNETTING_CENTER_X;Centar X -TP_VIGNETTING_CENTER_Y;Centar Y -TP_VIGNETTING_LABEL;Vinjetarenje -TP_VIGNETTING_RADIUS;Poluprečnik -TP_VIGNETTING_STRENGTH;Jačina -TP_WBALANCE_AUTO;Sam odredi -TP_WBALANCE_CAMERA;Iz aparata -TP_WBALANCE_CLOUDY;Oblačno vreme -TP_WBALANCE_CUSTOM;Proizvoljno -TP_WBALANCE_DAYLIGHT;Dnevno svetlo (sunčano) -TP_WBALANCE_EQBLUERED;Balans crvene i plave -TP_WBALANCE_EQBLUERED_TOOLTIP;Dozvoljava nestandardno podešavanje balansa bele pomoću balansa plave i crvene boje.\nOvo je korisno kada:\na) slikate u nestandardnim uslovima svetla (npr. pod vodom),\nb) su uslovi daleko drugačiji od onih u kojima je izvršena kalibracija,\nv) su matrice ili ICC profili neodgovarajući. -TP_WBALANCE_FLASH55;Leika -TP_WBALANCE_FLASH60;Standardni, Kenon, Pentaks, Olimpus -TP_WBALANCE_FLASH65;Nikon, Panasonik, Soni, Minolta -TP_WBALANCE_FLASH_HEADER;Blic -TP_WBALANCE_FLUO1;F1 - Dnevno svetlo -TP_WBALANCE_FLUO2;F2 - Hladno svetlo -TP_WBALANCE_FLUO3;F3 - Belo svetlo -TP_WBALANCE_FLUO4;F4 - Toplo-belo svetlo -TP_WBALANCE_FLUO5;F5 - Dnevno svetlo -TP_WBALANCE_FLUO6;F6 - Svetlo-belo svetlo -TP_WBALANCE_FLUO7;F7 - D65 simulator dnevne svetlosti -TP_WBALANCE_FLUO8;F8 - D50 / Silvanija F40 dizajn -TP_WBALANCE_FLUO9;F9 - Hladna, deluks-bela -TP_WBALANCE_FLUO10;F10 - Filips TL85 -TP_WBALANCE_FLUO11;F11 - Filips TL84 -TP_WBALANCE_FLUO12;F12 - Filips TL83 -TP_WBALANCE_FLUO_HEADER;Neonsko svetlo -TP_WBALANCE_GREEN;Zelenilo -TP_WBALANCE_GTI;GeTeI -TP_WBALANCE_HMI;HaEmI -TP_WBALANCE_JUDGEIII;DžudIII -TP_WBALANCE_LABEL;Balans bele -TP_WBALANCE_LAMP_HEADER;Lampa -TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 -TP_WBALANCE_LED_HEADER;LED osvetljenje -TP_WBALANCE_LED_LSI;LSI Lumeleks 2040 -TP_WBALANCE_METHOD;Način: -TP_WBALANCE_SHADE;U senci -TP_WBALANCE_SIZE;Veličina: -TP_WBALANCE_SOLUX35;Soluks 3500K -TP_WBALANCE_SOLUX41;Soluks 4100K -TP_WBALANCE_SOLUX47;Soluks 4700K (proizvođač) -TP_WBALANCE_SOLUX47_NG;Soluks 4700K (Nac. galerija) -TP_WBALANCE_SPOTWB;Iz tačke -TP_WBALANCE_TEMPERATURE;Temperatura -TP_WBALANCE_TUNGSTEN;Obična sijalica -TP_WBALANCE_WATER1;Podvodna fotografija 1 -TP_WBALANCE_WATER2;Podvodna fotografija 2 -TP_WBALANCE_WATER_HEADER;Podvodna fotografija -ZOOMPANEL_100;(100%) -ZOOMPANEL_NEWCROPWINDOW;Otvara novi prozor sa detaljima -ZOOMPANEL_ZOOM100;Povećava pregled na 100% z -ZOOMPANEL_ZOOMFITSCREEN;Uklapa sliku u veličinu prozora Alt-f -ZOOMPANEL_ZOOMIN;Uvećava prikaz slike + -ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - - -!!!!!!!!!!!!!!!!!!!!!!!!! -! 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. -!DIRBROWSER_FOLDERS;Folders -!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 -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!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_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPOPENINEDITOR;Open in Editor -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!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_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_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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_FRAME_PLACES_DEL;Remove -!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 -!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: -!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_COLORTONING;Color toning -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_METAGROUP;Metadata settings -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!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_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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 -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!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 -!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. -!THRESHOLDSELECTOR_BL;Bottom-left -!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_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!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_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!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_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!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_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!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 selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!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_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_RGB;Red, Green, Blue -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!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". -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak deleted file mode 100644 index 229cbd01c..000000000 --- a/rtdata/languages/Slovak +++ /dev/null @@ -1,2330 +0,0 @@ -#01 2008-05-08 -#02 2009-02-01 -#03 2010-10-23 slapo - -BATCHQUEUE_AUTOSTART;Auto štart -BATCHQUEUE_AUTOSTARTHINT;Začať spracovanie automaticky, keď príde nová úloha -BATCH_PROCESSING;Dávkové spracovanie -CURVEEDITOR_CUSTOM;Vlastné -CURVEEDITOR_DARKS;Tiene -CURVEEDITOR_HIGHLIGHTS;Najvyššie svetlá -CURVEEDITOR_LIGHTS;Svetlá -CURVEEDITOR_LINEAR;Lineárna -CURVEEDITOR_LOADDLGLABEL;Načítať krivku... -CURVEEDITOR_NURBS;Kontrolná klietka -CURVEEDITOR_PARAMETRIC;Parametricky -CURVEEDITOR_SAVEDLGLABEL;Uložiť krivku... -CURVEEDITOR_SHADOWS;Hlboké tiene -CURVEEDITOR_TOOLTIPLINEAR;Resetovať krivku na lineárnu -CURVEEDITOR_TOOLTIPLOAD;Načítať krivku zo súboru -CURVEEDITOR_TOOLTIPSAVE;Uložiť súčasnú krivku -CURVEEDITOR_TYPE;Typ: -DIRBROWSER_FOLDERS;Priečinky -EXIFFILTER_APERTURE;Clona -EXIFFILTER_CAMERA;Fotoaparát -EXIFFILTER_FOCALLEN;Ohnisková vzdialenosť -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Objektív -EXIFFILTER_METADATAFILTER;Povoliť filtre meta údajov -EXIFFILTER_SHUTTER;Uzávierka -EXIFPANEL_ADDEDIT;Pridať/Upraviť -EXIFPANEL_ADDEDITHINT;Pridať novú značku alebo upraviť značku -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Vložiť hodnotu -EXIFPANEL_ADDTAGDLG_SELECTTAG;Vybrať značku -EXIFPANEL_ADDTAGDLG_TITLE;Pridať/Upraviť značku -EXIFPANEL_KEEP;Ponechať -EXIFPANEL_KEEPHINT;Ponechať vybrané značky pri písaní výstupného súboru -EXIFPANEL_REMOVE;Odstrániť -EXIFPANEL_REMOVEHINT;Odstrániť vybrané značky pri písaní výstupného súboru -EXIFPANEL_RESET;Resetovať -EXIFPANEL_RESETALL;Resetovať všetky -EXIFPANEL_RESETALLHINT;Resetovať všetky značky na ich pôvodné hodnoty -EXIFPANEL_RESETHINT;Resetovať vybrané značky na ich pôvodné hodnoty -EXIFPANEL_SUBDIRECTORY;Podadresár -FILEBROWSER_ADDDELTEMPLATE;Pridať/Odstrániť šablóny... -FILEBROWSER_APPLYPROFILE;Použiť profil -FILEBROWSER_CLEARPROFILE;Vyčistiť profil -FILEBROWSER_COPYPROFILE;Kopírovať profil -FILEBROWSER_CURRENT_NAME;Súčasný názov: -FILEBROWSER_DELETEDLGLABEL;Potvrdenie odstránenia súboru -FILEBROWSER_DELETEDLGMSG;Ste si istí, že chcete odstrániť vybrané %1 súbory? -FILEBROWSER_EMPTYTRASH;Vyprázdniť kôš -FILEBROWSER_EMPTYTRASHHINT;Permanentne odstrániť súbory z koša -FILEBROWSER_NEW_NAME;Nový názov: -FILEBROWSER_PARTIALPASTEPROFILE;Čiastočné vloženie -FILEBROWSER_PASTEPROFILE;Vložiť profil -FILEBROWSER_POPUPCANCELJOB;Zrušiť úlohu -FILEBROWSER_POPUPMOVEEND;Presunúť na koniec radu -FILEBROWSER_POPUPMOVEHEAD;Presunúť na začiatok radu -FILEBROWSER_POPUPOPEN;Otvoriť -FILEBROWSER_POPUPOPENINEDITOR;Otvoriť v editore -FILEBROWSER_POPUPPROCESS;Vložiť do radu na spracovanie -FILEBROWSER_POPUPREMOVE;Odstrániť zo systému súborov -FILEBROWSER_POPUPRENAME;Premenovať -FILEBROWSER_POPUPSELECTALL;Vybrať všetko -FILEBROWSER_POPUPTRASH;Presunúť do koša -FILEBROWSER_POPUPUNRANK;Zrušiť triedu -FILEBROWSER_POPUPUNTRASH;Odstrániť z koša -FILEBROWSER_RENAMEDLGLABEL;Premenovať súbor -FILEBROWSER_SHOWDIRHINT;Ukázať všetky obrázky v adresári -FILEBROWSER_SHOWEXIFINFO;Ukázať EXIF info i -FILEBROWSER_SHOWRANK1HINT;Ukázať obrázky triedy 1 hviezda -FILEBROWSER_SHOWRANK2HINT;Ukázať obrázky triedy 2 hviezda -FILEBROWSER_SHOWRANK3HINT;Ukázať obrázky triedy 3 hviezda -FILEBROWSER_SHOWRANK4HINT;Ukázať obrázky triedy 4 hviezda -FILEBROWSER_SHOWRANK5HINT;Ukázať obrázky triedy 5 hviezda -FILEBROWSER_SHOWTRASHHINT;Zobraziť obsah koša -FILEBROWSER_SHOWUNRANKHINT;Zobraziť obrázky bez triedy -FILEBROWSER_THUMBSIZE;Veľkosť zmenšenín -FILEBROWSER_ZOOMINHINT;Zväčšiť veľkosť zmenšenín -FILEBROWSER_ZOOMOUTHINT;Zmenšiť veľkosť zmenšenín -GENERAL_ABOUT;O programe -GENERAL_AFTER;Potom -GENERAL_BEFORE;Predtým -GENERAL_CANCEL;Zrušiť -GENERAL_DISABLE;Zakázať -GENERAL_DISABLED;Zakázané -GENERAL_ENABLE;Povoliť -GENERAL_ENABLED;Povolené -GENERAL_LANDSCAPE;Krajina -GENERAL_NA;n/a -GENERAL_NO;Nie -GENERAL_OK;OK -GENERAL_PORTRAIT;Portrét -GENERAL_SAVE;Uložiť -GENERAL_UNCHANGED;(Nezmenené) -HISTOGRAM_TOOLTIP_B;Zobraziť/Schovať MODRÝ histogram -HISTOGRAM_TOOLTIP_G;Zobraziť/Schovať ZELENÝ histogram -HISTOGRAM_TOOLTIP_L;Zobraziť/Schovať histogram CIELAB svietivosti -HISTOGRAM_TOOLTIP_R;Zobraziť/Schovať ČERVENÝ histogram -HISTORY_CHANGED;Zmenené -HISTORY_CUSTOMCURVE;Vlastná krivka -HISTORY_FROMCLIPBOARD;Zo schránky -HISTORY_LABEL;História -HISTORY_MSG_1;Fotka načítaná -HISTORY_MSG_2;Profil načítaný -HISTORY_MSG_3;Profil zmenený -HISTORY_MSG_4;História prehliadania -HISTORY_MSG_5;Jas -HISTORY_MSG_6;Kontrast -HISTORY_MSG_7;Čierna -HISTORY_MSG_8;Kompenzácia expozície -HISTORY_MSG_9;Kompresia najvyšších svetiel -HISTORY_MSG_10;Kompresia tieňov -HISTORY_MSG_11;Krivka tónov -HISTORY_MSG_12;Auto expozícia -HISTORY_MSG_13;Orezávanie expozície -HISTORY_MSG_14;Jas svietivosti -HISTORY_MSG_15;Kontrast svietivosti -HISTORY_MSG_16;Čierna svietivosti -HISTORY_MSG_17;Kompresia najvyšších svetiel v oblasti svietivosti -HISTORY_MSG_18;Kompresia tieňov v oblasti svietivosti -HISTORY_MSG_19;Krivka svietivosti -HISTORY_MSG_20;Doostrenie -HISTORY_MSG_21;Polomer doostrenia -HISTORY_MSG_22;Množstvo doostrenia -HISTORY_MSG_23;Prah doostrenia -HISTORY_MSG_24;Doostriť len okraje -HISTORY_MSG_25;Polomer detekcie okrajov pri doostrení -HISTORY_MSG_26;Tolerancia okrajov pri doostrení -HISTORY_MSG_27;Kontrola svätožiary pri doostrení -HISTORY_MSG_28;Množstvo kontroly svätožiary -HISTORY_MSG_29;Doostrovacia metóda -HISTORY_MSG_30;Polomer dekonvolúcie -HISTORY_MSG_31;Množstvo dekonvolúcie -HISTORY_MSG_32;Tlmenie dekonvolúcie -HISTORY_MSG_33;Iterácie dekonvolúcie -HISTORY_MSG_34;Vyhnúť sa orezaniu farieb -HISTORY_MSG_35;Obmedzovač sýtosti -HISTORY_MSG_36;Hranica sýtosti -HISTORY_MSG_37;Zosilnenie farieb -HISTORY_MSG_38;Metóda vyváženia bielej -HISTORY_MSG_39;Farebná teplota -HISTORY_MSG_40;Nádych vyváženia bielej -HISTORY_MSG_41;Farebný posun "A" -HISTORY_MSG_42;Farebný posun "B" -HISTORY_MSG_43;Odšumenie svietivosti -HISTORY_MSG_44;Polomer odšumenia svietivosti -HISTORY_MSG_45;Tolerancia okrajov odšumenia svietivosti -HISTORY_MSG_46;Farebné odšumenie -HISTORY_MSG_47;Polomer farebného odšumenia -HISTORY_MSG_48;Tolerancia okrajov farebného odšumenia -HISTORY_MSG_49;Citlivosť na okraje pri farebnom odšumení -HISTORY_MSG_50;Nástroj Tiene/Najvyššie svetlá -HISTORY_MSG_51;Zosilnenie najvyšších svetiel -HISTORY_MSG_52;Zosilnenie tieňov -HISTORY_MSG_53;Tonálna šírka najvyšších svetiel -HISTORY_MSG_54;Tonálna šírka tieňov -HISTORY_MSG_55;Miestny kontrast -HISTORY_MSG_56;Polomer Tiene/Najvyššie svetlá -HISTORY_MSG_57;Hrubé otočenie -HISTORY_MSG_58;Horizontálne preklápanie -HISTORY_MSG_59;Vertikálne preklápanie -HISTORY_MSG_60;Otočenie -HISTORY_MSG_61;Otočenie -HISTORY_MSG_62;Korekcia zakrivenia objektívu -HISTORY_MSG_63;Záložka vybraná -HISTORY_MSG_64;Orezanie fotky -HISTORY_MSG_65;Korekcia chromatickej aberácie -HISTORY_MSG_66;Obnova najvyšších svetiel -HISTORY_MSG_67;Množstvo obnovy najvyšších svetiel -HISTORY_MSG_68;Metóda obnovy najvyšších svetiel -HISTORY_MSG_69;Pracovný farebný priestor -HISTORY_MSG_70;Výstupný farebný priestor -HISTORY_MSG_71;Vstupný farebný priestor -HISTORY_MSG_72;Korekcia vignetácie -HISTORY_MSG_73;Mixér kanálov -HISTORY_MSG_74;Zmeniť veľkosť - Rozmer -HISTORY_MSG_75;Zmeniť veľkosť - Metóda -HISTORY_MSG_76;Exif Metadáta -HISTORY_MSG_77;IPTC Metadáta -HISTORY_MSG_78;Zadané údaje pre zmenu veľkosti -HISTORY_MSG_79;Zmena veľkosti podľa šírky -HISTORY_MSG_80;Zmena veľkosti podľa výšky -HISTORY_MSG_81;Zmena veľkosti povolená -HISTORY_MSG_82;Profil zmenený -HISTORY_MSG_83;Tiene/najvyšie svetlá vyskokej kvality -HISTORY_MSG_84;Náprava perspektívy -HISTORY_MSG_85;Koeficienty vlnky -HISTORY_MSG_86;Vyrovnávač vlnky -HISTORY_MSG_87;Impulzná redukcia šumu -HISTORY_MSG_89;Smerová pyramída -HISTORY_MSG_90;Svietivosť smerovej pyramídy -HISTORY_MSG_91;Farebnosť smerovej pyramídy -HISTORY_MSG_92;Gamma smerovej pyramídy -HISTORY_NEWSNAPSHOT;Nový Snímok -HISTORY_SNAPSHOT;Snímok -HISTORY_SNAPSHOTS;Snímky -IPTCPANEL_CATEGORY;Kategória -IPTCPANEL_CITY;Mesto -IPTCPANEL_COPYHINT;Kopírovať IPTC nastavenia do schránky -IPTCPANEL_COUNTRY;Krajina -IPTCPANEL_CREDIT;Kredit -IPTCPANEL_CREDITHINT;Identifikuje poskytovateľa obrázka, nemusí byť nevyhnutne vlastníkom/tvorcom (Kredit). -IPTCPANEL_DATECREATED;Dátum vytvorenia -IPTCPANEL_EMBEDDED;Vložené -IPTCPANEL_EMBEDDEDHINT;Resetovať na IPTV údaje vložené do obrázka -IPTCPANEL_HEADLINE;Nadpis -IPTCPANEL_INSTRUCTIONS;Pokyny -IPTCPANEL_KEYWORDS;Kľúčové slová -IPTCPANEL_PASTEHINT;Prilepiť IPTC nastavenia zo schránky -IPTCPANEL_RESET;Resetovať -IPTCPANEL_RESETHINT;Resetovať na predvolené profilom -IPTCPANEL_SOURCE;Zdroj -IPTCPANEL_TITLE;Názov -MAIN_BUTTON_FULLSCREEN;Celá obrazovka -MAIN_BUTTON_PREFERENCES;Predvoľby -MAIN_BUTTON_PUTTOQUEUE;Vložiť do radu -MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Pridať súčasný obrázok do radu na spracovanie Ctrl+B -MAIN_BUTTON_SAVE;Uložiť obrázok -MAIN_BUTTON_SAVE_TOOLTIP;Uložiť súčasný obrázok Ctrl+S -MAIN_BUTTON_SENDTOEDITOR;Odoslať do editora -MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Upraviť súčasný obrázok v externom editore Ctrl+E -MAIN_BUTTON_UNFULLSCREEN;Ukončiť zobrazenie na celú obrazovku -MAIN_FRAME_BATCHQUEUE;Dávkový rad -MAIN_FRAME_FILEBROWSER;Prehliadač súborov -MAIN_FRAME_PLACES;Miesta -MAIN_FRAME_PLACES_ADD;Pridať -MAIN_FRAME_RECENT;Nedávne priečinky -MAIN_MSG_ALREADYEXISTS;Súbor už existuje. -MAIN_MSG_CANNOTLOAD;Nemôžem načítať obrázok -MAIN_MSG_CANNOTSAVE;Chyba pri ukladaní súboru -MAIN_MSG_CANNOTSTARTEDITOR;Nebolo možné spustiť editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Prosím, nastavte správnu cestu v dialógu "Predvoľby". -MAIN_MSG_NAVIGATOR;Navigátor -MAIN_MSG_QOVERWRITE;Chcete ho prepísať? -MAIN_TAB_COLOR;Farba -MAIN_TAB_DETAIL;Detail -MAIN_TAB_DEVELOP;Vyvinúť -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Expozícia -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadáta -MAIN_TAB_TRANSFORM;Transformácie -MAIN_TOOLTIP_HIDEHP;Zobraziť/ukázať ľavý panel (vrátane histórie, shortcut key: H) -MAIN_TOOLTIP_INDCLIPPEDH;Indikácia orezania najvyšších svetiel -MAIN_TOOLTIP_INDCLIPPEDS;Indikácia orezania tieňov -MAIN_TOOLTIP_QINFO;Rýchle informácie o obrázku -MAIN_TOOLTIP_TOGGLE;Prepnúť pohľad predtým/potom B -NAVIGATOR_XY_NA;x = n/a, y = n/a -PARTIALPASTE_BASICGROUP;Základné nastavenia -PARTIALPASTE_CACORRECTION;Korekcia C/A -PARTIALPASTE_COARSETRANS;90° otočenie/preklopenie -PARTIALPASTE_COLORGROUP;Nastavenia súvisiace s farbou -PARTIALPASTE_COMPOSITIONGROUP;Nastavenia kompozície -PARTIALPASTE_CROP;Orez -PARTIALPASTE_DIALOGLABEL;Profil spracovania čiastočného vloženia -PARTIALPASTE_DISTORTION;Korekcia skreslenia -PARTIALPASTE_EXIFCHANGES;Zmeny v EXIF údajochChanges to exif data -PARTIALPASTE_EXPOSURE;Expozícia -PARTIALPASTE_ICMSETTINGS;Nastavenia ICM -PARTIALPASTE_IPTCINFO;IPTC informácie -PARTIALPASTE_LABCURVE;Krivka svietivosti -PARTIALPASTE_LENSGROUP;Nastavenia súvisiace s objektívom -PARTIALPASTE_METAGROUP;Nastavenia metadát -PARTIALPASTE_RESIZE;Zmeniť veľkosť -PARTIALPASTE_ROTATION;Otočenie -PARTIALPASTE_SHADOWSHIGHLIGHTS;Tiene/Najvyššie svetlá -PARTIALPASTE_SHARPENING;Doostrenie -PARTIALPASTE_VIGNETTING;Korekcia vignetácie -PARTIALPASTE_WHITEBALANCE;Vyváženie bielej -PREFERENCES_ADD;Pridať -PREFERENCES_APPLNEXTSTARTUP;Aplikovaný pri ďalšom spustení -PREFERENCES_BATCH_PROCESSING;dávkové spracovanie -PREFERENCES_BEHAVIOR;Správanie sa -PREFERENCES_CACHEMAXENTRIES;Maximálny počet vstupov v cache -PREFERENCES_CACHEOPTS;Možnosti cache -PREFERENCES_CACHETHUMBHEIGHT;Maximálna výška zmenšenín -PREFERENCES_CLIPPINGIND;Indikácia orezu -PREFERENCES_DATEFORMAT;Formát dátumu -PREFERENCES_DATEFORMATHINT;Môžete použiť nasledujúce formátovacie reťazce:\n%y : rok\n%m : mesiac\n%d : deň\n\nNapríklad, slovenský formát je:\n%d.%m.%y -PREFERENCES_DIRHOME;Domovský adresár -PREFERENCES_DIRLAST;Posledný navštívený adresár -PREFERENCES_DIROTHER;Iný -PREFERENCES_DIRSELECTDLG;Vybrať adresár s obrázkami pri spustení... -PREFERENCES_DIRSOFTWARE;Inštalačný adresár -PREFERENCES_EDITORLAYOUT;Rozloženie editora -PREFERENCES_EXTERNALEDITOR;Externý editor -PREFERENCES_FBROWSEROPTS;Voľby prehliadača súborov -PREFERENCES_FILEFORMAT;Formát súborov -PREFERENCES_FORIMAGE;Pre obrazové súbory -PREFERENCES_FORRAW;Pre RAW súbory -PREFERENCES_GIMPPATH;Inštalačný adresár GIMPu -PREFERENCES_HLTHRESHOLD;Prah pre orezanie najvyšších svetiel -PREFERENCES_ICCDIR;Adresár s ICC profilmy -PREFERENCES_IMPROCPARAMS;Predvolené parametre spracovania obrazu -PREFERENCES_INTENT_ABSOLUTE;Absolútny kolorimetrický -PREFERENCES_INTENT_PERCEPTUAL;Vnímaný -PREFERENCES_INTENT_RELATIVE;Relatívny kolorimetrický -PREFERENCES_INTENT_SATURATION;Sýtosť -PREFERENCES_MULTITAB;Režim viacerých kariet -PREFERENCES_OUTDIR;Výstupný adresár -PREFERENCES_OUTDIRFOLDER;Uložiť do adresára -PREFERENCES_OUTDIRFOLDERHINT;Uložiť obrázky do vybraného adresára -PREFERENCES_OUTDIRTEMPLATE;Použiť šablónu -PREFERENCES_OUTDIRTEMPLATEHINT;Môžete použiť nasledujúce formátovacie reťazce:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nTieto formátovacie reťazce odkazujú na adresáre a časti cesty k raw súboru.\n\nNapríklad, ak bol /home/tom/image/02-09-2006/dsc0012.nefotvorený, význam formátovacích reťazcov je:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nAk chcete uložiť výstupný obraz tam, kde je originál, napíšte:\n%p1/%f\n\nAk chcete uložiť výstupný obraz v adresári 'converted' nachádzajúcom sa v adresári s originálom, napíšte:\n%p1/converted/%f\n\nAk chcete uložiť výstupný obraz v adresári '/home/tom/converted' pri zachovaní toho istého podadresára s dátumami, napíšte:\n%p2/converted/%d1/%f -PREFERENCES_OVERLAY_FILENAMES;Prekryť mená súborov cez zmenšeniny -PREFERENCES_PARSEDEXT;Spracúvané prípony -PREFERENCES_PARSEDEXTADD;Pridať príponu -PREFERENCES_PARSEDEXTADDHINT;Napíšte príponu a stlačte tento gombík pre pripojenie k zoznamu -PREFERENCES_PARSEDEXTDELHINT;Odstrániť vybranú príponu zo zoznamu -PREFERENCES_PROFILEHANDLING;Zaobchádzanie s profilom spracovania -PREFERENCES_PROFILELOADPR;Priorita načítavania profilu -PREFERENCES_PROFILEPRCACHE;Profil v cache -PREFERENCES_PROFILEPRFILE;Profil pri vstupnom súbore -PREFERENCES_PROFILESAVECACHE;Uložiť parametre spracovania do cache -PREFERENCES_PROFILESAVEINPUT;Uložiť parametre spracovania k vstupnému súboru -PREFERENCES_PROPERTY;Vlastnosť -PREFERENCES_PSPATH;Inštalačný adresár Adobe Photoshop -PREFERENCES_SELECTLANG;Vybrať si jazyk -PREFERENCES_SET;Nastaviť -PREFERENCES_SHOWBASICEXIF;Zobrazovať základné EXIF informácie -PREFERENCES_SHOWDATETIME;Ukázovať dátum a čas -PREFERENCES_SHTHRESHOLD;Prah pre orezané tiene -PREFERENCES_SINGLETAB;Režim jednej karty -PREFERENCES_STARTUPIMDIR;Adresár s obrázkami pri spustení -PREFERENCES_TAB_BROWSER;Prehliadač súborov -PREFERENCES_TAB_COLORMGR;Správa farieb -PREFERENCES_TAB_GENERAL;Všeobecné -PREFERENCES_TAB_IMPROC;Spracovanie obrazu -PREFERENCES_WORKFLOW;Tok práce -PROFILEPANEL_LABEL;Profily spracovania -PROFILEPANEL_LOADDLGLABEL;Načítať parametre spracovania... -PROFILEPANEL_PCUSTOM;Vlastné -PROFILEPANEL_PFILE;Zo súboru -PROFILEPANEL_PLASTSAVED;Posledné uložené -PROFILEPANEL_SAVEDLGLABEL;Uložiť parametre spracovania... -PROFILEPANEL_TOOLTIPCOPY;Kopírovať súčasný profil do schránky -PROFILEPANEL_TOOLTIPLOAD;Načítať profil zo súboru -PROFILEPANEL_TOOLTIPPASTE;Vložiť profil zo schránky -PROFILEPANEL_TOOLTIPSAVE;Uložiť súčasný profil -PROGRESSBAR_LOADING;Načítavam obrázok... -PROGRESSBAR_LOADJPEG;Ukladám JPEG súbor... -PROGRESSBAR_LOADPNG;Ukladám PNG súbor... -PROGRESSBAR_LOADTIFF;Ukladám TIFF súbor... -PROGRESSBAR_PROCESSING;Spracúvam obrázok... -PROGRESSBAR_READY;Pripravený -PROGRESSBAR_SAVEJPEG;Ukladám JPEG súbor... -PROGRESSBAR_SAVEPNG;Ukladám PNG súbor... -PROGRESSBAR_SAVETIFF;Ukladám TIFF súbor... -PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmenený v prehliadači -QINFO_ISO;ISO -QINFO_NOEXIF;Exif údaje sú nedostupné. -SAVEDLG_AUTOSUFFIX;Automaticky pridať príponu, ak už súbor existuje -SAVEDLG_FILEFORMAT;Formát súboru -SAVEDLG_JPEGQUAL;JPEG Kvalita -SAVEDLG_PUTTOQUEUE;Vložiť do radu na spracovanie -SAVEDLG_PUTTOQUEUEHEAD;Presunúť na čelo radu na spracovanie -SAVEDLG_PUTTOQUEUETAIL;Presunúť na koniec radu na spracovanie -SAVEDLG_SAVEIMMEDIATELY;Uložiť okamžite -SAVEDLG_SAVESPP;Uložiť parametre spracovania s obrázkom -SAVEDLG_TIFFUNCOMPRESSED;Nekomprimovaný TIFF -TOOLBAR_TOOLTIP_CROP;Orezanie výberu (shortcut key: C) -TOOLBAR_TOOLTIP_HAND;Nástroj ruka (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Výber rovnej čiary (shortcut key: S) -TOOLBAR_TOOLTIP_WB;Bodové vyváženie bielej (shortcut key: W) -TP_CACORRECTION_BLUE;Modrá -TP_CACORRECTION_LABEL;Korekcia chromatickej aberácie -TP_CACORRECTION_RED;Červená -TP_CHMIXER_BLUE;Modrá -TP_CHMIXER_GREEN;Zelená -TP_CHMIXER_LABEL;Mixér kanálov -TP_CHMIXER_RED;Červená -TP_COARSETRAF_TOOLTIP_HFLIP;Prevrátiť horizontálne -TP_COARSETRAF_TOOLTIP_ROTLEFT;Otočiť doľava -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Otočiť doprava -TP_COARSETRAF_TOOLTIP_VFLIP;Prevrátiť vertikálne -TP_CROP_FIXRATIO;Pevný pomer: -TP_CROP_GTDIAGONALS;Pravidlo diagonál -TP_CROP_GTNONE;Žiadne -TP_CROP_GTRULETHIRDS;Pravidlo tretín -TP_CROP_GUIDETYPE;Type vodidiel: -TP_CROP_H;V -TP_CROP_LABEL;Orezanie -TP_CROP_W;Š -TP_CROP_X;x -TP_CROP_Y;y -TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Farebnosť -TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Svietivosť -TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -TP_DIRPYREQUALIZER_LABEL;Vyrovnávač smerovej pyramídy -TP_DIRPYREQUALIZER_LUMACOARSEST;Najhrubšie -TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Kontrast- -TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Kontrast+ -TP_DIRPYREQUALIZER_LUMAFINEST;Najjemnejšie -TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutrálne -TP_DIRPYREQUALIZER_THRESHOLD;Threshold -TP_DISTORTION_AMOUNT;Množstvo -TP_DISTORTION_LABEL;Zakrivenie -TP_EXPOSURE_AUTOLEVELS;Auto úrovne -TP_EXPOSURE_BLACKLEVEL;Čierna -TP_EXPOSURE_BRIGHTNESS;Jas -TP_EXPOSURE_CLIP;Orezať -TP_EXPOSURE_COMPRHIGHLIGHTS;Kompresia najvyšších svetiel -TP_EXPOSURE_COMPRSHADOWS;Kompresia tieňov -TP_EXPOSURE_CONTRAST;Kontrast -TP_EXPOSURE_CURVEEDITOR;Krivka tónov -TP_EXPOSURE_EXPCOMP;Kompenzácia expozície -TP_EXPOSURE_LABEL;Expozícia -TP_HLREC_CIELAB;CIELab Blending -TP_HLREC_COLOR;Šírenie farieb -TP_HLREC_LABEL;Obnova najvyšších svetiel -TP_HLREC_LUMINANCE;Obnova svietivosti -TP_HLREC_METHOD;Metóda: -TP_ICM_INPUTCAMERA;Predvolený aparátu -TP_ICM_INPUTCUSTOM;Vlastný -TP_ICM_INPUTDLGLABEL;Vybrať vstupný ICC profil... -TP_ICM_INPUTEMBEDDED;Použiť vstavaný, ak je to možné -TP_ICM_INPUTPROFILE;Vstupný profil -TP_ICM_LABEL;ICM -TP_ICM_NOICM;Bez správy farieb: sRGB výstup -TP_ICM_OUTPUTPROFILE;Výstupný profil -TP_ICM_WORKINGPROFILE;Pracovný profil -TP_IMPULSEDENOISE_LABEL;Impulzná redukcia šumu -TP_IMPULSEDENOISE_THRESH;Prah -TP_LABCURVE_BRIGHTNESS;Jas -TP_LABCURVE_CONTRAST;Kontrast -TP_LABCURVE_CURVEEDITOR;Krivka svietivosti -TP_LABCURVE_LABEL;Krivka svietivosti -TP_LENSGEOM_AUTOCROP;Automatické orezanie -TP_LENSGEOM_FILL;Automatické vyplnenie -TP_LENSGEOM_LABEL;Objektív/Geometria -TP_PERSPECTIVE_HORIZONTAL;Horizontálne -TP_PERSPECTIVE_LABEL;Perspektíva -TP_PERSPECTIVE_VERTICAL;Vertikálne -TP_PREPROCESS_GREENEQUIL;Vyvažovanie zelenej -TP_PREPROCESS_LINEDENOISE;Filter šumu vedenia -TP_RAWCACORR_AUTO;Použiť automatickú úpravu CA -TP_RAW_DCBENHANCE;Použiť vylepšovací krok DCB -TP_RAW_DCBITERATIONS;Počet iterácií DCB -TP_RAW_DMETHOD;Metóda -TP_RAW_FALSECOLOR;Kroky potlačenia chybných farieb -TP_RESIZE_H;V: -TP_RESIZE_HEIGHT;Výška -TP_RESIZE_LABEL;Zmeniť veľkosť -TP_RESIZE_METHOD;Metóda: -TP_RESIZE_NEAREST;Najbližšie -TP_RESIZE_SCALE;Pomer -TP_RESIZE_SPECIFY;Zadať: -TP_RESIZE_W;Š: -TP_RESIZE_WIDTH;Šírka -TP_ROTATE_DEGREE;Stupeň -TP_ROTATE_LABEL;Otočiť -TP_ROTATE_SELECTLINE;Vybrať rovnú čiaru -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Najvyššie svetlá -TP_SHADOWSHLIGHTS_HLTONALW;Tonálna šírka -TP_SHADOWSHLIGHTS_LABEL;Tiene/Najvyššie svetlá -TP_SHADOWSHLIGHTS_LOCALCONTR;Miestny kontrast -TP_SHADOWSHLIGHTS_RADIUS;Polomer -TP_SHADOWSHLIGHTS_SHADOWS;Tiene -TP_SHADOWSHLIGHTS_SHTONALW;Tonálna šírka -TP_SHARPENING_AMOUNT;Množstvo -TP_SHARPENING_EDRADIUS;Polomer -TP_SHARPENING_EDTOLERANCE;Tolerancia okrajov -TP_SHARPENING_HALOCONTROL;Kontrola svätožiary -TP_SHARPENING_HCAMOUNT;Množstvo -TP_SHARPENING_LABEL;Doostrenie -TP_SHARPENING_METHOD;Metóda -TP_SHARPENING_ONLYEDGES;Doostriť len okraje -TP_SHARPENING_RADIUS;Polomer -TP_SHARPENING_RLD;RL Dekonvolúcia -TP_SHARPENING_RLD_AMOUNT;Množstvo -TP_SHARPENING_RLD_DAMPING;Tlmenie -TP_SHARPENING_RLD_ITERATIONS;Iterácie -TP_SHARPENING_THRESHOLD;Prah -TP_SHARPENING_USM;Unsharp Mask -TP_VIGNETTING_AMOUNT;Množstvo -TP_VIGNETTING_LABEL;Korekcia vignetácie -TP_VIGNETTING_RADIUS;Polomer -TP_WBALANCE_AUTO;Automatické -TP_WBALANCE_CAMERA;Fotoaparát -TP_WBALANCE_CUSTOM;Vlastné -TP_WBALANCE_GREEN;Nádych -TP_WBALANCE_LABEL;Vyváženie bielej -TP_WBALANCE_METHOD;Metóda -TP_WBALANCE_SIZE;Veľkosť: -TP_WBALANCE_SPOTWB;Bodové VB -TP_WBALANCE_TEMPERATURE;Teplota -ZOOMPANEL_100;(100%) -ZOOMPANEL_NEWCROPWINDOW;Otvoriť (nové) okno s detailom -ZOOMPANEL_ZOOM100;Priblíženie na 100% z -ZOOMPANEL_ZOOMFITSCREEN;Prispôsobiť obrazovke Alt-f -ZOOMPANEL_ZOOMIN;Priblížiť + -ZOOMPANEL_ZOOMOUT;Oddialiť - - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!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. -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AUTO;Automatic -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!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_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!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_NO_FOUND;None found -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_LANCZOS;Lanczos -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi deleted file mode 100644 index d67b70123..000000000 --- a/rtdata/languages/Suomi +++ /dev/null @@ -1,2328 +0,0 @@ -#01 2009-05-03 T. Kauppinen - -CURVEEDITOR_LINEAR;Suora -CURVEEDITOR_LOADDLGLABEL;Lataa käyrä... -CURVEEDITOR_SAVEDLGLABEL;Tallenna käyrä... -CURVEEDITOR_TOOLTIPLINEAR;Palauta suoraksi -CURVEEDITOR_TOOLTIPLOAD;Lataa käyrä tiedostosta -CURVEEDITOR_TOOLTIPSAVE;Tallenna käyrä -DIRBROWSER_FOLDERS;Kansiot -EXIFFILTER_APERTURE;Aukko -EXIFFILTER_CAMERA;Kamera -EXIFFILTER_FOCALLEN;Polttoväli -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Objektiivi -EXIFFILTER_SHUTTER;Suljinaika -EXIFPANEL_ADDEDIT;Lisää/Muokkaa -EXIFPANEL_ADDEDITHINT;Lisää uusi EXIF-tieto tai muokkaa olemassaolevaa -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Uusi arvo -EXIFPANEL_ADDTAGDLG_SELECTTAG;Valitse -EXIFPANEL_ADDTAGDLG_TITLE;Lisää/Muokkaa -EXIFPANEL_KEEP;Pidä -EXIFPANEL_KEEPHINT;Pidä valitut tallennettaessa -EXIFPANEL_REMOVE;Poista -EXIFPANEL_REMOVEHINT;Poista valitut tallennettaessa -EXIFPANEL_RESET;Palauta -EXIFPANEL_RESETALL;Palauta kaikki -EXIFPANEL_RESETALLHINT;Palauta kaikki alkuperäisiksi -EXIFPANEL_RESETHINT;Palauta valitut alkuperäisiksi -EXIFPANEL_SUBDIRECTORY;Alihakemisto -FILEBROWSER_APPLYPROFILE;Käytä profiilia -FILEBROWSER_CLEARPROFILE;Tyhjennä profiili -FILEBROWSER_COPYPROFILE;Kopioi profiili -FILEBROWSER_DELETEDLGLABEL;Tiedostojen poisto -FILEBROWSER_DELETEDLGMSG;Haluatko varmasti poistaa valitut %1 tiedostoa? -FILEBROWSER_EMPTYTRASH;Tyhjennä roskakori -FILEBROWSER_EMPTYTRASHHINT;Poistaa pysyvästi tiedostot roskakorista -FILEBROWSER_PARTIALPASTEPROFILE;Liitä valiten.. -FILEBROWSER_PASTEPROFILE;Liitä profiili -FILEBROWSER_POPUPCANCELJOB;Peruuta työ -FILEBROWSER_POPUPMOVEEND;Siirrä jonon viimeiseksi -FILEBROWSER_POPUPMOVEHEAD;Siirrä jonon ensimmäiseksi -FILEBROWSER_POPUPOPEN;Avaa -FILEBROWSER_POPUPOPENINEDITOR;Avaa Editor -FILEBROWSER_POPUPPROCESS;Laita käsittelyjonoon -FILEBROWSER_POPUPREMOVE;Poista kokonaan -FILEBROWSER_POPUPRENAME;Nimeä uudelleen.. -FILEBROWSER_POPUPSELECTALL;Valitse kaikki -FILEBROWSER_POPUPTRASH;Siirrä roskakoriin -FILEBROWSER_POPUPUNRANK;Poista arvostelu -FILEBROWSER_POPUPUNTRASH;Pelasta roskakorista -FILEBROWSER_RENAMEDLGLABEL;Nimeä uudelleen -FILEBROWSER_SHOWDIRHINT;Näytä hakemiston kaikki kuvat -FILEBROWSER_SHOWRANK1HINT;Näytä 1 tähden kuvat -FILEBROWSER_SHOWRANK2HINT;Näytä 2 tähden kuvat -FILEBROWSER_SHOWRANK3HINT;Näytä 3 tähden kuvat -FILEBROWSER_SHOWRANK4HINT;Näytä 4 tähden kuvat -FILEBROWSER_SHOWRANK5HINT;Näytä 5 tähden kuvat -FILEBROWSER_SHOWTRASHHINT;Näytä roskakorin sisältö -FILEBROWSER_SHOWUNRANKHINT;Näytä arvostelemattomat kuvat -FILEBROWSER_THUMBSIZE;Esikatselun koko -FILEBROWSER_ZOOMINHINT;Kasvata esikatselukuvien kokoa -FILEBROWSER_ZOOMOUTHINT;Pienennä esikatselukuvien kokoa -GENERAL_ABOUT;Tietoja -GENERAL_CANCEL;Peruuta -GENERAL_DISABLE;Pois -GENERAL_DISABLED;Pois -GENERAL_ENABLE;Päälle -GENERAL_ENABLED;Päällä -GENERAL_LANDSCAPE;Vaaka -GENERAL_NA;- -GENERAL_NO;Ei -GENERAL_OK;OK -GENERAL_PORTRAIT;Pysty -GENERAL_SAVE;Tallenna -HISTOGRAM_TOOLTIP_B;Näytä/piilota SININEN -HISTOGRAM_TOOLTIP_G;Näytä/piilota VIHREÄ -HISTOGRAM_TOOLTIP_L;Näytä/piilota CIELAB luminanssi -HISTOGRAM_TOOLTIP_R;Näytä/piilota PUNAINEN -HISTORY_CHANGED;Muutettu -HISTORY_CUSTOMCURVE;Oma käyrä -HISTORY_FROMCLIPBOARD;Leikepöydältä -HISTORY_LABEL;Historia -HISTORY_MSG_1;Kuva ladattu -HISTORY_MSG_2;Profiili ladattu -HISTORY_MSG_3;Profiili vaihdettu -HISTORY_MSG_4;Historian selaus -HISTORY_MSG_5;Valotus\nKirkkaus -HISTORY_MSG_6;Valotus\nKontrasti -HISTORY_MSG_7;Valotus\nTummuus -HISTORY_MSG_8;Valotus\nKompensointi -HISTORY_MSG_9;Valotus\nVaaleiden alueiden vaimennus -HISTORY_MSG_10;Valotuksen säätö\nTummien alueiden vaimennus -HISTORY_MSG_11;Valotuksen säätö\nSävykäyrä -HISTORY_MSG_12;Valotuksen säätö\nAutomaattinen -HISTORY_MSG_13;Valotuksen säätö\nAutomaattisen valotuksen raja -HISTORY_MSG_14;Luminanssi\nKirkkaus -HISTORY_MSG_15;Luminanssi\nKontrasti -HISTORY_MSG_16;Luminanssi\nTummuus -HISTORY_MSG_17;Luminanssi\nVaaleiden alueiden vaimennus -HISTORY_MSG_18;Luminanssi\nTummien alueiden vaimennus -HISTORY_MSG_19;Luminanssi\nKäyrä -HISTORY_MSG_20;Terävöinti -HISTORY_MSG_21;Terävöinti\nEpäterävä maski: Säde -HISTORY_MSG_22;Terävöinti\nEpäterävä maski: Määrä -HISTORY_MSG_23;Terävöinti\nEpäterävä maski: Kynnys -HISTORY_MSG_24;Terävöinti\nEpäterävä maski: Vain reunat -HISTORY_MSG_25;Terävöinti\nEpäterävä maski: Reunatunnistuksen säde -HISTORY_MSG_26;Terävöinti\nEpäterävä maski: Reunatunnistuksen herkkyys -HISTORY_MSG_27;Terävöinti\nEpäterävä maski: Halo-ilmiön esto -HISTORY_MSG_28;Terävöinti\nEpäterävä maski: Halo-ilmiön eston määrä -HISTORY_MSG_29;Terävöinti\nMenetelmä -HISTORY_MSG_30;Terävöinti\nDekonvoluutio: Säde -HISTORY_MSG_31;Terävöinti\nDekonvoluutio: Määrä -HISTORY_MSG_32;Terävöinti\nDekonvoluutio: Vaimennus -HISTORY_MSG_33;Terävöinti\nDekonvoluutio: Iteraatiot -HISTORY_MSG_34;Värikylläisyys\nVältä leikkautuminen -HISTORY_MSG_35;Värikylläisyys\nEstä kyllästyminen -HISTORY_MSG_36;Värikylläisyys\nKyllästymisraja -HISTORY_MSG_37;Värikylläisyys -HISTORY_MSG_38;Valkotasapaino\nMenetelmä -HISTORY_MSG_39;Valkotasapaino\nLämpötila [K] -HISTORY_MSG_40;Valkotasapaino\nValkoisen sävy -HISTORY_MSG_41;Värisävy\nvihreä-punainen -HISTORY_MSG_42;Värisävy\nsininen-keltainen -HISTORY_MSG_43;Luminanssin kohinanvaimennus -HISTORY_MSG_44;Luminanssin kohinanvaimennus\nSäde -HISTORY_MSG_45;Luminanssin kohinanvaimennus\nReunan tunnistusherkkyys -HISTORY_MSG_46;Värin kohinanvaimennus -HISTORY_MSG_47;Värin kohinanvaimennus\nSäde -HISTORY_MSG_48;Värin kohinanvaimennus\nReunan tunnistusherkkyys -HISTORY_MSG_49;Värin kohinanvaimennus\nReunaherkkä -HISTORY_MSG_50;Tummat/vaaleat alueet -HISTORY_MSG_51;Tummat/vaaleat alueet\nVaaleiden alueiden vaimennus -HISTORY_MSG_52;Tummat/vaaleat alueet\nTummien alueiden vaimennus -HISTORY_MSG_53;Tummat/vaaleat alueet\nVaalean sävyalueen laajuus -HISTORY_MSG_54;Tummat/vaaleat alueet\nTumman sävyalueen laajuus -HISTORY_MSG_55;Tummat/vaaleat alueet\nPaikallinen kontrasti -HISTORY_MSG_56;Tummat/vaaleat alueet\nSäde -HISTORY_MSG_57;Kääntö -HISTORY_MSG_58;Peilaa vaakasuunnassa -HISTORY_MSG_59;Peilaa pystysuunnassa -HISTORY_MSG_60;Oikaisu -HISTORY_MSG_61;Kääntö -HISTORY_MSG_62;Linssivääristymän korjaus -HISTORY_MSG_63;Pikakuva valittu -HISTORY_MSG_64;Rajaus -HISTORY_MSG_65;Värivääristymän korjaus -HISTORY_MSG_66;Huippuvaloalueiden palautus -HISTORY_MSG_67;Huippuvaloalueiden palautus\nMäärä -HISTORY_MSG_68;Huippuvaloalueiden palautus\nMenetelmä -HISTORY_MSG_69;Työväriprofiili -HISTORY_MSG_70;Tulosväriprofiili -HISTORY_MSG_71;Lähdeväriprofiili -HISTORY_MSG_72;Vinjetoinnin korjaus -HISTORY_MSG_73;Kanavat -HISTORY_MSG_74;Koko -HISTORY_MSG_75;Koko\nMenetelmä -HISTORY_MSG_76;EXIF-tiedot -HISTORY_MSG_77;IPTC-tiedot -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;Uusi pikakuva -HISTORY_SNAPSHOT;Pikakuva -HISTORY_SNAPSHOTS;Pikakuvat -IPTCPANEL_CATEGORY;Aiheryhmä -IPTCPANEL_CITY;Kaupunki -IPTCPANEL_COPYHINT;Kopioi IPTC tiedot leikepöydälle -IPTCPANEL_COUNTRY;Maa -IPTCPANEL_CREDIT;Välittäjä -IPTCPANEL_CREDITHINT;(Credit) Välittäjän tiedot. -IPTCPANEL_DATECREATED;Päivämäärä -IPTCPANEL_EMBEDDED;Kuvan oma -IPTCPANEL_EMBEDDEDHINT;Palauta kuvan IPTC tiedot -IPTCPANEL_HEADLINE;Julkaistava otsikko -IPTCPANEL_INSTRUCTIONS;Ohjeet -IPTCPANEL_KEYWORDS;Avainsanat -IPTCPANEL_PASTEHINT;Liitä IPTC tiedot leikepöydältä -IPTCPANEL_RESET;Palauta -IPTCPANEL_RESETHINT;Palauta profiilin oletukseen -IPTCPANEL_SOURCE;Lähde -IPTCPANEL_TITLE;Otsikko -MAIN_BUTTON_PREFERENCES;Asetukset -MAIN_BUTTON_SAVE;Tallenna kuva -MAIN_BUTTON_SENDTOEDITOR;Avaa ulkoisessa ohjelmassa -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Tiedosto on jo olemassa. -MAIN_MSG_CANNOTLOAD;Kuvaa ei voi avata -MAIN_MSG_CANNOTSAVE;Tiedoston tallennusongelma -MAIN_MSG_CANNOTSTARTEDITOR;Ulkoista ohjelmaa ei voi käynnistää -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Tarkista ohjelman polku asetuksissa! -MAIN_MSG_QOVERWRITE;Haluatko tallentaa päälle? -MAIN_TAB_COLOR;Väri -MAIN_TAB_DETAIL;Yksityiskohdat -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;EXIF -MAIN_TAB_EXPOSURE;Valotus -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metatiedot -MAIN_TAB_TRANSFORM;Muunnokset -MAIN_TOOLTIP_HIDEHP;Näytä/piilota vasen ikkuna (pikanäppäin: H) -MAIN_TOOLTIP_INDCLIPPEDH;Näytä leikkautuvat\nvaaleat alueet -MAIN_TOOLTIP_INDCLIPPEDS;Näytä leikkautuvat\ntummat alueet -MAIN_TOOLTIP_QINFO;Kuvan tiedot -PARTIALPASTE_BASICGROUP;Perusasetukset -PARTIALPASTE_CACORRECTION;Väripoikkeaman korjaus -PARTIALPASTE_COARSETRANS;Vasen/oikea kääntö ja peilaus -PARTIALPASTE_COLORGROUP;Väriasetukset -PARTIALPASTE_COMPOSITIONGROUP;Muunnokset -PARTIALPASTE_CROP;Rajaus -PARTIALPASTE_DIALOGLABEL;Liitä valiten.. -PARTIALPASTE_DISTORTION;Linssivääristymän korjaus -PARTIALPASTE_EXIFCHANGES;EXIF-tiedot -PARTIALPASTE_EXPOSURE;Valotus -PARTIALPASTE_ICMSETTINGS;ICM-profiili -PARTIALPASTE_IPTCINFO;IPTC-tiedot -PARTIALPASTE_LENSGROUP;Objektiiviin liittyvät asetukset -PARTIALPASTE_METAGROUP;Metatiedot -PARTIALPASTE_RESIZE;Koko -PARTIALPASTE_ROTATION;Oikaisu -PARTIALPASTE_SHADOWSHIGHLIGHTS;Tummat/vaaleat alueet -PARTIALPASTE_SHARPENING;Terävöinti -PARTIALPASTE_VIGNETTING;Vinjetoinnin korjaus -PARTIALPASTE_WHITEBALANCE;Valkotasapaino -PREFERENCES_APPLNEXTSTARTUP;käytössä käynnistyksen jälkeen -PREFERENCES_CACHEMAXENTRIES;Välimuistin koko -PREFERENCES_CACHEOPTS;Välimuistin asetukset -PREFERENCES_CACHETHUMBHEIGHT;Suurin esikatselukuvan korkeus -PREFERENCES_CLIPPINGIND;Leikkautuminen -PREFERENCES_DATEFORMAT;Päivämäärän muoto -PREFERENCES_DATEFORMATHINT;Voit käyttää seuraavia komentoja:\n%y : vuosi\n%m : kuukausi\n%d : päivä\n\nEsimerkiksi, pp.kk.vvvv:\n%d.%m.%y -PREFERENCES_DIRHOME;Kotihakemisto -PREFERENCES_DIRLAST;Viimeksi käytetty hakemisto -PREFERENCES_DIROTHER;Muu -PREFERENCES_DIRSELECTDLG;Valitse kuvahakemisto käynnistettäessä... -PREFERENCES_DIRSOFTWARE;Asennushakemisto -PREFERENCES_EXTERNALEDITOR;Ulkoinen ohjelma -PREFERENCES_FBROWSEROPTS;Näytettävät tiedot -PREFERENCES_FILEFORMAT;Tallennuksen asetukset -PREFERENCES_FORIMAGE;Kuvatiedostoille -PREFERENCES_FORRAW;RAW-tiedostoille -PREFERENCES_GIMPPATH;GIMP:n asennushakemisto -PREFERENCES_HLTHRESHOLD;Kynnysarvo vaaleille alueille -PREFERENCES_ICCDIR;ICC-profiilien hakemisto -PREFERENCES_IMPROCPARAMS;Oletuskäsittelyprofiilit -PREFERENCES_INTENT_ABSOLUTE;Absoluuttinen kolorimetrinen -PREFERENCES_INTENT_PERCEPTUAL;Havainnollinen -PREFERENCES_INTENT_RELATIVE;Suhteellinen kolorimetrinen -PREFERENCES_INTENT_SATURATION;Kylläisyyden säilyttävä -PREFERENCES_OUTDIR;Tallennushakemisto -PREFERENCES_OUTDIRFOLDER;Valitse hakemisto -PREFERENCES_OUTDIRFOLDERHINT;Tallenna kuvat valittuun kansioon -PREFERENCES_OUTDIRTEMPLATE;Ohjelmoi hakemisto -PREFERENCES_OUTDIRTEMPLATEHINT;Voit käyttää seuraavia komentoja:\n%f tiedosto\n%p1, %p2, ... polku\n%d1, %d2, ..., hakemisto\nNämä komennot viittaavat RAW-tiedoston hakemistoihin ja polkuihin.\n\nEsimerkiksi: jos /home/tom/image/02-09-2006/dsc0012.nefon avattu, komennot tarkoittavat seuraavaa:\n%f=dsc0012\n%d1=02-09-2006, %d2=image,...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nJos haluat tallentaa alkuperäisen kuvan hakemistoon:\n%p1/%f\n\nJos haluat tallentaa hakemistoon nimeltä 'converted' joka sijaitsee alkuperäisen kuvan hakemistossa:\n%p1/converted/%f\n\nJos haluat tallentaa hakemistoon '/home/tom/image/converted' ja pitää päivämäärähakemistot:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Käytössä olevat tunnisteet -PREFERENCES_PARSEDEXTADD;Lisää tunniste -PREFERENCES_PARSEDEXTADDHINT;Lisää tunniste -PREFERENCES_PARSEDEXTDELHINT;Poista valitut tunnisteet listasta -PREFERENCES_PROFILEHANDLING;Käsittelyprofiilit -PREFERENCES_PROFILELOADPR;Ensisijainen profiili -PREFERENCES_PROFILEPRCACHE;välimuisti -PREFERENCES_PROFILEPRFILE;oheistiedosto -PREFERENCES_PROFILESAVECACHE;Tallenna käsittelyparametrit välimuistiin -PREFERENCES_PROFILESAVEINPUT;Tallenna käsittelyparametrit oheistiedostoon -PREFERENCES_PSPATH;Adobe Photoshop:n asennushakemisto -PREFERENCES_SELECTLANG;Valitse kieli -PREFERENCES_SHOWBASICEXIF;Perus EXIF-tiedot -PREFERENCES_SHOWDATETIME;Päivämäärä ja aika -PREFERENCES_SHTHRESHOLD;Kynnysarvo tummille alueille -PREFERENCES_STARTUPIMDIR;Kuvahakemisto käynnistettäessä -PREFERENCES_TAB_BROWSER;Tiedostot -PREFERENCES_TAB_COLORMGR;Värit -PREFERENCES_TAB_GENERAL;Yleiset -PREFERENCES_TAB_IMPROC;Kuvankäsittely -PROFILEPANEL_LABEL;Käsittelyprofiili -PROFILEPANEL_LOADDLGLABEL;Lataa käsittelyprofiili... -PROFILEPANEL_PCUSTOM;Oma -PROFILEPANEL_PFILE;Tiedostosta -PROFILEPANEL_PLASTSAVED;Viimeisin tallennettu -PROFILEPANEL_SAVEDLGLABEL;Tallenna käsittelyprofiili... -PROFILEPANEL_TOOLTIPCOPY;Kopioi nykyinen profiili leikepöydälle -PROFILEPANEL_TOOLTIPLOAD;Lataa profiili tiedostosta -PROFILEPANEL_TOOLTIPPASTE;Liitä profiili leikepöydältä -PROFILEPANEL_TOOLTIPSAVE;Tallenna profiili -PROGRESSBAR_LOADING;Kuvaa ladataan... -PROGRESSBAR_LOADJPEG;JPEG-tiedostoa ladataan... -PROGRESSBAR_LOADPNG;PNG-tiedostoa ladataan... -PROGRESSBAR_LOADTIFF;TIFF-tiedostoa ladataan... -PROGRESSBAR_PROCESSING;Kuvaa käsitellään... -PROGRESSBAR_READY;Valmis -PROGRESSBAR_SAVEJPEG;JPEG-tiedostoa tallennetaan... -PROGRESSBAR_SAVEPNG;PNG-tiedostoa tallennetaan... -PROGRESSBAR_SAVETIFF;TIFF-tiedostoa tallennetaan... -QINFO_ISO;ISO -QINFO_NOEXIF;EXIF-tietoja ei saatavilla. -SAVEDLG_FILEFORMAT;Tiedostomuoto -SAVEDLG_JPEGQUAL;JPEG laatu (suurempi luku, parempi laatu) -SAVEDLG_PUTTOQUEUE;Laita käsittelyjonoon -SAVEDLG_PUTTOQUEUEHEAD;Laita käsittelyjonon ensimmäiseksi -SAVEDLG_PUTTOQUEUETAIL;Laita käsittelyjonon viimeiseksi -SAVEDLG_SAVEIMMEDIATELY;Tallenna heti -SAVEDLG_SAVESPP;Tallenna kuvankäsittelytiedot kuvan mukana -SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -TOOLBAR_TOOLTIP_CROP;Valitse rajattava alue (pikanäppäin: C) -TOOLBAR_TOOLTIP_HAND;Kuvan siirtotyökalu (pikanäppäin: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Valitse suora linja (pikanäppäin: S) -TOOLBAR_TOOLTIP_WB;Valitse valkotasapainon\nvalkea piste kuvasta (pikanäppäin: W) -TP_CACORRECTION_BLUE;Sininen -TP_CACORRECTION_LABEL;Väripoikkeaman korjaus -TP_CACORRECTION_RED;Punainen -TP_CHMIXER_BLUE;Sininen -TP_CHMIXER_GREEN;Vihreä -TP_CHMIXER_LABEL;Kanavat -TP_CHMIXER_RED;Punainen -TP_COARSETRAF_TOOLTIP_HFLIP;Peilaa vaakasuunnassa -TP_COARSETRAF_TOOLTIP_ROTLEFT;Käännä vasemmalle -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Käännä oikealle -TP_COARSETRAF_TOOLTIP_VFLIP;Peilaa pystysuunnassa -TP_CROP_FIXRATIO;Pidä kuvasuhde: -TP_CROP_GTDIAGONALS;Kulmien puolittajat -TP_CROP_GTNONE;Ei mikään -TP_CROP_GTRULETHIRDS;Kolmijako -TP_CROP_GUIDETYPE;Sommittelumalli: -TP_CROP_H;Kork. -TP_CROP_LABEL;Rajaus -TP_CROP_W;Lev. -TP_CROP_X; x -TP_CROP_Y; y -TP_DISTORTION_AMOUNT;Määrä -TP_DISTORTION_LABEL;Linssivääristymän korjaus -TP_EXPOSURE_AUTOLEVELS;Automaattinen -TP_EXPOSURE_BLACKLEVEL;Tummuus -TP_EXPOSURE_BRIGHTNESS;Kirkkaus -TP_EXPOSURE_CLIP;Raja -TP_EXPOSURE_COMPRHIGHLIGHTS;Vaaleiden alueiden vaimennus -TP_EXPOSURE_COMPRSHADOWS;Tummien alueiden vaimennus -TP_EXPOSURE_CONTRAST;Kontrasti -TP_EXPOSURE_CURVEEDITOR;Sävykäyrä -TP_EXPOSURE_EXPCOMP;Kompensointi -TP_EXPOSURE_LABEL;Valotuksen säätö -TP_HLREC_CIELAB;CIELAB värisekoitus -TP_HLREC_COLOR;Värin palautus -TP_HLREC_LABEL;Huippuvaloalueiden palautus -TP_HLREC_LUMINANCE;Luminanssin palautus -TP_HLREC_METHOD;Menetelmä: -TP_ICM_INPUTCAMERA;Kameran oletus -TP_ICM_INPUTCUSTOM;Oma -TP_ICM_INPUTDLGLABEL;Valitse lähteen ICC-profiili... -TP_ICM_INPUTEMBEDDED;Käytä kuvan omaa, jos mahdollista -TP_ICM_INPUTPROFILE;Lähdeväriprofiili -TP_ICM_LABEL;ICM -TP_ICM_NOICM;Ei ICM-profiilia: sRGB -TP_ICM_OUTPUTPROFILE;Tulosväriprofiili -TP_ICM_WORKINGPROFILE;Työväriprofiili -TP_RAW_DMETHOD;Menetelmä -TP_RAW_FALSECOLOR;Värivääristymien eston määrä -TP_RESIZE_H;Kork.: -TP_RESIZE_LABEL;Koko -TP_RESIZE_METHOD;Menetelmä: -TP_RESIZE_NEAREST;Lähin -TP_RESIZE_SCALE;Mittakaava -TP_RESIZE_W;Lev.: -TP_ROTATE_DEGREE;Astetta -TP_ROTATE_LABEL;Oikaisu -TP_ROTATE_SELECTLINE;Valitse suora linja -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Vaaleiden alueiden vaimennus -TP_SHADOWSHLIGHTS_HLTONALW;Vaalean sävyalueen laajuus -TP_SHADOWSHLIGHTS_LABEL;Tummat/vaaleat alueet -TP_SHADOWSHLIGHTS_LOCALCONTR;Paikallinen kontrasti -TP_SHADOWSHLIGHTS_RADIUS;Säde -TP_SHADOWSHLIGHTS_SHADOWS;Tummien alueiden vaimennus -TP_SHADOWSHLIGHTS_SHTONALW;Tumman sävyalueen laajuus -TP_SHARPENING_AMOUNT;Määrä -TP_SHARPENING_EDRADIUS;Säde -TP_SHARPENING_EDTOLERANCE;Reunan tunnistusherkkyys -TP_SHARPENING_HALOCONTROL;Halo-ilmiön esto -TP_SHARPENING_HCAMOUNT;Määrä -TP_SHARPENING_LABEL;Terävöinti -TP_SHARPENING_METHOD;Menetelmä -TP_SHARPENING_ONLYEDGES;Terävöi vain reunat -TP_SHARPENING_RADIUS;Säde -TP_SHARPENING_RLD;RL dekonvoluutio -TP_SHARPENING_RLD_AMOUNT;Määrä -TP_SHARPENING_RLD_DAMPING;Vaimennus -TP_SHARPENING_RLD_ITERATIONS;Iteraatiot -TP_SHARPENING_THRESHOLD;Kynnys -TP_SHARPENING_USM;Epäterävä maski -TP_VIGNETTING_AMOUNT;Määrä -TP_VIGNETTING_LABEL;Vinjetoinnin korjaus -TP_VIGNETTING_RADIUS;Säde -TP_WBALANCE_AUTO;Automaattinen -TP_WBALANCE_CAMERA;Kamera -TP_WBALANCE_CUSTOM;Oma -TP_WBALANCE_GREEN;Valkoisen sävy -TP_WBALANCE_LABEL;Valkotasapaino -TP_WBALANCE_METHOD;Menetelmä -TP_WBALANCE_SIZE;Koko: -TP_WBALANCE_SPOTWB;Valitse valkoinen kuvasta -TP_WBALANCE_TEMPERATURE;Lämpötila [K] -# - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish deleted file mode 100644 index 656ad9b9e..000000000 --- a/rtdata/languages/Turkish +++ /dev/null @@ -1,2327 +0,0 @@ -#01 2008-03-02 Oguz - -CURVEEDITOR_LINEAR;Doğrusal -CURVEEDITOR_LOADDLGLABEL;Eğriyi yükle... -CURVEEDITOR_SAVEDLGLABEL;Eğriyi kaydet... -CURVEEDITOR_TOOLTIPLINEAR;Eğriyi düzelt -CURVEEDITOR_TOOLTIPLOAD;Kayıtlı bir eğriyi yü -CURVEEDITOR_TOOLTIPSAVE;Kullanılan eğriyi kaydet -DIRBROWSER_FOLDERS;Klasörler -EXIFFILTER_APERTURE;Aperture -EXIFFILTER_CAMERA;Camera -EXIFFILTER_FOCALLEN;Focal Length -EXIFFILTER_ISO;ISO -EXIFFILTER_LENS;Lens -EXIFFILTER_SHUTTER;Shutter -EXIFPANEL_ADDEDIT;Add/Edit -EXIFPANEL_ADDEDITHINT;Add new tag or edit tag -EXIFPANEL_ADDTAGDLG_ENTERVALUE;Enter value -EXIFPANEL_ADDTAGDLG_SELECTTAG;Select tag -EXIFPANEL_ADDTAGDLG_TITLE;Add/Edit Tag -EXIFPANEL_KEEP;Keep -EXIFPANEL_KEEPHINT;Keep the selected tags when writing output file -EXIFPANEL_REMOVE;Remove -EXIFPANEL_REMOVEHINT;Remove the selected tags when writing output file -EXIFPANEL_RESET;Reset -EXIFPANEL_RESETALL;Reset All -EXIFPANEL_RESETALLHINT;Reset all tags to their original values -EXIFPANEL_RESETHINT;Reset the selected tags to their original values -EXIFPANEL_SUBDIRECTORY;Subdirectory -FILEBROWSER_APPLYPROFILE;Apply profile -FILEBROWSER_CLEARPROFILE;Clear profile -FILEBROWSER_COPYPROFILE;Copy profile -FILEBROWSER_DELETEDLGLABEL;File delete confirmation -FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -FILEBROWSER_EMPTYTRASH;Empty Trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files of the trash -FILEBROWSER_PARTIALPASTEPROFILE;Partial paste -FILEBROWSER_PASTEPROFILE;Paste profile -FILEBROWSER_POPUPCANCELJOB;Cancel job -FILEBROWSER_POPUPMOVEEND;Move to end of queue -FILEBROWSER_POPUPMOVEHEAD;Move to head of queue -FILEBROWSER_POPUPOPEN;Open -FILEBROWSER_POPUPOPENINEDITOR;Open in Editor -FILEBROWSER_POPUPPROCESS;Put to processing queue -FILEBROWSER_POPUPREMOVE;Remove from filesystem -FILEBROWSER_POPUPRENAME;Rename -FILEBROWSER_POPUPSELECTALL;Select all -FILEBROWSER_POPUPTRASH;Move to trash -FILEBROWSER_POPUPUNRANK;Unrank -FILEBROWSER_POPUPUNTRASH;Remove from trash -FILEBROWSER_RENAMEDLGLABEL;Rename file -FILEBROWSER_SHOWDIRHINT;Show all images of the directory -FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1 star -FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2 star -FILEBROWSER_SHOWRANK3HINT;Show images ranked as 3 star -FILEBROWSER_SHOWRANK4HINT;Show images ranked as 4 star -FILEBROWSER_SHOWRANK5HINT;Show images ranked as 5 star -FILEBROWSER_SHOWTRASHHINT;Show content of the trash -FILEBROWSER_SHOWUNRANKHINT;Show unranked images -FILEBROWSER_THUMBSIZE;Thumb. size -FILEBROWSER_ZOOMINHINT;Increase thumbnail size -FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size -GENERAL_ABOUT;Hakkında -GENERAL_CANCEL;İptal -GENERAL_DISABLE;Etkisizleştir -GENERAL_DISABLED;Devre dışı -GENERAL_ENABLE;Etkinleştir -GENERAL_ENABLED;Etkin -GENERAL_LANDSCAPE;Yatay -GENERAL_NA;Uygun değil -GENERAL_NO;Hayır -GENERAL_OK;Tamam -GENERAL_PORTRAIT;Dikey -GENERAL_SAVE;Kaydet -HISTOGRAM_TOOLTIP_B;Mavi histogramını göster/gizle -HISTOGRAM_TOOLTIP_G;Yeşil histogramını göster/gizle -HISTOGRAM_TOOLTIP_L;CIELAB aydınlık histogramını göster/gizle -HISTOGRAM_TOOLTIP_R;Kırmızı histogramını göster/gizle -HISTORY_CHANGED;Changed -HISTORY_CUSTOMCURVE;Özel eğri -HISTORY_FROMCLIPBOARD;From clipboard -HISTORY_LABEL;Geçmiş -HISTORY_MSG_1;Fotoğraf yüklendi -HISTORY_MSG_2;Profil yüklendi -HISTORY_MSG_3;Profil değişti -HISTORY_MSG_4;Geçmişte gezinti -HISTORY_MSG_5;Parlaklık -HISTORY_MSG_6;Zıtlık -HISTORY_MSG_7;Siyah -HISTORY_MSG_8;Pozlama telafisi -HISTORY_MSG_9;Parıltı sıkıştırma -HISTORY_MSG_10;Karaltı sıkıştırma -HISTORY_MSG_11;Ton eğrisi -HISTORY_MSG_12;Otomatik pozlama -HISTORY_MSG_13;Pozlama kırpma -HISTORY_MSG_14;Aydınlık - parlaklık -HISTORY_MSG_15;Aydınlık - zıtlık -HISTORY_MSG_16;Aydınlık - siyah -HISTORY_MSG_17;Aydınlık - parıltı sıkıştırma -HISTORY_MSG_18;Aydınlık - karaltı sıkıştırma -HISTORY_MSG_19;Aydınlık eğrisi -HISTORY_MSG_20;Keskinleştirme -HISTORY_MSG_21;Keskinleştirme - çap -HISTORY_MSG_22;Keskinleştirme - miktar -HISTORY_MSG_23;Keskinleştirme - eşik -HISTORY_MSG_24;Sadece kenarları keskinleştir -HISTORY_MSG_25;Keskinleştirme - kenar bulma kuralları -HISTORY_MSG_26;Keskinleştirme - kenar payı -HISTORY_MSG_27;Keskinleştirme - hale denetimi -HISTORY_MSG_28;Hale denetimi - miktar -HISTORY_MSG_29;Keskinleştirme - yöntem -HISTORY_MSG_30;Ters evrişim - çap -HISTORY_MSG_31;Ters evrişim - miktar -HISTORY_MSG_32;Ters evrişim - düşürme -HISTORY_MSG_33;Ters evrişim - yineleme -HISTORY_MSG_34;Renk kırpmayı önle -HISTORY_MSG_35;Doygunluk kısıtlayıcı -HISTORY_MSG_36;Doygunluk sınırı -HISTORY_MSG_37;Renk iteleme -HISTORY_MSG_38;Beyaz ayarı - yöntem -HISTORY_MSG_39;Renk ısısı -HISTORY_MSG_40;Beyaz ayarı - tint -HISTORY_MSG_41;"A" renk kayması -HISTORY_MSG_42;"B" kayması -HISTORY_MSG_43;Aydınlık gürültü giderme -HISTORY_MSG_44;Aydınlık gürültü giderme - çap -HISTORY_MSG_45;Aydınlık gürültü giderme - kenar payı -HISTORY_MSG_46;Renk gürültü giderme -HISTORY_MSG_47;Renk gürültü giderme - çap -HISTORY_MSG_48;Renk gürültü giderme - kenar payı -HISTORY_MSG_49;Kenar duyarlı renk gürültüsü giderme -HISTORY_MSG_50;Karaltı/parıltı aracı -HISTORY_MSG_51;Parıltı iteleme -HISTORY_MSG_52;Karaltı iteleme -HISTORY_MSG_53;Parıltı - ton genişliği -HISTORY_MSG_54;Karaltı - ton genişliği -HISTORY_MSG_55;Bölgesel zıtlık -HISTORY_MSG_56;Karaltı/parıltı - zıtlık -HISTORY_MSG_57;Döndürme -HISTORY_MSG_58;Yatayda çevirme -HISTORY_MSG_59;Dikeyde çevirme -HISTORY_MSG_60;Döndürme -HISTORY_MSG_61;Döndürme -HISTORY_MSG_62;Lens bükülmesi düzeltme -HISTORY_MSG_63;Yer imi seçildi -HISTORY_MSG_64;Fotoğrafı kırp -HISTORY_MSG_65;Renk kayması düzeltme -HISTORY_MSG_66;Parıltı kurtarma -HISTORY_MSG_67;Parıltı kurtarma - miktar -HISTORY_MSG_68;Parıltı kurtarma - yöntem -HISTORY_MSG_69;Çalışma renk uzayı -HISTORY_MSG_70;Çıktı renk uzayı -HISTORY_MSG_71;Girdi renk uzayı -HISTORY_MSG_72;Çerçeve etkisi düzeltme -HISTORY_MSG_73;Kanal karıştırıcı -HISTORY_MSG_74;Yeniden boyutlandırma - ölçek -HISTORY_MSG_75;Yeniden boyutlandırma - yöntem -HISTORY_MSG_76;Exif Metadata -HISTORY_MSG_77;IPTC Metadata -HISTORY_MSG_78;Data specified for resize -HISTORY_MSG_79;Resize width -HISTORY_MSG_80;Resize height -HISTORY_MSG_81;Resize enabled -HISTORY_NEWSNAPSHOT;Yeni şipşak -HISTORY_SNAPSHOT;Şipşak -HISTORY_SNAPSHOTS;Şipşaklar -IPTCPANEL_CATEGORY;Category -IPTCPANEL_CITY;City -IPTCPANEL_COPYHINT;Copy IPTC settings to clipboard -IPTCPANEL_COUNTRY;Country -IPTCPANEL_CREDIT;Credit -IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit). -IPTCPANEL_DATECREATED;Date Created -IPTCPANEL_EMBEDDED;Embedded -IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file -IPTCPANEL_HEADLINE;Headline -IPTCPANEL_INSTRUCTIONS;Instructions -IPTCPANEL_KEYWORDS;Keywords -IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard -IPTCPANEL_RESET;Reset -IPTCPANEL_RESETHINT;Reset to profile default -IPTCPANEL_SOURCE;Source -IPTCPANEL_TITLE;Title -MAIN_BUTTON_PREFERENCES;Seçenekler -MAIN_BUTTON_SAVE;Görüntüyü kaydet -MAIN_BUTTON_SENDTOEDITOR;Send to editor -MAIN_FRAME_BATCHQUEUE;Batch Queue -MAIN_FRAME_FILEBROWSER;File Browser -MAIN_FRAME_PLACES;Places -MAIN_FRAME_PLACES_ADD;Add -MAIN_FRAME_RECENT;Recent Folders -MAIN_MSG_ALREADYEXISTS;Dosya zaten var. -MAIN_MSG_CANNOTLOAD;Görüntü yüklenemiyor -MAIN_MSG_CANNOTSAVE;Dosya kaydetmede hata -MAIN_MSG_CANNOTSTARTEDITOR;Can not start editor. -MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Please set the correct path in the "Preferences" dialog. -MAIN_MSG_QOVERWRITE;Üzerine yazmak ister misiniz? -MAIN_TAB_COLOR;Color -MAIN_TAB_DETAIL;Detail -MAIN_TAB_DEVELOP;Develop -MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPOSURE;Exposure -MAIN_TAB_FILTER;Filter -MAIN_TAB_IPTC;IPTC -MAIN_TAB_METADATA;Metadata -MAIN_TAB_TRANSFORM;Dönüşüm -MAIN_TOOLTIP_HIDEHP;Sol tablayı göster/gizle (geçmiş ile birlikte, shortcut key: H) -MAIN_TOOLTIP_INDCLIPPEDH;Kırpılmış parıltı gösterme -MAIN_TOOLTIP_INDCLIPPEDS;Kırpılmış karaltı gösterme -MAIN_TOOLTIP_QINFO;Görüntü hakkında kısa bilgi -PARTIALPASTE_BASICGROUP;Basic settings -PARTIALPASTE_CACORRECTION;C/A correction -PARTIALPASTE_COARSETRANS;90 deg rotation / flipping -PARTIALPASTE_COLORGROUP;Color related settings -PARTIALPASTE_COMPOSITIONGROUP;Composition settings -PARTIALPASTE_CROP;Crop -PARTIALPASTE_DIALOGLABEL;Partial paste processing profile -PARTIALPASTE_DISTORTION;Distortion correction -PARTIALPASTE_EXIFCHANGES;Changes to exif data -PARTIALPASTE_EXPOSURE;Exposure -PARTIALPASTE_ICMSETTINGS;ICM settings -PARTIALPASTE_IPTCINFO;IPTC info -PARTIALPASTE_LENSGROUP;Lens related settings -PARTIALPASTE_METAGROUP;Metadata -PARTIALPASTE_RESIZE;Resize -PARTIALPASTE_ROTATION;Rotation -PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights -PARTIALPASTE_SHARPENING;Sharpening -PARTIALPASTE_VIGNETTING;Vignetting correction -PARTIALPASTE_WHITEBALANCE;White balance -PREFERENCES_APPLNEXTSTARTUP;Bir sonraki başlamada uygulacacak. -PREFERENCES_CACHEMAXENTRIES;Maximal Number of Cache Entries -PREFERENCES_CACHEOPTS;Cache Options -PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height -PREFERENCES_CLIPPINGIND;Kırpma gösterme -PREFERENCES_DATEFORMAT;Tarih biçimi -PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y : year\n%m : month\n%d : day\n\nFor example, the hungarian date format is:\n%y/%m/%d -PREFERENCES_DIRHOME;Kullanıcı dizini -PREFERENCES_DIRLAST;Son gidilen dizin -PREFERENCES_DIROTHER;Diğer -PREFERENCES_DIRSELECTDLG;Başlangıç görüntü dizinini seç... -PREFERENCES_DIRSOFTWARE;Kurulum dizini -PREFERENCES_EXTERNALEDITOR;External editor -PREFERENCES_FBROWSEROPTS;Dosya gezgini seçenekleri -PREFERENCES_FILEFORMAT;Dosya biçimi -PREFERENCES_FORIMAGE;Gürüntü dosyaları için -PREFERENCES_FORRAW;RAW dosyaları için -PREFERENCES_GIMPPATH;GIMP installation directory -PREFERENCES_HLTHRESHOLD;Kırpılmış parıltılar için eşik -PREFERENCES_ICCDIR;ICC profilleri dizini -PREFERENCES_IMPROCPARAMS;Varsayılan görüntü işleme değişkenleri -PREFERENCES_INTENT_ABSOLUTE;Mutlak -PREFERENCES_INTENT_PERCEPTUAL;Algısal -PREFERENCES_INTENT_RELATIVE;Bağıl -PREFERENCES_INTENT_SATURATION;Doyum -PREFERENCES_OUTDIR;Çıktı dizini -PREFERENCES_OUTDIRFOLDER;Save to folder -PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the seledted folder -PREFERENCES_OUTDIRTEMPLATE;Use Template -PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if /home/tom/image/02-09-2006/dsc0012.nefhas been opened, the meaning of the formatting strings are:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n%p1/converted/%f\n\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n%p2/converted/%d1/%f -PREFERENCES_PARSEDEXT;Parsed Extensions -PREFERENCES_PARSEDEXTADD;Add Extension -PREFERENCES_PARSEDEXTADDHINT;Type an extension and press this button to append list -PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list -PREFERENCES_PROFILEHANDLING;Processing Profile Handling -PREFERENCES_PROFILELOADPR;Profile Loading Priority -PREFERENCES_PROFILEPRCACHE;Profile in Cache -PREFERENCES_PROFILEPRFILE;Profile Next to the Input File -PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache -PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File -PREFERENCES_PSPATH;Adobe Photoshop installation directory -PREFERENCES_SELECTLANG;Dil seç -PREFERENCES_SHOWBASICEXIF;Temel exif bilgisini göster -PREFERENCES_SHOWDATETIME;Tarih ve saati göster -PREFERENCES_SHTHRESHOLD;Kırpılmış karaltılar için eşik -PREFERENCES_STARTUPIMDIR;Başlangıç görüntü dizini -PREFERENCES_TAB_BROWSER;Dosya gezgini -PREFERENCES_TAB_COLORMGR;Renk yönetimi -PREFERENCES_TAB_GENERAL;Genel -PREFERENCES_TAB_IMPROC;Görüntü işleme -PROFILEPANEL_LABEL;Art-işleme profilleri -PROFILEPANEL_LOADDLGLABEL;Art-işleme değişkenlerini yükle... -PROFILEPANEL_PCUSTOM;Özel -PROFILEPANEL_PFILE;Dosyadan -PROFILEPANEL_PLASTSAVED;Son kaydedilen -PROFILEPANEL_SAVEDLGLABEL;Art-işleme değişkenlerini kaydet... -PROFILEPANEL_TOOLTIPCOPY;Copy current profile to clipboard -PROFILEPANEL_TOOLTIPLOAD;Kayıtlı bir profil yükle -PROFILEPANEL_TOOLTIPPASTE; Paste profile from clipboard -PROFILEPANEL_TOOLTIPSAVE;Geçerli profili kaydet -PROGRESSBAR_LOADING;Görüntü yükleniyor... -PROGRESSBAR_LOADJPEG;JPEG dosyası yükleniyor... -PROGRESSBAR_LOADPNG;PNG dosyası yükleniyor... -PROGRESSBAR_LOADTIFF;TIFF dosyası yükleniyor... -PROGRESSBAR_PROCESSING;Görüntü işleniyor... -PROGRESSBAR_READY;Hazır -PROGRESSBAR_SAVEJPEG;JPEG dosyası kaydediliyor... -PROGRESSBAR_SAVEPNG;PNG dosyası kaydediliyor... -PROGRESSBAR_SAVETIFF;TIFF dosyası kaydediliyor... -QINFO_ISO;ISO -QINFO_NOEXIF;Exif bilgisi yok. -SAVEDLG_FILEFORMAT;Dosya biçimi -SAVEDLG_JPEGQUAL;JPEG kalitesi -SAVEDLG_PUTTOQUEUE;Put into processing queue -SAVEDLG_PUTTOQUEUEHEAD;Put to the head of the processing queue -SAVEDLG_PUTTOQUEUETAIL;Put to the end of the processing queue -SAVEDLG_SAVEIMMEDIATELY;Save immediately -SAVEDLG_SAVESPP;İşeme değişkenlerini görüntü ile birlikte kaydet -SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF -TOOLBAR_TOOLTIP_CROP;Seçimi kırp (shorcut key: C) -TOOLBAR_TOOLTIP_HAND;El aracı (shortcut key: N) -TOOLBAR_TOOLTIP_STRAIGHTEN;Düz çizgi seçimi (shortcut key: S) -TOOLBAR_TOOLTIP_WB;Nokta beyaz ayarı (shortcut key: W) -TP_CACORRECTION_BLUE;Mavi -TP_CACORRECTION_LABEL;Renk sapması düzeltme -TP_CACORRECTION_RED;Kırmızı -TP_CHMIXER_BLUE;Mavi -TP_CHMIXER_GREEN;Yeşil -TP_CHMIXER_LABEL;Kanal karıştırıcı -TP_CHMIXER_RED;Kırmızı -TP_COARSETRAF_TOOLTIP_HFLIP;Yatayda çevir -TP_COARSETRAF_TOOLTIP_ROTLEFT;Sola döndür -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Sağa döndür -TP_COARSETRAF_TOOLTIP_VFLIP;Dikeyde çevir -TP_CROP_FIXRATIO;En-boy oranını düzelt: -TP_CROP_GTDIAGONALS;Çaprazlar kuralı -TP_CROP_GTNONE;Yok -TP_CROP_GTRULETHIRDS;Üçler kuralı -TP_CROP_GUIDETYPE;Kılavuz türü: -TP_CROP_H;Y -TP_CROP_LABEL;Kırp -TP_CROP_W;G -TP_CROP_X;x -TP_CROP_Y;y -TP_DISTORTION_AMOUNT;Miktar -TP_DISTORTION_LABEL;Bükme -TP_EXPOSURE_AUTOLEVELS;Otomatik seviyeler -TP_EXPOSURE_BLACKLEVEL;Siyah -TP_EXPOSURE_BRIGHTNESS;Parlaklık -TP_EXPOSURE_CLIP;Kırpma -TP_EXPOSURE_COMPRHIGHLIGHTS;Parıltı sıkıştırma -TP_EXPOSURE_COMPRSHADOWS;Karaltı sıkıştırma -TP_EXPOSURE_CONTRAST;Zıtlık -TP_EXPOSURE_CURVEEDITOR;Ton eğrisi -TP_EXPOSURE_EXPCOMP;Poz. telafisi -TP_EXPOSURE_LABEL;Pozlama -TP_HLREC_CIELAB;CIELab Blending -TP_HLREC_COLOR;Renk yayılımı -TP_HLREC_LABEL;Parıltı kurtarma -TP_HLREC_LUMINANCE;Aydınlık kurtarma -TP_HLREC_METHOD;Yöntem: -TP_ICM_INPUTCAMERA;Kamera varsayılanı -TP_ICM_INPUTCUSTOM;Özel -TP_ICM_INPUTDLGLABEL;Girdi ICC profilini seç... -TP_ICM_INPUTEMBEDDED;Mümkün olduğunda gömülü profili kullan -TP_ICM_INPUTPROFILE;Girdi Profili -TP_ICM_LABEL;ICM -TP_ICM_NOICM;No ICM: sRGB çıktı -TP_ICM_OUTPUTPROFILE;Çıktı profili -TP_ICM_WORKINGPROFILE;Çalışma profili -TP_RAW_DMETHOD;Yöntem -TP_RAW_FALSECOLOR;Hatalı-renk bastırma değerleri -TP_RESIZE_H;Y: -TP_RESIZE_LABEL;Boyutları değiştir -TP_RESIZE_METHOD;Yöntem: -TP_RESIZE_NEAREST;En yakın -TP_RESIZE_SCALE;Ölçekle -TP_RESIZE_W;G: -TP_ROTATE_DEGREE;Açı -TP_ROTATE_LABEL;Döndür -TP_ROTATE_SELECTLINE; Düz çizgi seç -TP_SHADOWSHLIGHTS_HIGHLIGHTS;Parıltılar -TP_SHADOWSHLIGHTS_HLTONALW;Tonsal genişlik -TP_SHADOWSHLIGHTS_LABEL;Karaltılar/parıltılar -TP_SHADOWSHLIGHTS_LOCALCONTR;Bölgesel zıtlık -TP_SHADOWSHLIGHTS_RADIUS;Çap -TP_SHADOWSHLIGHTS_SHADOWS;Karaltılar -TP_SHADOWSHLIGHTS_SHTONALW;Tonsal genişlik -TP_SHARPENING_AMOUNT;Miktar -TP_SHARPENING_EDRADIUS;Çap -TP_SHARPENING_EDTOLERANCE;Kenar payı -TP_SHARPENING_HALOCONTROL;Hale denetimi -TP_SHARPENING_HCAMOUNT;Miktar -TP_SHARPENING_LABEL;Keskinleştirme -TP_SHARPENING_METHOD;Yöntem -TP_SHARPENING_ONLYEDGES;Sadece kenarları keskinleştir -TP_SHARPENING_RADIUS;Çap -TP_SHARPENING_RLD;R-L Ters evrişimi -TP_SHARPENING_RLD_AMOUNT;Miktar -TP_SHARPENING_RLD_DAMPING;Düşürme -TP_SHARPENING_RLD_ITERATIONS;Yineleme -TP_SHARPENING_THRESHOLD;Eşik -TP_SHARPENING_USM;Bulanıklık Maskesi -TP_VIGNETTING_AMOUNT;Miktar -TP_VIGNETTING_LABEL;Çerçeve etkisi giderme -TP_VIGNETTING_RADIUS;Çap -TP_WBALANCE_AUTO;Otomatik -TP_WBALANCE_CAMERA;Kamera -TP_WBALANCE_CUSTOM;Özel -TP_WBALANCE_GREEN;Tint -TP_WBALANCE_LABEL;Beyaz ayarı -TP_WBALANCE_METHOD;Yöntem -TP_WBALANCE_SIZE;Boyut: -TP_WBALANCE_SPOTWB;Spot BA -TP_WBALANCE_TEMPERATURE;Isı - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!ABOUT_TAB_BUILD;Version -!ABOUT_TAB_CREDITS;Credits -!ABOUT_TAB_LICENSE;License -!ABOUT_TAB_RELEASENOTES;Release Notes -!ABOUT_TAB_SPLASH;Splash -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!BATCH_PROCESSING;Batch Processing -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible -!CURVEEDITOR_CURVE;Curve -!CURVEEDITOR_CURVES;Curves -!CURVEEDITOR_CUSTOM;Standard -!CURVEEDITOR_DARKS;Darks -!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. -!CURVEEDITOR_HIGHLIGHTS;Highlights -!CURVEEDITOR_LIGHTS;Lights -!CURVEEDITOR_MINMAXCPOINTS;Equalizer -!CURVEEDITOR_NURBS;Control cage -!CURVEEDITOR_PARAMETRIC;Parametric -!CURVEEDITOR_SHADOWS;Shadows -!CURVEEDITOR_TOOLTIPCOPY;Copy current curve to clipboard. -!CURVEEDITOR_TOOLTIPPASTE;Paste curve from clipboard. -!CURVEEDITOR_TYPE;Type: -!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 -!EDITWINDOW_TITLE;Image Edit -!EDIT_OBJECT_TOOLTIP;Displays a widget on the preview window which lets you adjust this tool. -!EDIT_PIPETTE_TOOLTIP;To add an adjustment point to the curve, hold the Ctrl key while left-clicking the desired spot in the image preview.\nTo adjust the point, hold the Ctrl key while left-clicking the corresponding area in the preview, then let go of Ctrl (unless you desire fine control) and while still holding the left mouse button move the mouse up or down to move that point up or down in the curve. -!EXIFFILTER_EXPOSURECOMPENSATION;Exposure compensation (EV) -!EXIFFILTER_FILETYPE;File type -!EXIFFILTER_IMAGETYPE;Image type -!EXIFFILTER_METADATAFILTER;Enable metadata filters -!EXIFPANEL_SHOWALL;Show all -!EXPORT_BYPASS;Processing steps to bypass -!EXPORT_BYPASS_ALL;Select / Unselect All -!EXPORT_BYPASS_DEFRINGE;Bypass Defringe -!EXPORT_BYPASS_DIRPYRDENOISE;Bypass Noise Reduction -!EXPORT_BYPASS_DIRPYREQUALIZER;Bypass Contrast by Detail Levels -!EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels -!EXPORT_BYPASS_RAW_CA;Bypass [raw] Chromatic Aberration Correction -!EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Color Suppression -!EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps -!EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations -!EXPORT_BYPASS_RAW_DF;Bypass [raw] Dark-Frame -!EXPORT_BYPASS_RAW_FF;Bypass [raw] Flat-Field -!EXPORT_BYPASS_RAW_GREENTHRESH;Bypass [raw] Green Equilibration -!EXPORT_BYPASS_RAW_LINENOISE;Bypass [raw] Line Noise Filter -!EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening -!EXPORT_BYPASS_SHARPENING;Bypass Sharpening -!EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights -!EXPORT_FASTEXPORTOPTIONS;Fast Export Options -!EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. -!EXPORT_MAXHEIGHT;Maximum height: -!EXPORT_MAXWIDTH;Maximum width: -!EXPORT_PIPELINE;Processing pipeline -!EXPORT_PUTTOQUEUEFAST; Put to queue for fast export -!EXPORT_RAW_DMETHOD;Demosaic method -!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) -!EXTPROGTARGET_1;raw -!EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... -!FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial -!FILEBROWSER_AUTODARKFRAME;Auto dark-frame -!FILEBROWSER_AUTOFLATFIELD;Auto flat-field -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_BROWSEPATHHINT;Type a path to navigate to.\n\nKeyboard shortcuts:\nCtrl-o to focus to the path text box.\nEnter / Ctrl-Enter to browse there;\nEsc to clear changes.\nShift-Esc to remove focus.\n\nPath shortcuts:\n~ - user's home directory.\n! - user's pictures directory -!FILEBROWSER_CACHE;Cache -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_CURRENT_NAME;Current name: -!FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? -!FILEBROWSER_EXTPROGMENU;Open with -!FILEBROWSER_FLATFIELD;Flat-Field -!FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory -!FILEBROWSER_MOVETOFLATFIELDDIR;Move to flat-fields directory -!FILEBROWSER_NEW_NAME;New name: -!FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) -!FILEBROWSER_POPUPCOLORLABEL;Color label -!FILEBROWSER_POPUPCOLORLABEL0;Label: None -!FILEBROWSER_POPUPCOLORLABEL1;Label: Red -!FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow -!FILEBROWSER_POPUPCOLORLABEL3;Label: Green -!FILEBROWSER_POPUPCOLORLABEL4;Label: Blue -!FILEBROWSER_POPUPCOLORLABEL5;Label: Purple -!FILEBROWSER_POPUPCOPYTO;Copy to... -!FILEBROWSER_POPUPFILEOPERATIONS;File operations -!FILEBROWSER_POPUPMOVETO;Move to... -!FILEBROWSER_POPUPPROCESSFAST;Put to queue (Fast export) -!FILEBROWSER_POPUPPROFILEOPERATIONS;Processing profile operations -!FILEBROWSER_POPUPRANK;Rank -!FILEBROWSER_POPUPRANK0;Unrank -!FILEBROWSER_POPUPRANK1;Rank 1 * -!FILEBROWSER_POPUPRANK2;Rank 2 ** -!FILEBROWSER_POPUPRANK3;Rank 3 *** -!FILEBROWSER_POPUPRANK4;Rank 4 **** -!FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue -!FILEBROWSER_QUERYBUTTONHINT;Clear the Find query -!FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. -!FILEBROWSER_QUERYLABEL; Find: -!FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 -!FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 -!FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 -!FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 -!FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SELECTDARKFRAME;Select dark-frame... -!FILEBROWSER_SELECTFLATFIELD;Select flat-field... -!FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 -!FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 -!FILEBROWSER_SHOWCOLORLABEL3HINT;Show images labeled Green.\nShortcut: Alt-3 -!FILEBROWSER_SHOWCOLORLABEL4HINT;Show images labeled Blue.\nShortcut: Alt-4 -!FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 -!FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 -!FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!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. -!FILEBROWSER_SHOWRECENTLYSAVEDHINT;Show saved images.\nShortcut: Alt-7 -!FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 -!FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 -!FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 -!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_AFTER;After -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_AUTO;Automatic -!GENERAL_BEFORE;Before -!GENERAL_CLOSE;Close -!GENERAL_CURRENT;Current -!GENERAL_FILE;File -!GENERAL_NONE;None -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... -!GENERAL_SLIDER;Slider -!GENERAL_UNCHANGED;(Unchanged) -!GENERAL_WARNING;Warning -!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_BAR;Show/Hide RGB indicator bar. -!HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. -!HISTORY_MSG_82;Profile changed -!HISTORY_MSG_83;S/H - Sharp mask -!HISTORY_MSG_84;Perspective correction -!HISTORY_MSG_85;Lens Correction - LCP file -!HISTORY_MSG_86;RGB Curves - Luminosity mode -!HISTORY_MSG_87;Impulse Noise Reduction -!HISTORY_MSG_88;Impulse NR threshold -!HISTORY_MSG_89;Noise Reduction -!HISTORY_MSG_90;NR - Luminance -!HISTORY_MSG_91;NR - Chrominance master -!HISTORY_MSG_92;NR - Gamma -!HISTORY_MSG_93;CbDL - Value -!HISTORY_MSG_94;Contrast by Detail Levels -!HISTORY_MSG_95;L*a*b* - Chromaticity -!HISTORY_MSG_96;L*a*b* - a* curve -!HISTORY_MSG_97;L*a*b* - b* curve -!HISTORY_MSG_98;Demosaicing method -!HISTORY_MSG_99;Hot pixel filter -!HISTORY_MSG_100;Exposure - Saturation -!HISTORY_MSG_101;HSV - Hue -!HISTORY_MSG_102;HSV - Saturation -!HISTORY_MSG_103;HSV - Value -!HISTORY_MSG_104;HSV Equalizer -!HISTORY_MSG_105;Defringe -!HISTORY_MSG_106;Defringe - Radius -!HISTORY_MSG_107;Defringe - Threshold -!HISTORY_MSG_108;Exposure - HLC threshold -!HISTORY_MSG_109;Resize - Bounding box -!HISTORY_MSG_110;Resize - Applies to -!HISTORY_MSG_111;L*a*b* - Avoid color shift -!HISTORY_MSG_112;--unused-- -!HISTORY_MSG_113;L*a*b* - Red/skin prot. -!HISTORY_MSG_114;DCB iterations -!HISTORY_MSG_115;False color suppression -!HISTORY_MSG_116;DCB enhancement -!HISTORY_MSG_117;Raw CA correction - Red -!HISTORY_MSG_118;Raw CA correction - Blue -!HISTORY_MSG_119;Line noise filter -!HISTORY_MSG_120;Green equilibration -!HISTORY_MSG_121;Raw CA Correction - Auto -!HISTORY_MSG_122;Dark-Frame - Auto-selection -!HISTORY_MSG_123;Dark-Frame - File -!HISTORY_MSG_124;White point correction -!HISTORY_MSG_126;Flat-Field - File -!HISTORY_MSG_127;Flat-Field - Auto-selection -!HISTORY_MSG_128;Flat-Field - Blur radius -!HISTORY_MSG_129;Flat-Field - Blur type -!HISTORY_MSG_130;Auto distortion correction -!HISTORY_MSG_131;NR - Luma -!HISTORY_MSG_132;NR - Chroma -!HISTORY_MSG_133;Output gamma -!HISTORY_MSG_134;Free gamma -!HISTORY_MSG_135;Free gamma -!HISTORY_MSG_136;Free gamma slope -!HISTORY_MSG_137;Black level - Green 1 -!HISTORY_MSG_138;Black level - Red -!HISTORY_MSG_139;Black level - Blue -!HISTORY_MSG_140;Black level - Green 2 -!HISTORY_MSG_141;Black level - Link greens -!HISTORY_MSG_142;ES - Iterations -!HISTORY_MSG_143;ES - Quantity -!HISTORY_MSG_144;Microcontrast - Quantity -!HISTORY_MSG_145;Microcontrast - Uniformity -!HISTORY_MSG_146;Edge sharpening -!HISTORY_MSG_147;ES - Luminance only -!HISTORY_MSG_148;Microcontrast -!HISTORY_MSG_149;Microcontrast - 3×3 matrix -!HISTORY_MSG_150;Post-demosaic artifact/noise red. -!HISTORY_MSG_151;Vibrance -!HISTORY_MSG_152;Vib - Pastel tones -!HISTORY_MSG_153;Vib - Saturated tones -!HISTORY_MSG_154;Vib - Protect skin-tones -!HISTORY_MSG_155;Vib - Avoid color shift -!HISTORY_MSG_156;Vib - Link pastel/saturated -!HISTORY_MSG_157;Vib - P/S threshold -!HISTORY_MSG_158;TM - Strength -!HISTORY_MSG_159;TM - Edge stopping -!HISTORY_MSG_160;TM - Scale -!HISTORY_MSG_161;TM - Reweighting iterates -!HISTORY_MSG_162;Tone Mapping -!HISTORY_MSG_163;RGB Curves - Red -!HISTORY_MSG_164;RGB Curves - Green -!HISTORY_MSG_165;RGB Curves - Blue -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_167;Demosaicing method -!HISTORY_MSG_168;L*a*b* - CC curve -!HISTORY_MSG_169;L*a*b* - CH curve -!HISTORY_MSG_170;Vibrance - HH curve -!HISTORY_MSG_171;L*a*b* - LC curve -!HISTORY_MSG_172;L*a*b* - Restrict LC -!HISTORY_MSG_173;NR - Detail recovery -!HISTORY_MSG_174;CIECAM02 -!HISTORY_MSG_175;CAM02 - CAT02 adaptation -!HISTORY_MSG_176;CAM02 - Viewing surround -!HISTORY_MSG_177;CAM02 - Scene luminosity -!HISTORY_MSG_178;CAM02 - Viewing luminosity -!HISTORY_MSG_179;CAM02 - White-point model -!HISTORY_MSG_180;CAM02 - Lightness (J) -!HISTORY_MSG_181;CAM02 - Chroma (C) -!HISTORY_MSG_182;CAM02 - Automatic CAT02 -!HISTORY_MSG_183;CAM02 - Contrast (J) -!HISTORY_MSG_184;CAM02 - Scene surround -!HISTORY_MSG_185;CAM02 - Gamut control -!HISTORY_MSG_186;CAM02 - Algorithm -!HISTORY_MSG_187;CAM02 - Red/skin prot. -!HISTORY_MSG_188;CAM02 - Brightness (Q) -!HISTORY_MSG_189;CAM02 - Contrast (Q) -!HISTORY_MSG_190;CAM02 - Saturation (S) -!HISTORY_MSG_191;CAM02 - Colorfulness (M) -!HISTORY_MSG_192;CAM02 - Hue (h) -!HISTORY_MSG_193;CAM02 - Tone curve 1 -!HISTORY_MSG_194;CAM02 - Tone curve 2 -!HISTORY_MSG_195;CAM02 - Tone curve 1 -!HISTORY_MSG_196;CAM02 - Tone curve 2 -!HISTORY_MSG_197;CAM02 - Color curve -!HISTORY_MSG_198;CAM02 - Color curve -!HISTORY_MSG_199;CAM02 - Output histograms -!HISTORY_MSG_200;CAM02 - Tone mapping -!HISTORY_MSG_201;NR - Chrominance - R&G -!HISTORY_MSG_202;NR - Chrominance - B&Y -!HISTORY_MSG_203;NR - Color space -!HISTORY_MSG_204;LMMSE enhancement steps -!HISTORY_MSG_205;CAM02 - Hot/bad pixel filter -!HISTORY_MSG_206;CAT02 - Auto scene luminosity -!HISTORY_MSG_207;Defringe - Hue curve -!HISTORY_MSG_208;WB - B/R equalizer -!HISTORY_MSG_210;GF - Angle -!HISTORY_MSG_211;Graduated Filter -!HISTORY_MSG_212;VF - Strength -!HISTORY_MSG_213;Vignette Filter -!HISTORY_MSG_214;Black-and-White -!HISTORY_MSG_215;B&W - CM - Red -!HISTORY_MSG_216;B&W - CM - Green -!HISTORY_MSG_217;B&W - CM - Blue -!HISTORY_MSG_218;B&W - Gamma - Red -!HISTORY_MSG_219;B&W - Gamma - Green -!HISTORY_MSG_220;B&W - Gamma - Blue -!HISTORY_MSG_221;B&W - Color filter -!HISTORY_MSG_222;B&W - Presets -!HISTORY_MSG_223;B&W - CM - Orange -!HISTORY_MSG_224;B&W - CM - Yellow -!HISTORY_MSG_225;B&W - CM - Cyan -!HISTORY_MSG_226;B&W - CM - Magenta -!HISTORY_MSG_227;B&W - CM - Purple -!HISTORY_MSG_228;B&W - Luminance equalizer -!HISTORY_MSG_229;B&W - Luminance equalizer -!HISTORY_MSG_230;B&W - Mode -!HISTORY_MSG_231;B&W - 'Before' curve -!HISTORY_MSG_232;B&W - 'Before' curve type -!HISTORY_MSG_233;B&W - 'After' curve -!HISTORY_MSG_234;B&W - 'After' curve type -!HISTORY_MSG_235;B&W - CM - Auto -!HISTORY_MSG_236;--unused-- -!HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_238;GF - Feather -!HISTORY_MSG_239;GF - Strength -!HISTORY_MSG_240;GF - Center -!HISTORY_MSG_241;VF - Feather -!HISTORY_MSG_242;VF - Roundness -!HISTORY_MSG_243;VC - Radius -!HISTORY_MSG_244;VC - Strength -!HISTORY_MSG_245;VC - Center -!HISTORY_MSG_246;L*a*b* - CL curve -!HISTORY_MSG_247;L*a*b* - LH curve -!HISTORY_MSG_248;L*a*b* - HH curve -!HISTORY_MSG_249;CbDL - Threshold -!HISTORY_MSG_250;NR - Enhanced -!HISTORY_MSG_251;B&W - Algorithm -!HISTORY_MSG_252;CbDL - Skin tar/prot -!HISTORY_MSG_253;CbDL - Reduce artifacts -!HISTORY_MSG_254;CbDL - Skin hue -!HISTORY_MSG_255;NR - Median filter -!HISTORY_MSG_256;NR - Median - Type -!HISTORY_MSG_257;Color Toning -!HISTORY_MSG_258;CT - Color curve -!HISTORY_MSG_259;CT - Opacity curve -!HISTORY_MSG_260;CT - a*[b*] opacity -!HISTORY_MSG_261;CT - Method -!HISTORY_MSG_262;CT - b* opacity -!HISTORY_MSG_263;CT - Shadows - Red -!HISTORY_MSG_264;CT - Shadows - Green -!HISTORY_MSG_265;CT - Shadows - Blue -!HISTORY_MSG_266;CT - Mid - Red -!HISTORY_MSG_267;CT - Mid - Green -!HISTORY_MSG_268;CT - Mid - Blue -!HISTORY_MSG_269;CT - High - Red -!HISTORY_MSG_270;CT - High - Green -!HISTORY_MSG_271;CT - High - Blue -!HISTORY_MSG_272;CT - Balance -!HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_274;CT - Sat. Shadows -!HISTORY_MSG_275;CT - Sat. Highlights -!HISTORY_MSG_276;CT - Opacity -!HISTORY_MSG_277;--unused-- -!HISTORY_MSG_278;CT - Preserve luminance -!HISTORY_MSG_279;CT - Shadows -!HISTORY_MSG_280;CT - Highlights -!HISTORY_MSG_281;CT - Sat. strength -!HISTORY_MSG_282;CT - Sat. threshold -!HISTORY_MSG_283;CT - Strength -!HISTORY_MSG_284;CT - Auto sat. protection -!HISTORY_MSG_285;NR - Median - Method -!HISTORY_MSG_286;NR - Median - Type -!HISTORY_MSG_287;NR - Median - Iterations -!HISTORY_MSG_288;Flat-Field - Clip control -!HISTORY_MSG_289;Flat-Field - Clip control - Auto -!HISTORY_MSG_290;Black Level - Red -!HISTORY_MSG_291;Black Level - Green -!HISTORY_MSG_292;Black Level - Blue -!HISTORY_MSG_293;Film Simulation -!HISTORY_MSG_294;Film Simulation - Strength -!HISTORY_MSG_295;Film Simulation - Film -!HISTORY_MSG_296;NR - Luminance curve -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_298;Dead pixel filter -!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 -!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s -!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_FULLSCREEN;Fullscreen -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator -!MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 -!MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 -!MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). -!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s -!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e -!MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m -!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 -!MAIN_FRAME_EDITOR;Editor -!MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 -!MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_MSG_EMPTYFILENAME;Filename unspecified! -!MAIN_MSG_IMAGEUNPROCESSED;This command requires all selected images to be queue-processed first. -!MAIN_MSG_NAVIGATOR;Navigator -!MAIN_MSG_OPERATIONCANCELLED;Operation cancelled -!MAIN_MSG_PATHDOESNTEXIST;The path\n\n%1\n\ndoes not exist. Please set a correct path in Preferences. -!MAIN_MSG_SETPATHFIRST;You first have to set a target path in Preferences in order to use this function! -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!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_COLOR_TOOLTIP;Shortcut: Alt-c -!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 -!MAIN_TAB_RAW_TOOLTIP;Shortcut: Alt-r -!MAIN_TAB_TRANSFORM_TOOLTIP;Shortcut: Alt-t -!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 -!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 -!MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. -!MAIN_TOOLTIP_PREVIEWB;Preview the blue channel.\nShortcut: b -!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the focus mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images. -!MAIN_TOOLTIP_PREVIEWG;Preview the green channel.\nShortcut: g -!MAIN_TOOLTIP_PREVIEWL;Preview the luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B -!MAIN_TOOLTIP_PREVIEWR;Preview the red channel.\nShortcut: r -!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l -!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l -!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l -!MAIN_TOOLTIP_THRESHOLD;Threshold -!MAIN_TOOLTIP_TOGGLE;Toggle the Before/After view.\nShortcut: Shift-b -!MONITOR_PROFILE_SYSTEM;System default -!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;Width: %1, Height: %2 -!NAVIGATOR_XY_NA;x: --, y: -- -!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_CHANNELMIXER;Channel mixer -!PARTIALPASTE_CHANNELMIXERBW;Black-and-white -!PARTIALPASTE_COLORAPP;CIECAM02 -!PARTIALPASTE_COLORTONING;Color toning -!PARTIALPASTE_COMMONTRANSFORMPARAMS;Auto-fill -!PARTIALPASTE_DARKFRAMEAUTOSELECT;Dark-frame auto-selection -!PARTIALPASTE_DARKFRAMEFILE;Dark-frame file -!PARTIALPASTE_DEFRINGE;Defringe -!PARTIALPASTE_DEHAZE;Haze removal -!PARTIALPASTE_DETAILGROUP;Detail Settings -!PARTIALPASTE_DIRPYRDENOISE;Noise reduction -!PARTIALPASTE_DIRPYREQUALIZER;Contrast by detail levels -!PARTIALPASTE_EPD;Tone mapping -!PARTIALPASTE_EQUALIZER;Wavelet levels -!PARTIALPASTE_EVERYTHING;Everything -!PARTIALPASTE_FILMSIMULATION;Film simulation -!PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection -!PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius -!PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type -!PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control -!PARTIALPASTE_FLATFIELDFILE;Flat-field file -!PARTIALPASTE_GRADIENT;Graduated filter -!PARTIALPASTE_HSVEQUALIZER;HSV equalizer -!PARTIALPASTE_IMPULSEDENOISE;Impulse noise reduction -!PARTIALPASTE_LABCURVE;L*a*b* adjustments -!PARTIALPASTE_LENSPROFILE;Profiled lens correction -!PARTIALPASTE_LOCALCONTRAST;Local contrast -!PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_PCVIGNETTE;Vignette filter -!PARTIALPASTE_PERSPECTIVE;Perspective -!PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter -!PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration -!PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter -!PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter -!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!PARTIALPASTE_PRSHARPENING;Post-resize sharpening -!PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction -!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift -!PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue -!PARTIALPASTE_RAWEXPOS_BLACK;Black levels -!PARTIALPASTE_RAWEXPOS_LINEAR;White point correction -!PARTIALPASTE_RAWGROUP;Raw Settings -!PARTIALPASTE_RAW_BORDER;Raw border -!PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement -!PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations -!PARTIALPASTE_RAW_DMETHOD;Demosaic method -!PARTIALPASTE_RAW_FALSECOLOR;False color suppression -!PARTIALPASTE_RAW_IMAGENUM;Sub-image -!PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_RGBCURVES;RGB curves -!PARTIALPASTE_SHARPENEDGE;Edges -!PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_ADD;Add -!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_AUTOMONPROFILE;Use operating system's main monitor color profile -!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_BATCH_PROCESSING;Batch Processing -!PREFERENCES_BEHADDALL;All to 'Add' -!PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. -!PREFERENCES_BEHAVIOR;Behavior -!PREFERENCES_BEHSETALL;All to 'Set' -!PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten -!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_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache -!PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CLUTSDIR;HaldCLUT directory -!PREFERENCES_CMMBPC;Black point compensation -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!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_CUSTPROFBUILD;Custom Processing Profile Builder -!PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. -!PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name -!PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K -!PREFERENCES_DARKFRAMEFOUND;Found -!PREFERENCES_DARKFRAMESHOTS;shots -!PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DIRDARKFRAMES;Dark-frames directory -!PREFERENCES_DIRECTORIES;Directories -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EDITORLAYOUT;Editor layout -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLATFIELDFOUND;Found -!PREFERENCES_FLATFIELDSDIR;Flat-fields directory -!PREFERENCES_FLATFIELDSHOTS;shots -!PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 -!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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator -!PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited -!PREFERENCES_LANG;Language -!PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" -!PREFERENCES_MENUGROUPLABEL;Group "Color label" -!PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" -!PREFERENCES_MENUGROUPRANK;Group "Rank" -!PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata -!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_MULTITAB;Multiple Editor Tabs Mode -!PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode -!PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files -!PREFERENCES_PANFACTORLABEL;Pan rate amplification -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!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_PROPERTY;Property -!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_SET;Set -!PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation -!PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar -!PREFERENCES_SINGLETAB;Single Editor Tab Mode -!PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done -!PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. -!PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done -!PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance -!PREFERENCES_TAB_SOUND;Sounds -!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_TP_LABEL;Tool panel: -!PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WORKFLOW;Layout -!PROFILEPANEL_COPYPPASTE;Parameters to copy -!PROFILEPANEL_GLOBALPROFILES;Bundled profiles -!PROFILEPANEL_LOADPPASTE;Parameters to load -!PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. -!PROFILEPANEL_MYPROFILES;My profiles -!PROFILEPANEL_PASTEPPASTE;Parameters to paste -!PROFILEPANEL_PDYNAMIC;Dynamic -!PROFILEPANEL_PINTERNAL;Neutral -!PROFILEPANEL_SAVEPPASTE;Parameters to save -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_LOADINGTHUMBS;Loading thumbnails... -!PROGRESSBAR_NOIMAGES;No images found -!PROGRESSBAR_PROCESSING_PROFILESAVED;Processing profile saved -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!PROGRESSBAR_SNAPSHOT_ADDED;Snapshot added -!PROGRESSDLG_PROFILECHANGEDINBROWSER;Processing profile changed in browser -!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_AUTOSUFFIX;Automatically add a suffix if the file already exists -!SAVEDLG_FILEFORMAT_FLOAT; floating-point -!SAVEDLG_FORCEFORMATOPTS;Force saving options -!SAVEDLG_SUBSAMP;Subsampling -!SAVEDLG_SUBSAMP_1;Best compression -!SAVEDLG_SUBSAMP_2;Balanced -!SAVEDLG_SUBSAMP_3;Best quality -!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. -!SAVEDLG_WARNFILENAME;File will be named -!SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. -!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. -!THRESHOLDSELECTOR_B;Bottom -!THRESHOLDSELECTOR_BL;Bottom-left -!THRESHOLDSELECTOR_BR;Bottom-right -!THRESHOLDSELECTOR_HINT;Hold the Shift key to move individual control points. -!THRESHOLDSELECTOR_T;Top -!THRESHOLDSELECTOR_TL;Top-left -!THRESHOLDSELECTOR_TR;Top-right -!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_ALGO;Algorithm OYCPM -!TP_BWMIX_ALGO_LI;Linear -!TP_BWMIX_ALGO_SP;Special effects -!TP_BWMIX_ALGO_TOOLTIP;Linear: will produce a normal linear response.\nSpecial effects: will produce special effects by mixing channels non-linearly. -!TP_BWMIX_AUTOCH;Auto -!TP_BWMIX_CC_ENABLED;Adjust complementary color -!TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBPM mode. -!TP_BWMIX_CHANNEL;Luminance equalizer -!TP_BWMIX_CURVEEDITOR1;'Before' curve -!TP_BWMIX_CURVEEDITOR2;'After' curve -!TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment. -!TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion.\nMay take into account the color components. -!TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H).\nPay attention to extreme values as they may cause artifacts. -!TP_BWMIX_FILTER;Color Filter -!TP_BWMIX_FILTER_BLUE;Blue -!TP_BWMIX_FILTER_BLUEGREEN;Blue-Green -!TP_BWMIX_FILTER_GREEN;Green -!TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow -!TP_BWMIX_FILTER_NONE;None -!TP_BWMIX_FILTER_PURPLE;Purple -!TP_BWMIX_FILTER_RED;Red -!TP_BWMIX_FILTER_REDYELLOW;Red-Yellow -!TP_BWMIX_FILTER_TOOLTIP;The color filter simulates shots taken with a colored filter placed in front of the lens. Colored filters reduce the transmission of specific color ranges and therefore affect their lightness. E.g. a red filter darkens blue skies. -!TP_BWMIX_FILTER_YELLOW;Yellow -!TP_BWMIX_GAMMA;Gamma Correction -!TP_BWMIX_GAM_TOOLTIP;Correct gamma for each RGB channel. -!TP_BWMIX_LABEL;Black-and-White -!TP_BWMIX_MET;Method -!TP_BWMIX_MET_CHANMIX;Channel Mixer -!TP_BWMIX_MET_DESAT;Desaturation -!TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset -!TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% -!TP_BWMIX_RGBLABEL_HINT;Final RGB factors that take care of all the mixer options.\n"Total" displays the sum of the RGB values:\n- always 100% in relative mode\n- higher (lighter) or lower (darker) than 100% in absolute mode. -!TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. -!TP_BWMIX_SETTING;Presets -!TP_BWMIX_SETTING_TOOLTIP;Different presets (film, landscape, etc.) or manual Channel Mixer settings. -!TP_BWMIX_SET_HIGHCONTAST;High contrast -!TP_BWMIX_SET_HIGHSENSIT;High Sensitivity -!TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic -!TP_BWMIX_SET_INFRARED;Infrared -!TP_BWMIX_SET_LANDSCAPE;Landscape -!TP_BWMIX_SET_LOWSENSIT;Low Sensitivity -!TP_BWMIX_SET_LUMINANCE;Luminance -!TP_BWMIX_SET_NORMCONTAST;Normal Contrast -!TP_BWMIX_SET_ORTHOCHRO;Orthochromatic -!TP_BWMIX_SET_PANCHRO;Panchromatic -!TP_BWMIX_SET_PORTRAIT;Portrait -!TP_BWMIX_SET_RGBABS;Absolute RGB -!TP_BWMIX_SET_RGBREL;Relative RGB -!TP_BWMIX_SET_ROYGCBPMABS;Absolute ROYGCBPM -!TP_BWMIX_SET_ROYGCBPMREL;Relative ROYGCBPM -!TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -!TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending -!TP_BWMIX_TCMODE_STANDARD;B&W Standard -!TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard -!TP_BWMIX_VAL;L -!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_CHROMATABERR_LABEL;Chromatic Aberration -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance -!TP_COLORAPP_ALGO;Algorithm -!TP_COLORAPP_ALGO_ALL;All -!TP_COLORAPP_ALGO_JC;Lightness + Chroma (JC) -!TP_COLORAPP_ALGO_JS;Lightness + Saturation (JS) -!TP_COLORAPP_ALGO_QM;Brightness + Colorfulness (QM) -!TP_COLORAPP_ALGO_TOOLTIP;Lets you choose between parameter subsets or all parameters. -!TP_COLORAPP_BADPIXSL;Hot/bad pixel filter -!TP_COLORAPP_BADPIXSL_TOOLTIP;Suppression of hot/bad (brightly colored) pixels.\n0 = No effect\n1 = Median\n2 = Gaussian.\nAlternatively, adjust the image to avoid very dark shadows.\n\nThese artifacts are due to limitations of CIECAM02. -!TP_COLORAPP_BRIGHT;Brightness (Q) -!TP_COLORAPP_BRIGHT_TOOLTIP;Brightness in CIECAM02 takes into account the white's luminosity and differs from L*a*b* and RGB brightness. -!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. -!TP_COLORAPP_CHROMA;Chroma (C) -!TP_COLORAPP_CHROMA_M;Colorfulness (M) -!TP_COLORAPP_CHROMA_M_TOOLTIP;Colorfulness in CIECAM02 differs from L*a*b* and RGB colorfulness. -!TP_COLORAPP_CHROMA_S;Saturation (S) -!TP_COLORAPP_CHROMA_S_TOOLTIP;Saturation in CIECAM02 differs from L*a*b* and RGB saturation. -!TP_COLORAPP_CHROMA_TOOLTIP;Chroma in CIECAM02 differs from L*a*b* and RGB chroma. -!TP_COLORAPP_CIECAT_DEGREE;CAT02 adaptation -!TP_COLORAPP_CONTRAST;Contrast (J) -!TP_COLORAPP_CONTRAST_Q;Contrast (Q) -!TP_COLORAPP_CONTRAST_Q_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CONTRAST_TOOLTIP;Differs from L*a*b* and RGB contrast. -!TP_COLORAPP_CURVEEDITOR1;Tone curve 1 -!TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Shows the histogram of L* (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of J or Q after CIECAM02.\n\nJ and Q are not shown in the main histogram panel.\n\nFor final output refer to the main histogram panel. -!TP_COLORAPP_CURVEEDITOR2;Tone curve 2 -!TP_COLORAPP_CURVEEDITOR2_TOOLTIP;Same usage as with the second exposure tone curve. -!TP_COLORAPP_CURVEEDITOR3;Color curve -!TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colorfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. -!TP_COLORAPP_DATACIE;CIECAM02 output histograms in curves -!TP_COLORAPP_DATACIE_TOOLTIP;When enabled, histograms in CIECAM02 curves show approximate values/ranges for J or Q, and C, s or M after the CIECAM02 adjustments.\nThis selection does not impact the main histogram panel.\n\nWhen disabled, histograms in CIECAM02 curves show L*a*b* values before CIECAM02 adjustments. -!TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] -!TP_COLORAPP_GAMUT;Gamut control (L*a*b*) -!TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. -!TP_COLORAPP_HUE;Hue (h) -!TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. -!TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 -!TP_COLORAPP_LABEL_CAM02;Image Adjustments -!TP_COLORAPP_LABEL_SCENE;Scene Conditions -!TP_COLORAPP_LABEL_VIEWING;Viewing Conditions -!TP_COLORAPP_LIGHT;Lightness (J) -!TP_COLORAPP_LIGHT_TOOLTIP;Lightness in CIECAM02 differs from L*a*b* and RGB lightness. -!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_MODEL;WP Model -!TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values -!TP_COLORAPP_RSTPRO;Red & skin-tones protection -!TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. -!TP_COLORAPP_SURROUND;Surround -!TP_COLORAPP_SURROUND_AVER;Average -!TP_COLORAPP_SURROUND_DARK;Dark -!TP_COLORAPP_SURROUND_DIM;Dim -!TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. -!TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness -!TP_COLORAPP_TCMODE_CHROMA;Chroma -!TP_COLORAPP_TCMODE_COLORF;Colorfulness -!TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 -!TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 -!TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode -!TP_COLORAPP_TCMODE_LIGHTNESS;Lightness -!TP_COLORAPP_TCMODE_SATUR;Saturation -!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_TONECIE;Tone mapping using CIECAM02 -!TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. -!TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). -!TP_COLORAPP_WBCAM;WB [RT+CAT02] + [output] -!TP_COLORAPP_WBRT;WB [RT] + [output] -!TP_COLORTONING_AB;o C/L -!TP_COLORTONING_AUTOSAT;Automatic -!TP_COLORTONING_BALANCE;Balance -!TP_COLORTONING_BY;o C/L -!TP_COLORTONING_CHROMAC;Opacity -!TP_COLORTONING_COLOR;Color -!TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Chroma opacity as a function of luminance oC=f(L) -!TP_COLORTONING_HIGHLIGHT;Highlights -!TP_COLORTONING_HUE;Hue -!TP_COLORTONING_LAB;L*a*b* blending -!TP_COLORTONING_LABEL;Color Toning -!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_COLORTONING_LUMA;Luminance -!TP_COLORTONING_LUMAMODE;Preserve luminance -!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved. -!TP_COLORTONING_METHOD;Method -!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning. -!TP_COLORTONING_MIDTONES;Midtones -!TP_COLORTONING_NEUTRAL;Reset sliders -!TP_COLORTONING_NEUTRAL_TIP;Reset all values (Shadows, Midtones, Highlights) to default. -!TP_COLORTONING_OPACITY;Opacity -!TP_COLORTONING_RGBCURVES;RGB - Curves -!TP_COLORTONING_RGBSLIDERS;RGB - Sliders -!TP_COLORTONING_SA;Saturation Protection -!TP_COLORTONING_SATURATEDOPACITY;Strength -!TP_COLORTONING_SATURATIONTHRESHOLD;Threshold -!TP_COLORTONING_SHADOWS;Shadows -!TP_COLORTONING_SPLITCO;Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITCOCO;Color Balance Shadows/Midtones/Highlights -!TP_COLORTONING_SPLITLR;Saturation 2 colors -!TP_COLORTONING_STR;Strength -!TP_COLORTONING_STRENGTH;Strength -!TP_COLORTONING_TWO2;Special chroma '2 colors' -!TP_COLORTONING_TWOALL;Special chroma -!TP_COLORTONING_TWOBY;Special a* and b* -!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable. -!TP_COLORTONING_TWOSTD;Standard chroma -!TP_CROP_GTEPASSPORT;Biometric Passport -!TP_CROP_GTFRAME;Frame -!TP_CROP_GTGRID;Grid -!TP_CROP_GTHARMMEANS;Harmonic Means -!TP_CROP_GTTRIANGLE1;Golden Triangles 1 -!TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DARKFRAME_AUTOSELECT;Auto-selection -!TP_DARKFRAME_LABEL;Dark-Frame -!TP_DEFRINGE_LABEL;Defringe -!TP_DEFRINGE_RADIUS;Radius -!TP_DEFRINGE_THRESHOLD;Threshold -!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_BLUEYELLOW;Chrominance - Blue-Yellow -!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_MASTER;Chrominance - Master -!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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve -!TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Detail recovery -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE;Color space -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;For raw images either RGB or L*a*b* methods can be used.\n\nFor non-raw images the L*a*b* method will be used, regardless of the selection. -!TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma -!TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varies noise reduction strength across the range of tones. Smaller values will target shadows, while larger values will stretch the effect to the brighter tones. -!TP_DIRPYRDENOISE_MAIN_MODE;Mode -!TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressive -!TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservative -!TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Conservative" preserves low frequency chroma patterns, while "aggressive" obliterates them. -!TP_DIRPYRDENOISE_MEDIAN_METHOD;Median method -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Median Filter -!TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Luminance only -!TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -!TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;When using the "Luminance only" and "L*a*b*" methods, median filtering will be performed just after the wavelet step in the noise reduction pipeline.\nWhen using the "RGB" mode, it will be performed at the very end of the noise reduction pipeline. -!TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) -!TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations -!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;Median type -!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_ALGO;Skin Color Range -!TP_DIRPYREQUALIZER_ALGO_TOOLTIP;Fine: closer to the colors of the skin, minimizing the action on other colors\nLarge: avoid more artifacts. -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts -!TP_DIRPYREQUALIZER_HUESKIN;Skin hue -!TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;This pyramid is for the upper part, so far as the algorithm at its maximum efficiency.\nTo the lower part, the transition zones.\nIf you need to move the area significantly to the left or right - or if there are artifacts: the white balance is incorrect\nYou can slightly reduce the zone to prevent the rest of the image is affected. -!TP_DIRPYREQUALIZER_LABEL;Contrast by Detail Levels -!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest -!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast - -!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast + -!TP_DIRPYREQUALIZER_LUMAFINEST;Finest -!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral -!TP_DIRPYREQUALIZER_SKIN;Skin targetting/protection -!TP_DIRPYREQUALIZER_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_DIRPYREQUALIZER_THRESHOLD;Threshold -!TP_DIRPYREQUALIZER_TOOLTIP;Attempts to reduce artifacts in the transitions between skin colors (hue, chroma, luma) and the rest of the image. -!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_EDGESTOPPING;Edge stopping -!TP_EPD_GAMMA;Gamma -!TP_EPD_LABEL;Tone Mapping -!TP_EPD_REWEIGHTINGITERATES;Reweighting iterates -!TP_EPD_SCALE;Scale -!TP_EPD_STRENGTH;Strength -!TP_EXPOSURE_AUTOLEVELS_TIP;Toggles execution of Auto Levels to automatically set Exposure slider values based on an image analysis.\nEnables Highlight Reconstruction if necessary. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors -!TP_EXPOSURE_CLIP_TIP;The fraction of pixels to be clipped in Auto Levels operation. -!TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD;Highlight compression threshold -!TP_EXPOSURE_CURVEEDITOR1;Tone curve 1 -!TP_EXPOSURE_CURVEEDITOR2;Tone curve 2 -!TP_EXPOSURE_CURVEEDITOR2_TOOLTIP;Please refer to the "Exposure > Tone Curves" RawPedia article to learn how to achieve the best results by using two tone curves. -!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_SATURATION;Saturation -!TP_EXPOSURE_TCMODE_FILMLIKE;Film-like -!TP_EXPOSURE_TCMODE_LABEL1;Curve mode 1 -!TP_EXPOSURE_TCMODE_LABEL2;Curve mode 2 -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Saturation and Value Blending -!TP_EXPOSURE_TCMODE_STANDARD;Standard -!TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard -!TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points -!TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMSIMULATION_LABEL;Film Simulation -!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_FILMSIMULATION_STRENGTH;Strength -!TP_FILMSIMULATION_ZEROCLUTSFOUND;Set HaldCLUT directory in Preferences -!TP_FLATFIELD_AUTOSELECT;Auto-selection -!TP_FLATFIELD_BLURRADIUS;Blur radius -!TP_FLATFIELD_BLURTYPE;Blur type -!TP_FLATFIELD_BT_AREA;Area -!TP_FLATFIELD_BT_HORIZONTAL;Horizontal -!TP_FLATFIELD_BT_VERTHORIZ;Vertical + Horizontal -!TP_FLATFIELD_BT_VERTICAL;Vertical -!TP_FLATFIELD_CLIPCONTROL;Clip control -!TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. -!TP_FLATFIELD_LABEL;Flat-Field -!TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. -!TP_GRADIENT_CENTER;Center -!TP_GRADIENT_CENTER_X;Center X -!TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). -!TP_GRADIENT_CENTER_Y;Center Y -!TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). -!TP_GRADIENT_DEGREE;Angle -!TP_GRADIENT_DEGREE_TOOLTIP;Rotation angle in degrees. -!TP_GRADIENT_FEATHER;Feather -!TP_GRADIENT_FEATHER_TOOLTIP;Gradient width in percent of the image diagonal. -!TP_GRADIENT_LABEL;Graduated Filter -!TP_GRADIENT_STRENGTH;Strength -!TP_GRADIENT_STRENGTH_TOOLTIP;Filter strength in stops. -!TP_HLREC_BLEND;Blend -!TP_HLREC_ENA_TOOLTIP;Could be activated by Auto Levels. -!TP_HSVEQUALIZER_CHANNEL;Channel -!TP_HSVEQUALIZER_HUE;H -!TP_HSVEQUALIZER_LABEL;HSV Equalizer -!TP_HSVEQUALIZER_SAT;S -!TP_HSVEQUALIZER_VAL;V -!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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. -!TP_ICM_BPC;Black Point Compensation -!TP_ICM_DCPILLUMINANT;Illuminant -!TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!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_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!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_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!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;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;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_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!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_NO_FOUND;None found -!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_AUTO;Auto-correction -!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_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!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_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!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_SN;SN mode -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\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_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!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_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_WIDTH;Width -!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_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!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_RGBCURVES_RED;R -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHARPENEDGE_AMOUNT;Quantity -!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 -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!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_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_STRENGTH;Strength -!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_CLOUDY;Cloudy -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!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_PICKER;Pick -!TP_WBALANCE_SHADE;Shade -!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_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". -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - From 6299abf10196f1aa6eadd7a48422f5807a16532d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 31 Mar 2019 23:45:37 +0200 Subject: [PATCH 022/215] Deleted unused language keys --- rtdata/languages/Catala | 43 ------------------- rtdata/languages/Chinese (Simplified) | 43 ------------------- rtdata/languages/Czech | 43 ------------------- rtdata/languages/Deutsch | 43 ------------------- rtdata/languages/English (UK) | 43 ------------------- rtdata/languages/English (US) | 43 ------------------- rtdata/languages/Espanol | 43 ------------------- rtdata/languages/Francais | 43 ------------------- rtdata/languages/Italiano | 43 ------------------- rtdata/languages/Japanese | 43 ------------------- rtdata/languages/Magyar | 43 ------------------- rtdata/languages/Nederlands | 43 ------------------- rtdata/languages/Polish | 43 ------------------- rtdata/languages/Portugues | 43 ------------------- rtdata/languages/Portugues (Brasil) | 43 ------------------- rtdata/languages/Russian | 43 ------------------- rtdata/languages/Serbian (Cyrilic Characters) | 43 ------------------- rtdata/languages/Swedish | 43 ------------------- rtdata/languages/default | 43 ------------------- 19 files changed, 817 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index aa0eadfe5..97ffe7e9d 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -67,7 +67,6 @@ EXPORT_BYPASS_RAW_LINENOISE;Salta [raw] línia de filtre de soroll EXPORT_BYPASS_SHARPENEDGE;Salta afinar vores EXPORT_BYPASS_SHARPENING;Salta reenfocar EXPORT_BYPASS_SHARPENMICRO;Salta microcontrast -EXPORT_BYPASS_SH_HQ;Salta ombres/clars intensos (alta qualitat) EXPORT_FASTEXPORTOPTIONS;Opcions d'exportació ràpida EXPORT_INSTRUCTIONS;Les opcions d'exportació ràpida permeten estalviar temps i recursos obviant els ajustos establerts de desenvolupament i processar la cua amb més celeritat. Es recomana aquest mètode per a una ràpida generació d'imatges de baixa resolució quan cal prioritzar la rapidesa o en canvis de tamany d'una o diverses imatges sense modificar els seus paràmetres de desenvolupament desats. EXPORT_MAXHEIGHT;Alçada màxima: @@ -76,7 +75,6 @@ EXPORT_PUTTOQUEUEFAST; Posa a la cua per a export. ràpida EXPORT_RAW_DMETHOD;Mètode de demosaicar EXTPROGTARGET_1;raw EXTPROGTARGET_2;cua processada -FILEBROWSER_ADDDELTEMPLATE;Afeg/Treu plantilles... FILEBROWSER_APPLYPROFILE;Aplica FILEBROWSER_APPLYPROFILE_PARTIAL;Aplica - parcial FILEBROWSER_AUTODARKFRAME;Auto marc fosc @@ -531,7 +529,6 @@ PREFERENCES_MENUGROUPLABEL;Grup "Etiqueta de color" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grup "Operacions de procés de perfils" PREFERENCES_MENUGROUPRANK;Grup "Rang" PREFERENCES_MENUOPTIONS;Opcions del menú -PREFERENCES_METADATA;Metadata PREFERENCES_MULTITAB;Mode multitreball PREFERENCES_MULTITABDUALMON;Mode multitreball en segon monitor, si se'n té un PREFERENCES_OUTDIR;Directori de sortida @@ -718,8 +715,6 @@ TP_HSVEQUALIZER_HUE;H TP_HSVEQUALIZER_LABEL;HSV Equalitzador TP_HSVEQUALIZER_SAT;S TP_HSVEQUALIZER_VAL;V -TP_ICM_BLENDCMSMATRIX;Barreja clars intensos del perfil de color amb la matriu -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Habilita la recuperació de clars intensos quan s'usen els perfils ICC basats en LUT TP_ICM_INPUTCAMERA;Propi de la càmera TP_ICM_INPUTCAMERAICC;Perfil de color del model de càmera detectada. TP_ICM_INPUTCAMERAICC_TOOLTIP;Usa d'entrada el perfil de color DCP o ICC específic de càmera de RawTherapee. Aquests perfils són més precisos que els de simple matriu. Disponible per a algunes càmeres. Aquests perfils són als directoris /iccprofiles/input i /dcpprofiles i es carreguen automàticament segons un nom de fitxer que coincideix exactament amb el nom de model de la càmera. @@ -817,7 +812,6 @@ TP_ROTATE_SELECTLINE;Selecc. línia recta TP_SHADOWSHLIGHTS_HIGHLIGHTS;Clars intensos TP_SHADOWSHLIGHTS_HLTONALW;Amplada de to per Clars I. TP_SHADOWSHLIGHTS_LABEL;Foscos/Clars intensos -TP_SHADOWSHLIGHTS_LOCALCONTR;Contrast local TP_SHADOWSHLIGHTS_RADIUS;Radi TP_SHADOWSHLIGHTS_SHADOWS;Foscos TP_SHADOWSHLIGHTS_SHTONALW;Amplada de to per Foscos @@ -1487,7 +1481,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1517,34 +1510,12 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 !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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator !PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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. @@ -1585,9 +1556,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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 !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) !PROFILEPANEL_GLOBALPROFILES;Bundled profiles !PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. !PROFILEPANEL_MYPROFILES;My profiles @@ -1735,8 +1704,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) !TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness @@ -1820,7 +1787,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_BLUEYELLOW;Chrominance - Blue-Yellow !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. @@ -1837,8 +1803,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. !TP_DIRPYRDENOISE_LABEL;Noise Reduction !TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control !TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve @@ -1864,7 +1828,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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;Median type !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 @@ -1980,7 +1943,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue @@ -2031,15 +1993,12 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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 @@ -2074,7 +2033,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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 @@ -2141,7 +2099,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RGBCURVES_LUMAMODE;Luminosity mode !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 diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 509ac9629..bfbc8f607 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -88,7 +88,6 @@ EXPORT_PUTTOQUEUEFAST; 放入快速导出序列 EXPORT_RAW_DMETHOD;反拜尔算法 EXTPROGTARGET_1;raw EXTPROGTARGET_2;队列已处理 -FILEBROWSER_ADDDELTEMPLATE;增加/删除模板... FILEBROWSER_APPLYPROFILE;应用配置 FILEBROWSER_APPLYPROFILE_PARTIAL;应用 - 局部 FILEBROWSER_AUTODARKFRAME;自动暗场 @@ -486,7 +485,6 @@ PREFERENCES_BATCH_PROCESSING;批处理 PREFERENCES_BEHADDALL;全 '添加' PREFERENCES_BEHAVIOR;行为 PREFERENCES_BEHSETALL;全 '设定' -PREFERENCES_BLACKBODY;钨丝灯 PREFERENCES_CACHEMAXENTRIES;最大缓存数量 PREFERENCES_CACHEOPTS;缓存选项 PREFERENCES_CACHETHUMBHEIGHT;最大缩略图高度 @@ -505,11 +503,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;可执行文件路径 -PREFERENCES_D50;5000K -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;找到 PREFERENCES_DARKFRAMESHOTS;张 PREFERENCES_DARKFRAMETEMPLATES;模板 @@ -529,32 +522,15 @@ PREFERENCES_FLATFIELDFOUND;找到 PREFERENCES_FLATFIELDSDIR;平场图像路径 PREFERENCES_FLATFIELDSHOTS;张 PREFERENCES_FLATFIELDTEMPLATES;模板 -PREFERENCES_FLUOF2;Fluorescent F2 -PREFERENCES_FLUOF7;Fluorescent F7 -PREFERENCES_FLUOF11;Fluorescent F11 PREFERENCES_FORIMAGE;用于图片文件 PREFERENCES_FORRAW;用于Raw文件 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_GIMPPATH;GIMP安装文件夹 -PREFERENCES_GREY;Output device's Yb luminance (%) -PREFERENCES_GREY05;Yb=05 CIE L#30 -PREFERENCES_GREY10;Yb=10 CIE L#40 -PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18;Settings in main menu -PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;自动 PREFERENCES_HISTOGRAMPOSITIONLEFT;直方图放置在左面板 -PREFERENCES_HISTOGRAMWORKING;使用工作色彩空间显示直方图和导航器 PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. PREFERENCES_HLTHRESHOLD;高光溢出阈值 PREFERENCES_ICCDIR;ICC配置路径 -PREFERENCES_IMG_RELOAD_NEEDED;这些改变需要重载图片生效 PREFERENCES_IMPROCPARAMS;默认图片处理参数 PREFERENCES_INSPECT_LABEL;检阅 PREFERENCES_INSPECT_MAXBUFFERS_LABEL;最大缓存图片数 @@ -573,7 +549,6 @@ PREFERENCES_MENUGROUPLABEL;Group "Color label" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" PREFERENCES_MENUGROUPRANK;组 "评价" PREFERENCES_MENUOPTIONS;子菜单选项 -PREFERENCES_METADATA;元数据 PREFERENCES_MONINTENT;默认渲染意图 PREFERENCES_MONITOR;显示器 PREFERENCES_MONPROFILE;默认色彩配置文件 @@ -641,9 +616,7 @@ PREFERENCES_TAB_IMPROC;图片处理 PREFERENCES_TAB_SOUND;音效 PREFERENCES_TP_LABEL;工具栏 PREFERENCES_TP_VSCROLLBAR;隐藏垂直滚动栏 -PREFERENCES_TUNNELMETADATA;无损复制 Exif/IPTC/XMP 到输出文件 PREFERENCES_USEBUNDLEDPROFILES;启用内置预设 -PREFERENCES_VIEW;输出设备白平衡 (显示器、电视、投影仪等) PREFERENCES_WORKFLOW;排版 PROFILEPANEL_LABEL;处理参数配置 PROFILEPANEL_LOADDLGLABEL;加载处理参数为... @@ -895,10 +868,8 @@ TP_SAVEDIALOG_OK_TIP;快捷键: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;高光 TP_SHADOWSHLIGHTS_HLTONALW;影调范围 TP_SHADOWSHLIGHTS_LABEL;阴影/高光 -TP_SHADOWSHLIGHTS_LOCALCONTR;局部对比度 TP_SHADOWSHLIGHTS_RADIUS;半径 TP_SHADOWSHLIGHTS_SHADOWS;阴影 -TP_SHADOWSHLIGHTS_SHARPMASK;锐度蒙板 TP_SHADOWSHLIGHTS_SHTONALW;影调范围 TP_SHARPENEDGE_AMOUNT;数量 TP_SHARPENEDGE_LABEL;边缘 @@ -981,7 +952,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !EXPORT_BYPASS_RAW_DCB_ENHANCE;Bypass [raw] DCB Enhancement Steps !EXPORT_BYPASS_RAW_DCB_ITERATIONS;Bypass [raw] DCB Iterations !EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights !EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. !EXPORT_PIPELINE;Processing pipeline !EXPORT_USE_FAST_PIPELINE;Dedicated (full processing on resized image) @@ -1685,8 +1655,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) !TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness !TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 @@ -1765,7 +1733,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_BLUEYELLOW;Chrominance - Blue-Yellow !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. @@ -1783,8 +1750,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. !TP_DIRPYRDENOISE_LABEL;Noise Reduction !TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control !TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve @@ -1810,7 +1775,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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;Median type !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 @@ -1851,8 +1815,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. !TP_ICM_BPC;Black Point Compensation !TP_ICM_DCPILLUMINANT;Illuminant !TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated @@ -1943,7 +1905,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_RAWEXPOS_BLACKS;Black Levels !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -2002,15 +1963,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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 @@ -2046,7 +2004,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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 diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 733aa2015..be3a8993e 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -140,7 +140,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Vynechat [raw] kroky vylepšení LMMSE EXPORT_BYPASS_SHARPENEDGE;Vynechat doostření hran EXPORT_BYPASS_SHARPENING;Vynechat doostření EXPORT_BYPASS_SHARPENMICRO;Vynechat mikrokontrast -EXPORT_BYPASS_SH_HQ;Vynechat masku ostrosti stínů a světel EXPORT_FASTEXPORTOPTIONS;Volby rychlého exportu EXPORT_INSTRUCTIONS;Volba rychlého exportu umožňuje potlačit vybrané nastavení procesu vyvolání a zkrátit tak čas a zdroje potřebné pro zpracování fronty tím, že se pro vyvolání použije nastavení rychlého exportu. Tato metoda je doporučována pro rychlejší vyvolání obrázků v nižším rozlišení v případě, že je důležitá rychlost, nebo pokud je požadováno vyvolání jednoho nebo více obrázků v nižším rozlišení bez změny uložených parametrů vyvolání. EXPORT_MAXHEIGHT;Maximální výška: @@ -153,7 +152,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Použije vyhrazenou frontu zpracování v režimu r EXPORT_USE_NORMAL_PIPELINE;Standardní (přeskočí některé kroky, zmenší až na konci) EXTPROGTARGET_1;raw EXTPROGTARGET_2;Zpracování fronty -FILEBROWSER_ADDDELTEMPLATE;Přidat/Smazat šablony... FILEBROWSER_APPLYPROFILE;Použít FILEBROWSER_APPLYPROFILE_PARTIAL;Aplikovat - částečně FILEBROWSER_AUTODARKFRAME;Automatický tmavý snímek @@ -1091,7 +1089,6 @@ PREFERENCES_BEHADDALLHINT;Nastaví všechny parametry do módu Přidat.\n PREFERENCES_BEHAVIOR;Režim PREFERENCES_BEHSETALL;Vše do 'Nastavit' PREFERENCES_BEHSETALLHINT;Nastaví všechny parametry do módu Nastavit.\nZměna parametrů v panelu dávkového zpracování se aplikuje jako absolutní, budou zobrazeny aktuální hodnoty. -PREFERENCES_BLACKBODY;Wolfram PREFERENCES_CACHECLEAR;Smazat PREFERENCES_CACHECLEAR_ALL;Smazat z mezipaměti všechny soubory : PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Smazat z mezipaměti všechny soubory mimo profilů zpracování: @@ -1122,11 +1119,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formát klíče PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Jméno PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Cesta k programu -PREFERENCES_D50;Nastavení v hlavní nabídce -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Nalezeno PREFERENCES_DARKFRAMESHOTS;snímků PREFERENCES_DARKFRAMETEMPLATES;šablony @@ -1149,32 +1141,15 @@ PREFERENCES_FLATFIELDFOUND;Nalezeno PREFERENCES_FLATFIELDSDIR;Složka Flat Field souborů PREFERENCES_FLATFIELDSHOTS;snímků PREFERENCES_FLATFIELDTEMPLATES;šablony -PREFERENCES_FLUOF2;Fluorescenční F2 -PREFERENCES_FLUOF7;Fluorescenční F7 -PREFERENCES_FLUOF11;Fluorescenční F11 PREFERENCES_FORIMAGE;Pro ostatní fotografie PREFERENCES_FORRAW;Pro raw fotografie PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Stejná velikost náhledu ve filmovém pásu a v Prohlížeči souborů PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Rozdílné velikosti náhledů znamenají delší dobu zpracování při přepínání mezi obrázkem v záložce Editoru a Prohlížečem souborů. PREFERENCES_GIMPPATH;GIMP instalační složka -PREFERENCES_GREY;Yb svítivost výstupního zařízení (%) -PREFERENCES_GREY05;Yb=05 CIE L#30 -PREFERENCES_GREY10;Yb=10 CIE L#40 -PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18;Nastavení v hlavní nabídce -PREFERENCES_GREY18_OLD;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_GREYSC;Yb svítivost scény (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automaticky PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram v levém panelu -PREFERENCES_HISTOGRAMWORKING;Navigátor a hlavní histogram používají pracovní profil PREFERENCES_HISTOGRAM_TOOLTIP;Pokud je povoleno, používá se pracovní profil pro vykreslení hlavního histogramu a v navigačním panelu. V opačném případě je použit výstupní profil s aplikovanou gama korekcí. PREFERENCES_HLTHRESHOLD;Práh oříznutých světel PREFERENCES_ICCDIR;Složka obsahující barevné profily -PREFERENCES_IMG_RELOAD_NEEDED;Tyto změny se projeví až po novém načtení již otevřeného obrázku (nebo po otevření nového obrázku) PREFERENCES_IMPROCPARAMS;Výchozí profil zpracování PREFERENCES_INSPECT_LABEL;Prohlížení PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximální počet obrázků v mezipaměti @@ -1193,7 +1168,6 @@ PREFERENCES_MENUGROUPLABEL;Skupina "Barevné štítky" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Skupina "Operace s profily zpracování" PREFERENCES_MENUGROUPRANK;Skupina "Hodnocení" PREFERENCES_MENUOPTIONS;Volby místní nabídky -PREFERENCES_METADATA;Metadata PREFERENCES_MONINTENT;Výchozí reprodukční záměr PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Výchozí barevný profil @@ -1269,9 +1243,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutrální vykreslení RAW PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Vložený JPEG náhled pokud je v plné velikosti, jinak neutrální raw PREFERENCES_TP_LABEL;Panel nástrojů: PREFERENCES_TP_VSCROLLBAR;Skrýt svislou posuvnou lištu -PREFERENCES_TUNNELMETADATA;Zkopírovat nezměněná Exif/IPTC/XMP metadata do výstupního souboru PREFERENCES_USEBUNDLEDPROFILES;Použít přiložené profily -PREFERENCES_VIEW;Nastavení vyvážení bílé výstupních zařízení (monitor, TV, projektor, rámeček a jiné) PREFERENCES_WORKFLOW;Rozvržení PROFILEPANEL_COPYPPASTE;Parametry pro kopírování PROFILEPANEL_GLOBALPROFILES;Přiložené profily @@ -1480,8 +1452,6 @@ TP_COLORAPP_SURROUND_DARK;Tmavé TP_COLORAPP_SURROUND_DIM;Tlumené TP_COLORAPP_SURROUND_EXDARK;Velmi tmavé TP_COLORAPP_SURROUND_TOOLTIP;Změní tóny a barvy dle podmínek prohlížení na výstupním zařízení\n\nPrůměrné: Průměrné osvětlení prostředí (standardní). Obrázek nebude změněn.\n\nTlumené: Tlumené prostředí (TV). Obrázek bude mírně ztmaven.\n\nTmavé: Tmavé prostředí (projektor). Obrázek bude více tmavý.\n\nVelmi tmavé: Velmi tmavé prostředí (cutsheet). Obrázek bude velmi tmavý. -TP_COLORAPP_SURSOURCE;Tmavé okolí -TP_COLORAPP_SURSOURCE_TOOLTIP;Může být použito, pokud má vstupní obrázek tmavý okraj. TP_COLORAPP_TCMODE_BRIGHTNESS;Jas TP_COLORAPP_TCMODE_CHROMA;Barevnost TP_COLORAPP_TCMODE_COLORF;Pestrobarevnost @@ -1582,7 +1552,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;Ukázat hloubkovou mapu TP_DEHAZE_STRENGTH;Síla TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Více zónová automatika TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatická celková -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Zkusí odhadnout barevný šum\nPozor, tento výpočet je zprůměrován a zcela subjektivní! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Barevnost - Modrá a žlutá TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Křivka barevnosti TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Zvýší (násobí) hodnoty všech barevných posuvníků.\nKřivka vám umožní nastavit sílu redukce barevného šumu jako funkci barvy. Například pro zvýšení účinku v oblastech s nízkým nasycení a snížení v oblastech s vysokým nasycením. @@ -1600,8 +1569,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Náhled šumu: Průměr=%1 Výš TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Náhled šumu: Průměr= - Výšky= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Velikost dlaždice=%1, Střed: Tx=%2 Ty=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Barevnost - Červená a zelená -TP_DIRPYRDENOISE_ENH;Vylepšený režim -TP_DIRPYRDENOISE_ENH_TOOLTIP;Zvýší kvalitu odstranění šumu, ale zároveň prodlouží dobu zpracování o 20%. TP_DIRPYRDENOISE_LABEL;Redukce šumu TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Ovládání jasu TP_DIRPYRDENOISE_LUMINANCE_CURVE;Křivka jasů @@ -1630,7 +1597,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Počet průchodů mediánu TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Aplikování tří průchodů filtru medián s oknem 3×3 často vede k lepšímu výsledku než jednou aplikovaný filtr medián s oknem 7×7. TP_DIRPYRDENOISE_MEDIAN_TYPE;Typ mediánu TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Aplikuje filtr medián požadované velikosti okna. Čím větší velikost okna, tím déle bude zpracování trvat.\n\n3×3 jemný: upraví 5 pixelů v okně 3x3 pixely.\n3×3: upraví 9 pixelů v okně 3x3 pixely.\n5×5 jemný; upraví 13 pixelů v okně 5x5 pixelů.\n5×5: upraví 25 pixelů v okně 5x5 pixelů.\n7×7: upraví 49 pixelů v okně 7x7 pixelů.\n9×9: upraví 81 pixelů v okně 9x9 pixelů.\n\nV některých případech může být větší kvality dosaženo pomocí několika průběhů s menšími okny než jedním průběhem s velkým oknem. -TP_DIRPYRDENOISE_SLI;Posuvník TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 jemný TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1735,8 +1701,6 @@ TP_ICM_APPLYHUESATMAP;Základní tabulka TP_ICM_APPLYHUESATMAP_TOOLTIP;Použije vloženou DCP základní tabulku (HueSatMap). Toto nastavení je dostupné pouze pokud ji vybrané DCP obsahuje. TP_ICM_APPLYLOOKTABLE;Tabulka vzhledu TP_ICM_APPLYLOOKTABLE_TOOLTIP;Použije vloženou DCP tabulku vzhledu. Nastavení je dostupné pouze pokud ji vybrané DCP obsahuje. -TP_ICM_BLENDCMSMATRIX;Smísení ICC světel s matici -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Povolit obnovení vypálených jasů při použití ICC profilů založených na LUT. TP_ICM_BPC;Kompenzace černého bodu TP_ICM_DCPILLUMINANT;Osvětlení TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolované @@ -1862,7 +1826,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Toto nastavení je dostupné po zatržení volby "Au TP_RAWCACORR_AVOIDCOLORSHIFT;Zabránit posunu barev TP_RAWCACORR_CABLUE;Modrá TP_RAWCACORR_CARED;Červená -TP_RAWCACORR_CASTR;Síla TP_RAWEXPOS_BLACKS;Úrovně černé TP_RAWEXPOS_BLACK_0;Zelená 1 (řídící) TP_RAWEXPOS_BLACK_1;Červená @@ -1920,15 +1883,12 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Vyrovná jas ostatních snímků podle jasu TP_RAW_PIXELSHIFTGREEN;Kontrolovat zelený kanál na pohyb TP_RAW_PIXELSHIFTHOLEFILL;Vyplnit díry v masce pohybu TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Vyplnit díry v masce pohybu -TP_RAW_PIXELSHIFTLMMSE;Použít LMMSE pro části s pohybem -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Pro oblasti s pohybem použít LMMSE namísto AMaZE.\nUžitečné pro fotografie s vysokým ISO. TP_RAW_PIXELSHIFTMEDIAN;Použít medián pro části s pohybem TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Pro oblasti s pohybem použijte medián všech snímků namísto vybraného.\nOdstraní objekty, které jsou na všech snímcích na různých místech.\nVytvoří efekt pohybu pro pomalu se pohybující (překrývající se) objekty. TP_RAW_PIXELSHIFTMM_AUTO;Automatická TP_RAW_PIXELSHIFTMM_CUSTOM;Vlastní TP_RAW_PIXELSHIFTMM_OFF;Vypnuto TP_RAW_PIXELSHIFTMOTIONMETHOD;Korekce pohybu -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 znamená bez detekce pohybu.\n1 - 99 znamená, že pohybu bude detekován dle této hodnoty. Pro zvýšení míry detekce použijte vyšší hodnotu.\n100 znamená, že bude použito AMaZE demozajkování snímku. TP_RAW_PIXELSHIFTNONGREENCROSS;Kontrolovat pohyb v červeném a modrém kanálu TP_RAW_PIXELSHIFTSHOWMOTION;Ukázat masku pohybu TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Ukázat pouze masku pohybu @@ -1975,7 +1935,6 @@ TP_RETINEX_GAIN;Zisk TP_RETINEX_GAINOFFS;Zisk a posun (jasu) TP_RETINEX_GAINTRANSMISSION;Přenos zisku TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Zesílí nebo zeslabí mapu přenosu pro dosažení požadovaného jasu.\nOsa X je přenos.\nOsa Y je zisk. -TP_RETINEX_GAIN_TOOLTIP;Působí na obnovený obrázek.\n\nToto je velmi odlišné od ostatních nastavení. Použito pro černé nebo bílé pixely a pro vyvážení histogramu. TP_RETINEX_GAMMA;Gama TP_RETINEX_GAMMA_FREE;Volná TP_RETINEX_GAMMA_HIGH;Vysoká @@ -2053,10 +2012,8 @@ TP_SAVEDIALOG_OK_TIP;Zkratka: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Světla TP_SHADOWSHLIGHTS_HLTONALW;Tónový rozsah světel TP_SHADOWSHLIGHTS_LABEL;Stíny/Světla -TP_SHADOWSHLIGHTS_LOCALCONTR;Místní kontrast TP_SHADOWSHLIGHTS_RADIUS;Poloměr TP_SHADOWSHLIGHTS_SHADOWS;Stíny -TP_SHADOWSHLIGHTS_SHARPMASK;Maska ostrosti TP_SHADOWSHLIGHTS_SHTONALW;Tónový rozsah stínů TP_SHARPENEDGE_AMOUNT;Kvantita TP_SHARPENEDGE_LABEL;Hrany diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index eabf66ace..4e9c639ce 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -177,7 +177,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;LMMSE-Verbesserungsstufen überspringen EXPORT_BYPASS_SHARPENEDGE;Kantenschärfung überspringen EXPORT_BYPASS_SHARPENING;Schärfung überspringen EXPORT_BYPASS_SHARPENMICRO;Mikrokontrast überspringen -EXPORT_BYPASS_SH_HQ;Schatten/Lichter überspringen\n(Schärfemaske) EXPORT_FASTEXPORTOPTIONS;Schnell-Export - Einstellungen EXPORT_INSTRUCTIONS;Die Einstellungen zum schnellen Export\nerlauben es, zeit- und ressourcenintensive\nEntwicklungsschritte zu überspringen und dafür\ndie Warteschlangenverarbeitung mit\nschnellen Export-Einstellungen auszuführen.\nDieses Vorgehen wird zur schnelleren\nGenerierung von gering aufgelösten Bildern\nempfohlen, falls es auf die Geschwindigkeit\nankommt oder für ein oder mehrere Bilder\nandere Ausgabegrößen gewünscht werden,\nohne Änderungen an deren gespeicherten\nParameter vornehmen zu müssen. EXPORT_MAXHEIGHT;Maximale Höhe: @@ -190,7 +189,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Wendet alle Bearbeitungsschritte, im Gegensatz\nzu EXPORT_USE_NORMAL_PIPELINE;Standard EXTPROGTARGET_1;RAW EXTPROGTARGET_2;Stapelverarbeitung beendet -FILEBROWSER_ADDDELTEMPLATE;Vorlagen hinzufügen/entfernen... FILEBROWSER_APPLYPROFILE;Profil anwenden FILEBROWSER_APPLYPROFILE_PARTIAL;Profil selektiv anwenden FILEBROWSER_AUTODARKFRAME;Automatisches Dunkelbild @@ -1134,7 +1132,6 @@ PREFERENCES_BEHADDALLHINT;Setzt alle Parameter auf Hinzufügen.\nAnpassun PREFERENCES_BEHAVIOR;Verhalten PREFERENCES_BEHSETALL;Alle setzen PREFERENCES_BEHSETALLHINT;Setzt alle Parameter auf Setzen.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als Absolut zu den gespeicherten Werten interpretiert. -PREFERENCES_BLACKBODY;Wolfram PREFERENCES_CACHECLEAR;Löschen PREFERENCES_CACHECLEAR_ALL;Alle Dateien im Zwischenspeicher löschen: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Alle Dateien im Zwischenspeicher löschen mit Ausnahme der Bearbeitungsprofile: @@ -1171,11 +1168,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Format PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;Tag-ID PREFERENCES_CUSTPROFBUILDPATH;Anwendungspfad -PREFERENCES_D50;5000K -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Gefunden PREFERENCES_DARKFRAMESHOTS;Aufnahmen PREFERENCES_DARKFRAMETEMPLATES;Vorlagen @@ -1198,32 +1190,15 @@ PREFERENCES_FLATFIELDFOUND;Gefunden PREFERENCES_FLATFIELDSDIR;Weißbild-Verzeichnis PREFERENCES_FLATFIELDSHOTS;Aufnahmen PREFERENCES_FLATFIELDTEMPLATES;Vorlagen -PREFERENCES_FLUOF2;Fluoreszenz F2 -PREFERENCES_FLUOF7;Fluoreszenz F7 -PREFERENCES_FLUOF11;Fluoreszenz F11 PREFERENCES_FORIMAGE;Für Bilddateien PREFERENCES_FORRAW;Für RAW-Dateien PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Gleiche Miniaturbildgröße in der Dateiverwaltung und dem Filmstreifen verwenden PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Unterschiedliche Miniaturbildgrößen benötigen mehr Verarbeitungszeit beim Wechsel zwischen der Dateiverwaltung und dem Editor PREFERENCES_GIMPPATH;GIMP Installationsverzeichnis -PREFERENCES_GREY;Yb-Luminanz (%) des Ausgabegerätes -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_GREY18_OLD;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_GREYSC;Szenen-Yb-Luminanz (%) -PREFERENCES_GREYSC18;Yb = 18 CIE L#49 -PREFERENCES_GREYSCA;Automatisch PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogramm linksseitig -PREFERENCES_HISTOGRAMWORKING;Das Arbeitsprofil zur Darstellung des Haupthistogramms verwenden PREFERENCES_HISTOGRAM_TOOLTIP;Wenn aktiviert, wird das Arbeitsprofil für die Darstellung\ndes Haupthistogramms verwendet, andernfalls das des\ngammakorrigierten Ausgangsprofils. PREFERENCES_HLTHRESHOLD;Lichter - Schwelle PREFERENCES_ICCDIR;ICC-Profile-Verzeichnis -PREFERENCES_IMG_RELOAD_NEEDED;Änderungen werden nur auf neu geöffnete Bilder angewendet PREFERENCES_IMPROCPARAMS;Standard-Bearbeitungsprofile PREFERENCES_INSPECT_LABEL;Bildzwischenspeicher PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximale Anzahl Bilder im Zwischenspeicher @@ -1242,7 +1217,6 @@ PREFERENCES_MENUGROUPLABEL;Untermenü Farbmarkierung PREFERENCES_MENUGROUPPROFILEOPERATIONS;Untermenü Profiloperationen PREFERENCES_MENUGROUPRANK;Untermenü Bewertung PREFERENCES_MENUOPTIONS;Menüoptionen -PREFERENCES_METADATA;Metadaten PREFERENCES_MONINTENT;Standard-Rendering-Intent PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Standardfarbprofil @@ -1320,9 +1294,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutrales RAW-Bild PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Eingebundenes JPEG wenn in Originalgröße, sonst neutrales RAW-Bild PREFERENCES_TP_LABEL;Werkzeugbereich: PREFERENCES_TP_VSCROLLBAR;Keine vertikale Scrollbar -PREFERENCES_TUNNELMETADATA;Exif/XMP unverändert in die Ausgabedatei übernehmen. PREFERENCES_USEBUNDLEDPROFILES;Standardprofile verwenden -PREFERENCES_VIEW;Weißabgleich-Einstellung des Ausgabegerätes (Monitor, TV, Projektor, usw.) PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Zu kopierende Parameter PROFILEPANEL_GLOBALPROFILES;Standardprofile @@ -1537,8 +1509,6 @@ TP_COLORAPP_SURROUND_DARK;Dunkel TP_COLORAPP_SURROUND_DIM;Gedimmt TP_COLORAPP_SURROUND_EXDARK;Extrem Dunkel (Cutsheet) TP_COLORAPP_SURROUND_TOOLTIP;Verändert Töne und Farben unter Berücksichtigung der\nBetrachtungsbedingungen des Ausgabegerätes.\n\nDurchschnitt:\nDurchschnittliche Lichtumgebung (Standard).\nDas Bild wird nicht angepasst.\n\nGedimmt:\nGedimmte Umgebung (TV). Das Bild wird leicht dunkel.\n\nDunkel:\nDunkle Umgebung (Projektor). Das Bild wird dunkler.\n\nExtrem dunkel:\nExtrem dunkle Umgebung. Das Bild wird sehr dunkel. -TP_COLORAPP_SURSOURCE;Dunkle Umgebung -TP_COLORAPP_SURSOURCE_TOOLTIP;Kann verwendet werden, wenn das Quellbild\neinen schwarzen Rahmen besitzt. TP_COLORAPP_TCMODE_BRIGHTNESS;Helligkeit (Q) TP_COLORAPP_TCMODE_CHROMA;Buntheit (H) TP_COLORAPP_TCMODE_COLORF;Farbigkeit (M) @@ -1640,7 +1610,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;Maske anzeigen TP_DEHAZE_STRENGTH;Intensität TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto-Multizonen TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatisch Global -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Bewertung des Farbrauschens.\nDie Bewertung ist ungenau und sehr subjektiv! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Delta-Chrominanz Blau / Gelb TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Chrominanzkurve TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Erhöht / Reduziert die Intensität der\nChrominanz-Rauschreduzierung in\nAbhängigkeit der Farbsättigung. @@ -1658,8 +1627,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Rauschen: Mittelwert = %1 Hoch = TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Rauschen: Mittelwert = --- Hoch = --- TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Kachelgröße = %1 Zentrum: Tx = %2 Ty = %2 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Delta-Chrominanz Rot / Grün -TP_DIRPYRDENOISE_ENH;Erweiterter Modus -TP_DIRPYRDENOISE_ENH_TOOLTIP;Erhöht die Qualität der Rauschreduzierung auf Kosten einer um 20% erhöhten Verarbeitungszeit. TP_DIRPYRDENOISE_LABEL;Rauschreduzierung TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminanzkontrolle TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminanzkurve @@ -1688,7 +1655,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Iterationen TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Manchmal führt ein kleines 3×3-Fenster mit\nmehreren Iterationen zu besseren Ergebnissen\nals ein 7×7-Fenster mit nur einer Iteration. TP_DIRPYRDENOISE_MEDIAN_TYPE;Mediantyp TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Einen Medianfilter mit der gewünschten Fenstergröße auswählen.\nJe größer das Fenster, umso länger dauert die Verarbeitungszeit.\n\n3×3 weich: Nutzt 5 Pixel in einem 3×3-Pixelfenster.\n3×3: Nutzt 9 Pixel in einem 3×3-Pixelfenster.\n5×5 weich: Nutzt 13 Pixel in einem 5×5-Pixelfenster.\n5×5: Nutzt 25 Pixel in einem 5×5-Pixelfenster.\n7×7: Nutzt 49 Pixel in einem 7×7-Pixelfenster.\n9×9: Nutzt 81 Pixel in einem 9×9-Pixelfenster.\n\nManchmal ist das Ergebnis mit einem kleineren Fenster und mehreren Iterationen besser, als mit einem größeren und nur einer Iteration. -TP_DIRPYRDENOISE_SLI;Regler TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 weich TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1793,8 +1759,6 @@ TP_ICM_APPLYHUESATMAP;Basistabelle TP_ICM_APPLYHUESATMAP_TOOLTIP;Die eingebettete DCP-Basistabelle verwenden.\nDie Einstellung ist nur verfügbar wenn sie vom\nEingangsfarbprofil unterstützt wird. TP_ICM_APPLYLOOKTABLE;“Look“-Tabelle TP_ICM_APPLYLOOKTABLE_TOOLTIP;Die eingebettete DCP-“Look“-Tabelle verwenden.\nDie Einstellung ist nur verfügbar wenn sie vom\nEingangsfarbprofil unterstützt wird. -TP_ICM_BLENDCMSMATRIX;ICC Lichter mit Matrix überlagern -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Stellt bei Verwendung von LUT-basierten ICC-Profilen die Lichter wieder her. TP_ICM_BPC;Schwarzpunkt-Kompensation TP_ICM_DCPILLUMINANT;Illumination TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpoliert @@ -1925,7 +1889,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Diese Einstellung ist verfügbar, wenn "Autokorrektu TP_RAWCACORR_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden TP_RAWCACORR_CABLUE;Blau TP_RAWCACORR_CARED;Rot -TP_RAWCACORR_CASTR;Intensität TP_RAWEXPOS_BLACKS;Schattenkompression TP_RAWEXPOS_BLACK_0;Grün 1 (Master) TP_RAWEXPOS_BLACK_1;Rot @@ -1984,8 +1947,6 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Gleicht die Helligkeit der Frames an den ak TP_RAW_PIXELSHIFTGREEN;Bewegung im Grün-Kanal erkennen TP_RAW_PIXELSHIFTHOLEFILL;Lücken in der Bewegungsmaske erkennen TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Lücken in der Bewegungsmaske erkennen. -TP_RAW_PIXELSHIFTLMMSE;LMMSE für Bewegungsbereiche verwenden -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;LMMSE anstatt AMaZE für bewegte Bildbereiche verwenden.\nSinnvoll bei High-ISO-Aufnahmen. TP_RAW_PIXELSHIFTMEDIAN;Median TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Verwenden Sie den Median aller Frames anstelle des\nausgewählten Frames für Regionen mit Bewegung.\nEntfernt Objekte, die an verschiedenen Stellen in allen\nFrames vorkommen. Erzeugt einen Bewegungseffekt\nauf langsame (überlappende) Objekte. TP_RAW_PIXELSHIFTMM_AUTO;Automatisch @@ -1993,7 +1954,6 @@ TP_RAW_PIXELSHIFTMM_CUSTOM;Benutzerdefiniert TP_RAW_PIXELSHIFTMM_OFF;Aus TP_RAW_PIXELSHIFTMOTION;Motion detection level (deprecated) TP_RAW_PIXELSHIFTMOTIONMETHOD;Bewegungskorrektur -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 = Keine Bewegungserkennung\n1 - 99 = Bewegung wird entsprechend dem Wert erkannt.\nHöhere Werte erhöhen die Trefferquote\n100 = Der mit AMaZE interpolierte Frame wird verwendet. TP_RAW_PIXELSHIFTNONGREENCROSS;Bewegung im Rot/Blau-Kanal erkennen TP_RAW_PIXELSHIFTSHOWMOTION;Bewegungsmaske anzeigen TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Nur Maske anzeigen @@ -2042,7 +2002,6 @@ TP_RETINEX_GAIN;Kontrast TP_RETINEX_GAINOFFS;Verstärkung und Ausgleich (Helligkeit) TP_RETINEX_GAINTRANSMISSION;Transmissionsverstärkung TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Ändert die Helligkeit durch Verstärkung oder\nAbschwächung der Transmissionskarte. -TP_RETINEX_GAIN_TOOLTIP;Wirkt sich auf das verarbeitete Bild aus. Wird für schwarze oder weiße Pixel verwendet und hilft das Histogramm auszugleichen. TP_RETINEX_GAMMA;Gammakorrektur TP_RETINEX_GAMMA_FREE;Benutzerdefiniert TP_RETINEX_GAMMA_HIGH;Hoch @@ -2120,10 +2079,8 @@ TP_SAVEDIALOG_OK_TIP;Taste: Strg + Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Lichter TP_SHADOWSHLIGHTS_HLTONALW;Tonwertbreite Lichter TP_SHADOWSHLIGHTS_LABEL;Schatten / Lichter -TP_SHADOWSHLIGHTS_LOCALCONTR;Lokaler Kontrast TP_SHADOWSHLIGHTS_RADIUS;Radius TP_SHADOWSHLIGHTS_SHADOWS;Schatten -TP_SHADOWSHLIGHTS_SHARPMASK;Schärfemaske TP_SHADOWSHLIGHTS_SHTONALW;Tonwertbreite Schatten TP_SHARPENEDGE_AMOUNT;Intensität TP_SHARPENEDGE_LABEL;Kantenschärfung diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index a39d2ee71..6bc51a0ac 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -218,7 +218,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening !EXPORT_BYPASS_SHARPENING;Bypass Sharpening !EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights !EXPORT_FASTEXPORTOPTIONS;Fast Export Options !EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. !EXPORT_MAXHEIGHT;Maximum height: @@ -231,7 +230,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) !EXTPROGTARGET_1;raw !EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... !FILEBROWSER_APPLYPROFILE;Apply !FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial !FILEBROWSER_AUTODARKFRAME;Auto dark-frame @@ -1129,7 +1127,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1166,11 +1163,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates @@ -1193,31 +1185,14 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots !PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 !PREFERENCES_FORIMAGE;For non-raw photos !PREFERENCES_FORRAW;For raw photos !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_GIMPPATH;GIMP installation directory -!PREFERENCES_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic !PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator !PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. !PREFERENCES_HLTHRESHOLD;Threshold for clipped highlights -!PREFERENCES_IMG_RELOAD_NEEDED;These changes require the image to be reloaded (or a new image to be opened) to take effect. !PREFERENCES_IMPROCPARAMS;Default Processing Profile !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images @@ -1233,7 +1208,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. @@ -1308,9 +1282,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1507,8 +1479,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_COLORAPP_SURROUND_DARK;Dark !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 @@ -1599,7 +1569,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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_BLUEYELLOW;Chrominance - Blue-Yellow !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. @@ -1614,8 +1583,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Preview noise: Mean=%1 High=%2 !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Preview noise: Mean= - High= - !TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. !TP_DIRPYRDENOISE_LABEL;Noise Reduction !TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control !TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve @@ -1643,7 +1610,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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;Median type !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 @@ -1739,8 +1705,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. !TP_ICM_BPC;Black Point Compensation !TP_ICM_DCPILLUMINANT;Illuminant !TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated @@ -1860,7 +1824,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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_CABLUE;Blue !TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACKS;Black Levels !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1917,15 +1880,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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 @@ -1974,7 +1934,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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 @@ -2051,10 +2010,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_SHADOWSHLIGHTS_HIGHLIGHTS;Highlights !TP_SHADOWSHLIGHTS_HLTONALW;Highlights tonal width !TP_SHADOWSHLIGHTS_LABEL;Shadows/Highlights -!TP_SHADOWSHLIGHTS_LOCALCONTR;Local contrast !TP_SHADOWSHLIGHTS_RADIUS;Radius !TP_SHADOWSHLIGHTS_SHADOWS;Shadows -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask !TP_SHADOWSHLIGHTS_SHTONALW;Shadows tonal width !TP_SHARPENEDGE_AMOUNT;Quantity !TP_SHARPENEDGE_LABEL;Edges diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 47eac5f05..de372a986 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -100,7 +100,6 @@ !EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening !EXPORT_BYPASS_SHARPENING;Bypass Sharpening !EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -!EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights !EXPORT_FASTEXPORTOPTIONS;Fast Export Options !EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. !EXPORT_MAXHEIGHT;Maximum height: @@ -113,7 +112,6 @@ !EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) !EXTPROGTARGET_1;raw !EXTPROGTARGET_2;queue-processed -!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... !FILEBROWSER_APPLYPROFILE;Apply !FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial !FILEBROWSER_AUTODARKFRAME;Auto dark-frame @@ -1056,7 +1054,6 @@ !PREFERENCES_BEHAVIOR;Behavior !PREFERENCES_BEHSETALL;All to 'Set' !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1093,11 +1090,6 @@ !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID !PREFERENCES_CUSTPROFBUILDPATH;Executable path -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates @@ -1120,32 +1112,15 @@ !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots !PREFERENCES_FLATFIELDTEMPLATES;templates -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 !PREFERENCES_FORIMAGE;For non-raw photos !PREFERENCES_FORRAW;For raw photos !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_GIMPPATH;GIMP installation directory -!PREFERENCES_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic !PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator !PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. !PREFERENCES_HLTHRESHOLD;Threshold for clipped highlights !PREFERENCES_ICCDIR;Directory containing color profiles -!PREFERENCES_IMG_RELOAD_NEEDED;These changes require the image to be reloaded (or a new image to be opened) to take effect. !PREFERENCES_IMPROCPARAMS;Default Processing Profile !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images @@ -1164,7 +1139,6 @@ !PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options -!PREFERENCES_METADATA;Metadata !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1242,9 +1216,7 @@ !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -!PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1459,8 +1431,6 @@ !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) !TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness @@ -1562,7 +1532,6 @@ !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_BLUEYELLOW;Chrominance - Blue-Yellow !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. @@ -1580,8 +1549,6 @@ !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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. !TP_DIRPYRDENOISE_LABEL;Noise Reduction !TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control !TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve @@ -1610,7 +1577,6 @@ !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;Median type !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 @@ -1715,8 +1681,6 @@ !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_BLENDCMSMATRIX;Blend ICC highlights with matrix -!TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. !TP_ICM_BPC;Black Point Compensation !TP_ICM_DCPILLUMINANT;Illuminant !TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated @@ -1847,7 +1811,6 @@ !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACKS;Black Levels !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1906,15 +1869,12 @@ !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 @@ -1963,7 +1923,6 @@ !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 @@ -2041,10 +2000,8 @@ !TP_SHADOWSHLIGHTS_HIGHLIGHTS;Highlights !TP_SHADOWSHLIGHTS_HLTONALW;Highlights tonal width !TP_SHADOWSHLIGHTS_LABEL;Shadows/Highlights -!TP_SHADOWSHLIGHTS_LOCALCONTR;Local contrast !TP_SHADOWSHLIGHTS_RADIUS;Radius !TP_SHADOWSHLIGHTS_SHADOWS;Shadows -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask !TP_SHADOWSHLIGHTS_SHTONALW;Shadows tonal width !TP_SHARPENEDGE_AMOUNT;Quantity !TP_SHARPENEDGE_LABEL;Edges diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index c4450e104..d1f939df8 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -158,7 +158,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Saltar [raw] Aplicar pasos de mejora LMMSE EXPORT_BYPASS_SHARPENEDGE;Saltar Enfoque de bordes EXPORT_BYPASS_SHARPENING;Saltar Enfoque EXPORT_BYPASS_SHARPENMICRO;Saltar Microcontraste -EXPORT_BYPASS_SH_HQ;Saltar Máscara de Enfoque Sombras/Luces EXPORT_FASTEXPORTOPTIONS;Opciones de Exportación Rápida EXPORT_INSTRUCTIONS;Las opciones de Exportación Rápida proporcionan la posibilidad de saltarse pasos de revelado que consumen mucho tiempo y recursos, ejecutando en su lugar el procesamiento de la cola utilizando los ajustes de Exportación Rápida. Se recomienda este método para generar más rápidamente imágenes de menor resolución: cuando la velocidad es prioritaria, o cuando se desea cambiar el tamaño de una o muchas imágenes de salida sin modificar sus parámetros de revelado. EXPORT_MAXHEIGHT;Altura máxima: @@ -171,7 +170,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Usar un conducto de procesamiento dedicado para las EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) EXTPROGTARGET_1;Raw EXTPROGTARGET_2;procesado en cola -FILEBROWSER_ADDDELTEMPLATE;Añadir/Borrar plantillas... FILEBROWSER_APPLYPROFILE;Aplicar perfil FILEBROWSER_APPLYPROFILE_PARTIAL;Aplicar perfil (parcial) FILEBROWSER_AUTODARKFRAME;Toma Negra automática @@ -1115,7 +1113,6 @@ PREFERENCES_BEHADDALLHINT;Establezca todos los parámetros del modo AgregarEstablecer.\nLos ajustes de parámetros en el panel de la herramienta de lotes serán serán absolutos, se mostrarán los valores vigentes -PREFERENCES_BLACKBODY;Tungsteno PREFERENCES_CACHECLEAR;Borrar PREFERENCES_CACHECLEAR_ALL;Borrar todos los archivos en caché: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Borre todos los archivos en caché excepto los perfiles de procesamiento en caché: @@ -1146,11 +1143,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Clave de formato PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nombre PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;ID Etiqueta PREFERENCES_CUSTPROFBUILDPATH;Ruta al programa ejecutable -PREFERENCES_D50;5000°K -PREFERENCES_D50_OLD;5000°K -PREFERENCES_D55;5500°K -PREFERENCES_D60;6000°K -PREFERENCES_D65;6500°K PREFERENCES_DARKFRAMEFOUND;Encontrado PREFERENCES_DARKFRAMESHOTS;disparos PREFERENCES_DARKFRAMETEMPLATES;plantillas @@ -1173,32 +1165,15 @@ PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Carpeta de archivos de campo plano PREFERENCES_FLATFIELDSHOTS;disparos PREFERENCES_FLATFIELDTEMPLATES;plantillas -PREFERENCES_FLUOF2;Fluorescente F2 -PREFERENCES_FLUOF7;Fluorescente F7 -PREFERENCES_FLUOF11;Fluorescente F11 PREFERENCES_FORIMAGE;Para fotos de tipo diferente a raw PREFERENCES_FORRAW;Para fotos Raw PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;La misma altura en miniatura entre la tira de película y el explorador de archivos PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Tener un tamaño separado,en las miniaturas, requerirá más tiempo de procesamiento cada vez que alterne entre la única pestaña Editor y el Explorador de archivos. PREFERENCES_GIMPPATH;Carpeta de instalación de GIMP -PREFERENCES_GREY;Luminancia (%) Yb del dispositivo de salida -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_GREY18_OLD;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_GREYSC;Escena Yb luminancia (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automático PREFERENCES_HISTOGRAMPOSITIONLEFT;Histograma en panel izquierdo -PREFERENCES_HISTOGRAMWORKING;Usar perfil de trabajo para el histograma principal y el navegador PREFERENCES_HISTOGRAM_TOOLTIP;Si está activado, el perfil de trabajo se utiliza para renderizar el histograma principal y el panel navegador, de lo contrario se utiliza el perfil de Gamma de la Corrección de salida. PREFERENCES_HLTHRESHOLD;Umbral de luces altas cortadas PREFERENCES_ICCDIR;Carpeta con perfiles de color ICC -PREFERENCES_IMG_RELOAD_NEEDED;Estos cambios requieren que la imagen se vuelva a cargar (o que se abra una nueva imagen) para que tenga efecto. PREFERENCES_IMPROCPARAMS;Parámetros de procesamiento de imágenes predeterminados PREFERENCES_INSPECT_LABEL;Inspeccionar PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Número máximo de imágenes en caché @@ -1218,7 +1193,6 @@ PREFERENCES_MENUGROUPLABEL;Grupo "Etiquetado con color" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupo "Operaciones de Perfil de Procesamiento" PREFERENCES_MENUGROUPRANK;Grupo "Asignar Rango" PREFERENCES_MENUOPTIONS;Opciones de menú de contexto -PREFERENCES_METADATA;Metadatos PREFERENCES_MONINTENT;Intento de representación predeterminado PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Perfil de color predeterminado @@ -1294,9 +1268,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Representación (Render) Raw neutral PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;JPEG incrustado si es de tamaño completo, de lo contrario es neutral sin formato PREFERENCES_TP_LABEL;Panel de herramientas: PREFERENCES_TP_VSCROLLBAR;Ocultar barra de desplazamiento vertical del panel de herramientas -PREFERENCES_TUNNELMETADATA;Copie Exif / IPTC / XMP sin cambios en el archivo de salida PREFERENCES_USEBUNDLEDPROFILES;Usar perfiles empaquetados -PREFERENCES_VIEW;Balance de blancos en el dispositivo de salida (monitor, TV, proyector...) PREFERENCES_WORKFLOW;Disposición PROFILEPANEL_COPYPPASTE;Parámetros a copiar PROFILEPANEL_GLOBALPROFILES;Perfiles empaquetados @@ -1505,8 +1477,6 @@ TP_COLORAPP_SURROUND_DARK;Oscuro TP_COLORAPP_SURROUND_DIM;Luz Tenue TP_COLORAPP_SURROUND_EXDARK;Muy oscuro TP_COLORAPP_SURROUND_TOOLTIP;Cambia la tonalidad y color de la imagen teniendo en cuenta las condiciones de visualización en el dispositivo de salida\n\nPromedio:\nEntorno con iluminación media(estándar)\nLa imagen no cambiará\n\n\n\nLuz Tenue:\nAmbiente a media luz (TV)\nLa imagen se pondrá ligeramente oscura\n\nOscuro:\nEntorno oscuro (proyector)\nLa imagen se pondrá más oscura\n\nMuy Oscuro:\nEntorno extremadamente oscuro\nLa imagen se podrá bien oscura -TP_COLORAPP_SURSOURCE;Entorno oscuro -TP_COLORAPP_SURSOURCE_TOOLTIP;Puede usarse si la imagen original tiene borde oscuro. TP_COLORAPP_TCMODE_BRIGHTNESS;Brillo TP_COLORAPP_TCMODE_CHROMA;Crominancia TP_COLORAPP_TCMODE_COLORF;Colorido @@ -1607,7 +1577,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;Mostrar mapa de profundidad TP_DEHAZE_STRENGTH;Fuerza TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Control automático de multi-zonas TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Control automático global -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Trate de evaluar el ruido del color \nTenga cuidado, este cálculo es promedio y es bastante subjetivo. TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Crominancia: Azul-Amarillo TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Curva de Crominancia TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Aumente (multiplique) el valor de todos los controles deslizantes de crominancia. \nEsta curva le permite ajustar la intensidad de la reducción de ruido cromático en función de la cromaticidad, por ejemplo, para aumentar la acción en áreas de baja saturación y para disminuirla en aquellas de alta saturación. @@ -1625,8 +1594,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Previsualización de ruido: Media TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Previsualización del ruido: Media = - Alta = - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Tamaño del mosaico =% 1, Centro: Tx =% 2 Ty =% 3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Crominancia: Rojo-Verde -TP_DIRPYRDENOISE_ENH;Modo mejorado -TP_DIRPYRDENOISE_ENH_TOOLTIP;Incrementa la calidad de la Reducción de Ruido a costa de un incremento de 20% en el tiempo de procesamiento TP_DIRPYRDENOISE_LABEL;Reducción del ruido TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Control de luminancia TP_DIRPYRDENOISE_LUMINANCE_CURVE;Curva de Luminancia @@ -1655,7 +1622,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Iteracciones Median TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;La aplicación de tres iteraciones de filtro de mediana con un tamaño de ventana de 3 × 3 a menudo conduce a mejores resultados que el uso de una iteración de filtro de mediana con un tamaño de ventana de 7 × 7. TP_DIRPYRDENOISE_MEDIAN_TYPE;Tipo Median TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Aplica un filtro de mediana para el tamaño de la ventana deseada. Cuanto mayor sea el tamaño de la ventana, más tiempo tardará. \n3 × 3 soft: trata 5 píxeles en una ventana de 3 × 3 píxeles. \n3 × 3: trata 9 píxeles en una ventana de 3 × 3 píxeles. \n5 × 5 suave: trata 13 píxeles en una ventana de 5 × 5 píxeles. \n5 × 5: trata 25 píxeles en una ventana de 5 × 5 píxeles. \n7 × 7: trata 49 píxeles en una ventana de 7 × 7 píxeles. \n9 × 9: trata 81 píxeles en una ventana de 9 × 9 píxeles. \nA veces es posible lograr una mayor calidad ejecutando varias iteraciones con un tamaño de ventana más pequeño que una iteración con una más grande. -TP_DIRPYRDENOISE_SLI;Deslizador TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 suavisado TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1760,8 +1726,6 @@ TP_ICM_APPLYHUESATMAP;Tabla base TP_ICM_APPLYHUESATMAP_TOOLTIP;Emplear la tabla base DCP incrustada (Mapa Hue Sat). La configuración solo está disponible si el DCP seleccionado tiene unoloy the embedded DCP base table (HueSatMap). The setting is only available if the selected DCP has one. TP_ICM_APPLYLOOKTABLE;Revisar tabla TP_ICM_APPLYLOOKTABLE_TOOLTIP;Emplear la tabla de apariencia DCP incrustada. La configuración solo está disponible si el DCP seleccionado tiene uno. -TP_ICM_BLENDCMSMATRIX;Mezclar las luces altas ICC con matriz -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Permite recuperar luces altas quemadas cuando se usan perfiles ICC basados en LUT TP_ICM_BPC;Compensación de punto negro TP_ICM_DCPILLUMINANT;Iluminante TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolado @@ -1887,7 +1851,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Esta configuración está disponible si se marca "Co TP_RAWCACORR_AVOIDCOLORSHIFT;Evitar el cambio de color TP_RAWCACORR_CABLUE;Azul TP_RAWCACORR_CARED;Rojo -TP_RAWCACORR_CASTR;Fuerza TP_RAWEXPOS_BLACKS;Niveles de negro TP_RAWEXPOS_BLACK_0;Verde 1 (principal) TP_RAWEXPOS_BLACK_1;Rojo @@ -1945,8 +1908,6 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Ecualice el brillo de los cuadros con el br TP_RAW_PIXELSHIFTGREEN;Compruebe el canal verde para el movimiento TP_RAW_PIXELSHIFTHOLEFILL;Rellene los fallos en la máscara de movimiento TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Rellene los fallos en la máscara de movimiento -TP_RAW_PIXELSHIFTLMMSE;Utilice LMMSE para regiones móviles -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Use LMMSE en lugar de AMaZE para las áreas de movimiento. \nÚtil para imágenes de alta ISO. TP_RAW_PIXELSHIFTMEDIAN;Usa la mediana pa3x3 nuevo umbral parara las regiones móviles. TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use la mediana de todos los cuadros en lugar del cuadro seleccionado para las regiones con movimiento. \nElimina los objetos que se encuentran en diferentes lugares en todos los cuadros. \nBrinda efecto de movimiento en objetos de movimiento lento (superpuestos). TP_RAW_PIXELSHIFTMM_AUTO;Automático @@ -1954,7 +1915,6 @@ TP_RAW_PIXELSHIFTMM_CUSTOM;Personalizado TP_RAW_PIXELSHIFTMM_OFF;Apagado TP_RAW_PIXELSHIFTMOTION;Nivel de detección de movimiento (en desuso) TP_RAW_PIXELSHIFTMOTIONMETHOD;Corrección del movimiento -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 significa que no hay detección de movimiento. \n1 - 99 significa que el movimiento se detectará de acuerdo con este valor. Aumente el valor para aumentar la tasa de detección. \n100 significa que se utilizará el marco de demostración AMaZE.ción de movimiento. \n1 - 99 significa que el movimiento se detectará de acuerdo con este valor. Aumente el valor para aumentar la tasa de detección. \n100 significa que se utilizará el marco de demostración AMaZE.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;Compruebe los canales rojos/azules para el movimiento TP_RAW_PIXELSHIFTSHOWMOTION;Mostrar máscara de movimiento TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Mostrar solo máscara de movimiento @@ -2001,7 +1961,6 @@ TP_RETINEX_GAIN;Aumentar TP_RETINEX_GAINOFFS;Aumentar y Offset (brillo) TP_RETINEX_GAINTRANSMISSION;Aumentar transmisión TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplifique o reduzca el mapa de transmisión para lograr la luminancia. \nAbscisa: transmisión -min desde 0, media y valores (máx.). \nOrdena: ganancia. -TP_RETINEX_GAIN_TOOLTIP;Actúa sobre la imagen restaurada. \nÉsta es muy diferente de las otras configuraciones. Se utiliza para píxeles blancos o negros, y para ayudar a equilibrar el histograma. TP_RETINEX_GAMMA;Gamma TP_RETINEX_GAMMA_FREE;Libre TP_RETINEX_GAMMA_HIGH;Alta @@ -2079,10 +2038,8 @@ TP_SAVEDIALOG_OK_TIP;Tecla de Atajo Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Luces altas TP_SHADOWSHLIGHTS_HLTONALW;Ancho tonal de Luces Altas TP_SHADOWSHLIGHTS_LABEL;Sombras/Luces altas -TP_SHADOWSHLIGHTS_LOCALCONTR;Contraste local TP_SHADOWSHLIGHTS_RADIUS;Radio TP_SHADOWSHLIGHTS_SHADOWS;Sombras -TP_SHADOWSHLIGHTS_SHARPMASK;Máscara de enfoque TP_SHADOWSHLIGHTS_SHTONALW;Ancho tonal de Sombras TP_SHARPENEDGE_AMOUNT;Cantidad TP_SHARPENEDGE_LABEL;Bordes diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 6348769f5..79a4ae1e8 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -97,7 +97,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Ignorer le niveau d'amélioration LMMSE [raw] EXPORT_BYPASS_SHARPENEDGE;Ignorer netteté des bords EXPORT_BYPASS_SHARPENING;Ignorer la netteté EXPORT_BYPASS_SHARPENMICRO;Ignorer netteté des microcontrastes -EXPORT_BYPASS_SH_HQ;Ignorer Ombres/Hautes lumières (HQ) EXPORT_FASTEXPORTOPTIONS;Options d'Export Rapide EXPORT_INSTRUCTIONS;Les options d'Export Rapide permettent de forcer des paramètres afin d'éviter d'utiliser des outils très consommateurs de temps et de ressources, et d'utiliser ces options dans la file de traitement. Cette méthode est recommandée pour la génération rapide d'images de basse résolution quand la vitesse est une priorité ou lorsqu'on désire une version redimensionnée d'une ou plusieurs images de sortie sans avoir à modifier leurs paramètres de développement. EXPORT_MAXHEIGHT;Hauteur maximum: @@ -110,7 +109,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Utilise un pipeline de traitement dédié pour les EXPORT_USE_NORMAL_PIPELINE;Standard\n(ignore des étapes, redimentionne à la fin) EXTPROGTARGET_1;raw EXTPROGTARGET_2;file de traitement -FILEBROWSER_ADDDELTEMPLATE;Ajouter/Supprimer le modèle... FILEBROWSER_APPLYPROFILE;Appliquer le profil FILEBROWSER_APPLYPROFILE_PARTIAL;Appliquer le profil (partiel) FILEBROWSER_AUTODARKFRAME;Soustraction automatique de Trame Noire @@ -1052,7 +1050,6 @@ PREFERENCES_BEHADDALLHINT;Règle tous les paramètres sur le mode Ajoute. PREFERENCES_BEHAVIOR;Comportement PREFERENCES_BEHSETALL;Tout à 'Remplace' PREFERENCES_BEHSETALLHINT;Règle tous les paramètres sur le mode Remplace.\nLa modification des paramètres dans le panneau d'édition en par lot sera absolue, les valeurs réelles seront affichées -PREFERENCES_BLACKBODY;Tungstène PREFERENCES_CACHECLEAR;Vider PREFERENCES_CACHECLEAR_ALL;Vider tous les fichiers mis en cache : PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Vider tous les fichiers mis en cache excepté les profils de traitement : @@ -1089,11 +1086,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Format des clés PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nom PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Chemin de l'exécutable -PREFERENCES_D50;5000K -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Trouvé PREFERENCES_DARKFRAMESHOTS;image(s) PREFERENCES_DARKFRAMETEMPLATES;modèle(s) @@ -1116,32 +1108,15 @@ PREFERENCES_FLATFIELDFOUND;Trouvé PREFERENCES_FLATFIELDSDIR;Dossier des images de Champ Uniforme PREFERENCES_FLATFIELDSHOTS;image(s) PREFERENCES_FLATFIELDTEMPLATES;modèle(s) -PREFERENCES_FLUOF2;Fluorescent F2 -PREFERENCES_FLUOF7;Fluorescent F7 -PREFERENCES_FLUOF11;Fluorescent F11 PREFERENCES_FORIMAGE;Pour les fichiers images PREFERENCES_FORRAW;Pour les fichiers RAW PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Taille de vignette identique entre l'Éditeur et le Navigateur de Fichier PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Avoir une hauteur différente demandera plus de temp de traitement à chaque fois que vous baculerez entre l'Éditeur unique et le Navigateur de Fichier. PREFERENCES_GIMPPATH;Dossier d'intallation de GIMP -PREFERENCES_GREY;Luminance Yb du périphérique de sortie (%) -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_GREY18_OLD;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_GREYSC;Luminance Yb de la scène (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automatique PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogramme dans le panneau de gauche -PREFERENCES_HISTOGRAMWORKING;Utiliser le profil de travail pour l'histogramme principal et le Navigateur PREFERENCES_HISTOGRAM_TOOLTIP;Si activé, le profil couleur de travail est utilisé pour les données d'histogramme et le panneau Navigateur, sinon le profil de travail de sortie "gamma-corrigé" est utilisé. PREFERENCES_HLTHRESHOLD;Seuil pour le dépassement de domaine supérieur PREFERENCES_ICCDIR;Dossier des profils ICC -PREFERENCES_IMG_RELOAD_NEEDED;Ces changements nécessitent un rechargement de l'image (ou l'ouverture d'une autre image) pour prendre effet. PREFERENCES_IMPROCPARAMS;Paramètres de traitement d'image par défaut PREFERENCES_INSPECT_LABEL;Inspecter PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Nombre maxi de mémoire tampon @@ -1160,7 +1135,6 @@ PREFERENCES_MENUGROUPLABEL;Label PREFERENCES_MENUGROUPPROFILEOPERATIONS;Opérations sur les profils PREFERENCES_MENUGROUPRANK;Classement PREFERENCES_MENUOPTIONS;Options du menu -PREFERENCES_METADATA;Metadonnées PREFERENCES_MONINTENT;Intention de rendu par défaut PREFERENCES_MONITOR;Moniteur PREFERENCES_MONPROFILE;Profil couleur par défaut @@ -1238,9 +1212,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Rendu Neutre des données Raw PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;JPEG inclus si pleine taille, rendu Neutre des données Raw sinon PREFERENCES_TP_LABEL;Panneau des outils: PREFERENCES_TP_VSCROLLBAR;Cacher la barre de défilement verticale -PREFERENCES_TUNNELMETADATA;Copier les données Exif/IPTC/XMP tel quel dans le fichier de sortie PREFERENCES_USEBUNDLEDPROFILES;Utiliser les profils fournis -PREFERENCES_VIEW;Point blanc du périphérique sortie (moniteur, TV, projecteur,...) PREFERENCES_WORKFLOW;Habitudes de travail PROFILEPANEL_COPYPPASTE;Paramètres à copier PROFILEPANEL_GLOBALPROFILES;Profils fournis @@ -1449,8 +1421,6 @@ TP_COLORAPP_SURROUND_DARK;Sombre TP_COLORAPP_SURROUND_DIM;Tamisé TP_COLORAPP_SURROUND_EXDARK;Extrêmement Sombre (Transparent) TP_COLORAPP_SURROUND_TOOLTIP;Change les tons et couleurs pour prendre en compte les conditions de visionnage du périphérique de sortie\n\nMoyen:\nLuminance de l'entourage moyen (standard)\nL'image ne va pas changer\n\nTamisé:\nEntourage légèrement sombre (TV)\nL'image va devenir un peu plus sombre\n\nSombre:\nEntourage sombre (projecteur)\nL'image va devenir plus sombre\n\nExtrêmement sombre:\nEntourage noir (transparents)\nL'image va devenir encore plus sombre -TP_COLORAPP_SURSOURCE;Entourage sombre -TP_COLORAPP_SURSOURCE_TOOLTIP;Peut être utilisé si l'image source a un bord noir. TP_COLORAPP_TCMODE_BRIGHTNESS;Brillance TP_COLORAPP_TCMODE_CHROMA;Chroma TP_COLORAPP_TCMODE_COLORF;Niveau de couleurs @@ -1551,7 +1521,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;Montrer la Carte de Profondeur TP_DEHAZE_STRENGTH;Force TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Multi-zones auto TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Global automatique -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Essaie d'évaluer le bruit chroma\nFaites attention, cela calcul une moyenne, et est très subjectif ! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominance - Bleu-Jaune TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Courbe de chrominance TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Augmente (multiplie) la valeur de tous les curseurs de chrominance.\nCette courbe vous permet d'ajuster la force de la réduction de bruit chromatique en fonction de la chromaticité, par exemple pour augmenter l'action dans les zones faiblement saturées et pour la diminuer dans celles très saturées. @@ -1569,8 +1538,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Bruit de l'aperçu: Moyen=%1 Hau TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Bruit de l'aperçu: Moyen= - Haut= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Taille des tuiles =%1, Centre: Tx=%2 Ty=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominance - Rouge-Vert -TP_DIRPYRDENOISE_ENH;Mode amélioré -TP_DIRPYRDENOISE_ENH_TOOLTIP;Augmente la qualité du débruitage, mais augmente le temps de traitement d'environ 20% TP_DIRPYRDENOISE_LABEL;Réduction de Bruit TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Contrôle de luminance TP_DIRPYRDENOISE_LUMINANCE_CURVE;Courbe de luminance @@ -1599,7 +1566,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Itérations TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Appliquer trois itérations avec une taille de fenêtre de 3×3 aboutit souvent à de meilleurs résultats qu'une seule itération avec une taille de fenêtre de 7×7. TP_DIRPYRDENOISE_MEDIAN_TYPE;Type de médiane TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Applique un filtre médian de la taille de "fenêtre" désirée. Plus cette taille est grande, plus cela prendra de temps.\n\n3×3 doux: traite 5 pixels dans une fenêtre de 3×3 pixels.\n3×3: traite 9 pixels dans une fenêtre de 3×3 pixels.\n5×5 doux: traite 13 pixels dans une fenêtre de 5×5 pixels.\n5×5: traite 25 pixels dans une fenêtre de 5×5 pixels.\n7×7: traite 49 pixels dans une fenêtre de 7×7 pixels.\n9×9: traite 81 pixels dans une fenêtre 9×9 pixels.\n\nIl est parfois possible d'atteindre une meilleurs qualité en appliquant plusieurs itérations d'une petite fenêtre qu'une seule itération d'une grande. -TP_DIRPYRDENOISE_SLI;Curseur TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 doux TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1704,8 +1670,6 @@ TP_ICM_APPLYHUESATMAP;Table de base TP_ICM_APPLYHUESATMAP_TOOLTIP;Utilise la table de base (HueSatMap) contenu dans le profil DCP. Ce réglage n'est possible que si le profil DCP sélectionné en contient une. TP_ICM_APPLYLOOKTABLE;Table de correspondance TP_ICM_APPLYLOOKTABLE_TOOLTIP;Utilise la table de correspondance (LUT) contenu dans le profil DCP. Ce réglage n'est possible que si le profil DCP sélectionné en contient une. -TP_ICM_BLENDCMSMATRIX;Mélange des hautes lumières\ndu profil ICC avec la matrice -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Activer la récupération des zones brûlées lorsque les profils ICC basés sur la LUT sont utilisés TP_ICM_BPC;Compensation du Point Noir TP_ICM_DCPILLUMINANT;Illuminant TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolé @@ -1831,7 +1795,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Ce réglage est disponible si "Correction-auto" est TP_RAWCACORR_AVOIDCOLORSHIFT;Éviter les dérives couleurs TP_RAWCACORR_CABLUE;Bleu TP_RAWCACORR_CARED;Rouge -TP_RAWCACORR_CASTR;Force TP_RAWEXPOS_BLACKS;Niveaux de noir TP_RAWEXPOS_BLACK_0;Vert 1 (maître) TP_RAWEXPOS_BLACK_1;Rouge @@ -1890,8 +1853,6 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Égalise la luminosité des sous-images à TP_RAW_PIXELSHIFTGREEN;Vérifier le canal vert pour le mouvement TP_RAW_PIXELSHIFTHOLEFILL;Rempli les trous dans le masque de mouvement TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Rempli les trous dans le masque de mouvement -TP_RAW_PIXELSHIFTLMMSE;Utilise LMMSE pour les zone de mouvement -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Utilise LMMSE au lieu d'AMaZE pour les zone de mouvement.\nutil pour les images de haut ISO. TP_RAW_PIXELSHIFTMEDIAN;Utilise la médiane pour les zones de mouvement TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Utilise la médianes de toutes les sous-images au lieu de la sous-images sélectionnée pour les zones de mouvement.\nRetir les objets qui sont à des endroits différents dans toutes les sous-images.\nDonne un effet de mouvement aux objets se déplaçant lentement (se chevauchant). TP_RAW_PIXELSHIFTMM_AUTO;Automatique @@ -1899,7 +1860,6 @@ TP_RAW_PIXELSHIFTMM_CUSTOM;Manuel TP_RAW_PIXELSHIFTMM_OFF;Arrêt TP_RAW_PIXELSHIFTMOTION;Niveau de détection de mouvement (dépréconisé) TP_RAW_PIXELSHIFTMOTIONMETHOD;Correction de Mouvement -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 signifie pas de détection de mouvement.\n1 - 99 signifie que le mouvement sera détecté par-rapport à cette valeur. Augmentez cette valeur pour augmenter le taux de détection.\n100 signifie que la sous-image sélectionnée et dématricée en AMaZE sera utilisée tel quel. TP_RAW_PIXELSHIFTNONGREENCROSS;Vérifier les canaux rouge/bleu pour le mouvement TP_RAW_PIXELSHIFTSHOWMOTION;Voir le masque de mouvement TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Voir uniquement le masque @@ -1946,7 +1906,6 @@ TP_RETINEX_GAIN;Gain TP_RETINEX_GAINOFFS;Gain et Décalage (brillance) TP_RETINEX_GAINTRANSMISSION;Gain sur Transmission TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplifie ou réduit le canal transmission pour atteindre la luminance souhaitée.\nAbscisses: transmission ; min = 0, max = valeurs.\nOrdonnées: gain. -TP_RETINEX_GAIN_TOOLTIP;Agit sur l'image recomposée.\n\nCeci est très différent des autres paramètres. Utilisé pour les pixels noirs et blancs, et pour aider à balancer l'histogramme. TP_RETINEX_GAMMA;Gamma TP_RETINEX_GAMMA_FREE;Manuel TP_RETINEX_GAMMA_HIGH;Haute @@ -2024,10 +1983,8 @@ TP_SAVEDIALOG_OK_TIP;Raccourci: Ctrl-Entrée TP_SHADOWSHLIGHTS_HIGHLIGHTS;Hautes lumières TP_SHADOWSHLIGHTS_HLTONALW;Amplitude tonale des\nhautes lumières TP_SHADOWSHLIGHTS_LABEL;Ombres/Hautes lumières -TP_SHADOWSHLIGHTS_LOCALCONTR;Contraste local TP_SHADOWSHLIGHTS_RADIUS;Rayon TP_SHADOWSHLIGHTS_SHADOWS;Ombres -TP_SHADOWSHLIGHTS_SHARPMASK;Masque haute précision TP_SHADOWSHLIGHTS_SHTONALW;Amplitude tonale des ombres TP_SHARPENEDGE_AMOUNT;Quantité TP_SHARPENEDGE_LABEL;Bords diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index f72389b65..8108c4235 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -75,7 +75,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Ignora i Passaggi di Miglioramento LMMSE EXPORT_BYPASS_SHARPENEDGE;Ignora Nitidezza dei bordi EXPORT_BYPASS_SHARPENING;Ignora Nitidezza EXPORT_BYPASS_SHARPENMICRO;Ignora Microcontrasto -EXPORT_BYPASS_SH_HQ;Ignora Ombre/Alteluci (Alta Qualità) EXPORT_FASTEXPORTOPTIONS;Opzioni di Esportazione Rapida EXPORT_INSTRUCTIONS;Le opzioni di Esportazione Rapida forniscono opzioni per ignorare le impostazioni di sviluppo ad elevato consumo di tempo e risorse ed avviare quindi la coda di sviluppo usando solo le impostazioni veloci. Questo metodo è consigliato per la lavorazione veloce di immagini a bassa risoluzione quando è importante la rapidità, oppure quando si desidera ridimensionare una o più immagini senza apportare modifiche ai parametri di sviluppo salvati. EXPORT_MAXHEIGHT;Altezza Massima: @@ -84,7 +83,6 @@ EXPORT_PUTTOQUEUEFAST; Aggiungi alla Coda di sviluppo per l'Esportazione Rapida EXPORT_RAW_DMETHOD;Metodo di Demosaicizzazione EXTPROGTARGET_1;raw EXTPROGTARGET_2;Lavorato dalla Coda -FILEBROWSER_ADDDELTEMPLATE;Aggiungi/Rimuovi schemi... FILEBROWSER_APPLYPROFILE;Applica FILEBROWSER_APPLYPROFILE_PARTIAL;Applica (parziale) FILEBROWSER_AUTODARKFRAME;Dark Frame automatico @@ -622,7 +620,6 @@ PREFERENCES_BEHADDALLHINT;Imposta tutti i parametri nella modalità Somma PREFERENCES_BEHAVIOR;Comportamento PREFERENCES_BEHSETALL;Tutti a 'Imposta' PREFERENCES_BEHSETALLHINT;Imposta tutti i parametri nella modalità Imposta.\nLe regolazioni dei parametri nel pannello strumenti batch saranno assoluti, verranno mostrati i valori reali. -PREFERENCES_BLACKBODY;Tungsteno PREFERENCES_CACHEMAXENTRIES;Numero massimo di voci in memoria PREFERENCES_CACHEOPTS;Opzioni della memoria PREFERENCES_CACHETHUMBHEIGHT;Massima altezza delle miniature @@ -633,10 +630,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formato tasti PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nome PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Percorso dell'eseguibile -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Trovati PREFERENCES_DARKFRAMESHOTS;fotogrammi PREFERENCES_DARKFRAMETEMPLATES;modelli @@ -656,22 +649,10 @@ PREFERENCES_FLATFIELDFOUND;Trovati PREFERENCES_FLATFIELDSDIR;Cartella dei fotogrammi di campo (Flat Field) PREFERENCES_FLATFIELDSHOTS;fotogrammi PREFERENCES_FLATFIELDTEMPLATES;modelli -PREFERENCES_FLUOF2;Fluorescente F2 -PREFERENCES_FLUOF7;Fluorescente F7 -PREFERENCES_FLUOF11;Fluorescente F11 PREFERENCES_FORIMAGE;Per foto non raw PREFERENCES_FORRAW;Per foto raw PREFERENCES_GIMPPATH;Cartella d'installazione di GIMP -PREFERENCES_GREY;Luminosità Yb del dispositivo di uscita (%) -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;Istogramma nel pannello sinistro -PREFERENCES_HISTOGRAMWORKING;Profilo di Lavoro per Istogramma e Navigatore PREFERENCES_HISTOGRAM_TOOLTIP;Se abilitato, Navigatore e Istogramma usano il Profilo di Lavoro anziché il Profilo di Uscita (con gamma) PREFERENCES_HLTHRESHOLD;Soglia per le alteluci tosate PREFERENCES_ICCDIR;Cartella profili colore @@ -688,7 +669,6 @@ PREFERENCES_MENUGROUPLABEL;Raggruppa "Etichette Colore" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Raggruppa "Operazioni sui profili" PREFERENCES_MENUGROUPRANK;Raggruppa "Classificazioni" PREFERENCES_MENUOPTIONS;Opzioni del menù a discesa -PREFERENCES_METADATA;Metadati PREFERENCES_MULTITAB;Modalità a Schede Multiple PREFERENCES_MULTITABDUALMON;Modalità a Schede Multiple (se disponibile sul secondo schermo) PREFERENCES_OUTDIR;Cartella di destinazione @@ -732,7 +712,6 @@ PREFERENCES_TAB_SOUND;Suoni PREFERENCES_TP_LABEL;Pannello Strumenti: PREFERENCES_TP_VSCROLLBAR;Nascondi la barra di scorrimento verticale PREFERENCES_USEBUNDLEDPROFILES;Usa profili inclusi -PREFERENCES_VIEW;Bilanciamento del bianco del dispositivo di uscita (monitor, TV, proiettore...) PREFERENCES_WORKFLOW;Disposizione PROFILEPANEL_COPYPPASTE;Parametri da copiare PROFILEPANEL_GLOBALPROFILES;Profili inclusi @@ -912,8 +891,6 @@ TP_COLORAPP_SURROUND_DARK;Scuro TP_COLORAPP_SURROUND_DIM;Fioco TP_COLORAPP_SURROUND_EXDARK;Estremamente Scuro (Pieghevole) TP_COLORAPP_SURROUND_TOOLTIP;Cambia toni e colori per tenere conto delle condizioni di visualizzazione del dispositivo di uscita\n\nMedio: Ambiente mediamente illuminato (standard)\nL'immagine non verrà modificata.\n\nFioco: Ambiente fioco (TV)\nL'immagine diverrà leggermente più scura\n\nScuro: Ambiente scuro (proiettore)\nL'immagine diventerà più scura\n\nEstremamente Scuro: Ambiente buio (Pieghevole)\nL'immagine diventerà molto più scura. -TP_COLORAPP_SURSOURCE;Ambiente scuro -TP_COLORAPP_SURSOURCE_TOOLTIP;Si può utilizzare nel caso in cui l'immagine abbia bordi scuri. TP_COLORAPP_TCMODE_BRIGHTNESS;Brillanza TP_COLORAPP_TCMODE_CHROMA;Croma TP_COLORAPP_TCMODE_COLORF;Pienezza @@ -948,8 +925,6 @@ TP_DEFRINGE_THRESHOLD;Soglia TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Crominanza - Blu-Giallo TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Crominanza (Principale) TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Crominanza - Rosso-Verde -TP_DIRPYRDENOISE_ENH;Modalità Migliorata -TP_DIRPYRDENOISE_ENH_TOOLTIP;Aumenta la qualità della riduzione rumore al costo di un incremento del 20% del tempo di elaborazione. TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Dettaglio di Luminanza TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminanza TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metodo @@ -1034,8 +1009,6 @@ TP_HSVEQUALIZER_HUE;H TP_HSVEQUALIZER_LABEL;Equalizzatore HSV TP_HSVEQUALIZER_SAT;S TP_HSVEQUALIZER_VAL;V -TP_ICM_BLENDCMSMATRIX;Fonde le alteluci ICC con matrix -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Abilita per recuperare le alteluci bruciate quando usi profili ICC basati su LUT. TP_ICM_DCPILLUMINANT;Illuminazione TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolato TP_ICM_DCPILLUMINANT_TOOLTIP;Seleziona il DCP del tipo di illuminazione da utilizzare. Il predefinito è "interpolato", un mix tra i due basato sul bilanciamento del bianco. Questa impostazione è abilitata solo se è selezionato Doppia Illuminazione con supporto interpolato. @@ -1162,10 +1135,8 @@ TP_SAVEDIALOG_OK_TIP;Scorciatoia: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Alteluci TP_SHADOWSHLIGHTS_HLTONALW;Ampiezza Tonale delle Alteluci TP_SHADOWSHLIGHTS_LABEL;Ombre/Alteluci -TP_SHADOWSHLIGHTS_LOCALCONTR;Contrasto Locale TP_SHADOWSHLIGHTS_RADIUS;Raggio TP_SHADOWSHLIGHTS_SHADOWS;Ombre -TP_SHADOWSHLIGHTS_SHARPMASK;Maschera di Nitidezza TP_SHADOWSHLIGHTS_SHTONALW;Ampiezza Tonale delle Ombre TP_SHARPENEDGE_AMOUNT;Quantità TP_SHARPENEDGE_LABEL;Bordi @@ -1732,17 +1703,11 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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. @@ -1783,7 +1748,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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 !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... @@ -1889,7 +1853,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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 @@ -1924,7 +1887,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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;Median type !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 @@ -1998,7 +1960,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue @@ -2044,15 +2005,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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 @@ -2087,7 +2045,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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 diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 783119a77..e8a992b12 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -130,7 +130,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;[raw] LMMSE 拡張処理を迂回 EXPORT_BYPASS_SHARPENEDGE;エッジ・シャープニングを迂回 EXPORT_BYPASS_SHARPENING;シャープニングを迂回 EXPORT_BYPASS_SHARPENMICRO;マイクロコントラストを迂回 -EXPORT_BYPASS_SH_HQ;シャドウ/ハイライト(高画質)を迂回 EXPORT_FASTEXPORTOPTIONS;高速書き出しオプション EXPORT_INSTRUCTIONS;現像の設定に要する時間と手間を省くために、高速書き出しを優先させるオプションです。処理速度が優先される場合や、既定の現像パラメータを変えずに何枚ものリサイズ画像が要求される場合に奨められる方法で、低解像度画像を迅速に生成します。 EXPORT_MAXHEIGHT;最大高: @@ -143,7 +142,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;処理速度を優先すると、処理は速くな EXPORT_USE_NORMAL_PIPELINE;標準(リサイズ処理は最後、幾つかの処理を迂回) EXTPROGTARGET_1;raw EXTPROGTARGET_2;キュー処理 -FILEBROWSER_ADDDELTEMPLATE;テンプレートの追加/削除... FILEBROWSER_APPLYPROFILE;プロファイルの適用 FILEBROWSER_APPLYPROFILE_PARTIAL;プロファイルの適用 (一部) FILEBROWSER_AUTODARKFRAME;オート・ダークフレーム @@ -1085,7 +1083,6 @@ PREFERENCES_BEHADDALLHINT;すべてのパラメータを 追加モード PREFERENCES_BEHAVIOR;ビヘイビア PREFERENCES_BEHSETALL;すべて '設定' PREFERENCES_BEHSETALLHINT;すべてのパラメータを 設定モードにします\nバッチツールパネルで設定される調整値が、各画像の既定値に取って代わり同一になります -PREFERENCES_BLACKBODY;タングステン PREFERENCES_CACHECLEAR;クリア PREFERENCES_CACHECLEAR_ALL;cacheに入れられたファイルを全てクリア: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;cacheに入れた処理プロファイル以外をクリア: @@ -1116,11 +1113,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;キーフォーマット PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;名前 PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;タグID PREFERENCES_CUSTPROFBUILDPATH;実行ファイルのパス -PREFERENCES_D50;5000K -PREFERENCES_D50_OLD;5000k -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;検出 PREFERENCES_DARKFRAMESHOTS;ショット PREFERENCES_DARKFRAMETEMPLATES;テンプレート @@ -1143,32 +1135,15 @@ PREFERENCES_FLATFIELDFOUND;検出 PREFERENCES_FLATFIELDSDIR;フラットフィールド・ディレクトリ PREFERENCES_FLATFIELDSHOTS;ショット PREFERENCES_FLATFIELDTEMPLATES;テンプレート -PREFERENCES_FLUOF2;蛍光灯 F2 -PREFERENCES_FLUOF7;蛍光灯 F7 -PREFERENCES_FLUOF11;蛍光灯 F11 PREFERENCES_FORIMAGE;rawではない画像 PREFERENCES_FORRAW;raw画像 PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;ファイルブラウザと編集パネルのサムネイルのサイズを同じにする PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;サムネイルのサイズが異なると、編集パネルとファイルブラウザ間の切り替えで、余分な処理時間がかかります PREFERENCES_GIMPPATH;GIMP インストール ディレクトリ -PREFERENCES_GREY;出力デバイスのYb輝度 (%) -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_GREY18_OLD;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_GREYSC;撮影時のYb輝度 (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Ybを自動で計算 PREFERENCES_HISTOGRAMPOSITIONLEFT;左パネルにヒストグラム -PREFERENCES_HISTOGRAMWORKING;ヒストグラムとナビゲーターの表示に作業プロファイルを使う PREFERENCES_HISTOGRAM_TOOLTIP;これを有効にすると、ヒストグラムとナビゲーターの表示に、出力プロファイル(ガンマ適用)の代わりに作業プロファイルを使います PREFERENCES_HLTHRESHOLD;ハイライト・クリッピング領域のしきい値 PREFERENCES_ICCDIR;カラープロファイルを含むディレクトリ -PREFERENCES_IMG_RELOAD_NEEDED;これらの変更を有効にするには画像の再読み込みが必要です(或いは、新しい画像の読み込み) PREFERENCES_IMPROCPARAMS;画像処理のデフォルト値 PREFERENCES_INSPECT_LABEL;カメラ出しJPEG PREFERENCES_INSPECT_MAXBUFFERS_LABEL;cacheに入れる画像の最大数 @@ -1187,7 +1162,6 @@ PREFERENCES_MENUGROUPLABEL;"カラーラベル"のグループ PREFERENCES_MENUGROUPPROFILEOPERATIONS;"処理プロファイル操作"のグループ PREFERENCES_MENUGROUPRANK;"ランキング"のグループ PREFERENCES_MENUOPTIONS;メニューオプションの状況 -PREFERENCES_METADATA;メタデータ PREFERENCES_MONINTENT;デフォルトのモニターインテント PREFERENCES_MONITOR;モニター PREFERENCES_MONPROFILE;デフォルトのモニタープロファイル @@ -1263,9 +1237,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;ニュートラルなrawレンダリング PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;埋め込まれているJPEGがフルサイズの場合、指定がなければニュートラルなrawレンダリングで表示 PREFERENCES_TP_LABEL;ツール パネル: PREFERENCES_TP_VSCROLLBAR;ツールパネルの垂直スクロールバーを隠す -PREFERENCES_TUNNELMETADATA;Exif/IPTC/XMPを変更を加えずに出力ファイルにコピー PREFERENCES_USEBUNDLEDPROFILES;付属のプロファイルを使用 -PREFERENCES_VIEW;出力デバイスのホワイトバランス設定 (モニター, TV, プロジェクター,観視...) PREFERENCES_WORKFLOW;レイアウト PROFILEPANEL_COPYPPASTE;コピーするパラメータ PROFILEPANEL_GLOBALPROFILES;付属のプロファイル @@ -1474,8 +1446,6 @@ TP_COLORAPP_SURROUND_DARK;暗い TP_COLORAPP_SURROUND_DIM;薄暗い TP_COLORAPP_SURROUND_EXDARK;非常に暗い (Cutsheet) TP_COLORAPP_SURROUND_TOOLTIP;トーンとカラーの変更は、出力デバイスの観視条件を計算に入れます\n\n普通:\n平均的な明るい環境 (標準)\n画像は変更されません\n\n薄暗い:\n薄暗い環境 (TV)\n画像は若干暗くなります\n\n暗い:\n暗い環境 (プロジェクター)\n画像はかなり暗くなります\n\n非常に暗い:\n非常に暗い環境 (Cutsheet)\n画像はとても暗くなります -TP_COLORAPP_SURSOURCE;暗い周囲環境 -TP_COLORAPP_SURSOURCE_TOOLTIP;ソース画像が暗い周囲環境にある場合使用できます TP_COLORAPP_TCMODE_BRIGHTNESS;明るさ TP_COLORAPP_TCMODE_CHROMA;色度 TP_COLORAPP_TCMODE_COLORF;鮮やかさ @@ -1576,7 +1546,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;深度マップの表示 TP_DEHAZE_STRENGTH;強さ TP_DIRPYRDENOISE_CHROMINANCE_AMZ;自動(多分割方式) TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;自動(分割方式) -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;色ノイズ低減の効果を確認して下さい\n注意:設定値の計算はあくまで平均的なもので、かなり主観的でです TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;色差 ブルー/イエロー TP_DIRPYRDENOISE_CHROMINANCE_CURVE;色ノイズ低減のカーブ TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;クロミナンススライダー全ての値を増幅します\n色度をベースにこのカーブで色ノイズ低減の強さを加減します。例えば彩度の低い部分で作用を強める、或いは色度の高い部分で作用を弱めるように使います @@ -1594,8 +1563,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;プレビュー画像のノイズ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;プレビュー画像のノイズ: 平均値= - 最大値= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;タイルのサイズ=%1, 中心位置: X座標=%2 Y座標=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;色差 レッド/グリーン -TP_DIRPYRDENOISE_ENH;強化モード -TP_DIRPYRDENOISE_ENH_TOOLTIP;ノイズ低減の効果を髙めますが、代わりに演算時間が約20%増えます。 TP_DIRPYRDENOISE_LABEL;ノイズ低減 TP_DIRPYRDENOISE_LUMINANCE_CONTROL;輝度ノイズの調整法 TP_DIRPYRDENOISE_LUMINANCE_CURVE;輝度カーブ @@ -1624,7 +1591,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;フィルタリングの繰り返し回数 TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;計算領域が3x3ピクセルのメディアンフィルタを3回繰り返し適用する方が、計算領域が7x7ピクセルのメディアンフィルタを1回適用するより結果が良くなることがままあります。 TP_DIRPYRDENOISE_MEDIAN_TYPE;フィルターの種類 TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;適用するメディアンフィルタのサイズを決めます。大きくするとその分処理時間が増えます。大きいサイズを使うとそれだけ処理時間が増えます。\n\n3×3 ソフト: 3x3ピクセルの計算領域で5ピクセルを処理します\n3×3:3x3ピクセルの計算領域で9ピクセルを処理します\n5×5 ソフト: 5x5ピクセルの計算領域で13ピクセルを処理します\n5×5: 5x5ピクセルの計算領域で25ピクセルを処理します\n7×7: 7x7ピクセルの計算領域で49ピクセルを処理します\n9×9: 9x9ピクセルの計算領域で81ピクセルを処理します\n\n場合によっては、小さいウィンドウで複数回適用を繰り返す方が、大きいウィンドウを1回適用するより結果が良いことがあります。 -TP_DIRPYRDENOISE_SLI;スライダー TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 ソフト TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1729,8 +1695,6 @@ TP_ICM_APPLYHUESATMAP;ベーステーブル TP_ICM_APPLYHUESATMAP_TOOLTIP;DCPに埋め込まれているベーステーブル(色相彩度マップ)を用います。但し、適用するDCPにこのタグがある場合に限ります。 TP_ICM_APPLYLOOKTABLE;ルックテーブル TP_ICM_APPLYLOOKTABLE_TOOLTIP;DCPに埋め込まれているルックテーブルを用います。但し、適用するDCPにこのタグがある場合に限ります。 -TP_ICM_BLENDCMSMATRIX;マトリクスとハイライト・ブレンド -TP_ICM_BLENDCMSMATRIX_TOOLTIP;LUTベースのICCプロファイルを使用するときに白トビを修復 TP_ICM_BPC;ブラックポイント補正 TP_ICM_DCPILLUMINANT;光源 TP_ICM_DCPILLUMINANT_INTERPOLATED;補間 @@ -1856,7 +1820,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;”自動補正”が有効になっている場合 TP_RAWCACORR_AVOIDCOLORSHIFT;色ずれを回避 TP_RAWCACORR_CABLUE;ブルー TP_RAWCACORR_CARED;レッド -TP_RAWCACORR_CASTR;強さ TP_RAWEXPOS_BLACKS;黒レベル TP_RAWEXPOS_BLACK_0;グリーン1(先頭) TP_RAWEXPOS_BLACK_1;レッド @@ -1914,15 +1877,12 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;選択した構成画像の明るさを他 TP_RAW_PIXELSHIFTGREEN;振れに関するグリーンチャンネルを確認 TP_RAW_PIXELSHIFTHOLEFILL;振れマスクの穴を埋める TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;振れマスクの穴を埋める -TP_RAW_PIXELSHIFTLMMSE;振れのある領域にLMMSEを使用 -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;振れのある領域にはAMaZEの代わりにLMMSEを使います。\nISO値が高い画像の処 TP_RAW_PIXELSHIFTMEDIAN;振れのある領域にはメディアンを使用 TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;振れのある領域に関しては、選択した画像ではなく全ての構成画像にメディアンを使います。\n全ての構成画像で異なる位置にある被写体は除きます。\n動きの遅い被写体(オーバーラッピング)には振れの効果が出ます。 TP_RAW_PIXELSHIFTMM_AUTO;自動 TP_RAW_PIXELSHIFTMM_CUSTOM;カスタム TP_RAW_PIXELSHIFTMM_OFF;オフ TP_RAW_PIXELSHIFTMOTIONMETHOD;振れ補正 -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0は振れの検知が行われないことを意味します\n1 - 99は振れを検知する強さを意味します。値を増やすと検知率が上がります。\n100に設定するとAMaZEでデモザイクされた画像が使われます TP_RAW_PIXELSHIFTNONGREENCROSS;振れに関するレッド/ブルーのチャンネルを確認 TP_RAW_PIXELSHIFTSHOWMOTION;振れマスクを含めて表示 TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;振れマスクだけを表示 @@ -1969,7 +1929,6 @@ TP_RETINEX_GAIN;ゲイン TP_RETINEX_GAINOFFS;ゲインとオフセット(明るさ) TP_RETINEX_GAINTRANSMISSION;ゲインの透過 TP_RETINEX_GAINTRANSMISSION_TOOLTIP;目標とする輝度を得るために、透過マップ増幅したり減衰させたりします。\n横軸:左から最小、平均、最大となります。\n縦軸:ゲイン -TP_RETINEX_GAIN_TOOLTIP;修復画像に作用します\n\nこれは他の設定とは大きく異なります。 ブラックピクセルやホワイトピクセルに対して使う設定で、ヒストグラムのバランスを補正します TP_RETINEX_GAMMA;ガンマ TP_RETINEX_GAMMA_FREE;フリー TP_RETINEX_GAMMA_HIGH;高 @@ -2047,10 +2006,8 @@ TP_SAVEDIALOG_OK_TIP;ショートカット Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;ハイライトを暗く TP_SHADOWSHLIGHTS_HLTONALW;ハイライトトーンの幅 TP_SHADOWSHLIGHTS_LABEL;シャドウ/ハイライト -TP_SHADOWSHLIGHTS_LOCALCONTR;ローカルコントラスト TP_SHADOWSHLIGHTS_RADIUS;半径 TP_SHADOWSHLIGHTS_SHADOWS;シャドウを明るく -TP_SHADOWSHLIGHTS_SHARPMASK;シャープマスク TP_SHADOWSHLIGHTS_SHTONALW;シャドウトーンの幅 TP_SHARPENEDGE_AMOUNT;適用量 TP_SHARPENEDGE_LABEL;エッジ diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 69a5c1aee..48c9e1a9b 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -67,14 +67,12 @@ EXPORT_BYPASS_RAW_LINENOISE;[Raw] soronkénti zajszűrés kihagyása EXPORT_BYPASS_SHARPENEDGE;Élek élesítésének kihagyása EXPORT_BYPASS_SHARPENING;Élesítés kihagyása EXPORT_BYPASS_SHARPENMICRO;Mikrokontraszt kihagyása -EXPORT_BYPASS_SH_HQ;(Kiváló minőségű) árnyékok/csúcsfények kihagyása EXPORT_FASTEXPORTOPTIONS;Expressz exportálás beállításai EXPORT_INSTRUCTIONS;Az expressz exportálás lehetővé teszi, hogy az idő- és erőforrás-igényes előhívási lépéseket kihagyd, és helyettük az expressz exportálás beállításait használd a feldolgozási sor lefuttatására. E megoldás kisebb felbontású képek gyors létrehozásához javasolt, ahol a sebesség az elsődleges, vagy ahol átméretezett képekre van szükség egyéb feldolgozási paramétereik módosítása nélkül. EXPORT_MAXHEIGHT;Maximum magasság: EXPORT_MAXWIDTH;Maximum szélesség: EXPORT_PUTTOQUEUEFAST; Feldolgozási sorba helyezés expressz exportáláshoz EXPORT_RAW_DMETHOD;Interpoláció algoritmusa -FILEBROWSER_ADDDELTEMPLATE;Sablon hozzáadása/törlése... FILEBROWSER_APPLYPROFILE;Feldolgozási paraméter hozzárendelése FILEBROWSER_APPLYPROFILE_PARTIAL;Profil alkalmazása (részleges) FILEBROWSER_AUTODARKFRAME;Auto referencia feketekép (dark frame) @@ -515,7 +513,6 @@ PREFERENCES_MENUGROUPLABEL;Címkézés csoportosítása PREFERENCES_MENUGROUPPROFILEOPERATIONS;Profilműveletek csoportosítása PREFERENCES_MENUGROUPRANK;Értékelés csoportosítása PREFERENCES_MENUOPTIONS;Menübeállítások -PREFERENCES_METADATA;Metaadatok PREFERENCES_MULTITAB;Több szerkesztőfül PREFERENCES_MULTITABDUALMON;Több fül mód második kijelzővel (ha elérhető) PREFERENCES_OUTDIR;Kimeneti alapértelmezett könyvtár @@ -678,8 +675,6 @@ TP_HSVEQUALIZER_HUE;Színárnyalat TP_HSVEQUALIZER_LABEL;HSV Equalizer TP_HSVEQUALIZER_SAT;Színtelítettség TP_HSVEQUALIZER_VAL;Színérték -TP_ICM_BLENDCMSMATRIX;Csúcsfények és mátrix egybemosása -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Kiégett csúcsfények helyrehozásának engedélyezése LUT-alapú ICC profilok használatánál TP_ICM_INPUTCAMERA;Fényképezőgép alapértelmezése TP_ICM_INPUTCAMERAICC;Fényképezőgép-specifikus színprofil TP_ICM_INPUTCAMERAICC_TOOLTIP;A RawTherapee saját, fényképezőgép-specifikus színprofiljainak használata bemeneti profilként. Ez a profil pontosabb az egyszerű mátrixnál, és ha a fényképezőgéphez van elérhető színprofil az iccprofiles/input könyvtárban, akkor azt a RawTherapee a fényképezőgép típus és az állománynév pontos egyezése esetén automatikusan be fogja tölteni. @@ -749,7 +744,6 @@ TP_ROTATE_SELECTLINE; Vízszintes vonal kijelölése TP_SHADOWSHLIGHTS_HIGHLIGHTS;Csúcsfények TP_SHADOWSHLIGHTS_HLTONALW;Csúcsfények tónustartománya TP_SHADOWSHLIGHTS_LABEL;Árnyékok/Csúcsfények -TP_SHADOWSHLIGHTS_LOCALCONTR;Lokális kontraszt TP_SHADOWSHLIGHTS_RADIUS;Sugár TP_SHADOWSHLIGHTS_SHADOWS;Árnyékok TP_SHADOWSHLIGHTS_SHTONALW;Árnyékok tónustartománya @@ -1426,7 +1420,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -!PREFERENCES_BLACKBODY;Tungsten !PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1456,34 +1449,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format !PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name !PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID -!PREFERENCES_D50;Settings in main menu -!PREFERENCES_D50_OLD;5000K -!PREFERENCES_D55;5500K -!PREFERENCES_D60;6000K -!PREFERENCES_D65;6500K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FLUOF2;Fluorescent F2 -!PREFERENCES_FLUOF7;Fluorescent F7 -!PREFERENCES_FLUOF11;Fluorescent F11 !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_GREY;Output device's Yb luminance (%) -!PREFERENCES_GREY05;Yb=05 CIE L#30 -!PREFERENCES_GREY10;Yb=10 CIE L#40 -!PREFERENCES_GREY15;Yb=15 CIE L#45 -!PREFERENCES_GREY18;Settings in main menu -!PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -!PREFERENCES_GREYSC18;Yb=18 CIE L#50 -!PREFERENCES_GREYSCA;Automatic -!PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator !PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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. @@ -1525,9 +1496,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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 !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -!PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) !PROFILEPANEL_GLOBALPROFILES;Bundled profiles !PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. !PROFILEPANEL_MYPROFILES;My profiles @@ -1689,8 +1658,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) !TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness @@ -1775,7 +1742,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_BLUEYELLOW;Chrominance - Blue-Yellow !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. @@ -1792,8 +1758,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -!TP_DIRPYRDENOISE_ENH;Enhanced mode -!TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. !TP_DIRPYRDENOISE_LABEL;Noise Reduction !TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control !TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve @@ -1820,7 +1784,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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;Median type !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 @@ -1973,7 +1936,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue @@ -2024,15 +1986,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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 @@ -2067,7 +2026,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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 @@ -2134,7 +2092,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RGBCURVES_LUMAMODE;Luminosity mode !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 diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 7105af3c3..c5461ab8f 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -102,7 +102,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;LMMSE Verbetering niet toeppassen [raw] EXPORT_BYPASS_SHARPENEDGE;Randen verscherpen niet toepassen EXPORT_BYPASS_SHARPENING;Verscherpen niet toepassen EXPORT_BYPASS_SHARPENMICRO;Microcontrast niet toepassen -EXPORT_BYPASS_SH_HQ;Schaduwen/hoge lichten (Hoge kwaliteit) niet toepassen EXPORT_FASTEXPORTOPTIONS;Opties Snelle Export EXPORT_INSTRUCTIONS;Snel Exporteren biedt de mogelijkheid om gereedschappen uit te schakelen die veel tijd en rekenkracht vergen tijdens het converteren. Deze methode wordt aanbevolen om snel foto's in lagere resoluties aan te maken of wanneer de grootte moet worden aangepast voor één of meerdere afbeeldingen zonder de reeds opgeslagen ontwikkelinstellingen te wijzigen. EXPORT_MAXHEIGHT;Max. hoogte: @@ -115,7 +114,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Gebruikt een speciale verwerkingslijn waarbij kwali EXPORT_USE_NORMAL_PIPELINE;Standaard (wijzigt formaat aan het eind) EXTPROGTARGET_1;raw EXTPROGTARGET_2;verwerkingsrij -FILEBROWSER_ADDDELTEMPLATE;Voeg sjablonen toe of verwijder... FILEBROWSER_APPLYPROFILE;Pas profiel toe FILEBROWSER_APPLYPROFILE_PARTIAL;Pas profiel toe (gedeeltelijk) FILEBROWSER_AUTODARKFRAME;Automatisch donkerframe @@ -904,7 +902,6 @@ PREFERENCES_BEHADDALLHINT;Zet alle parameters in de Toevoegen mode.\nWijz PREFERENCES_BEHAVIOR;Gedrag PREFERENCES_BEHSETALL;Alles op 'Activeer' PREFERENCES_BEHSETALLHINT;Zet alle parameters in de Activeer mode.\nWijzigingen van parameters in de batch tool zijn absoluut. De actuele waarden worden gebruikt. -PREFERENCES_BLACKBODY;Tungsten(wolfraam) PREFERENCES_CACHEMAXENTRIES;Maximaal aantal elementen in cache PREFERENCES_CACHEOPTS;Cache-opties PREFERENCES_CACHETHUMBHEIGHT;Maximale hoogte miniaturen @@ -924,10 +921,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys formaat PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Naam PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Pad naar programma of script -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Gevonden PREFERENCES_DARKFRAMESHOTS;foto's PREFERENCES_DARKFRAMETEMPLATES;sjablonen @@ -947,31 +940,15 @@ PREFERENCES_FLATFIELDFOUND;Gevonden PREFERENCES_FLATFIELDSDIR;Vlakveldmap PREFERENCES_FLATFIELDSHOTS;foto's PREFERENCES_FLATFIELDTEMPLATES;sjablonen -PREFERENCES_FLUOF2;Fluorescent F2 -PREFERENCES_FLUOF7;Fluorescent F7 -PREFERENCES_FLUOF11;Fluorescent F11 PREFERENCES_FORIMAGE;Voor niet-RAW-bestanden PREFERENCES_FORRAW;Voor RAW-bestanden PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Zelfde hoogte miniaturen in Bewerkingsvenster en Bestandsnavigator PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Verschillende hoogtes voor miniaturen vereist meer verwerkingstijd wanneer je wisselt tussen Bewerkingsvenster en Bestandsnavigator PREFERENCES_GIMPPATH;Installatiemap GIMP -PREFERENCES_GREY;Uitvoerapparaat's Yb luminantie (%) -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_GREYSC;Omgeving Yb luminantie (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automatisch PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in linkerpaneel -PREFERENCES_HISTOGRAMWORKING;Gebruik het werkprofiel voor het Hoofdhistogram en de Navigator PREFERENCES_HISTOGRAM_TOOLTIP;Het werkprofiel wordt gebruikt voor het Hoofdhistogram en de Navigator. In alle andere gevallen wordt het gamma-gecorrigeerde uitvoerprofiel gebruikt. PREFERENCES_HLTHRESHOLD;Grenswaarde overbelichting PREFERENCES_ICCDIR;Map met ICC-profielen -PREFERENCES_IMG_RELOAD_NEEDED;Deze wijzigingen vereisen dat de afbeelding wordt herladen (of dat een nieuwe afbeelding wordt geopend). PREFERENCES_IMPROCPARAMS;Standaardprofiel PREFERENCES_INSPECT_LABEL;Inspecteren PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum aantal afbeeldingen in cache @@ -989,7 +966,6 @@ PREFERENCES_MENUGROUPLABEL;Groepeer labelen PREFERENCES_MENUGROUPPROFILEOPERATIONS;Groepeer profielbewerkingen PREFERENCES_MENUGROUPRANK;Groepeer markering PREFERENCES_MENUOPTIONS;Menu-opties -PREFERENCES_METADATA;Metadata PREFERENCES_MONINTENT;Standaard monitor weergave PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Standaard kleurprofiel @@ -1055,9 +1031,7 @@ PREFERENCES_TAB_IMPROC;Beeldverwerking PREFERENCES_TAB_SOUND;Geluiden PREFERENCES_TP_LABEL;Gereedschapspaneel: PREFERENCES_TP_VSCROLLBAR;Verberg de schuifbalk van het gereedschapspaneel -PREFERENCES_TUNNELMETADATA;Kopieer Exif/IPTC/XMP-data onveranderd naar uitvoerbestand PREFERENCES_USEBUNDLEDPROFILES;Gebruik gebundelde profielen -PREFERENCES_VIEW;Witbalans instelling van het uitvoerapparaat (monitor, TV, projector...) PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Te kopiëren parameters PROFILEPANEL_GLOBALPROFILES;Gebundelde profielen @@ -1244,8 +1218,6 @@ TP_COLORAPP_SURROUND_DARK;Donker TP_COLORAPP_SURROUND_DIM;Gedimd TP_COLORAPP_SURROUND_EXDARK;Duister TP_COLORAPP_SURROUND_TOOLTIP;Verander tonen en kleuren rekening houdend met de weergaveomstandigheden van het uitvoerapparaat\n\nGemiddeld:\nGemiddeld verlichte omgeving (standaard)\nDe afbeelding zal niet veranderen \n\nGedimd:\nGedimde omgeving (TV)\nDe afbeelding zal enigszins donkerder worden\n\nDonker:\nDonkere omgeving (projector)\nDe afbeelding zal veel donkerder worden\n\nDuister:\nDuistere omgeving\nDe afbeelding zal zeer donker worden -TP_COLORAPP_SURSOURCE;Donkere omgeving -TP_COLORAPP_SURSOURCE_TOOLTIP;Kan worden gebruikt als de foto is gemaakt in een donkere omgeving TP_COLORAPP_TCMODE_BRIGHTNESS;Helderheid TP_COLORAPP_TCMODE_CHROMA;Chroma TP_COLORAPP_TCMODE_COLORF;Kleurrijkheid @@ -1318,7 +1290,6 @@ TP_DEFRINGE_RADIUS;Straal TP_DEFRINGE_THRESHOLD;Drempel TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zone TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatisch algemeen -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Probeert chroma ruis te bepalen\nWees voorzichtig, deze berekening is een gemiddelde en kan subjectief zijn! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominantie Blauw & Geel TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Chrominantie curve TP_DIRPYRDENOISE_CHROMINANCE_FRAME;Chrominantie @@ -1335,8 +1306,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Voorbeeld ruis: Gemiddeld=%1 Hoo TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Voorbeeld ruis: Gemiddeld= - Hoog= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Tegel grootte=%1, Centrum: Tx=%2 Ty=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominantie Rood & Groen -TP_DIRPYRDENOISE_ENH;Verbeteren -TP_DIRPYRDENOISE_ENH_TOOLTIP;Verbetert de ruisonderdrukking, maar vergroot de verwerkingstijd met ongeveer 20% TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Type gereedschap TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminantie curve TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Luminantie Detail @@ -1364,7 +1333,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Mediaan herhalingen TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Het gebruik van drie mediaan filter herhalingen met een 3×3 venster grootte geeft meestal een beter resultaat dan het gebruik van één mediaan filter herhaling met eeen 7×7 venster grootte. TP_DIRPYRDENOISE_MEDIAN_TYPE;Type TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Gebruik een mediaan filter van gewenste venster grootte. Hoe groter het venster hoe langer het duurt.\n\n3×3 zacht: behandeld 5 pixels in een 3×3 pixel venster.\n3×3: behandeld 9 pixels in een 3×3 pixel venster.\n5×5 zacht: behandeld 13 pixels in een 5×5 pixel venster.\n5×5: behandeld 25 pixels in een 5×5 pixel venster.\n7×7: behandeld 49 pixels in een 7×7 pixel venster.\n9×9: behandeld 81 pixels in a 9×9 pixel venster.\n\nSoms is het mogelijk om een betere kwaliteit te krijgen door het uitvoeren van meerdere herhalingen met een kleiner venster dan één uitvoering met een groter venster. -TP_DIRPYRDENOISE_SLI;Schuifbalk TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 zacht TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1467,8 +1435,6 @@ TP_ICM_APPLYHUESATMAP;DCP basis tabel TP_ICM_APPLYHUESATMAP_TOOLTIP;Gebruik de ingebedde DCP basis tabel (HueSatMap). De instelling is allen actief als de DCP een basis tabel heeft. TP_ICM_APPLYLOOKTABLE;DCP 'look' tabel TP_ICM_APPLYLOOKTABLE_TOOLTIP;Gebruik de ingebedde DCP 'look' tabel. De instelling is allen actief als de DCP een looktable heeft. -TP_ICM_BLENDCMSMATRIX;Meng hoge lichten met matrix -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Activeer om uitgebeten hoge lichten te herstellen wanneer op LUT gebaseerde ICC-profielen worden gebruikt. TP_ICM_BPC;Zwartpunt Compensatie TP_ICM_DCPILLUMINANT;Illuminant TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpoleren @@ -1566,7 +1532,6 @@ TP_PRSHARPENING_TOOLTIP;Verscherp na verkleinen. Werkt alleen als verkleinen act TP_RAWCACORR_AUTO;Automatische CA-correctie TP_RAWCACORR_CABLUE;Blauw TP_RAWCACORR_CARED;Rood -TP_RAWCACORR_CASTR;Sterkte TP_RAWEXPOS_BLACKS;Zwartniveaus TP_RAWEXPOS_BLACK_0;Groen 1 (leidend) TP_RAWEXPOS_BLACK_1;Rood @@ -1610,8 +1575,6 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Balanseer de helderheid van de frames t.o.v TP_RAW_PIXELSHIFTGREEN;Controleer groene kanaal voor beweging TP_RAW_PIXELSHIFTHOLEFILL;Vul holtes in verschuivingsmasker TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Vul holtes in het verschuivingsmasker op -TP_RAW_PIXELSHIFTLMMSE;Gebruik lmmse voor verschoven gebieden -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Gebruik lmmse ipv amaze voor verschoven gebieden.\nNuttig voor hoge ISO afbeeeldingen. TP_RAW_PIXELSHIFTMEDIAN;Mediaan TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Gebruik mediaan voor alle frames inplaats van alleen het geselecteerd frame voor gebieden met beweging.\nVerwijder objecten die voorkomen op verschillende plekken in alle frames.\nGeeft bewegingseffect voor langzaam bewegende (overlappende) objecten. TP_RAW_PIXELSHIFTMM_AUTO;Automatisch @@ -1619,7 +1582,6 @@ TP_RAW_PIXELSHIFTMM_CUSTOM;Eigen TP_RAW_PIXELSHIFTMM_OFF;Uit TP_RAW_PIXELSHIFTMOTION;Beweging detectie niveau (vervallen) TP_RAW_PIXELSHIFTMOTIONMETHOD;Beweging Correctie -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0: geen bewegingsdetectie\n1 - 99: beweging wordt bepaald op basis van deze waarde. Vergroot de waarde om de bewegingsdetectie te verhogen\n100: Amaze demozaïek wordt gebruikt TP_RAW_PIXELSHIFTNONGREENCROSS;Controleer rood/blauw kanaal voor beweging TP_RAW_PIXELSHIFTSHOWMOTION;Toon beweging TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Toon alleen masker @@ -1658,7 +1620,6 @@ TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;Deze curve kan zowel alleen worden gebruikt o TP_RETINEX_EQUAL;Mixer TP_RETINEX_FREEGAMMA;Vrij gamma TP_RETINEX_GAIN;Verbeteren -TP_RETINEX_GAIN_TOOLTIP;Wijzigt de aangepaste afbeelding.\n\nDit wijkt af van de andere instellingen. Wordt gebruikt voor zwarte of witte pixels, en om het histogram te balanceren. TP_RETINEX_GAMMA;Gamma TP_RETINEX_GAMMA_FREE;Vrij TP_RETINEX_GAMMA_HIGH;Hoog @@ -1735,10 +1696,8 @@ TP_SAVEDIALOG_OK_TIP;Sneltoets: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Hoge lichten TP_SHADOWSHLIGHTS_HLTONALW;Toonomvang TP_SHADOWSHLIGHTS_LABEL;Schaduwen/hoge lichten -TP_SHADOWSHLIGHTS_LOCALCONTR;Lokaal contrast TP_SHADOWSHLIGHTS_RADIUS;Straal TP_SHADOWSHLIGHTS_SHADOWS;Schaduwen -TP_SHADOWSHLIGHTS_SHARPMASK;Verscherpingsmasker TP_SHADOWSHLIGHTS_SHTONALW;Toonomvang TP_SHARPENEDGE_AMOUNT;Hoeveelheid TP_SHARPENEDGE_LABEL;Randen @@ -2193,11 +2152,9 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original !PREFERENCES_CROP_GUIDES_NONE;None -!PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_LANG;Language !PREFERENCES_PERFORMANCE_MEASURE;Measure !PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 9ac7c82d7..440add185 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -79,7 +79,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Pomiń poprawę LMMSE [raw] EXPORT_BYPASS_SHARPENEDGE;Pomiń wyostrzanie krawędzi EXPORT_BYPASS_SHARPENING;Pomiń wyostrzanie EXPORT_BYPASS_SHARPENMICRO;Pomiń mikrokontrast -EXPORT_BYPASS_SH_HQ;Pomiń wysokiej jakości korekte cieni/podświetleń EXPORT_FASTEXPORTOPTIONS;Opcje szybkiego eksportu EXPORT_INSTRUCTIONS;Opcje szybkiego eksportu umożliwiają pominięcie pewnych narzędzi które mogą być dość wymagające na procesor oraz mogą znacznie przedłużyc czas przetwarzania podczas eksportowania zdjęć. Ta metoda jest zalecana w razie potrzeby szybkiego uzyskania zdjęć o niższej rozdzielczości oraz jakości kiedy zależy nam na czasie a nie chcemy modyfikować plików PP3. EXPORT_MAXHEIGHT;Maksymalna wysokość: @@ -88,7 +87,6 @@ EXPORT_PUTTOQUEUEFAST; Dodaj do kolejki szybkiego eksportu EXPORT_RAW_DMETHOD;Algorytm demozaikowania EXTPROGTARGET_1;raw EXTPROGTARGET_2;wywołane w kolejce -FILEBROWSER_ADDDELTEMPLATE;Dodaj/Usuń szablon... FILEBROWSER_APPLYPROFILE;Zastosuj profil FILEBROWSER_APPLYPROFILE_PARTIAL;Zastosuj częściowy profil FILEBROWSER_AUTODARKFRAME;Automatyczne użycie czarnej klatki @@ -671,7 +669,6 @@ PREFERENCES_BEHADDALLHINT;Ustaw wszystkie narzędzia w tryb Dodaj.\nZmian 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 @@ -683,10 +680,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nazwa PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Ścieżka pliku wykonywalnego -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Znaleziono PREFERENCES_DARKFRAMESHOTS;zdjęć(ia) PREFERENCES_DARKFRAMETEMPLATES;szablonów(ny) @@ -706,22 +699,10 @@ 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;Luminancja 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 @@ -738,7 +719,6 @@ PREFERENCES_MENUGROUPLABEL;Grupuj operacje etykiet PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupuj operacje profili przetwarzania PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny PREFERENCES_MENUOPTIONS;Opcje menu -PREFERENCES_METADATA;Metadane PREFERENCES_MULTITAB;Tryb wielu zakładek PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) PREFERENCES_OUTDIR;Katalog wyjściowy @@ -782,7 +762,6 @@ 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 @@ -962,8 +941,6 @@ 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ść @@ -1034,8 +1011,6 @@ 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;Krzywa luminancji TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegółowość luminancji TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminacja @@ -1140,8 +1115,6 @@ 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. @@ -1283,10 +1256,8 @@ TP_SAVEDIALOG_OK_TIP;Skrót: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Podświetlenia TP_SHADOWSHLIGHTS_HLTONALW;Szerokość tonalna TP_SHADOWSHLIGHTS_LABEL;Cienie/Podświetlenia -TP_SHADOWSHLIGHTS_LOCALCONTR;Kontrast lokalny TP_SHADOWSHLIGHTS_RADIUS;Promień TP_SHADOWSHLIGHTS_SHADOWS;Cienie -TP_SHADOWSHLIGHTS_SHARPMASK;Ostra maska TP_SHADOWSHLIGHTS_SHTONALW;Szerokość tonalna TP_SHARPENEDGE_AMOUNT;Siła TP_SHARPENEDGE_LABEL;Krawędzie @@ -1808,17 +1779,11 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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. @@ -1859,7 +1824,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... @@ -1929,7 +1893,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 @@ -1952,7 +1915,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 @@ -2015,7 +1977,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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) @@ -2053,15 +2014,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 @@ -2093,7 +2051,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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 diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 130e53d42..24c41dd53 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -98,7 +98,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Ignorar etapas de melhoramento LMMSE [raw] EXPORT_BYPASS_SHARPENEDGE;Ignorar nitidez das bordas EXPORT_BYPASS_SHARPENING;Ignorar nitidez EXPORT_BYPASS_SHARPENMICRO;Ignorar microcontraste -EXPORT_BYPASS_SH_HQ;Ignorar sombras/altas luzes da máscara de nitidez EXPORT_FASTEXPORTOPTIONS;Opções de exportação rápida EXPORT_INSTRUCTIONS;As opções de exportação rápida fornecem substituições para poupar tempo e recursos consumidos no desenvolvimento de configurações e na execução do processamento de filas utilizando configurações de exportação rápida. Este método é recomendado para gerar rapidamente imagens de baixa resolução, quando a velocidade é uma prioridade ou quando se quer uma saída redimensionada para uma ou mais imagens sem fazer alterações nos parâmetros de desenvolvimento guardados. EXPORT_MAXHEIGHT;Altura máxima: @@ -111,7 +110,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Usar uma preparação de processamento dedicado par EXPORT_USE_NORMAL_PIPELINE;Padrão (ignorar algumas etapas, redimensionar no fim) EXTPROGTARGET_1;raw EXTPROGTARGET_2;processado na fila -FILEBROWSER_ADDDELTEMPLATE;Adicionar/eliminar modelos... FILEBROWSER_APPLYPROFILE;Aplicar FILEBROWSER_APPLYPROFILE_PARTIAL;Aplicar - parcial FILEBROWSER_AUTODARKFRAME;Fotograma escuro automático @@ -1052,7 +1050,6 @@ PREFERENCES_BEHADDALLHINT;Definir todos os parâmetros para o modo adicionar< PREFERENCES_BEHAVIOR;Comportamento PREFERENCES_BEHSETALL;Tudo para 'aplicar' PREFERENCES_BEHSETALLHINT;Definir todos os parâmetros para o modo aplicar.\nOs ajustes dos parâmetros no painel de ferramentas em lote serão absolutos, serão mostrados os valores reais. -PREFERENCES_BLACKBODY;Tungsténio PREFERENCES_CACHECLEAR;Eliminar PREFERENCES_CACHECLEAR_ALL;Eliminar todos os ficheiros em cache: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Eliminar todos os ficheiros em cache excepto os perfis de processamento em cache: @@ -1089,11 +1086,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formato das chaves PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nome PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;Identificador da etiqueta PREFERENCES_CUSTPROFBUILDPATH;Caminho do executável -PREFERENCES_D50;Configurações no menu principal -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Encontrado PREFERENCES_DARKFRAMESHOTS;disparos PREFERENCES_DARKFRAMETEMPLATES;modelos @@ -1116,32 +1108,15 @@ PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Pasta de campos planos PREFERENCES_FLATFIELDSHOTS;disparos PREFERENCES_FLATFIELDTEMPLATES;modelos -PREFERENCES_FLUOF2;Fluorescente F2 -PREFERENCES_FLUOF7;Fluorescente F7 -PREFERENCES_FLUOF11;Fluorescente F11 PREFERENCES_FORIMAGE;Para fotos não-raw PREFERENCES_FORRAW;Para fotos raw PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Usar a mesma altura das miniaturas na película de fotografias e no navegador de ficheiros PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Se os tamanhos das miniaturas forem diferentes levará mais tempo a processá-las todas as vezes que se mudar entre a aba do editor e do navegador de ficheiros. PREFERENCES_GIMPPATH;Pasta de instalação do GIMP -PREFERENCES_GREY;Luminância Yb do dispositivo de saída (%) -PREFERENCES_GREY05;Yb=05 CIE L#30 -PREFERENCES_GREY10;Yb=10 CIE L#40 -PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18;Configurações no menu principal -PREFERENCES_GREY18_OLD;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_GREYSC;Luminância Yb da cena (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automático PREFERENCES_HISTOGRAMPOSITIONLEFT;Histograma no painel esquerdo -PREFERENCES_HISTOGRAMWORKING;Usar o perfil de trabalho para o histograma principal e o navegador PREFERENCES_HISTOGRAM_TOOLTIP;Ativado: é usado o perfil de trabalho para renderizar o painel histograma principal e o painel navegador.\nDesativado: é usado o perfil de saída com gama corrigida. PREFERENCES_HLTHRESHOLD;Limite para altas luzes cortadas PREFERENCES_ICCDIR;Pasta com os perfis de cores -PREFERENCES_IMG_RELOAD_NEEDED;Para que estas alterações surtam efeito é necessário recarregar a imagem ou que uma nova imagem seja aberta. PREFERENCES_IMPROCPARAMS;Perfil de processamento padrão PREFERENCES_INSPECT_LABEL;Inspecionar PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Número máximo de imagens em cache @@ -1160,7 +1135,6 @@ PREFERENCES_MENUGROUPLABEL;Grupo "Etiqueta de cor" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupo "Operações de perfil de processamento" PREFERENCES_MENUGROUPRANK;Grupo "Classificação" PREFERENCES_MENUOPTIONS;Agrupar opções no menu de contexto (necessário reiniciar) -PREFERENCES_METADATA;Metadados PREFERENCES_MONINTENT;Intenção de renderização padrão PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Perfil de cor padrão @@ -1238,9 +1212,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Renderização raw neutra PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Incorporar JPEG se for no tamanho real, caso contrário usar raw neutro PREFERENCES_TP_LABEL;Painel de ferramentas: PREFERENCES_TP_VSCROLLBAR;Ocultar barra de deslocamento vertical -PREFERENCES_TUNNELMETADATA;Copiar Exif/IPTC/XMP inalterados para o ficheiro de saída PREFERENCES_USEBUNDLEDPROFILES;Usar perfis incluídos -PREFERENCES_VIEW;Balanço de brancos do dispositivo de saída (monitor, TV, projetor, visualização, etc.) PREFERENCES_WORKFLOW;Interface PROFILEPANEL_COPYPPASTE;Parâmetros a copiar PROFILEPANEL_GLOBALPROFILES;Perfis incluídos @@ -1449,8 +1421,6 @@ TP_COLORAPP_SURROUND_DARK;Escuro TP_COLORAPP_SURROUND_DIM;Sombrio TP_COLORAPP_SURROUND_EXDARK;Extremamente escuro (camada de corte) TP_COLORAPP_SURROUND_TOOLTIP;Altera os tons e cores de acordo com as condições de visualização do dispositivo de saída.\n\nMédio: ambiente de luz médio (padrão). A imagem não vai mudar.\n\nSombrio: ambiente sombrio (TV). A imagem ficará ligeiramente escura.\n\nEscuro: ambiente escuro (projetor). A imagem ficará mais escura.\n\nExtremamente escuro: Ambiente extremamente escuro (camada de corte). A imagem ficará muito escura. -TP_COLORAPP_SURSOURCE;Borda escura -TP_COLORAPP_SURSOURCE_TOOLTIP;Pode ser usado se a imagem tiver uma borda escura. TP_COLORAPP_TCMODE_BRIGHTNESS;Brilho TP_COLORAPP_TCMODE_CHROMA;Croma TP_COLORAPP_TCMODE_COLORF;Colorido @@ -1551,7 +1521,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;Mostrar mapa de profundidade TP_DEHAZE_STRENGTH;Intensidade TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Multi-zonas automático TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Global automático -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Tentar avaliar o ruído de crominância\nTenha cuidado, este cálculo é mediano e é bastante subjetivo! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Crominância - Azul-amarelo TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Curva de crominância TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Aumentar (multiplicar) o valor de todos os controlos deslizantes de crominância.\nEsta curva permite ajustar a intensidade da redução de ruído cromático em função da cromaticidade, por exemplo, para aumentar a ação em áreas de baixa saturação e diminuí-la nas de alta saturação. @@ -1569,8 +1538,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Pré-visualização do ruído: M TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Pré-visualização do ruído: Médio= - Alto= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Matriz tamanho=%1, Centro: Tx=%2 Ty=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Crominância - Vermelho-verde -TP_DIRPYRDENOISE_ENH;Modo avançado -TP_DIRPYRDENOISE_ENH_TOOLTIP;Aumenta a qualidade da redução do ruído mas aumenta em 20% o tempo de processamento. TP_DIRPYRDENOISE_LABEL;Redução de ruído TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Controlo da luminância TP_DIRPYRDENOISE_LUMINANCE_CURVE;Curva de luminância @@ -1599,7 +1566,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Iterações medianas TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;A aplicação de três iterações de filtro mediano com o tamanho de janela 3×3 muitas vezes dá resultados melhores do que usar uma iteração de filtro mediano com tamanho de janela 7×7. TP_DIRPYRDENOISE_MEDIAN_TYPE;Tipo de mediano TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Aplicar um filtro mediano no tamanho da janela desejado. Quanto maior o tamanho da janela, mais tempo demora.\n\n3×3 suave: trata 5 píxeis numa janela de 3×3 píxeis.\n3×3: trata 9 píxeis numa janela de 3×3 píxeis.\n5×5 suave: trata 13 píxeis numa janela de 5×5 píxeis.\n5×5: trata 25 píxeis numa janela de 5×5 píxeis.\n7×7: trata 49 píxeis numa janela de 7×7 píxeis.\n9×9: trata 81 píxeis numa janela de 9×9 píxeis.\n\nÀs vezes é possível obter uma qualidade mais alta executando várias iterações com um tamanho de janela menor do que uma iteração com uma maior. -TP_DIRPYRDENOISE_SLI;Controlo deslizante TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 suave TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1704,8 +1670,6 @@ TP_ICM_APPLYHUESATMAP;Tabela base TP_ICM_APPLYHUESATMAP_TOOLTIP;Usa a tabela base DCP incorporada (HueSatMap). Esta configuração só estará disponível se o DCP selecionado tiver um. TP_ICM_APPLYLOOKTABLE;Tabela de valores TP_ICM_APPLYLOOKTABLE_TOOLTIP;Usa a tabela de valores (lookup table) DCP incorporada. Esta configuração só estará disponível se o DCP selecionado tiver um. -TP_ICM_BLENDCMSMATRIX;Misturar as altas luzes do ICC com a matriz -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Ativar para recuperar as altas luzes cortadas ao usar perfis ICC baseados em LUT (Look up Table). TP_ICM_BPC;Compensação de ponto preto TP_ICM_DCPILLUMINANT;Iluminante TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolado @@ -1831,7 +1795,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Esta funcionalidade está disponível se a opção " TP_RAWCACORR_AVOIDCOLORSHIFT;Evitar mudança de cor TP_RAWCACORR_CABLUE;Azul TP_RAWCACORR_CARED;Vermelho -TP_RAWCACORR_CASTR;Intensidade TP_RAWEXPOS_BLACKS;Níveis de preto TP_RAWEXPOS_BLACK_0;Verde 1 (guia) TP_RAWEXPOS_BLACK_1;Vermelho @@ -1890,15 +1853,12 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equaliza o brilho dos fotogramas para o bri TP_RAW_PIXELSHIFTGREEN;Verificar o canal verde para movimento TP_RAW_PIXELSHIFTHOLEFILL;Preencher buracos na máscara de movimento TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Preenche os buracos na máscara de movimento -TP_RAW_PIXELSHIFTLMMSE;Usar LMMSE para partes móveis -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Usa LMMSE em vez de AMaZE para áreas de movimento.\nÚtil para imagens com ISO alto. TP_RAW_PIXELSHIFTMEDIAN;Usa mediana para partes móveis TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Usa a mediana de todos os fotogramas em vez do fotograma selecionado para regiões com movimento.\nRemove objetos que estão em lugares diferentes em todos os fotogramas.\nDá um efeito de movimento em objetos de movimento lento (sobreposição). TP_RAW_PIXELSHIFTMM_AUTO;Automático TP_RAW_PIXELSHIFTMM_CUSTOM;Personalizado TP_RAW_PIXELSHIFTMM_OFF;Desligado TP_RAW_PIXELSHIFTMOTIONMETHOD;Correção de movimento -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 significa que não há deteção de movimento.\n1 - 99 significa que o movimento será detectado de acordo com este valor. Aumentar o valor para aumentar a taxa de deteção.\n100 significa que será usado o fotograma de desmatrização AMaZE. TP_RAW_PIXELSHIFTNONGREENCROSS;Verifica os canais vermelho/azul para movimento TP_RAW_PIXELSHIFTSHOWMOTION;Mostra máscara de movimento TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Mostra apenas a máscara de movimento @@ -1945,7 +1905,6 @@ TP_RETINEX_GAIN;Ganho TP_RETINEX_GAINOFFS;Ganho e deslocamento (brilho) TP_RETINEX_GAINTRANSMISSION;Transmissão de ganho TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplifica ou reduz o mapa de transmissão para alcançar a luminância desejada.\nO eixo do X (vertical) é a transmissão.\nO eixo do Y (horizontal) é o ganho. -TP_RETINEX_GAIN_TOOLTIP;Atua na imagem restaurada.\n\nIsto é muito diferente das outras configurações. Usado para píxeis pretos ou brancos e para ajudar a equilibrar o histograma. TP_RETINEX_GAMMA;Gama TP_RETINEX_GAMMA_FREE;Livre TP_RETINEX_GAMMA_HIGH;Alta @@ -2023,10 +1982,8 @@ TP_SAVEDIALOG_OK_TIP;Atalho: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Altas luzes TP_SHADOWSHLIGHTS_HLTONALW;Largura tonal das altas luzes TP_SHADOWSHLIGHTS_LABEL;Sombras/altas luzes -TP_SHADOWSHLIGHTS_LOCALCONTR;Contraste local TP_SHADOWSHLIGHTS_RADIUS;Raio TP_SHADOWSHLIGHTS_SHADOWS;Sombras -TP_SHADOWSHLIGHTS_SHARPMASK;Máscara de nitidez TP_SHADOWSHLIGHTS_SHTONALW;Largura tonal das sombras TP_SHARPENEDGE_AMOUNT;Quantidade TP_SHARPENEDGE_LABEL;Bordas diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 4406b6f37..3096f62b4 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -98,7 +98,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Ignorar [raw] LMMSE Etapas de Aprimoramento EXPORT_BYPASS_SHARPENEDGE;Ignorar Nitidez de Borda EXPORT_BYPASS_SHARPENING;Ignorar Nitidez EXPORT_BYPASS_SHARPENMICRO;Ignorar Microcontraste -EXPORT_BYPASS_SH_HQ;Ignorar Sombras/Realces da Máscara de Nitidez EXPORT_FASTEXPORTOPTIONS;Opções de Exportação Rápida EXPORT_INSTRUCTIONS;As opções de exportação rápida fornecem substituições para ignorar tempo e recursos consumidos no desenvolvimento de configurações e na execução do processamento de filas. Este método é recomendado para geração rápida de imagens de baixa resolução, quando a velocidade é prioridade ou quando a saída redimensionada é desejada para uma ou mais imagens sem fazer modificações nos parâmetros de desenvolvimento salvos. EXPORT_MAXHEIGHT;Altura máxima: @@ -111,7 +110,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Use um processamento dedicado pipeline para imagens EXPORT_USE_NORMAL_PIPELINE;Padrão (ignorar algumas etapas, redimensionar no final) EXTPROGTARGET_1;raw EXTPROGTARGET_2;processado em fila -FILEBROWSER_ADDDELTEMPLATE;Adicionar/Excluir modelos... FILEBROWSER_APPLYPROFILE;Aplicar FILEBROWSER_APPLYPROFILE_PARTIAL;Aplicar - parcial FILEBROWSER_AUTODARKFRAME;Quadro escuro automático @@ -1051,7 +1049,6 @@ PREFERENCES_BEHADDALLHINT;Definir todos os parâmetros para o modo Adicionar< PREFERENCES_BEHAVIOR;Comportamento PREFERENCES_BEHSETALL;Tudo para 'Configurar' PREFERENCES_BEHSETALLHINT;Definir todos os parâmetros para o modo Configurar.\nAjustes de parâmetros no painel de ferramentas de lote serão absoluto, os valores reais serão exibidos. -PREFERENCES_BLACKBODY;Tungstênio PREFERENCES_CACHECLEAR;Limpar PREFERENCES_CACHECLEAR_ALL;Limpar todos os arquivos na cache: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Limpar todos os arquivos na cache exceto os perfis para processamento: @@ -1087,11 +1084,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formato de chaves PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nome PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;ID da Tag PREFERENCES_CUSTPROFBUILDPATH;Caminho executável -PREFERENCES_D50;Configurações no menu principal -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Encontrado PREFERENCES_DARKFRAMESHOTS;disparos PREFERENCES_DARKFRAMETEMPLATES;modelos @@ -1114,32 +1106,15 @@ PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Diretório de campos planos PREFERENCES_FLATFIELDSHOTS;disparos PREFERENCES_FLATFIELDTEMPLATES;modelos -PREFERENCES_FLUOF2;Fluorescente F2 -PREFERENCES_FLUOF7;Fluorescente F7 -PREFERENCES_FLUOF11;Fluorescente F11 PREFERENCES_FORIMAGE;Para fotos não-raw PREFERENCES_FORRAW;Para fotos raw PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Mesma altura da miniatura do Diapositivo e do Navegador de Arquivos PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Tamanho de miniatura separado exigirá mais tempo de processamento toda vez que alternar entre a guia do Editor e o Navegador de Arquivos. PREFERENCES_GIMPPATH;Diretório de instalação do GIMP -PREFERENCES_GREY;Luminância Yb do dispositivo de saída (%) -PREFERENCES_GREY05;Yb=05 CIE L#30 -PREFERENCES_GREY10;Yb=10 CIE L#40 -PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18;Configurações no menu principal -PREFERENCES_GREY18_OLD;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_GREYSC;Luminância Yb da cena (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automático PREFERENCES_HISTOGRAMPOSITIONLEFT;Histograma no painel esquerdo -PREFERENCES_HISTOGRAMWORKING;Use o perfil de trabalho para o histograma principal e o Navegador PREFERENCES_HISTOGRAM_TOOLTIP;Se ativado, o perfil de trabalho é usado para renderizar o histograma principal e o painel Navegador, caso contrário, o perfil de saída corrigido por gama é usado. PREFERENCES_HLTHRESHOLD;Limite para realces recortados PREFERENCES_ICCDIR;Diretório contendo perfis de cores -PREFERENCES_IMG_RELOAD_NEEDED;Essas alterações requerem que a imagem seja recarregada (ou que uma nova imagem seja aberta) para terem efeito. PREFERENCES_IMPROCPARAMS;Perfil de Processamento Padrão PREFERENCES_INSPECT_LABEL;Inspecionar PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Número máximo de imagens em cache @@ -1158,7 +1133,6 @@ PREFERENCES_MENUGROUPLABEL;Grupo "Etiqueta de cor" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupo "Operações de perfil de processamento" PREFERENCES_MENUGROUPRANK;Grupo "Classificar" PREFERENCES_MENUOPTIONS;Opções a Mostrar no Menu de Contexto -PREFERENCES_METADATA;Metadados PREFERENCES_MONINTENT;Intenção de renderização padrão PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Perfil de cor padrão @@ -1236,9 +1210,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Renderização raw neutra PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;JPEG incorporado se tamanho completo, raw neutro caso contrário PREFERENCES_TP_LABEL;Painel de ferramentas: PREFERENCES_TP_VSCROLLBAR;Ocultar barra de rolagem vertical -PREFERENCES_TUNNELMETADATA;Copiar Exif/IPTC/XMP inalterado para o arquivo de saída PREFERENCES_USEBUNDLEDPROFILES;Use perfis agrupados -PREFERENCES_VIEW;Balanço de branco do dispositivo de saída (monitor, TV, projetor, visualização, etc.) PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Parâmetros para copiar PROFILEPANEL_GLOBALPROFILES;Perfis agrupados @@ -1447,8 +1419,6 @@ TP_COLORAPP_SURROUND_DARK;Escuro TP_COLORAPP_SURROUND_DIM;Sombrio TP_COLORAPP_SURROUND_EXDARK;Extremamente Escuro (Camada de corte) TP_COLORAPP_SURROUND_TOOLTIP;Altera tons e cores de acordo com as condições de visualização do dispositivo de saída.\n\nMédia: Ambiente de luz médio (padrão). A imagem não vai mudar.\n\nSombrio: Ambiente sombrio (TV). A imagem ficará ligeiramente escura.\n\nEscuro: Ambiente escuro (projetor). A imagem ficará mais escura.\n\nExtremamente Escuro: Ambiente extremamente escuro (camada de corte). A imagem ficará muito escura. -TP_COLORAPP_SURSOURCE;Borda escura -TP_COLORAPP_SURSOURCE_TOOLTIP;Pode ser usado se a imagem tiver uma borda escura. TP_COLORAPP_TCMODE_BRIGHTNESS;Brilho TP_COLORAPP_TCMODE_CHROMA;Croma TP_COLORAPP_TCMODE_COLORF;Colorido @@ -1547,7 +1517,6 @@ TP_DEHAZE_SHOW_DEPTH_MAP;Mostrar mapa de profundidade TP_DEHAZE_STRENGTH;Intensidade TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zonas TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Global automático -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Tente avaliar o ruído de croma\nTenha cuidado, esse cálculo é mediano e é bastante subjetivo! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Crominância - Azul-Amarelo TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Curva de crominância TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Aumentar (multiplicar) o valor de todos os controles deslizantes de crominância.\nEsta curva permite ajustar a intensidade da redução de ruído cromático em função da cromaticidade, por exemplo, para aumentar a ação em áreas de baixa saturação e diminuí-la nas de alta saturação. @@ -1565,8 +1534,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Pré-visualização ruído: Médi TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Pré-visualização ruído: Médio= - Alto= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Mosaico tamanho=%1, Centro: Tx=%2 Ty=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Crominância - Vermelho-Verde -TP_DIRPYRDENOISE_ENH;Modo avançado -TP_DIRPYRDENOISE_ENH_TOOLTIP;Aumenta a qualidade da redução de ruído em detrimento de um aumento de 20% no tempo de processamento. TP_DIRPYRDENOISE_LABEL;Redução de Ruído TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Controle de luminância TP_DIRPYRDENOISE_LUMINANCE_CURVE;Curva de luminância @@ -1595,7 +1562,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Iterações medianas TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;A aplicação de três iterações de filtro mediano com tamanho de janela 3×3 frequentemente dá resultados melhores do que usar uma iteração de filtro mediano com tamanho de janela 7×7. TP_DIRPYRDENOISE_MEDIAN_TYPE;Tipo mediano TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Aplique um filtro mediano do tamanho da janela. Quanto maior o tamanho da janela, mais tempo demora.\n\n3×3 suave: trata 5 píxeis numa janela de 3×3 píxeis.\n3×3: trata 9 píxeis numa janela de 3×3 píxeis.\n5×5 suave: trata 13 píxeis numa janela de 5×5 píxeis.\n5×5: trata 25 píxeis numa janela de 5×5 píxeis.\n7×7: trata 49 píxeis numa janela de 7×7 píxeis.\n9×9: trata 81 píxeis numa janela de 9×9 píxeis.\n\nÀs vezes é possível obter uma qualidade mais alta executando várias iterações com um tamanho de janela menor do que uma iteração com uma maior. -TP_DIRPYRDENOISE_SLI;Controle deslizante TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 suave TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1700,8 +1666,6 @@ TP_ICM_APPLYHUESATMAP;Tabela básica TP_ICM_APPLYHUESATMAP_TOOLTIP;Empregue a tabela básica DCP incorporada (MatizSatMap). A configuração só estará disponível se o DCP estiver selecionado como um. TP_ICM_APPLYLOOKTABLE;Tabela de aparência TP_ICM_APPLYLOOKTABLE_TOOLTIP;Empregue a tabela de aparência DCP incorporada. A configuração só estará disponível se o DCP estiver selecionado como um. -TP_ICM_BLENDCMSMATRIX;Misture os realces do ICC com a matriz -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Ativar para recuperar realces recortados ao usar perfis ICC baseados em LUT. TP_ICM_BPC;Compensação de Ponto Preto TP_ICM_DCPILLUMINANT;Iluminante TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolado @@ -1825,7 +1789,6 @@ TP_RAWCACORR_AUTOIT;Interações TP_RAWCACORR_AVOIDCOLORSHIFT;Evitar mudança de cor TP_RAWCACORR_CABLUE;Azul TP_RAWCACORR_CARED;Vermelho -TP_RAWCACORR_CASTR;Intensidade TP_RAWEXPOS_BLACKS;Níveis de Preto TP_RAWEXPOS_BLACK_0;Verde 1 (guia) TP_RAWEXPOS_BLACK_1;Vermelho @@ -1883,15 +1846,12 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equaliza o brilho dos quadros para o brilho TP_RAW_PIXELSHIFTGREEN;Verifica o canal verde para movimento TP_RAW_PIXELSHIFTHOLEFILL;Preenche buracos na máscara de movimento TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Preenche buracos na máscara de movimento -TP_RAW_PIXELSHIFTLMMSE;Usa LMMSE para partes móveis -TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Usa LMMSE em vez de AMaZE para áreas de movimento.\nÚtil para imagens com ISO alto. TP_RAW_PIXELSHIFTMEDIAN;Usa mediana para partes móveis TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use a mediana de todos os quadros em vez do quadro selecionado para regiões com movimento.\nRemove objetos que estão em lugares diferentes em todos os quadros.\nDá efeito de movimento em objetos em movimento lento (sobreposição). TP_RAW_PIXELSHIFTMM_AUTO;Automático TP_RAW_PIXELSHIFTMM_CUSTOM;Personalizado TP_RAW_PIXELSHIFTMM_OFF;Desligado TP_RAW_PIXELSHIFTMOTIONMETHOD;Correção de Movimento -TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 não há detecção de movimento.\n1 - 99 o movimento será detectado de acordo com este valor. Aumentar o valor para aumentar a taxa de detecção.\n100 o quadro demosaico AMaZE será usado. TP_RAW_PIXELSHIFTNONGREENCROSS;Checa os canais vermelho/azul para movimento TP_RAW_PIXELSHIFTSHOWMOTION;Mostra máscara de movimento TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Mostra somente máscara de movimento @@ -1937,7 +1897,6 @@ TP_RETINEX_FREEGAMMA;Gama livre TP_RETINEX_GAIN;Ganho TP_RETINEX_GAINOFFS;Ganho e Compensação (brilho) TP_RETINEX_GAINTRANSMISSION;Transmissão de ganho -TP_RETINEX_GAIN_TOOLTIP;Atua na imagem restaurada.\n\nIsso é muito diferente das outras configurações. Usado para píxeis pretos ou brancos e para ajudar a equilibrar o histograma. TP_RETINEX_GAMMA;Gama TP_RETINEX_GAMMA_FREE;Livre TP_RETINEX_GAMMA_HIGH;Alto @@ -2015,10 +1974,8 @@ TP_SAVEDIALOG_OK_TIP;Atalho: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Realces TP_SHADOWSHLIGHTS_HLTONALW;Largura tonal dos realces TP_SHADOWSHLIGHTS_LABEL;Sombras/Realces -TP_SHADOWSHLIGHTS_LOCALCONTR;Contraste local TP_SHADOWSHLIGHTS_RADIUS;Raio TP_SHADOWSHLIGHTS_SHADOWS;Sombras -TP_SHADOWSHLIGHTS_SHARPMASK;Máscara de nitidez TP_SHADOWSHLIGHTS_SHTONALW;Largura tonal das sombras TP_SHARPENEDGE_AMOUNT;Quantidade TP_SHARPENEDGE_LABEL;Bordas diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index a0fcf4df2..70d700afb 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -97,7 +97,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Пропустить [raw] шаги LMMSE у EXPORT_BYPASS_SHARPENEDGE;Пропустить контурное повышение резкости EXPORT_BYPASS_SHARPENING;Пропустить повышение резкости EXPORT_BYPASS_SHARPENMICRO;Пропустить микроконтраст -EXPORT_BYPASS_SH_HQ;Пропустить настройки теней/пересветов EXPORT_FASTEXPORTOPTIONS;Настройки быстрого экспорта EXPORT_INSTRUCTIONS;Настройки быстрого экспорта помогают экономить время и ресурсы, затрачиваемые на установку настроек обработки и запускать очередь обработки, используя вместо этого настройки быстрого экспорта. Этот метод рекомендуется для быстрого создания изображений с низким разрешением, когда скорость обработки в приоритете или когда нужно отмасштабировать одно или несколько изображений без внесения изменений в их сохранённые параметры обработки. EXPORT_MAXHEIGHT;Максимальная высота: @@ -106,7 +105,6 @@ EXPORT_PUTTOQUEUEFAST; Поставить в очередь для быстро EXPORT_RAW_DMETHOD;Метод демозаика EXTPROGTARGET_1;raw EXTPROGTARGET_2;в очереди обработки -FILEBROWSER_ADDDELTEMPLATE;Добавить/удалить шаблоны... FILEBROWSER_APPLYPROFILE;Применить FILEBROWSER_APPLYPROFILE_PARTIAL;Применить - частично FILEBROWSER_AUTODARKFRAME;Автоматический темновой кадр @@ -734,7 +732,6 @@ PREFERENCES_BEHADDALLHINT;Выставить все параметры в реж PREFERENCES_BEHAVIOR;Поведение PREFERENCES_BEHSETALL;Всё в "Установить" PREFERENCES_BEHSETALLHINT;Выставить все параметры в режим Установить.\nНастройки параметров в панели пакетной обработки будут абсолютными, будут показаны используемые значения -PREFERENCES_BLACKBODY;Лампа накаливания PREFERENCES_CACHECLEAR;Очистить PREFERENCES_CACHEMAXENTRIES;Максимальное число элементов в кэше PREFERENCES_CACHEOPTS;Параметры кэширования @@ -757,11 +754,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Формат ключей PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Имя PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Путь к исполняемому файлу -PREFERENCES_D50;5000K -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Найдено PREFERENCES_DARKFRAMESHOTS;снимков PREFERENCES_DARKFRAMETEMPLATES;шаблонов @@ -782,20 +774,9 @@ PREFERENCES_FLATFIELDFOUND;Найдено PREFERENCES_FLATFIELDSDIR;Каталог файлов плоских полей PREFERENCES_FLATFIELDSHOTS;снимков PREFERENCES_FLATFIELDTEMPLATES;шаблонов -PREFERENCES_FLUOF2;Лампа дневного света F2 -PREFERENCES_FLUOF7;Лампа дневного света F7 -PREFERENCES_FLUOF11;Лампа дневного света F11 PREFERENCES_FORIMAGE;Для изображений PREFERENCES_FORRAW;Для Raw файлов PREFERENCES_GIMPPATH;Каталог установки GIMP -PREFERENCES_GREY;Яркость (Yb) устройства вывода (%) -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;Гистограмма на левой панели PREFERENCES_HLTHRESHOLD;Порог срабатывания пересветов PREFERENCES_ICCDIR;Каталог ICC профилей @@ -815,7 +796,6 @@ PREFERENCES_MENUGROUPLABEL;Группа "Цветовая пометка" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Группа "Действия с профилем обработки" PREFERENCES_MENUGROUPRANK;Группа "Рейтинг" PREFERENCES_MENUOPTIONS;Настройки контекстного меню -PREFERENCES_METADATA;Метаданные PREFERENCES_MONITOR;Монитор PREFERENCES_MULTITAB;Много вкладок PREFERENCES_MULTITABDUALMON;Много вкладок, на втором мониторе (если возможно) @@ -875,9 +855,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Нейтрально обработанны PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Встроенный полноразмерный jpeg, иначе нейтральный raw PREFERENCES_TP_LABEL;Панель инструментов: PREFERENCES_TP_VSCROLLBAR;Спрятать вертикальную полосу прокрутки -PREFERENCES_TUNNELMETADATA;Копировать данные Exif/IPTC/XMP неизменённо PREFERENCES_USEBUNDLEDPROFILES;Использовать предустановленный профиль -PREFERENCES_VIEW;ББ устройства вывода (монитор, проектор и т.д.) PREFERENCES_WORKFLOW;Стиль работы PROFILEPANEL_COPYPPASTE;Параметры для копирования PROFILEPANEL_GLOBALPROFILES;Предустановленные профили @@ -1082,8 +1060,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Цветность TP_DIRPYRDENOISE_CHROMINANCE_METHOD;Метод TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW;Превью TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Цветность: красный-зелёный -TP_DIRPYRDENOISE_ENH;Улучшенный режим -TP_DIRPYRDENOISE_ENH_TOOLTIP;Улучшает качество шумоподавления путём увеличения времени обработки на 20%. TP_DIRPYRDENOISE_LABEL;Подавление шумов TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Контроль яркости TP_DIRPYRDENOISE_LUMINANCE_CURVE;Кривая яркости @@ -1102,7 +1078,6 @@ TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Осторожный TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Осторожный" сохраняет низкочастотные структуры цветности, в то время как "агрессивный" уничтожает их. TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB -TP_DIRPYRDENOISE_SLI;Ползунок TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 мягкий TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1188,8 +1163,6 @@ TP_HSVEQUALIZER_HUE;H TP_HSVEQUALIZER_LABEL;Эквалайзер HSV TP_HSVEQUALIZER_SAT;S TP_HSVEQUALIZER_VAL;V -TP_ICM_BLENDCMSMATRIX;Смешивать засветы с матрицей -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Включить восстановление пересветов во время использования профилей ICC на основе LUT TP_ICM_BPC;Компенсация точки чёрного TP_ICM_DCPILLUMINANT;Источник света TP_ICM_DCPILLUMINANT_INTERPOLATED;Интерполированный @@ -1295,7 +1268,6 @@ TP_RAWCACORR_AUTOIT;Подходов TP_RAWCACORR_AVOIDCOLORSHIFT;Избегать сдвига цветов TP_RAWCACORR_CABLUE;Синий TP_RAWCACORR_CARED;Красный -TP_RAWCACORR_CASTR;Сила TP_RAWEXPOS_BLACKS;Уровни черного TP_RAWEXPOS_BLACK_0;Зелёный 1 (ведущий) TP_RAWEXPOS_BLACK_1;Красный @@ -1368,10 +1340,8 @@ TP_SAVEDIALOG_OK_TIP;Горячая клавиша Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Света TP_SHADOWSHLIGHTS_HLTONALW;Уровень TP_SHADOWSHLIGHTS_LABEL;Тени/света -TP_SHADOWSHLIGHTS_LOCALCONTR;Локальный контраст TP_SHADOWSHLIGHTS_RADIUS;Радиус TP_SHADOWSHLIGHTS_SHADOWS;Тени -TP_SHADOWSHLIGHTS_SHARPMASK;Маска резкости TP_SHADOWSHLIGHTS_SHTONALW;Уровень TP_SHARPENEDGE_AMOUNT;Величина TP_SHARPENEDGE_LABEL;Края @@ -1835,13 +1805,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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_HISTOGRAMWORKING;Use working profile for main histogram and Navigator !PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!PREFERENCES_IMG_RELOAD_NEEDED;These changes require the image to be reloaded (or a new image to be opened) to take effect. !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_MAXRECENTFOLDERS;Maximum number of recent folders !PREFERENCES_MONINTENT;Default rendering intent @@ -1909,8 +1873,6 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) !TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -!TP_COLORAPP_SURSOURCE;Dark surround -!TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness @@ -1983,7 +1945,6 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_COLORTONING_TWOSTD;Standard chroma !TP_CROP_PPI;PPI !TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones -!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Try to evaluate chroma noise\nBe careful, this calculation is average, and is quite subjective ! !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_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. @@ -2071,15 +2032,12 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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 @@ -2104,7 +2062,6 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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 diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 541cba8a0..b11a54e17 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -68,7 +68,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Занемари [raw] ЛММСЕ корак EXPORT_BYPASS_SHARPENEDGE;Занемари оштрење ивице EXPORT_BYPASS_SHARPENING;Занемари оштрење EXPORT_BYPASS_SHARPENMICRO;Занемари микроконтраст -EXPORT_BYPASS_SH_HQ;Занемари оштру маску за Сенке/Светло EXPORT_FASTEXPORTOPTIONS;Опције за брз извоз EXPORT_INSTRUCTIONS;Брз извоз омогућава да заобиђете неке од захтевних и споријих процеса приликом развијања слика и да закажете фотографије за брзо развијање. Овј метод је добар за брзо развијање слика у мањој резолуцији, када вам је битно да фотографије добијете што пре или када желите примените задовољавајуће параметре за развијање већег броја фотографија одједном без измене њихових профила. EXPORT_MAXHEIGHT;Највећа висина: @@ -77,7 +76,6 @@ EXPORT_PUTTOQUEUEFAST; Закажи за брз извоз EXPORT_RAW_DMETHOD;Начин расклапања мозаика EXTPROGTARGET_1;raw EXTPROGTARGET_2;заказано-развијено -FILEBROWSER_ADDDELTEMPLATE;Додај/уклони шаблоне... FILEBROWSER_APPLYPROFILE;Примени профил FILEBROWSER_APPLYPROFILE_PARTIAL;Примени профил (половично) FILEBROWSER_AUTODARKFRAME;Сам одреди тамни кадар @@ -591,7 +589,6 @@ PREFERENCES_BEHADDALLHINT;Поставља све параметре у режи PREFERENCES_BEHAVIOR;Понашање PREFERENCES_BEHSETALL;Све у „Постави“ PREFERENCES_BEHSETALLHINT;Поставља све параметре у режим Постави.\nЊихово подешавање помоћу алата из панела за заказано ће бити апсолутне вредности као што су и изабране. -PREFERENCES_BLACKBODY;Обична сијалица PREFERENCES_CACHEMAXENTRIES;Највећи број мест у остави PREFERENCES_CACHEOPTS;Подешавање оставе PREFERENCES_CACHETHUMBHEIGHT;Највећа висина приказа @@ -602,10 +599,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Кључни формати PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Назив PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;БрОзнаке PREFERENCES_CUSTPROFBUILDPATH;Извршна путања -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Нађен PREFERENCES_DARKFRAMESHOTS;снимака PREFERENCES_DARKFRAMETEMPLATES;шаблони @@ -625,20 +618,9 @@ PREFERENCES_FLATFIELDFOUND;Нађено PREFERENCES_FLATFIELDSDIR;Директоријум за равна поља PREFERENCES_FLATFIELDSHOTS;снимака PREFERENCES_FLATFIELDTEMPLATES;шаблони -PREFERENCES_FLUOF2;Флоресцентна F2 -PREFERENCES_FLUOF7;Флоресцентна F7 -PREFERENCES_FLUOF11;Флоресцентна F11 PREFERENCES_FORIMAGE;За датотеке са сликама PREFERENCES_FORRAW;За RAW датотеке PREFERENCES_GIMPPATH;Директоријум са инсталираним Гимпом -PREFERENCES_GREY;Yb луминанса излазног уређаја (%) -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;Хистограм у левој површи PREFERENCES_HLTHRESHOLD;Праг за одсечене светле делове PREFERENCES_ICCDIR;ИЦЦ директоријум @@ -655,7 +637,6 @@ PREFERENCES_MENUGROUPLABEL;Групиши обележавање PREFERENCES_MENUGROUPPROFILEOPERATIONS;Групиши радње са профилима PREFERENCES_MENUGROUPRANK;Групиши оцењивање PREFERENCES_MENUOPTIONS;Опције менија -PREFERENCES_METADATA;Метаподаци PREFERENCES_MULTITAB;Режим у више листова PREFERENCES_MULTITABDUALMON;Режим у више листова, на другом монитору PREFERENCES_OUTDIR;Излазни директоријум @@ -698,9 +679,7 @@ PREFERENCES_TAB_IMPROC;Обрада сликe PREFERENCES_TAB_SOUND;Звуци PREFERENCES_TP_LABEL;Површ алата: PREFERENCES_TP_VSCROLLBAR;Сакриј клизаче у области са алаткама -PREFERENCES_TUNNELMETADATA;Копирај неизмењене IPTC/XMP (када је слика означена другим програмом) PREFERENCES_USEBUNDLEDPROFILES;Користи профиле који долазе уз програм -PREFERENCES_VIEW;Баланс беле излазног уређаја (монитор, ТВ, пројакетор и др.) PREFERENCES_WORKFLOW;Ток обраде PROFILEPANEL_COPYPPASTE;Параметри за копирање PROFILEPANEL_GLOBALPROFILES;Профили из програма @@ -876,8 +855,6 @@ TP_COLORAPP_SURROUND_DARK;Тамно TP_COLORAPP_SURROUND_DIM;Затамњено TP_COLORAPP_SURROUND_EXDARK;Јако тамно TP_COLORAPP_SURROUND_TOOLTIP;Мења тонове и боје како би се прилагодило условима уређаја за приказ.\n\nПросечно: Просечно осветљено окружење (уобичајено). Слика неће бити измењена.\n\nЗатамњено: Затамњено окружење (ТВ). Слика ће постати за нијансу тамнија.\n\nТамно: Тамно окружење (пројектор). Слика ће постати још више тамна.\n\nЈако тамно: Екстрамно тамно окружење (cutsheet). Слика ће постати изузетно тамна. -TP_COLORAPP_SURSOURCE;Тамно окружење -TP_COLORAPP_SURSOURCE_TOOLTIP;Може да се користи уколико слика има тамне ивице. TP_COLORAPP_TCMODE_BRIGHTNESS;Освтљеност TP_COLORAPP_TCMODE_CHROMA;Хрома TP_COLORAPP_TCMODE_COLORF;Живост боја @@ -912,8 +889,6 @@ TP_DEFRINGE_THRESHOLD;Праг TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Хроминанса: Плава-Жута TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Боја TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Хроминанса - црвена-зелена -TP_DIRPYRDENOISE_ENH;Побољшани режим -TP_DIRPYRDENOISE_ENH_TOOLTIP;Повећава квалитет уклањања шума на уштрб око 20% времена за обраду. TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Детаљи луминансе TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Луминанса TP_DIRPYRDENOISE_MAIN_COLORSPACE;Начин @@ -991,8 +966,6 @@ TP_HSVEQUALIZER_HUE;Нијанса TP_HSVEQUALIZER_LABEL;Уједначење ХСВ канала TP_HSVEQUALIZER_SAT;Засићеност TP_HSVEQUALIZER_VAL;Вредност -TP_ICM_BLENDCMSMATRIX;Утопи светле делове у матрицу -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Омогућите како би повратили преосветљене делове уколико користите LUT ICC профиле. TP_ICM_DCPILLUMINANT;Илуминантно TP_ICM_DCPILLUMINANT_INTERPOLATED;Интерполирано TP_ICM_INPUTCAMERA;Подразумевано из апарата @@ -1118,10 +1091,8 @@ TP_SAVEDIALOG_OK_TIP;Пречица: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Светло TP_SHADOWSHLIGHTS_HLTONALW;Ширина тонова TP_SHADOWSHLIGHTS_LABEL;Сенке/Светло -TP_SHADOWSHLIGHTS_LOCALCONTR;Локални контраст TP_SHADOWSHLIGHTS_RADIUS;Полупречник TP_SHADOWSHLIGHTS_SHADOWS;Сенке -TP_SHADOWSHLIGHTS_SHARPMASK;Оштра маска TP_SHADOWSHLIGHTS_SHTONALW;Ширина тонова TP_SHARPENEDGE_AMOUNT;Количина TP_SHARPENEDGE_LABEL;Ивице @@ -1718,19 +1689,12 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !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_HISTOGRAMWORKING;Use working profile for main histogram and Navigator !PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. -!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. @@ -1880,7 +1844,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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 @@ -1916,7 +1879,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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;Median type !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 @@ -1998,7 +1960,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue @@ -2044,15 +2005,12 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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 @@ -2087,7 +2045,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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 diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index d70247a41..9805f531b 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -77,7 +77,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Förbigå förbättringssteg för LMMSE (För EXPORT_BYPASS_SHARPENEDGE;Förbigå kantskärpning EXPORT_BYPASS_SHARPENING;Förbigå skärpning EXPORT_BYPASS_SHARPENMICRO;Förbigå mikrokontrast -EXPORT_BYPASS_SH_HQ;Förbigå skuggor/högdagrar (hög kvalitet) EXPORT_FASTEXPORTOPTIONS;Inställningar för snabbexport EXPORT_INSTRUCTIONS;Snabbexport erbjuder snabbare konvertering genom att åsidosätta tidskrävande verktyg och framkallningsinställningar. Batchkön körs då med dessa, mindre krävande, inställningar istället så länge det här alternativet är valt. Den här metoden rekommenderas för de konverteringar där användningsområdet tillåter en lägre kvalitet på de färdiga bilderna. Genom att använda det här alternativet görs inga modifieringar i bildens normala framkallningsinställningar. EXPORT_MAXHEIGHT;Maximal höjd: @@ -86,7 +85,6 @@ EXPORT_PUTTOQUEUEFAST; Lägg till i kö för snabbexport EXPORT_RAW_DMETHOD;Demosaic-metod EXTPROGTARGET_1;Rå EXTPROGTARGET_2;köhanterad -FILEBROWSER_ADDDELTEMPLATE;Lägg till/ta bort förinställningar... FILEBROWSER_APPLYPROFILE;Använd profil FILEBROWSER_APPLYPROFILE_PARTIAL;Applicera profil (partiell) FILEBROWSER_AUTODARKFRAME;Automatisk svartbild @@ -809,7 +807,6 @@ PREFERENCES_BEHADDALLHINT;Sätt alla parametrar till Lägg till-läge.\nF PREFERENCES_BEHAVIOR;Uppträdande PREFERENCES_BEHSETALL;Sätt allt till 'Ange' PREFERENCES_BEHSETALLHINT;Sätt alla parametrar till Ange-läge.\nFörändringar i parametrar i batch-verktyget kommer att vara absoluta och de faktiska värdena kommer att visas. -PREFERENCES_BLACKBODY;Glödlampa PREFERENCES_CACHEMAXENTRIES;Maximalt antal cachefiler PREFERENCES_CACHEOPTS;Cacheinställningar PREFERENCES_CACHETHUMBHEIGHT;Maximal höjd på miniatyrbilderna @@ -828,10 +825,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Format för nycklar PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Namn PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Exekverbar sökväg -PREFERENCES_D50;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Hittade PREFERENCES_DARKFRAMESHOTS;bilder PREFERENCES_DARKFRAMETEMPLATES;mallar @@ -851,31 +844,15 @@ PREFERENCES_FLATFIELDFOUND;Hittade PREFERENCES_FLATFIELDSDIR;Plattfältskatalog PREFERENCES_FLATFIELDSHOTS;bilder PREFERENCES_FLATFIELDTEMPLATES;mallar -PREFERENCES_FLUOF2;Lysrör F2 -PREFERENCES_FLUOF7;Lysrör F7 -PREFERENCES_FLUOF11;Lysrör F11 PREFERENCES_FORIMAGE;För bildfiler PREFERENCES_FORRAW;För råbilder PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Samma miniatyrbildshöjd mellan redigerings- och filvyn PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Att ha olika miniatyrbildshöjder kräver ytterligare beräkningskraft varje gång du växlar mellan redigerings- och filvyn. PREFERENCES_GIMPPATH;Installationskatalog för GIMP -PREFERENCES_GREY;Utenhetens Yb luminans (%) -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_GREYSC;Vyns Yb luminans (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automatisk PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogrammet till vänster -PREFERENCES_HISTOGRAMWORKING;Använd arbetsprofil för huvudhistogram och översiktsvyn. PREFERENCES_HISTOGRAM_TOOLTIP;Om påslagen, så används arbetsprofilen för att skapa huvudhistogrammet och översiktsvyn, annars används den gamma-korrigerade profilen istället. PREFERENCES_HLTHRESHOLD;Tröskelvärde för högdagrar PREFERENCES_ICCDIR;Katalog för färgprofiler -PREFERENCES_IMG_RELOAD_NEEDED;De här förändringarna kräver att bilden laddas om (eller att en ny bild öppnas) för att effektueras. PREFERENCES_IMPROCPARAMS;Standardprofiler PREFERENCES_INSPECT_LABEL;Inspektion PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximalt antal cachade bilder @@ -892,7 +869,6 @@ PREFERENCES_MENUGROUPLABEL;Visa "Etikett" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Visa "Profilaktiviteter" PREFERENCES_MENUGROUPRANK;Visa "Betygsättning" PREFERENCES_MENUOPTIONS;Menyval för högerklick -PREFERENCES_METADATA;Metadata PREFERENCES_MULTITAB;Öppna bilderna i olika flikar PREFERENCES_MULTITABDUALMON;Visa bild på andra skärmen, om möjligt, i flerfliksläge PREFERENCES_NAVIGATIONFRAME;Navigering @@ -949,9 +925,7 @@ PREFERENCES_TAB_IMPROC;Bildbehandling PREFERENCES_TAB_SOUND;Ljud PREFERENCES_TP_LABEL;Verktygspanel: PREFERENCES_TP_VSCROLLBAR;Göm verktygpanelens vertikala skrollist -PREFERENCES_TUNNELMETADATA;Kopiera Exif/IPTC/XMP till utfilen oförändrat PREFERENCES_USEBUNDLEDPROFILES;Visa förinstallerade profiler -PREFERENCES_VIEW;Utenhetens vitbalansvärde (datorskärm, TV, bildkanon, etc.) PREFERENCES_WORKFLOW;Arbetsflöde PROFILEPANEL_COPYPPASTE;Parametrar att kopiera PROFILEPANEL_GLOBALPROFILES;Förinstallerade profiler @@ -1136,8 +1110,6 @@ TP_COLORAPP_SURROUND_DARK;Mörk TP_COLORAPP_SURROUND_DIM;Dunkelt TP_COLORAPP_SURROUND_EXDARK;Extremt mörkt TP_COLORAPP_SURROUND_TOOLTIP;Ändra toner och färger för att ta i beaktande betraktningsförhållandena för utmatningsenheten\n\nMedel:\nMedelljusa omgivningar (standard)\nBilden kommer ej att ändras\n\nDunkelt:\nDunkla omgivningar (TV)\nBilden kommer att bli aningen mörkare\n\nMörk:\nMörka omgivningar (projektor)\nBilden kommer att bli mörkare\n\nExtremt mörkt:\nExtremt mörka omgivningar (cutsheet)\nBilden kommer bli mycket mörk -TP_COLORAPP_SURSOURCE;Mörk omgivning -TP_COLORAPP_SURSOURCE_TOOLTIP;Kan användas om källbilden har en mörk kant. TP_COLORAPP_TCMODE_BRIGHTNESS;Intensitet TP_COLORAPP_TCMODE_CHROMA;Kroma TP_COLORAPP_TCMODE_COLORF;Färgmättnad @@ -1205,7 +1177,6 @@ TP_DEFRINGE_LABEL;Fyll ut överstrålning TP_DEFRINGE_RADIUS;Radie TP_DEFRINGE_THRESHOLD;Tröskelvärde TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatisk global -TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Försök att utvärdera chroma-bruset\nVar försiktig, den här beräkningen görs på genomsnittet och är tämligen subjektiv! TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Krominans - Blå-Gul TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Krominans-kurva TP_DIRPYRDENOISE_CHROMINANCE_FRAME;Krominans @@ -1220,8 +1191,6 @@ TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Förhandsgranska brus: Medel=%1 TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Förhandsgranska brus: Medel= - Hög= - TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Tile-storlek=%1, Center: Tx=%2 Ty=%3 TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Krominans - Röd-Grön -TP_DIRPYRDENOISE_ENH;Förbättrat läge -TP_DIRPYRDENOISE_ENH_TOOLTIP;Ökar kvaliteten på brusreduceringen till priset av 20 % längre beräkningstid TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminanskontroll TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminans-kurva TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Luminansdetalj @@ -1241,7 +1210,6 @@ TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Endast luminans TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Viktad L* (litet) + a*b* (normal) -TP_DIRPYRDENOISE_SLI;Reglage TP_DIRPYRDENOISE_TYPE_3X3;3×3 TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 mjuk TP_DIRPYRDENOISE_TYPE_5X5;5×5 @@ -1336,8 +1304,6 @@ TP_HSVEQUALIZER_VAL;Värde TP_ICM_APPLYBASELINEEXPOSUREOFFSET;Bas-exponering TP_ICM_APPLYHUESATMAP;Bas-tabell TP_ICM_APPLYLOOKTABLE_TOOLTIP;Tillämpa den inbäddade DCP:ns uppslagstabell. Inställningen är bara aktiv om den valda DCP har en sådan. -TP_ICM_BLENDCMSMATRIX;Mixa högdagrar med matris -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Möjliggör återskapande av utbrända högdagrar när LUT-baserade ICC-profiler används. TP_ICM_BPC;Svartpunktskompensation TP_ICM_DCPILLUMINANT;Ljuskälla TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolerad ljuskälla @@ -1433,7 +1399,6 @@ TP_PRSHARPENING_TOOLTIP;Skärper bilden efter att den storleksförändrats. Fung TP_RAWCACORR_AUTO;Reducera automatiskt kromatiska abberationer TP_RAWCACORR_CABLUE;Blå TP_RAWCACORR_CARED;Röd -TP_RAWCACORR_CASTR;Styrka TP_RAWEXPOS_BLACKS;Svartpunktsnivåer TP_RAWEXPOS_BLACK_0;Grön 1 (ledare) TP_RAWEXPOS_BLACK_1;Röd @@ -1545,10 +1510,8 @@ TP_SAVEDIALOG_OK_TIP;Kortkommando: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Högdager TP_SHADOWSHLIGHTS_HLTONALW;Tonvidd (Högdagrar) TP_SHADOWSHLIGHTS_LABEL;Skugg- och högdageråterställning -TP_SHADOWSHLIGHTS_LOCALCONTR;Lokal kontrast TP_SHADOWSHLIGHTS_RADIUS;Radie TP_SHADOWSHLIGHTS_SHADOWS;Skuggor -TP_SHADOWSHLIGHTS_SHARPMASK;Skarp mask TP_SHADOWSHLIGHTS_SHTONALW;Tonvidd (Skuggor) TP_SHARPENEDGE_AMOUNT;Mängd TP_SHARPENEDGE_LABEL;Kanter @@ -2047,11 +2010,9 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original !PREFERENCES_CROP_GUIDES_NONE;None -!PREFERENCES_D50_OLD;5000K !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !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_MONINTENT;Default rendering intent @@ -2231,15 +2192,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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 @@ -2259,7 +2217,6 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! !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_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). !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_LABEL_MASK;Mask diff --git a/rtdata/languages/default b/rtdata/languages/default index 11481cdb4..33edf905f 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -99,7 +99,6 @@ EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Bypass [raw] LMMSE Enhancement Steps EXPORT_BYPASS_SHARPENEDGE;Bypass Edge Sharpening EXPORT_BYPASS_SHARPENING;Bypass Sharpening EXPORT_BYPASS_SHARPENMICRO;Bypass Microcontrast -EXPORT_BYPASS_SH_HQ;Bypass Sharp Mask Shadows/Highlights EXPORT_FASTEXPORTOPTIONS;Fast Export Options EXPORT_INSTRUCTIONS;Fast Export options provide overrides to bypass time and resource consuming development settings and to run queue processing using the fast export settings instead. This method is recommended for quicker generation of lower resolution images when speed is a priority or when resized output is desired for one or many images without making modifications to their saved development parameters. EXPORT_MAXHEIGHT;Maximum height: @@ -112,7 +111,6 @@ EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in F EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) EXTPROGTARGET_1;raw EXTPROGTARGET_2;queue-processed -FILEBROWSER_ADDDELTEMPLATE;Add/Del templates... FILEBROWSER_APPLYPROFILE;Apply FILEBROWSER_APPLYPROFILE_PARTIAL;Apply - partial FILEBROWSER_AUTODARKFRAME;Auto dark-frame @@ -1055,7 +1053,6 @@ PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustment PREFERENCES_BEHAVIOR;Behavior PREFERENCES_BEHSETALL;All to 'Set' PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. -PREFERENCES_BLACKBODY;Tungsten PREFERENCES_CACHECLEAR;Clear PREFERENCES_CACHECLEAR_ALL;Clear all cached files: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: @@ -1092,11 +1089,6 @@ PREFERENCES_CUSTPROFBUILDKEYFORMAT;Keys format PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Name PREFERENCES_CUSTPROFBUILDKEYFORMAT_TID;TagID PREFERENCES_CUSTPROFBUILDPATH;Executable path -PREFERENCES_D50;Settings in main menu -PREFERENCES_D50_OLD;5000K -PREFERENCES_D55;5500K -PREFERENCES_D60;6000K -PREFERENCES_D65;6500K PREFERENCES_DARKFRAMEFOUND;Found PREFERENCES_DARKFRAMESHOTS;shots PREFERENCES_DARKFRAMETEMPLATES;templates @@ -1119,32 +1111,15 @@ PREFERENCES_FLATFIELDFOUND;Found PREFERENCES_FLATFIELDSDIR;Flat-fields directory PREFERENCES_FLATFIELDSHOTS;shots PREFERENCES_FLATFIELDTEMPLATES;templates -PREFERENCES_FLUOF2;Fluorescent F2 -PREFERENCES_FLUOF7;Fluorescent F7 -PREFERENCES_FLUOF11;Fluorescent F11 PREFERENCES_FORIMAGE;For non-raw photos PREFERENCES_FORRAW;For raw photos 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_GIMPPATH;GIMP installation directory -PREFERENCES_GREY;Output device's Yb luminance (%) -PREFERENCES_GREY05;Yb=05 CIE L#30 -PREFERENCES_GREY10;Yb=10 CIE L#40 -PREFERENCES_GREY15;Yb=15 CIE L#45 -PREFERENCES_GREY18;Settings in main menu -PREFERENCES_GREY18_OLD;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_GREYSC;Scene Yb luminance (%) -PREFERENCES_GREYSC18;Yb=18 CIE L#50 -PREFERENCES_GREYSCA;Automatic PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogram in left panel -PREFERENCES_HISTOGRAMWORKING;Use working profile for main histogram and Navigator PREFERENCES_HISTOGRAM_TOOLTIP;If enabled, the working profile is used for rendering the main histogram and the Navigator panel, otherwise the gamma-corrected output profile is used. PREFERENCES_HLTHRESHOLD;Threshold for clipped highlights PREFERENCES_ICCDIR;Directory containing color profiles -PREFERENCES_IMG_RELOAD_NEEDED;These changes require the image to be reloaded (or a new image to be opened) to take effect. PREFERENCES_IMPROCPARAMS;Default Processing Profile PREFERENCES_INSPECT_LABEL;Inspect PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images @@ -1163,7 +1138,6 @@ PREFERENCES_MENUGROUPLABEL;Group "Color label" PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" PREFERENCES_MENUGROUPRANK;Group "Rank" PREFERENCES_MENUOPTIONS;Context Menu Options -PREFERENCES_METADATA;Metadata PREFERENCES_MONINTENT;Default rendering intent PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Default color profile @@ -1241,9 +1215,7 @@ PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise PREFERENCES_TP_LABEL;Tool panel: PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar -PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles -PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Parameters to copy PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1458,8 +1430,6 @@ TP_COLORAPP_SURROUND_DARK;Dark TP_COLORAPP_SURROUND_DIM;Dim TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. -TP_COLORAPP_SURSOURCE;Dark surround -TP_COLORAPP_SURSOURCE_TOOLTIP;Can be used if image has a dark border. TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness TP_COLORAPP_TCMODE_CHROMA;Chroma TP_COLORAPP_TCMODE_COLORF;Colorfulness @@ -1561,7 +1531,6 @@ 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_BLUEYELLOW;Chrominance - Blue-Yellow 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. @@ -1579,8 +1548,6 @@ 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_CHROMINANCE_REDGREEN;Chrominance - Red-Green -TP_DIRPYRDENOISE_ENH;Enhanced mode -TP_DIRPYRDENOISE_ENH_TOOLTIP;Increases noise reduction quality at the expense of a 20% processing time increase. TP_DIRPYRDENOISE_LABEL;Noise Reduction TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminance curve @@ -1609,7 +1576,6 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Median iterations 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;Median type 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 @@ -1714,8 +1680,6 @@ 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_BLENDCMSMATRIX;Blend ICC highlights with matrix -TP_ICM_BLENDCMSMATRIX_TOOLTIP;Enable to recover clipped highlights when using LUT-based ICC profiles. TP_ICM_BPC;Black Point Compensation TP_ICM_DCPILLUMINANT;Illuminant TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolated @@ -1846,7 +1810,6 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is ch TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift TP_RAWCACORR_CABLUE;Blue TP_RAWCACORR_CARED;Red -TP_RAWCACORR_CASTR;Strength TP_RAWEXPOS_BLACKS;Black Levels TP_RAWEXPOS_BLACK_0;Green 1 (lead) TP_RAWEXPOS_BLACK_1;Red @@ -1905,15 +1868,12 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to th 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 @@ -1962,7 +1922,6 @@ 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 @@ -2040,10 +1999,8 @@ TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Highlights TP_SHADOWSHLIGHTS_HLTONALW;Highlights tonal width TP_SHADOWSHLIGHTS_LABEL;Shadows/Highlights -TP_SHADOWSHLIGHTS_LOCALCONTR;Local contrast TP_SHADOWSHLIGHTS_RADIUS;Radius TP_SHADOWSHLIGHTS_SHADOWS;Shadows -TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask TP_SHADOWSHLIGHTS_SHTONALW;Shadows tonal width TP_SHARPENEDGE_AMOUNT;Quantity TP_SHARPENEDGE_LABEL;Edges From aa379308e31bd159c165bd830694a12ef72708d6 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 1 Apr 2019 12:46:56 +0200 Subject: [PATCH 023/215] Tweaked filmstrip scrolling to be less jumpy Now the centering a thumb happens only if less than half of the next/prev thumbnail is visible. #5174 --- rtgui/filebrowser.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index f08e6114d..7802e9987 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -1779,7 +1779,7 @@ void FileBrowser::openNextImage() // scroll only when selected[0] is outside of the displayed bounds // or less than a thumbnail's width from either edge. - if ((x2 > x1 + ww - 2 * tw) || (x2 - tw < x1)) { + if ((x2 > x1 + ww - 1.5 * tw) || (x2 - tw / 2 < x1)) { setScrollPosition(x2 - (ww - tw) / 2, y2); } @@ -1842,7 +1842,7 @@ void FileBrowser::openPrevImage() // scroll only when selected[0] is outside of the displayed bounds // or less than a thumbnail's width from either edge. - if ((x2 > x1 + ww - 2 * tw) || (x2 - tw < x1)) { + if ((x2 > x1 + ww - 1.5 * tw) || (x2 - tw / 2 < x1)) { setScrollPosition(x2 - (ww - tw) / 2, y2); } From 458f47d12e9743c92d67634fdf8e2e2fd894849c Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 2 Apr 2019 08:45:57 +0200 Subject: [PATCH 024/215] Warn if using problematic GTK+ version GTK+ 3.24.5 is known to not draw combobox menu scroll arrows. Possibly affects >=3.24.2 - <=3.24.6. Closes #5194 --- CMakeLists.txt | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 58c87512d..8f48ac6f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -289,13 +289,24 @@ endif() # Check for libraries: find_package(PkgConfig) + if(WIN32) -pkg_check_modules (GTK REQUIRED gtk+-3.0>=3.22.24) -pkg_check_modules (GTKMM REQUIRED gtkmm-3.0>=3.22) + pkg_check_modules (GTK REQUIRED gtk+-3.0>=3.22.24) + pkg_check_modules (GTKMM REQUIRED gtkmm-3.0>=3.22) else() -pkg_check_modules (GTK REQUIRED gtk+-3.0>=3.16) -pkg_check_modules (GTKMM REQUIRED gtkmm-3.0>=3.16) + pkg_check_modules (GTK REQUIRED gtk+-3.0>=3.16) + pkg_check_modules (GTKMM REQUIRED gtkmm-3.0>=3.16) endif() + +if(GTK_VERSION VERSION_GREATER "3.24.1" AND GTK_VERSION VERSION_LESS "3.24.7") + if(GTK_VERSION VERSION_EQUAL "3.24.5") + set(CERTAINTY "known to") + else() + set(CERTAINTY "likely to") + endif() + message(WARNING "\nWarning! You are using GTK+ version " ${GTK_VERSION} " which is " ${CERTAINTY} " have an issue where combobox menu scroll-arrows are missing when a Gtk::ComboBox list does not fit vertically on the screen. As a result, users of your build will not be able to select items in the following comboboxes: Processing Profiles, Film Simulation, and the camera and lens profiles in Profiled Lens Correction.\nIt is recommended that you either downgrade GTK+ to <= 3.24.1 or upgrade to >= 3.24.7.") +endif() + pkg_check_modules (GLIB2 REQUIRED glib-2.0>=2.44) pkg_check_modules (GLIBMM REQUIRED glibmm-2.4>=2.44) pkg_check_modules (CAIROMM REQUIRED cairomm-1.0) @@ -331,7 +342,6 @@ if(WITH_SYSTEM_KLT) find_package(KLT REQUIRED) endif() - # Check for libcanberra-gtk3 (sound events on Linux): if(UNIX AND(NOT APPLE)) pkg_check_modules(CANBERRA-GTK REQUIRED libcanberra-gtk3) @@ -410,7 +420,6 @@ int main() endif() endif() - # Find out whether we are building out of source: get_filename_component(ABS_SOURCE_DIR "${PROJECT_SOURCE_DIR}" ABSOLUTE) get_filename_component(ABS_BINARY_DIR "${CMAKE_BINARY_DIR}" ABSOLUTE) From 977af213b9a9216ab67ce64a4a81a0c0c8311384 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 2 Apr 2019 21:10:16 +0200 Subject: [PATCH 025/215] =?UTF-8?q?Queue=20template=20parsing=20OOB=20acce?= =?UTF-8?q?ss=20fix=20by=20Fl=C3=B6ssie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://discuss.pixls.us/t/change-of-queue-output-directory-not-taken-fully-into-account-if-no-f/11975/4 --- rtgui/batchqueue.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index 175e59b43..7222be05d 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -860,9 +860,9 @@ Glib::ustring BatchQueue::calcAutoFileNameBase (const Glib::ustring& origFileNam Glib::ustring path = ""; if (options.saveUsePathTemplate) { - int ix = 0; + unsigned int ix = 0; - while (options.savePathTemplate[ix] != 0) { + while (ix < options.savePathTemplate.size()) { if (options.savePathTemplate[ix] == '%') { ix++; From d4f0a9a19bb48c0296bb0b56a7149b2296999e62 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 3 Apr 2019 10:14:49 +0200 Subject: [PATCH 026/215] Fix crash in histogram matching #5249 Patch by Alberto https://github.com/Beep6581/RawTherapee/issues/5249#issuecomment-477923928 --- rtengine/histmatching.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/histmatching.cc b/rtengine/histmatching.cc index f91086285..79c40fba3 100644 --- a/rtengine/histmatching.cc +++ b/rtengine/histmatching.cc @@ -109,7 +109,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) } } if (idx == int(mapping.size())) { - for (idx = 1; idx < int(mapping.size()); ++idx) { + for (idx = 1; idx < int(mapping.size())-1; ++idx) { if (mapping[idx] >= idx) { break; } From 01b06561ae57904fbd5152ecbac4f81f7b7fbbd0 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 3 Apr 2019 10:21:20 +0200 Subject: [PATCH 027/215] Japanese translation updated by firefly/Yz2house, closes #5260 --- rtdata/languages/Japanese | 54 ++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index e8a992b12..5a52fe447 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -146,6 +146,7 @@ FILEBROWSER_APPLYPROFILE;プロファイルの適用 FILEBROWSER_APPLYPROFILE_PARTIAL;プロファイルの適用 (一部) FILEBROWSER_AUTODARKFRAME;オート・ダークフレーム FILEBROWSER_AUTOFLATFIELD;オート・フラットフィールド +FILEBROWSER_BROWSEPATHBUTTONHINT;クリックして特定パスを開き、フォルダーをリロードし、”探す”というキーワードを適用 FILEBROWSER_BROWSEPATHHINT;参照するパスを入力します\nCtrl-O パスのテキストボックスにフォーカス\nEnter / Ctrl-Enterその場所をブラウズします\nEsc 変更をクリア\nShift-Escフォーカスを削除\nパスのショートカット:\n ~ - ユーザーのホームディレクトリ\n ! - ユーザーの画像ディレクトリ FILEBROWSER_CACHE;cache FILEBROWSER_CACHECLEARFROMFULL;プロファイルを含めcache内をクリアにする @@ -916,6 +917,7 @@ MAIN_FRAME_FILEBROWSER;ファイルブラウザ MAIN_FRAME_FILEBROWSER_TOOLTIP; ファイル・ブラウザ\nショートカット: Ctrl-F2 MAIN_FRAME_PLACES;場所 MAIN_FRAME_PLACES_ADD;追加 +MAIN_FRAME_PLACES_DEL;除去 MAIN_FRAME_RECENT;最近開いたフォルダ MAIN_MSG_ALREADYEXISTS;ファイルはすでに存在します MAIN_MSG_CANNOTLOAD;画像読み込みできません @@ -1091,6 +1093,12 @@ PREFERENCES_CACHECLEAR_SAFETY;casheに入れたファイルだけをクリア。 PREFERENCES_CACHEMAXENTRIES;cacheに入れるファイルの最大数 PREFERENCES_CACHEOPTS;cache オプション PREFERENCES_CACHETHUMBHEIGHT;サムネイル縦の最大値 +PREFERENCES_CHUNKSIZES;スレッドごとのタイル +PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE デモザイク +PREFERENCES_CHUNKSIZE_RAW_CA;Raw 色収差補正 +PREFERENCES_CHUNKSIZE_RAW_RCD;RCD デモザイク +PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans デモザイク +PREFERENCES_CHUNKSIZE_RGB;RGB 処理 PREFERENCES_CLIPPINGIND;クリッピング領域の表示 PREFERENCES_CLUTSCACHE;HaldCLUT cache PREFERENCES_CLUTSCACHE_LABEL;cacheに入れるHaldCLUTの最大数 @@ -1184,6 +1192,8 @@ PREFERENCES_PARSEDEXTADDHINT;拡張子を記入し このボタンでリスト PREFERENCES_PARSEDEXTDELHINT;選択した拡張子をリストから削除します PREFERENCES_PARSEDEXTDOWNHINT;選択した拡張子をリストの下に移動 PREFERENCES_PARSEDEXTUPHINT;選択した拡張子をリストの上に移動 +PREFERENCES_PERFORMANCE_MEASURE;測定する +PREFERENCES_PERFORMANCE_MEASURE_HINT;コンソールに処理時間を記録 PREFERENCES_PERFORMANCE_THREADS;スレッド PREFERENCES_PERFORMANCE_THREADS_LABEL;ノイズ低減とウェーブレットレベルに関するスレッドの最大数(0 = 自動) PREFERENCES_PREVDEMO;プレビューのデモザイク方式 @@ -1258,6 +1268,11 @@ PROFILEPANEL_TOOLTIPCOPY;クリップボードに現在のプロファイルを PROFILEPANEL_TOOLTIPLOAD;ファイルからプロファイルを読み込みます\nCtrl-クリックで読み込むパラメータを選択します PROFILEPANEL_TOOLTIPPASTE; クリップボードからプロファイルを貼り付けます\nCtrl-クリックで貼り付けるパラメータを選択します PROFILEPANEL_TOOLTIPSAVE;現在のプロファイルを保存\nCtrl-クリックで保存するパラメータを選択します +PROGRESSBAR_DECODING;デコーディング。。。 +PROGRESSBAR_GREENEQUIL;グリーンの平衡化。。。 +PROGRESSBAR_HLREC;ハイライトの復元。。。 +PROGRESSBAR_HOTDEADPIXELFILTER;ホット/デッドピクセルフィルタ。。。 +PROGRESSBAR_LINEDENOISE;ラインノイズフィルタ。。。 PROGRESSBAR_LOADING;画像読み込み中... PROGRESSBAR_LOADINGTHUMBS;サムネイルの読み込み... PROGRESSBAR_LOADJPEG;JPEGファイル読み込み中... @@ -1266,6 +1281,7 @@ PROGRESSBAR_LOADTIFF;TIFFファイル読み込み中... PROGRESSBAR_NOIMAGES;画像が見つかりません PROGRESSBAR_PROCESSING;画像処理中... PROGRESSBAR_PROCESSING_PROFILESAVED;処理プロファイルを保存しました +PROGRESSBAR_RAWCACORR;Raw 色収差補正 PROGRESSBAR_READY;準備完了 PROGRESSBAR_SAVEJPEG;JPEGファイル保存中... PROGRESSBAR_SAVEPNG;PNGファイル保存中... @@ -1530,6 +1546,7 @@ TP_CROP_GTTRIANGLE2;三角構図2 TP_CROP_GUIDETYPE;ガイドタイプ: TP_CROP_H;高さ TP_CROP_LABEL;切り抜き +TP_CROP_PPI;PPI TP_CROP_RESETCROP;リセット TP_CROP_SELECTCROP;セレクト TP_CROP_W;W 幅 @@ -1770,10 +1787,15 @@ TP_LABCURVE_RSTPRO_TOOLTIP;色度スライダーとCCカーブを使用するこ TP_LENSGEOM_AUTOCROP;自動的に切り抜き選択 TP_LENSGEOM_FILL;オートフィル TP_LENSGEOM_LABEL;レンズ / ジオメトリ +TP_LENSPROFILE_CORRECTION_AUTOMATCH;自動で選択 TP_LENSPROFILE_CORRECTION_LCPFILE;LCPファイル +TP_LENSPROFILE_CORRECTION_MANUAL;手動で選択 TP_LENSPROFILE_LABEL;レンズ補正 プロファイル TP_LENSPROFILE_LENS_WARNING;注意:レンズプロファイルに使われるクロップファクターはカメラのクロップファクターより大きいので、誤った結果になる可能性があります。 +TP_LENSPROFILE_MODE_HEADER;レンズプロファイル TP_LENSPROFILE_USE_CA;色収差 +TP_LENSPROFILE_USE_GEOMETRIC;歪曲補正 +TP_LENSPROFILE_USE_HEADER;補正 TP_LENSPROFILE_USE_VIGNETTING;周辺光量 TP_LOCALCONTRAST_AMOUNT;量 TP_LOCALCONTRAST_DARKNESS;暗い部分のレベル @@ -1858,6 +1880,7 @@ TP_RAW_HD_TOOLTIP;設定値を低くすると、ホット/デッドピクセル TP_RAW_HPHD;HPHD TP_RAW_IGV;IGV TP_RAW_IMAGENUM;サブイメージ +TP_RAW_IMAGENUM_SN;SNモード TP_RAW_IMAGENUM_TOOLTIP;rawファイルの中には複数のサブイメージで構成されているものがあります(Pentaxのピクセルシフト、Pentaxの3-in-1 HDR、Canonのデュアルピクセル)。\n\nここでピクセルシフト以外のデモザイク方式を選んだ場合は、どのサブイメージだけをデモザイクに使うか選択します。\n\nピクセルシフトのrawファイルでデモザイク方式にピクセルシフトを選ぶと、全てのサブイメージがデモザイクに使われます、そしてどのサブイメージを振れのあるイメージとして使うか選択します TP_RAW_LABEL;デモザイク TP_RAW_LMMSE;LMMSE @@ -1898,6 +1921,8 @@ TP_RAW_SENSOR_BAYER_LABEL;ベイヤー配列を使ったセンサー TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-passが最適です(低ISO画像には奨められます)\n高ISO画像の場合、1-passと3-passの違いは殆どありません、処理速度は前者の方が速いです。 TP_RAW_SENSOR_XTRANS_LABEL;X-Transマトリクスを使ったセンサー TP_RAW_VNG4;VNG4 +TP_RAW_XTRANS;X-Trans +TP_RAW_XTRANSFAST;高速 X-Trans TP_RESIZE_ALLOW_UPSCALING;アップスケーリングを可能にする TP_RESIZE_APPLIESTO;適用領域: TP_RESIZE_CROPPEDAREA;切り抜き画像 @@ -2285,32 +2310,3 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!MAIN_FRAME_PLACES_DEL;Remove -!PREFERENCES_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!TP_CROP_PPI;PPI -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_MODE_HEADER;Lens Profile -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;Correct -!TP_RAW_IMAGENUM_SN;SN mode -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans From 5bddcb45da61f8d8debd71158029c2a1273c2363 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 3 Apr 2019 16:24:55 +0200 Subject: [PATCH 028/215] Queue language key and string fixes https://discuss.pixls.us/t/solved-change-of-queue-output-directory-not-taken-fully-into-account-if-no-f/11975 --- rtdata/languages/Catala | 25 ++++++----- rtdata/languages/Chinese (Simplified) | 25 ++++++----- rtdata/languages/Czech | 25 ++++++----- rtdata/languages/Deutsch | 29 +++++++------ rtdata/languages/English (UK) | 25 ++++++----- rtdata/languages/English (US) | 25 ++++++----- rtdata/languages/Espanol | 25 ++++++----- rtdata/languages/Francais | 25 ++++++----- rtdata/languages/Italiano | 25 ++++++----- rtdata/languages/Japanese | 29 +++++++------ rtdata/languages/Magyar | 25 ++++++----- rtdata/languages/Nederlands | 25 ++++++----- rtdata/languages/Polish | 25 ++++++----- rtdata/languages/Portugues | 25 ++++++----- rtdata/languages/Portugues (Brasil) | 25 ++++++----- rtdata/languages/Russian | 25 ++++++----- rtdata/languages/Serbian (Cyrilic Characters) | 25 ++++++----- rtdata/languages/Swedish | 25 ++++++----- rtdata/languages/default | 25 ++++++----- rtgui/batchqueuepanel.cc | 43 +++++++++---------- rtgui/preferences.cc | 2 +- rtgui/rtwindow.cc | 2 +- 22 files changed, 258 insertions(+), 272 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 97ffe7e9d..87af9a19a 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -5,8 +5,6 @@ ABOUT_TAB_CREDITS;Crèdits ABOUT_TAB_LICENSE;Llicència ABOUT_TAB_RELEASENOTES;Notes de la versió ABOUT_TAB_SPLASH;Splash -BATCHQUEUE_AUTOSTART;Auto engega -BATCHQUEUE_AUTOSTARTHINT;Inicia processat automàticament en rebre un nou treball BATCH_PROCESSING;Processament per lots CURVEEDITOR_CURVE;Corba CURVEEDITOR_CURVES;Corbes @@ -371,14 +369,14 @@ MAIN_BUTTON_SAVE_TOOLTIP;Desa la imatge actual.\nDrecera: Ctrl+S MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edita la imatge actual a un editor extern.\nDrecera: Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Mostra/amaga panells laterals.\nDrecera: m MAIN_BUTTON_UNFULLSCREEN;Fi pantalla sencera -MAIN_FRAME_BATCHQUEUE;Cua de procés -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Cua de procés.\nDrecera: Ctrl-F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP; Editor.\nDrecera: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Gestor de fitxers MAIN_FRAME_FILEBROWSER_TOOLTIP; Gestor de fitxers.\nDrecera: Ctrl-F2 MAIN_FRAME_PLACES;Llocs MAIN_FRAME_PLACES_ADD;Afeg +MAIN_FRAME_QUEUE;Cua de procés +MAIN_FRAME_QUEUE_TOOLTIP; Cua de procés.\nDrecera: Ctrl-F3 MAIN_FRAME_RECENT;Carpetes recents MAIN_MSG_ALREADYEXISTS;Fitxer ja existent. MAIN_MSG_CANNOTLOAD;No es pot carregar la imatge @@ -505,7 +503,6 @@ PREFERENCES_DIRSOFTWARE;Instal·lació al directori PREFERENCES_EDITORLAYOUT;Sortida d'editor PREFERENCES_EXTERNALEDITOR;Editor extern PREFERENCES_FBROWSEROPTS;Opcions de navegador i minifotos -PREFERENCES_FILEFORMAT;Format de fitxer PREFERENCES_FLATFIELDFOUND;Trobat PREFERENCES_FLATFIELDSDIR;Carpeta de camps plans PREFERENCES_FLATFIELDSHOTS;trets @@ -531,11 +528,6 @@ PREFERENCES_MENUGROUPRANK;Grup "Rang" PREFERENCES_MENUOPTIONS;Opcions del menú PREFERENCES_MULTITAB;Mode multitreball PREFERENCES_MULTITABDUALMON;Mode multitreball en segon monitor, si se'n té un -PREFERENCES_OUTDIR;Directori de sortida -PREFERENCES_OUTDIRFOLDER;Desa al directori -PREFERENCES_OUTDIRFOLDERHINT;Posa les imatges desades al directori seleccionat -PREFERENCES_OUTDIRTEMPLATE;Usar plantilla -PREFERENCES_OUTDIRTEMPLATEHINT;Podeu fer servir les següents cadenes de format:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r\n\nAquest format es basa en les diferents parts del path d'una fotografia o bé alguns dels seus atributs.\n\nPer exemple, si la foto en curs està localitzada a:\n/home/tom/fotos/2010-10-31/dsc0042.nef\nel significat de les cadenes de format és:\n%d4 = home\n%d3 = tom\n%d2 = fotos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/fotos/2010-10-31/\n%p2 = /home/tom/fotos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r es canviarà pel rang de la foto. Si la foto no té rang, %r es convertirà en un '0'. Si la foto és a la paperera bin, %r es convertirà en 'x'.\n\nSi desitgeu desar la imatge actual on hi ha l'original, escriviu:\n%p1/%f\n\nSi desitgeu desar la imatge actual en un directori de nom "refetes" sota el directori de la imatge oberta, escriviu:\n%p1/refetes/%f\n\nSi desitgeu desar la imatge actual en un directori de nom "/home/tom/photos/refetes/2010-10-31", escriviu:\n%p2/refetes/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Sobreposar noms de fitxer a les minifotos PREFERENCES_OVERWRITEOUTPUTFILE;Sobrescriu fitxers en desar-los PREFERENCES_PANFACTORLABEL;Factor @@ -559,9 +551,9 @@ PREFERENCES_SHOWEXPOSURECOMPENSATION;Mostra compensació d'exposició PREFERENCES_SHTHRESHOLD;Llindar pèrdues en foscos PREFERENCES_SINGLETAB;Mode simple treball PREFERENCES_SINGLETABVERTAB;Mode simple treball, vistes verticals -PREFERENCES_SND_BATCHQUEUEDONE;Procs. de la cua fets PREFERENCES_SND_HELP;Poseu el path o bé no res (res=silenci). A Windows useu "SystemDefault", "SystemAsterisk" etc. pels sons del sistema. PREFERENCES_SND_LNGEDITPROCDONE;Process. d'editor fet +PREFERENCES_SND_QUEUEDONE;Procs. de la cua fets PREFERENCES_SND_THRESHOLDSECS;després d'uns segons PREFERENCES_STARTUPIMDIR;Directori inicial de les imatges PREFERENCES_TAB_BROWSER;Gestor de fitxers @@ -600,6 +592,12 @@ PROGRESSBAR_SAVETIFF;Desant fitxer TIFF... PROGRESSDLG_PROFILECHANGEDINBROWSER;Processant perfil canviat al navegador QINFO_ISO;ISO QINFO_NOEXIF;No hi ha dades Exif. +QUEUE_AUTOSTART;Auto engega +QUEUE_AUTOSTART_TOOLTIP;Inicia processat automàticament en rebre un nou treball +QUEUE_FORMAT_TITLE;Format de fitxer +QUEUE_LOCATION_FOLDER;Desa al directori +QUEUE_LOCATION_TEMPLATE;Usar plantilla +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Podeu fer servir les següents cadenes de format:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r\n\nAquest format es basa en les diferents parts del path d'una fotografia o bé alguns dels seus atributs.\n\nPer exemple, si la foto en curs està localitzada a:\n/home/tom/fotos/2010-10-31/dsc0042.nef\nel significat de les cadenes de format és:\n%d4 = home\n%d3 = tom\n%d2 = fotos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/fotos/2010-10-31/\n%p2 = /home/tom/fotos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r es canviarà pel rang de la foto. Si la foto no té rang, %r es convertirà en un '0'. Si la foto és a la paperera bin, %r es convertirà en 'x'.\n\nSi desitgeu desar la imatge actual on hi ha l'original, escriviu:\n%p1/%f\n\nSi desitgeu desar la imatge actual en un directori de nom "refetes" sota el directori de la imatge oberta, escriviu:\n%p1/refetes/%f\n\nSi desitgeu desar la imatge actual en un directori de nom "/home/tom/photos/refetes/2010-10-31", escriviu:\n%p2/refetes/%d1/%f SAVEDLG_AUTOSUFFIX;Afegeix automàticament un sufix si el fitxer ja hi és SAVEDLG_FILEFORMAT;Format del fitxer SAVEDLG_JPEGQUAL;Qualitat JPEG @@ -915,8 +913,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !!!!!!!!!!!!!!!!!!!!!!!!! !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1573,6 +1569,9 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_DESTFILENAME;Path and file name +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index bfbc8f607..d791a72d3 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -10,8 +10,6 @@ ABOUT_TAB_CREDITS;感谢 ABOUT_TAB_LICENSE;授权协议 ABOUT_TAB_RELEASENOTES;发布说明 ABOUT_TAB_SPLASH;启动页 -BATCHQUEUE_AUTOSTART;自动开始 -BATCHQUEUE_DESTFILENAME;路径和文件名 BATCH_PROCESSING;批量处理 CURVEEDITOR_CURVE;曲线 CURVEEDITOR_CURVES;曲线 @@ -350,14 +348,14 @@ MAIN_BUTTON_SENDTOEDITOR;发送到编辑器 MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;使用外部工具编辑当前图像 \n快捷键:Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;显示/隐藏全部侧边栏\n快捷键: m MAIN_BUTTON_UNFULLSCREEN;退出全屏 -MAIN_FRAME_BATCHQUEUE;批处理队列 -MAIN_FRAME_BATCHQUEUE_TOOLTIP;处理序列\n快捷键: Ctrl-F3 MAIN_FRAME_EDITOR;编辑器 MAIN_FRAME_EDITOR_TOOLTIP;编辑器.\n快捷键: Ctrl-F4 MAIN_FRAME_FILEBROWSER;文件浏览 MAIN_FRAME_FILEBROWSER_TOOLTIP;文件浏览\n快捷键: Ctrl-F2 MAIN_FRAME_PLACES;位置 MAIN_FRAME_PLACES_ADD;添加 +MAIN_FRAME_QUEUE;批处理队列 +MAIN_FRAME_QUEUE_TOOLTIP;处理序列\n快捷键: Ctrl-F3 MAIN_FRAME_RECENT;最近使用的文件夹 MAIN_MSG_ALREADYEXISTS;该文件已存在 MAIN_MSG_CANNOTLOAD;无法加载图片 @@ -517,7 +515,6 @@ PREFERENCES_DIRSOFTWARE;软件安装路径 PREFERENCES_EDITORLAYOUT;编辑器布局 PREFERENCES_EXTERNALEDITOR;外部编辑器 PREFERENCES_FBROWSEROPTS;文件浏览选项 -PREFERENCES_FILEFORMAT;文件格式 PREFERENCES_FLATFIELDFOUND;找到 PREFERENCES_FLATFIELDSDIR;平场图像路径 PREFERENCES_FLATFIELDSHOTS;张 @@ -556,11 +553,6 @@ PREFERENCES_MONPROFILE_WARNOSX;受MacOS限制, 仅支持sRGB PREFERENCES_MULTITAB;多编辑器标签模式 PREFERENCES_MULTITABDUALMON;多编辑器标签独立模式 PREFERENCES_NAVIGATIONFRAME;导航器 -PREFERENCES_OUTDIR;输出路径 -PREFERENCES_OUTDIRFOLDER;保存至文件夹 -PREFERENCES_OUTDIRFOLDERHINT;将已寸图片放至所选文件夹 -PREFERENCES_OUTDIRTEMPLATE;使用模板 -PREFERENCES_OUTDIRTEMPLATEHINT;可以使用下列控制符:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\n这些控制符指向RAW文件所在文件夹及子文件夹 \n\n例如 假如 /home/tom/image/02-09-2006/dsc0012.nef已经打开, 控制符的意义如下:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\n如果想将输出文件保存到输入文件所在位置:\n%p1/%f\n\n如果想将输出文件保存至输入文件夹内的'converted'子文件夹:\n%p1/converted/%f\n\n如果想将输出文件保存至 '/home/tom/converted' 并保留按日期所分的子文件夹:\n%p2/converted/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -603,9 +595,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;显示图像胶片栏 PREFERENCES_SHTHRESHOLD;阴影过暗阈值 PREFERENCES_SINGLETAB;单编辑器栏模式 PREFERENCES_SINGLETABVERTAB;单编辑器栏模式, 标签栏垂直 -PREFERENCES_SND_BATCHQUEUEDONE;队列处理完成 PREFERENCES_SND_HELP;输入完整路径来指定声音文件, 或者留空表示无声 \nWindows系统声音可以使用 "SystemDefault", "SystemAsterisk" 等 Linux则可以使用 "complete", "window-attention" 等 PREFERENCES_SND_LNGEDITPROCDONE;编辑器处理完成 +PREFERENCES_SND_QUEUEDONE;队列处理完成 PREFERENCES_SND_THRESHOLDSECS;几秒之后 PREFERENCES_STARTUPIMDIR;启动时路径 PREFERENCES_TAB_BROWSER;文件浏览器 @@ -642,6 +634,12 @@ PROGRESSBAR_SAVEPNG;PNG文件保存中... PROGRESSBAR_SAVETIFF;TIFF文件保存中... QINFO_ISO;ISO QINFO_NOEXIF;Exif数据不可用. +QUEUE_AUTOSTART;自动开始 +QUEUE_DESTFILENAME;路径和文件名 +QUEUE_FORMAT_TITLE;文件格式 +QUEUE_LOCATION_FOLDER;保存至文件夹 +QUEUE_LOCATION_TEMPLATE;使用模板 +QUEUE_LOCATION_TEMPLATE_TOOLTIP;可以使用下列控制符:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\n这些控制符指向RAW文件所在文件夹及子文件夹 \n\n例如 假如 /home/tom/image/02-09-2006/dsc0012.nef已经打开, 控制符的意义如下:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\n如果想将输出文件保存到输入文件所在位置:\n%p1/%f\n\n如果想将输出文件保存至输入文件夹内的'converted'子文件夹:\n%p1/converted/%f\n\n如果想将输出文件保存至 '/home/tom/converted' 并保留按日期所分的子文件夹:\n%p2/converted/%d1/%f SAVEDLG_AUTOSUFFIX;自动加后缀到已经存在的文件 SAVEDLG_FILEFORMAT;文件格式 SAVEDLG_FORCEFORMATOPTS;强制保存选项 @@ -932,8 +930,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !!!!!!!!!!!!!!!!!!!!!!!!! !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1554,6 +1550,9 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_AUTOSTART_TOOLTIP;Start processing automatically when a new job arrives. +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index be3a8993e..0ab5a61c8 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -49,10 +49,6 @@ ABOUT_TAB_LICENSE;Licence ABOUT_TAB_RELEASENOTES;Poznámky k vydání ABOUT_TAB_SPLASH;Úvodní obrazovka ADJUSTER_RESET_TO_DEFAULT;Kliknutí - návrat k výchozí hodnotě.\nCtrl+kliknutí - návrat k počáteční hodnotě. -BATCHQUEUE_AUTOSTART;Automatický start -BATCHQUEUE_AUTOSTARTHINT;Automatické spuštění zpracování po vložení nové úlohy. -BATCHQUEUE_DESTFILENAME;Cesta a název souboru -BATCHQUEUE_STARTSTOPHINT;Spustit nebo zastavit zpracování obrázků ve frontě.\n\nZkratka: Ctrl+s BATCH_PROCESSING;Dávkové zpracování CURVEEDITOR_AXIS_IN;Vstup: CURVEEDITOR_AXIS_LEFT_TAN;LS: @@ -916,14 +912,14 @@ MAIN_BUTTON_SENDTOEDITOR;Upravit obrázek v externím editoru MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Editovat současný obrázek v externím editoru.\nZkratka: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Zobrazit/skrýt všechny postranní panely.\nZkratka: m MAIN_BUTTON_UNFULLSCREEN;Ukončit režim celé obrazovky -MAIN_FRAME_BATCHQUEUE;Fronta -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Fronta zpracování.\nZkratka: Ctrl-F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nZkratka: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Prohlížeč souborů MAIN_FRAME_FILEBROWSER_TOOLTIP;Prohlížeč souborů.\nZkratka: Ctrl-F2 MAIN_FRAME_PLACES;Místa MAIN_FRAME_PLACES_ADD;Přidat +MAIN_FRAME_QUEUE;Fronta +MAIN_FRAME_QUEUE_TOOLTIP;Fronta zpracování.\nZkratka: Ctrl-F3 MAIN_FRAME_RECENT;Poslední složky MAIN_MSG_ALREADYEXISTS;Soubor již existuje. MAIN_MSG_CANNOTLOAD;Nepodařilo se načíst obrázek @@ -1136,7 +1132,6 @@ PREFERENCES_EDITORLAYOUT;Rozvržení editoru PREFERENCES_EXTERNALEDITOR;Externí editor PREFERENCES_FBROWSEROPTS;Volby prohlížeče souborů / náhledů PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Kompaktní nástroje v Prohlížeči souborů -PREFERENCES_FILEFORMAT;Formát souboru PREFERENCES_FLATFIELDFOUND;Nalezeno PREFERENCES_FLATFIELDSDIR;Složka Flat Field souborů PREFERENCES_FLATFIELDSHOTS;snímků @@ -1175,11 +1170,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Na MacOS je podporováno pouze sRGB. PREFERENCES_MULTITAB;Mód více karet editoru PREFERENCES_MULTITABDUALMON;Mód více karet editoru ve vlastním okně PREFERENCES_NAVIGATIONFRAME;Navigátor -PREFERENCES_OUTDIR;Výstupní složka -PREFERENCES_OUTDIRFOLDER;Ulož do souboru -PREFERENCES_OUTDIRFOLDERHINT;Uložit obrázky do vybrané složky. -PREFERENCES_OUTDIRTEMPLATE;Použít šablonu -PREFERENCES_OUTDIRTEMPLATEHINT;Lze použít následující formátovací řetězce:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nTyto formátovací řetězce reprezentují různé části cesty k uložené fotografii, některé vlastnosti fotografie nebo pořadí v dávce.\n\nNapříklad pokud má zpracovávaná fotografie následující cestu:\n/home/tomas/fotky/2010-10-31/dsc0042.nef,\nmají jednotlivé formátovací řetězce tento význam:\n%d4 = home\n%d3 = tomas\n%d2 = fotky\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tomas/fotky/2010-10-31/\n%p2 = /home/tomas/fotky/\n%p3 = /home/tomas/\n%p4 = /home/\n\n%r bude nahrazeno hodnocením fotografie. Pokud není fotografie ohodnocena, bude %r nahrazeno '0'. Pokud je fotografie v koši, bude %r nahrazeno 'x'.\n\n%s1, %s2, atd. bude nahrazeno pořadím v dávce doplněném na 1 až 9 číslic. Každé spuštění zpracování fronty jej vždy nastaví na jedna a po každé zpracované fotografii se o jedna zvýší .\n\nPokud si přejete uložit výstupní obrázek vedle originálu, napište:\n%p1/%f\n\nPokud si jej ale přejete uložit do adresáře "zpracovano" ve stejném adresáři jako otevřený obrázek, napište:\n%p1/zpracovano/%f\n\nPro uložení výstupního obrázku do adresáře\n"/home/tom/fotky/zpracovano/2010-10-31", napište:\n%p2/zpracovano/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Překrýt jména souborů na náhledech v prohlížeči souborů PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Překrýt jména souborů na náhledech v editoru PREFERENCES_OVERWRITEOUTPUTFILE;Přepsat existující soubory @@ -1225,9 +1215,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Lišta s filmovým pásem PREFERENCES_SHTHRESHOLD;Práh oříznutých stínů PREFERENCES_SINGLETAB;Mód jedné karty editoru PREFERENCES_SINGLETABVERTAB;Mód jedné karty editoru, svislé karty -PREFERENCES_SND_BATCHQUEUEDONE;Zpracování fronty dokončeno PREFERENCES_SND_HELP;Vložte cestu k souboru pro nastavení zvuku nebo ponechte prázdné (bez zvuku).\nVe Windows zadejte "SystemDefault", "SystemAsterisk" a podobně.\nNa Linuxu použijte "complete", "window-attention" a další. PREFERENCES_SND_LNGEDITPROCDONE;Zpracování v editoru dokončeno +PREFERENCES_SND_QUEUEDONE;Zpracování fronty dokončeno PREFERENCES_SND_THRESHOLDSECS;Po sekundách PREFERENCES_STARTUPIMDIR;Složka obrázků při spuštění PREFERENCES_TAB_BROWSER;Prohlížeč souborů @@ -1283,6 +1273,14 @@ QINFO_HDR;HDR / %2 snímků QINFO_ISO;ISO QINFO_NOEXIF;Exif údaje nejsou k dispozici. QINFO_PIXELSHIFT;Pixel Shift / %2 snímků +QUEUE_AUTOSTART;Automatický start +QUEUE_AUTOSTART_TOOLTIP;Automatické spuštění zpracování po vložení nové úlohy. +QUEUE_DESTFILENAME;Cesta a název souboru +QUEUE_FORMAT_TITLE;Formát souboru +QUEUE_LOCATION_FOLDER;Ulož do souboru +QUEUE_LOCATION_TEMPLATE;Použít šablonu +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Lze použít následující formátovací řetězce:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nTyto formátovací řetězce reprezentují různé části cesty k uložené fotografii, některé vlastnosti fotografie nebo pořadí v dávce.\n\nNapříklad pokud má zpracovávaná fotografie následující cestu:\n/home/tomas/fotky/2010-10-31/dsc0042.nef,\nmají jednotlivé formátovací řetězce tento význam:\n%d4 = home\n%d3 = tomas\n%d2 = fotky\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tomas/fotky/2010-10-31/\n%p2 = /home/tomas/fotky/\n%p3 = /home/tomas/\n%p4 = /home/\n\n%r bude nahrazeno hodnocením fotografie. Pokud není fotografie ohodnocena, bude %r nahrazeno '0'. Pokud je fotografie v koši, bude %r nahrazeno 'x'.\n\n%s1, %s2, atd. bude nahrazeno pořadím v dávce doplněném na 1 až 9 číslic. Každé spuštění zpracování fronty jej vždy nastaví na jedna a po každé zpracované fotografii se o jedna zvýší .\n\nPokud si přejete uložit výstupní obrázek vedle originálu, napište:\n%p1/%f\n\nPokud si jej ale přejete uložit do adresáře "zpracovano" ve stejném adresáři jako otevřený obrázek, napište:\n%p1/zpracovano/%f\n\nPro uložení výstupního obrázku do adresáře\n"/home/tom/fotky/zpracovano/2010-10-31", napište:\n%p2/zpracovano/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;Spustit nebo zastavit zpracování obrázků ve frontě.\n\nZkratka: Ctrl+s SAMPLEFORMAT_0;Neznámý datový formát SAMPLEFORMAT_1;8-bitový neznaménkový SAMPLEFORMAT_2;16-bitový neznaménkový @@ -2313,6 +2311,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... +!QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 4e9c639ce..e4eebfb77 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -86,10 +86,6 @@ ABOUT_TAB_LICENSE;Lizenz ABOUT_TAB_RELEASENOTES;Versionshinweise ABOUT_TAB_SPLASH;Startbild ADJUSTER_RESET_TO_DEFAULT;Klick - Auf Standardwert zurücksetzen.\nStrg + Klick - Auf Initialwert zurücksetzen. -BATCHQUEUE_AUTOSTART;Automatisch starten -BATCHQUEUE_AUTOSTARTHINT;Bei neuem Job die Verarbeitung automatisch starten -BATCHQUEUE_DESTFILENAME;Pfad und Dateiname -BATCHQUEUE_STARTSTOPHINT;Startet / Stoppt die Verarbeitung\nder Warteschlange.\n\nTaste: Strg + s BATCH_PROCESSING;Stapelverarbeitung CURVEEDITOR_AXIS_IN;x: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -956,8 +952,6 @@ MAIN_BUTTON_SENDTOEDITOR;Bild im externen Editor öffnen. MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Bild im externen Editor öffnen.\nTaste: Strg + e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Alle seitlichen Bedienfelder ein-/ausblenden.\nTaste: m MAIN_BUTTON_UNFULLSCREEN;Vollbild beenden.\nTaste: F11 -MAIN_FRAME_BATCHQUEUE;Warteschlange -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Warteschlange\nTaste: Strg + F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP;Editor\nTaste: Strg + F4 MAIN_FRAME_FILEBROWSER;Dateiverwaltung @@ -965,6 +959,8 @@ MAIN_FRAME_FILEBROWSER_TOOLTIP;Dateiverwaltung\nTaste: Strg + F2 MAIN_FRAME_PLACES;Favoriten MAIN_FRAME_PLACES_ADD;Hinzufügen MAIN_FRAME_PLACES_DEL;Entfernen +MAIN_FRAME_QUEUE;Warteschlange +MAIN_FRAME_QUEUE_TOOLTIP;Warteschlange\nTaste: Strg + F3 MAIN_FRAME_RECENT;Verzeichnishistorie MAIN_MSG_ALREADYEXISTS;Diese Datei existiert bereits. MAIN_MSG_CANNOTLOAD;Bild kann nicht geladen werden. @@ -1185,7 +1181,6 @@ PREFERENCES_EDITORLAYOUT;Editor-Layout PREFERENCES_EXTERNALEDITOR;Externer Editor PREFERENCES_FBROWSEROPTS;Bildinformationen und Miniaturbilder PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar -PREFERENCES_FILEFORMAT;Dateiformat PREFERENCES_FLATFIELDFOUND;Gefunden PREFERENCES_FLATFIELDSDIR;Weißbild-Verzeichnis PREFERENCES_FLATFIELDSHOTS;Aufnahmen @@ -1224,11 +1219,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Aufgrund einer macOS-Limitierung wird nur sRGB un PREFERENCES_MULTITAB;Multi-Reitermodus PREFERENCES_MULTITABDUALMON;Multi-Reitermodus (auf zweitem Monitor, wenn verfügbar) PREFERENCES_NAVIGATIONFRAME;Navigation -PREFERENCES_OUTDIR;Ausgabeverzeichnis -PREFERENCES_OUTDIRFOLDER;In dieses Verzeichnis speichern -PREFERENCES_OUTDIRFOLDERHINT;Alle Dateien im ausgewählten Verzeichnis speichern. -PREFERENCES_OUTDIRTEMPLATE;Dynamisches Verzeichnis verwenden -PREFERENCES_OUTDIRTEMPLATEHINT;Die folgenden Variablen können verwendet werden:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nDiese Variablen beinhalten bestimmte Teile des Verzeichnispfades, in welchem sich das Bild befindet, oder Attribute des Bildes.\n\nWenn zum Beispiel /home/tom/photos/2010-10-31/dsc0042.nef geöffnet wurde, dann haben die Variablen den folgenden Inhalt:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31\n%p2 = /home/tom/photos\n%p3 = /home/tom\n%p4 = /home\n\nWenn Sie die Ausgabedatei in dasselbe Verzeichnis wie das Originalbild speichern wollen, dann wählen Sie:\n%p1/%f\n\nWenn Sie die Ausgabedatei in ein Unterverzeichnis mit dem Namen "converted" schreiben wollen, dann wählen Sie:\n%p1/converted/%f\n\nWenn Sie die Ausgabedatei im Verzeichnispfad "/home/tom/photos/converted" speichern wollen, dort jedoch in einem mit dem Namen des Ursprungsverzeichnisses betitelten Unterverzeichnis, dann wählen Sie:\n%p2/converted/%d1/%f\n\nDie Variable %r enthält die Bewertung des Bildes. PREFERENCES_OVERLAY_FILENAMES;Bildinformationen überlagern die Miniaturbilder in der Dateiverwaltung PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Bildinformationen der Miniaturbilder im Filmstreifen anzeigen PREFERENCES_OVERWRITEOUTPUTFILE;Bestehende Ausgabedateien überschreiben @@ -1276,9 +1266,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Toolbar oberhalb des Filmstreifens anzeigen PREFERENCES_SHTHRESHOLD;Schatten - Schwelle PREFERENCES_SINGLETAB;Ein-Reitermodus PREFERENCES_SINGLETABVERTAB;Ein-Reitermodus (vertikale Reiter) -PREFERENCES_SND_BATCHQUEUEDONE;Warteschlange abgearbeitet PREFERENCES_SND_HELP;Geben Sie einen Pfad zu einer Sounddatei oder einen Systemklang ein.\n\nBeispiel Systemklänge:\nWindows: SystemDefault, SystemAsterisk ...\nLinux: complete, window-attention ...\n PREFERENCES_SND_LNGEDITPROCDONE;Bearbeitung abgeschlossen +PREFERENCES_SND_QUEUEDONE;Warteschlange abgearbeitet PREFERENCES_SND_THRESHOLDSECS;Verzögerung in Sekunden PREFERENCES_STARTUPIMDIR;Bildverzeichnis beim Programmstart PREFERENCES_TAB_BROWSER;Dateiverwaltung @@ -1340,6 +1330,14 @@ QINFO_HDR;HDR / %2 Frame(s) QINFO_ISO;ISO QINFO_NOEXIF;Keine Exif-Daten vorhanden. QINFO_PIXELSHIFT;Pixel-Shift / %2 Frame(s) +QUEUE_AUTOSTART;Automatisch starten +QUEUE_AUTOSTART_TOOLTIP;Bei neuem Job die Verarbeitung automatisch starten +QUEUE_DESTFILENAME;Pfad und Dateiname +QUEUE_FORMAT_TITLE;Dateiformat +QUEUE_LOCATION_FOLDER;In dieses Verzeichnis speichern +QUEUE_LOCATION_TEMPLATE;Dynamisches Verzeichnis verwenden +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Die folgenden Variablen können verwendet werden:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nDiese Variablen beinhalten bestimmte Teile des Verzeichnispfades, in welchem sich das Bild befindet, oder Attribute des Bildes.\n\nWenn zum Beispiel /home/tom/photos/2010-10-31/dsc0042.nef geöffnet wurde, dann haben die Variablen den folgenden Inhalt:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31\n%p2 = /home/tom/photos\n%p3 = /home/tom\n%p4 = /home\n\nWenn Sie die Ausgabedatei in dasselbe Verzeichnis wie das Originalbild speichern wollen, dann wählen Sie:\n%p1/%f\n\nWenn Sie die Ausgabedatei in ein Unterverzeichnis mit dem Namen "converted" schreiben wollen, dann wählen Sie:\n%p1/converted/%f\n\nWenn Sie die Ausgabedatei im Verzeichnispfad "/home/tom/photos/converted" speichern wollen, dort jedoch in einem mit dem Namen des Ursprungsverzeichnisses betitelten Unterverzeichnis, dann wählen Sie:\n%p2/converted/%d1/%f\n\nDie Variable %r enthält die Bewertung des Bildes. +QUEUE_STARTSTOP_TOOLTIP;Startet / Stoppt die Verarbeitung\nder Warteschlange.\n\nTaste: Strg + s SAMPLEFORMAT_0;Unbekanntes Datenformat SAMPLEFORMAT_1;8 Bit ohne Vorzeichen SAMPLEFORMAT_2;16 Bit ohne Vorzeichen @@ -2358,3 +2356,8 @@ 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. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!QUEUE_LOCATION_TITLE;Output Location diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 6bc51a0ac..1b7b6847d 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -128,10 +128,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -966,8 +962,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE;Queue -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 !MAIN_FRAME_EDITOR;Editor !MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 !MAIN_FRAME_FILEBROWSER;File Browser @@ -975,6 +969,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !MAIN_FRAME_PLACES;Places !MAIN_FRAME_PLACES_ADD;Add !MAIN_FRAME_PLACES_DEL;Remove +!MAIN_FRAME_QUEUE;Queue +!MAIN_FRAME_QUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 !MAIN_FRAME_RECENT;Recent Folders !MAIN_MSG_ALREADYEXISTS;File already exists. !MAIN_MSG_CANNOTLOAD;Cannot load image @@ -1180,7 +1176,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1214,11 +1209,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OUTDIR;Output Directory -!PREFERENCES_OUTDIRFOLDER;Save to folder -!PREFERENCES_OUTDIRFOLDERHINT;Save images to the selected folder. -!PREFERENCES_OUTDIRTEMPLATE;Use template -!PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nThese formatting strings refer to the different parts of the photo's pathname, some attributes of the photo or an arbitrary sequence index in the batch job.\n\nFor example, if the photo being processed has the following pathname:\n/home/tom/photos/2010-10-31/dsc0042.nef\nthe meaning of the formatting strings are:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r will be replaced by the rank of the photo. If the photo is unranked, %r will be replaced by '0'. If the photo is in the trash bin, %r will be replaced by 'x'.\n\n%s1, %s2, etc. will be replaced by a sequence index which is padded to between 1 and 9 digits. The sequence index will start at one each time the queue processing is started and is incremented by one for each image processed.\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory named "converted" located in the directory of the opened image, write:\n%p1/converted/%f\n\nIf you want to save the output image in a directory named\n"/home/tom/photos/converted/2010-10-31", write:\n%p2/converted/%d1/%f !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -1265,9 +1255,9 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done +!PREFERENCES_SND_QUEUEDONE;Queue processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds !PREFERENCES_STARTUPIMDIR;Image Directory at Startup !PREFERENCES_TAB_BROWSER;File Browser @@ -1328,6 +1318,15 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !QINFO_ISO;ISO !QINFO_NOEXIF;Exif data not available. !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_AUTOSTART;Auto-start +!QUEUE_AUTOSTART_TOOLTIP;Start processing automatically when a new job arrives. +!QUEUE_DESTFILENAME;Path and file name +!QUEUE_FORMAT_TITLE;File Format +!QUEUE_LOCATION_FOLDER;Save to folder +!QUEUE_LOCATION_TEMPLATE;Use template +!QUEUE_LOCATION_TEMPLATE_TOOLTIP;Specify the output location based on the source photo's location, rank, trash status or position in the queue.\n\nUsing the following pathname as an example:\n/home/tom/photos/2010-10-31/photo1.raw\nthe meaning of the formatting strings follows:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = photo1\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r will be replaced by the photo's rank. If the photo is unranked, '0' is used. If the photo is in the trash, 'x' is used.\n\n%s1, ..., %s9 will be replaced by the photo's initial position in the queue at the time the queue is started. The number specifies the padding, e.g. %s3 results in '001'.\n\nIf you want to save the output image alongside the source image, write:\n%p1/%f\n\nIf you want to save the output image in a folder named 'converted' located in the source photo's folder, write:\n%p1/converted/%f\n\nIf you want to save the output image in\n'/home/tom/photos/converted/2010-10-31', write:\n%p2/converted/%d1/%f +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index de372a986..1bfeb0df7 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -9,10 +9,6 @@ !ABOUT_TAB_RELEASENOTES;Release Notes !ABOUT_TAB_SPLASH;Splash !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_AUTOSTART;Auto-start -!BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !BATCH_PROCESSING;Batch Processing !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -878,8 +874,6 @@ !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -!MAIN_FRAME_BATCHQUEUE;Queue -!MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 !MAIN_FRAME_EDITOR;Editor !MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 !MAIN_FRAME_FILEBROWSER;File Browser @@ -887,6 +881,8 @@ !MAIN_FRAME_PLACES;Places !MAIN_FRAME_PLACES_ADD;Add !MAIN_FRAME_PLACES_DEL;Remove +!MAIN_FRAME_QUEUE;Queue +!MAIN_FRAME_QUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 !MAIN_FRAME_RECENT;Recent Folders !MAIN_MSG_ALREADYEXISTS;File already exists. !MAIN_MSG_CANNOTLOAD;Cannot load image @@ -1107,7 +1103,6 @@ !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -!PREFERENCES_FILEFORMAT;File format !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory !PREFERENCES_FLATFIELDSHOTS;shots @@ -1146,11 +1141,6 @@ !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_OUTDIR;Output Directory -!PREFERENCES_OUTDIRFOLDER;Save to folder -!PREFERENCES_OUTDIRFOLDERHINT;Save images to the selected folder. -!PREFERENCES_OUTDIRTEMPLATE;Use template -!PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nThese formatting strings refer to the different parts of the photo's pathname, some attributes of the photo or an arbitrary sequence index in the batch job.\n\nFor example, if the photo being processed has the following pathname:\n/home/tom/photos/2010-10-31/dsc0042.nef\nthe meaning of the formatting strings are:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r will be replaced by the rank of the photo. If the photo is unranked, %r will be replaced by '0'. If the photo is in the trash bin, %r will be replaced by 'x'.\n\n%s1, %s2, etc. will be replaced by a sequence index which is padded to between 1 and 9 digits. The sequence index will start at one each time the queue processing is started and is incremented by one for each image processed.\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory named "converted" located in the directory of the opened image, write:\n%p1/converted/%f\n\nIf you want to save the output image in a directory named\n"/home/tom/photos/converted/2010-10-31", write:\n%p2/converted/%d1/%f !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -1198,9 +1188,9 @@ !PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done +!PREFERENCES_SND_QUEUEDONE;Queue processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds !PREFERENCES_STARTUPIMDIR;Image Directory at Startup !PREFERENCES_TAB_BROWSER;File Browser @@ -1262,6 +1252,15 @@ !QINFO_ISO;ISO !QINFO_NOEXIF;Exif data not available. !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_AUTOSTART;Auto-start +!QUEUE_AUTOSTART_TOOLTIP;Start processing automatically when a new job arrives. +!QUEUE_DESTFILENAME;Path and file name +!QUEUE_FORMAT_TITLE;File Format +!QUEUE_LOCATION_FOLDER;Save to folder +!QUEUE_LOCATION_TEMPLATE;Use template +!QUEUE_LOCATION_TEMPLATE_TOOLTIP;Specify the output location based on the source photo's location, rank, trash status or position in the queue.\n\nUsing the following pathname as an example:\n/home/tom/photos/2010-10-31/photo1.raw\nthe meaning of the formatting strings follows:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = photo1\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r will be replaced by the photo's rank. If the photo is unranked, '0' is used. If the photo is in the trash, 'x' is used.\n\n%s1, ..., %s9 will be replaced by the photo's initial position in the queue at the time the queue is started. The number specifies the padding, e.g. %s3 results in '001'.\n\nIf you want to save the output image alongside the source image, write:\n%p1/%f\n\nIf you want to save the output image in a folder named 'converted' located in the source photo's folder, write:\n%p1/converted/%f\n\nIf you want to save the output image in\n'/home/tom/photos/converted/2010-10-31', write:\n%p2/converted/%d1/%f +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index d1f939df8..e0d3972bf 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -68,10 +68,6 @@ ABOUT_TAB_LICENSE;Licencia ABOUT_TAB_RELEASENOTES;Notas de la versión ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Restablece los valores predeterminados -BATCHQUEUE_AUTOSTART;Inicio automático -BATCHQUEUE_AUTOSTARTHINT;Iniciar automáticamente el procesamiento en cuanto llega un nuevo trabajo -BATCHQUEUE_DESTFILENAME;Ruta y nombre del archivo -BATCHQUEUE_STARTSTOPHINT;Iniciar o detener el procesamiento de las imágenes en la cola.\nTecla de Atajo: Ctrl + s BATCH_PROCESSING;Proceso por lotes CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -940,14 +936,14 @@ MAIN_BUTTON_SENDTOEDITOR;Abrir con editor MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Editar imagen actual en editor externo.\nTecla de Atajo: Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Mostrar/ocultar todos los paneles laterales.\nTecla de Atajo: m MAIN_BUTTON_UNFULLSCREEN;Salir de Pantalla completa -MAIN_FRAME_BATCHQUEUE;Cola de lotes -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Cola de lotes.\nTecla de Atajo: Ctrl-F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP; Editor.\nTecla de Atajo: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Explorador de archivos MAIN_FRAME_FILEBROWSER_TOOLTIP; Explorador de archivos.\nTecla de Atajo: Ctrl-F2 MAIN_FRAME_PLACES;Ubicaciones MAIN_FRAME_PLACES_ADD;Añadir +MAIN_FRAME_QUEUE;Cola de lotes +MAIN_FRAME_QUEUE_TOOLTIP; Cola de lotes.\nTecla de Atajo: Ctrl-F3 MAIN_FRAME_RECENT;Carpetas recientes MAIN_MSG_ALREADYEXISTS;Este archivo ya existe. MAIN_MSG_CANNOTLOAD;No se puede abrir imagen @@ -1160,7 +1156,6 @@ PREFERENCES_EDITORLAYOUT;Disposición del editor PREFERENCES_EXTERNALEDITOR;Editor externo PREFERENCES_FBROWSEROPTS;Opciones del explorador de archivos/Miniaturas PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de herramientas del explorador en una sola fila (deseleccionar para pantallas de baja resolución) -PREFERENCES_FILEFORMAT;Formato de archivo PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Carpeta de archivos de campo plano PREFERENCES_FLATFIELDSHOTS;disparos @@ -1200,11 +1195,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Debido a las limitaciones de MacOS, solo se admit PREFERENCES_MULTITAB;Modo Editor de varias pestañas PREFERENCES_MULTITABDUALMON;Modo Editor de varias pestañas, si está disponible en segundo monitor PREFERENCES_NAVIGATIONFRAME;Navegación -PREFERENCES_OUTDIR;Carpeta de salida -PREFERENCES_OUTDIRFOLDER;Guardar en carpeta -PREFERENCES_OUTDIRFOLDERHINT;Guardar las imágenes creadas en una carpeta elegida -PREFERENCES_OUTDIRTEMPLATE;Usar plantilla -PREFERENCES_OUTDIRTEMPLATEHINT;Se pueden usar las variables siguientes:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nEstas variables son referencias a las carpetas y subrutas de las rutas del lugar donde se encuentra la imagen raw.\n\nPor ejemplo, si abres /home/tom/image/02-09-2006/dsc0012.nef, los valores de las variables son:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nSi quieres guardar la imagen de salida en el lugar original, usa:\n%p1/%f\n\nSi quieres guardar la imagen de salida en una carpeta 'convertida' dentro de la carpeta original, usa:\n%p1/convertida/%f\n\nSi quieres guardar la imagen de salida en la carpeta '/home/tom/convertida' conservando la misma subcarpeta de fechas, usa:\n%p2/convertida/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Superponer nombres de archivo en miniaturas PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Superponer los nombres de archivo en las miniaturas en el panel del editor PREFERENCES_OVERWRITEOUTPUTFILE;Sobreescribir archivos de salida existentes @@ -1250,9 +1240,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Mostrar barra de herramientas estilo tira de pe PREFERENCES_SHTHRESHOLD;Umbral de sombras cortadas PREFERENCES_SINGLETAB;Modo Editor de pestaña única PREFERENCES_SINGLETABVERTAB;Modo Editor de pestaña única, pestañas verticales -PREFERENCES_SND_BATCHQUEUEDONE;Trabajos en cola finalizados PREFERENCES_SND_HELP;Introducir el path o dejar en blanco (sin sonido). En Windows, usar "SystemDefault", "SystemAsterisk" etc. para los sonidos del sistema\nEn Linux use "complete", "window-attention" etc. para los sonidos del sistema. PREFERENCES_SND_LNGEDITPROCDONE;Procesado del editor terminado +PREFERENCES_SND_QUEUEDONE;Trabajos en cola finalizados PREFERENCES_SND_THRESHOLDSECS;Despues de segundos PREFERENCES_STARTUPIMDIR;Carpeta de imágenes en el arranque PREFERENCES_TAB_BROWSER;Explorador de archivos @@ -1308,6 +1298,14 @@ QINFO_HDR;HDR / %2 cuadro(s) QINFO_ISO;ISO QINFO_NOEXIF;No hay datos EXIF. QINFO_PIXELSHIFT;Pixel variación /% 2 cuadro(s) +QUEUE_AUTOSTART;Inicio automático +QUEUE_AUTOSTART_TOOLTIP;Iniciar automáticamente el procesamiento en cuanto llega un nuevo trabajo +QUEUE_DESTFILENAME;Ruta y nombre del archivo +QUEUE_FORMAT_TITLE;Formato de archivo +QUEUE_LOCATION_FOLDER;Guardar en carpeta +QUEUE_LOCATION_TEMPLATE;Usar plantilla +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Se pueden usar las variables siguientes:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nEstas variables son referencias a las carpetas y subrutas de las rutas del lugar donde se encuentra la imagen raw.\n\nPor ejemplo, si abres /home/tom/image/02-09-2006/dsc0012.nef, los valores de las variables son:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nSi quieres guardar la imagen de salida en el lugar original, usa:\n%p1/%f\n\nSi quieres guardar la imagen de salida en una carpeta 'convertida' dentro de la carpeta original, usa:\n%p1/convertida/%f\n\nSi quieres guardar la imagen de salida en la carpeta '/home/tom/convertida' conservando la misma subcarpeta de fechas, usa:\n%p2/convertida/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;Iniciar o detener el procesamiento de las imágenes en la cola.\nTecla de Atajo: Ctrl + s SAMPLEFORMAT_0;Formato de datos desconocido SAMPLEFORMAT_1;Sin firma 8 bits SAMPLEFORMAT_2;Sin firma 16 bits @@ -2341,6 +2339,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... +!QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 79a4ae1e8..c2c3bead1 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -6,10 +6,6 @@ ABOUT_TAB_LICENSE;Licence ABOUT_TAB_RELEASENOTES;Notes de version ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Clic - réinitialise à la valeur par défaut.\nCtrl+clic - réinitialise à la valeur initiale. -BATCHQUEUE_AUTOSTART;Démarrage auto -BATCHQUEUE_AUTOSTARTHINT;Démarrer automatiquement le traitement à l'arrivée d'une nouvelle tâche -BATCHQUEUE_DESTFILENAME;Chemin et nom de fichier -BATCHQUEUE_STARTSTOPHINT;Démarre ou arrête le traitement des images dans la file.\n\nRaccourci: Ctrl+s BATCH_PROCESSING;Traitement par lot CURVEEDITOR_AXIS_IN;E: CURVEEDITOR_AXIS_LEFT_TAN;TG: @@ -875,14 +871,14 @@ MAIN_BUTTON_SENDTOEDITOR;Éditer l'image dans un éditeur extenre MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Éditer l'image courante dans l'éditeur externe\nRaccourci: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Afficher/Cacher les 2 panneaux latéraux\nRaccourci: m MAIN_BUTTON_UNFULLSCREEN;Quitter le plein écran -MAIN_FRAME_BATCHQUEUE;File d'attente -MAIN_FRAME_BATCHQUEUE_TOOLTIP; File de traitement\nRaccourci: Ctrl-F3 MAIN_FRAME_EDITOR;Éditeur MAIN_FRAME_EDITOR_TOOLTIP; Éditeur\nRaccourci: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Navigateur de fichiers MAIN_FRAME_FILEBROWSER_TOOLTIP; Navigateur de fichiers\nRaccourci: Ctrl-F2 MAIN_FRAME_PLACES;Emplacements MAIN_FRAME_PLACES_ADD;Ajouter +MAIN_FRAME_QUEUE;File d'attente +MAIN_FRAME_QUEUE_TOOLTIP; File de traitement\nRaccourci: Ctrl-F3 MAIN_FRAME_RECENT;Fichiers récents MAIN_MSG_ALREADYEXISTS;Le fichier existe déjà. MAIN_MSG_CANNOTLOAD;Impossible de charger l'image @@ -1103,7 +1099,6 @@ PREFERENCES_EDITORLAYOUT;Disposition de l'éditeur PREFERENCES_EXTERNALEDITOR;Éditeur externe PREFERENCES_FBROWSEROPTS;Options du navigateur de fichiers et de vignettes PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barre d'outil compact dans le Navigateur de Fichiers -PREFERENCES_FILEFORMAT;Format du fichier PREFERENCES_FLATFIELDFOUND;Trouvé PREFERENCES_FLATFIELDSDIR;Dossier des images de Champ Uniforme PREFERENCES_FLATFIELDSHOTS;image(s) @@ -1142,11 +1137,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Due à des limitations de macOS, seul sRGB est su PREFERENCES_MULTITAB;Éditeurs multiple PREFERENCES_MULTITABDUALMON;Éditeurs multiple, si possible sur un second moniteur PREFERENCES_NAVIGATIONFRAME;Navigation -PREFERENCES_OUTDIR;Dossier de sortie -PREFERENCES_OUTDIRFOLDER;Dossier de sauvegarde -PREFERENCES_OUTDIRFOLDERHINT;Place les images traitées dans le dossier selectionné -PREFERENCES_OUTDIRTEMPLATE;Utiliser le modèle -PREFERENCES_OUTDIRTEMPLATEHINT;Vous pouvez utiliser les paramètres de chaîne formatées suivants:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nCes chaînes de formattage se réfèrent aux différentes parties du chemin de la photo, certains de ses attributs ou un numéro de séquence arbitraire dans le traitement par lot.\n\nPar exemple, si la photo en cours de traitement a le chemin suivant:\n/home/tom/photos/2010-10-31/dsc0042.nef\nla signification des chaînes de formattage est:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r sera remplacé par le rang de la photo. Si la photo n'a pas de rang, %r sera remplacé par '0'. Si la photo est dans la corbeille de RawTherapee, %r sera remplacé par 'x'.\n\n%s1, %s2, etc. sera remplacé par un index de séquence constitué de 1 à 9 chiffres. L'index de la séquence commencera à 1 à chaque fois que le file de traitement est démarrée, et est incrémenté de 1 pour chaque image traitée.\n\nSi vous voulez enregistrer l'image de sortie là où se trouve l'originale, écrivez:\n%p1/%f\n\nSi vous voulez enregistrer l'image de sortie dans un dossier nommé "convertis" situé dans le dossier de l'originale, écrivez:\n%p1/convertis/%f\n\nSi vous voulez enregistrer l'image de sortie dans un dossier nommé "/home/tom/photos/convertis/2010-10-31", écrivez:\n%p2/convertis/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Superposer les noms de fichier sur les vignettes dans le navigateur de fichier PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Superposer les noms de fichier sur les vignettes dans le panneau d'édition PREFERENCES_OVERWRITEOUTPUTFILE;Écraser le fichier s'il existe déjà @@ -1194,9 +1184,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Montrer la barre d'outil de la pellicule d'imag PREFERENCES_SHTHRESHOLD;Seuil pour le dépassement de domaine inférieur PREFERENCES_SINGLETAB;Éditeur unique PREFERENCES_SINGLETABVERTAB;Éditeur unique, onglets verticaux -PREFERENCES_SND_BATCHQUEUEDONE;File de traitement terminée PREFERENCES_SND_HELP;Saisissez un chemin de fichier ou rien du tout (pour ne pas avoir de son). Pour Windows,\nsaisissez "SystemDefault", "SystemAsterisk" etc. pour utiliser les sons systèmes. PREFERENCES_SND_LNGEDITPROCDONE;Traitement de la zone de prévisualisation terminé +PREFERENCES_SND_QUEUEDONE;File de traitement terminée PREFERENCES_SND_THRESHOLDSECS;après (s) PREFERENCES_STARTUPIMDIR;Répertoire Image au démarrage PREFERENCES_TAB_BROWSER;Navigateur de fichiers @@ -1252,6 +1242,14 @@ QINFO_HDR;HDR / %2 image(s) QINFO_ISO;ISO QINFO_NOEXIF;Données EXIF non disponibles. QINFO_PIXELSHIFT;PixelShift / %2 images +QUEUE_AUTOSTART;Démarrage auto +QUEUE_AUTOSTART_TOOLTIP;Démarrer automatiquement le traitement à l'arrivée d'une nouvelle tâche +QUEUE_DESTFILENAME;Chemin et nom de fichier +QUEUE_FORMAT_TITLE;Format du fichier +QUEUE_LOCATION_FOLDER;Dossier de sauvegarde +QUEUE_LOCATION_TEMPLATE;Utiliser le modèle +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Vous pouvez utiliser les paramètres de chaîne formatées suivants:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nCes chaînes de formattage se réfèrent aux différentes parties du chemin de la photo, certains de ses attributs ou un numéro de séquence arbitraire dans le traitement par lot.\n\nPar exemple, si la photo en cours de traitement a le chemin suivant:\n/home/tom/photos/2010-10-31/dsc0042.nef\nla signification des chaînes de formattage est:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r sera remplacé par le rang de la photo. Si la photo n'a pas de rang, %r sera remplacé par '0'. Si la photo est dans la corbeille de RawTherapee, %r sera remplacé par 'x'.\n\n%s1, %s2, etc. sera remplacé par un index de séquence constitué de 1 à 9 chiffres. L'index de la séquence commencera à 1 à chaque fois que le file de traitement est démarrée, et est incrémenté de 1 pour chaque image traitée.\n\nSi vous voulez enregistrer l'image de sortie là où se trouve l'originale, écrivez:\n%p1/%f\n\nSi vous voulez enregistrer l'image de sortie dans un dossier nommé "convertis" situé dans le dossier de l'originale, écrivez:\n%p1/convertis/%f\n\nSi vous voulez enregistrer l'image de sortie dans un dossier nommé "/home/tom/photos/convertis/2010-10-31", écrivez:\n%p2/convertis/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;Démarre ou arrête le traitement des images dans la file.\n\nRaccourci: Ctrl+s SAMPLEFORMAT_0;Format de donnée inconnu SAMPLEFORMAT_1;8 bits non signé SAMPLEFORMAT_2;16 bits non signé @@ -2274,6 +2272,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... +!QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 8108c4235..c65c1ef6f 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -9,9 +9,6 @@ ABOUT_TAB_CREDITS;Riconoscimenti ABOUT_TAB_LICENSE;Licenza ABOUT_TAB_RELEASENOTES;Note di rilascio ABOUT_TAB_SPLASH;Emblema -BATCHQUEUE_AUTOSTART;Autoavvia -BATCHQUEUE_AUTOSTARTHINT;Inizia a sviluppare automaticamente quando un nuovo lavoro viene accodato -BATCHQUEUE_DESTFILENAME;Percorso e nome file BATCH_PROCESSING;Sviluppo in serie CURVEEDITOR_CURVE;Curva CURVEEDITOR_CURVES;Curve @@ -483,14 +480,14 @@ MAIN_BUTTON_SAVE_TOOLTIP;Salva l'immagine corrente.\nSscorciatoia: Ctrl+S MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Modifica l'immagine corrente con un programma di fotoritocco.\nScorciatoia: Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Mostra/Nascondi tutti i pannelli laterali.\nScorciatoia: m MAIN_BUTTON_UNFULLSCREEN;Esci da schermo intero -MAIN_FRAME_BATCHQUEUE;Coda di sviluppo -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Coda di sviluppo.\nScorciatoia: Ctrl-F3 MAIN_FRAME_EDITOR;Modifica MAIN_FRAME_EDITOR_TOOLTIP;Modifica.\nScorciatoia: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Navigatore MAIN_FRAME_FILEBROWSER_TOOLTIP;Navigatore.\nScorciatoia: Ctrl-F2 MAIN_FRAME_PLACES;Risorse MAIN_FRAME_PLACES_ADD;Aggiungi +MAIN_FRAME_QUEUE;Coda di sviluppo +MAIN_FRAME_QUEUE_TOOLTIP;Coda di sviluppo.\nScorciatoia: Ctrl-F3 MAIN_FRAME_RECENT;Cartelle recenti MAIN_MSG_ALREADYEXISTS;File già esistente MAIN_MSG_CANNOTLOAD;Impossibile caricare l'immagine @@ -644,7 +641,6 @@ PREFERENCES_DIRSOFTWARE;Cartella d'installazione PREFERENCES_EDITORLAYOUT;Disposizione PREFERENCES_EXTERNALEDITOR;Programma di ritocco esterni PREFERENCES_FBROWSEROPTS;Opzioni del Navigatore e delle miniature -PREFERENCES_FILEFORMAT;Formato file PREFERENCES_FLATFIELDFOUND;Trovati PREFERENCES_FLATFIELDSDIR;Cartella dei fotogrammi di campo (Flat Field) PREFERENCES_FLATFIELDSHOTS;fotogrammi @@ -671,11 +667,6 @@ PREFERENCES_MENUGROUPRANK;Raggruppa "Classificazioni" PREFERENCES_MENUOPTIONS;Opzioni del menù a discesa PREFERENCES_MULTITAB;Modalità a Schede Multiple PREFERENCES_MULTITABDUALMON;Modalità a Schede Multiple (se disponibile sul secondo schermo) -PREFERENCES_OUTDIR;Cartella di destinazione -PREFERENCES_OUTDIRFOLDER;Salva nella cartella -PREFERENCES_OUTDIRFOLDERHINT;Salva le immagini nella cartella scelta -PREFERENCES_OUTDIRTEMPLATE;Usa lo schema -PREFERENCES_OUTDIRTEMPLATEHINT;Puoi usare le seguenti stringhe di formattazione:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nQueste stringhe di formattazione si riferiscono ai vari livelli del percorso in cui si trova la foto.\n\nPer esempio, se la foto sviluppata si trovasse nel seguente percorso:\n/home/mario/foto/31-10-2010/dsc0042.nef\nil significato delle stringhe di formattazione sarebbe:\n%d4 = home\n%d3 = mario\n%d2 = foto\n%d1 = 31-10-2010\n%f = dsc0042\n%p1 = /home/mario/foto/31-10-2010/\n%p2 = /home/mario/foto/\n%p3 = /home/mario/\n%p4 = /home/\n\nPer salvare l'immagine finale nella stessa posizione dove si trova l'originale, scrivi:\n%p1/%f\n\nPer salvare l'immagine finale in una cartella chiamata "sviluppate" situata nella cartella degli originali, scrivi:\n%p1/sviluppate/%f\n\nPer salvare l'immagine finale in una cartella chiamata "/home/mario/foto/sviluppate/31-10-2010", scrivi:\n%p2/sviluppate/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Mostra i nomi dei file sovrapposti alle miniature PREFERENCES_OVERWRITEOUTPUTFILE;Sovrascrivi file esistenti PREFERENCES_PANFACTORLABEL;Fattore @@ -699,9 +690,9 @@ PREFERENCES_SHOWEXPOSURECOMPENSATION;Accoda compensazione dell'esposizione PREFERENCES_SHTHRESHOLD;Soglia per le ombre tosate PREFERENCES_SINGLETAB;Modalità a Scheda Singola PREFERENCES_SINGLETABVERTAB;Modalità a Scheda Singola, schede verticali -PREFERENCES_SND_BATCHQUEUEDONE;Al termine dell'elaborazione della coda PREFERENCES_SND_HELP;Inserire un percorso oppure nulla (per non avere suoni).\nSu Windows usa "SystemDefault", "SystemAsterisk" ecc. per i suoni di sistema.\nSu Linux usa "complete", "window-attention" ecc. per i suoni di sistema. PREFERENCES_SND_LNGEDITPROCDONE;Al termine delle operazioni di modifica +PREFERENCES_SND_QUEUEDONE;Al termine dell'elaborazione della coda PREFERENCES_SND_THRESHOLDSECS;dopo un tempo in secondi PREFERENCES_STARTUPIMDIR;Cartella delle immagini all'avvio PREFERENCES_TAB_BROWSER;Navigatore @@ -747,6 +738,13 @@ PROGRESSBAR_SNAPSHOT_ADDED;Istantanea aggiunta PROGRESSDLG_PROFILECHANGEDINBROWSER;Profilo di sviluppo modificato nel navigatore QINFO_ISO;ISO QINFO_NOEXIF;Dati Exif non disponibili. +QUEUE_AUTOSTART;Autoavvia +QUEUE_AUTOSTART_TOOLTIP;Inizia a sviluppare automaticamente quando un nuovo lavoro viene accodato +QUEUE_DESTFILENAME;Percorso e nome file +QUEUE_FORMAT_TITLE;Formato file +QUEUE_LOCATION_FOLDER;Salva nella cartella +QUEUE_LOCATION_TEMPLATE;Usa lo schema +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Puoi usare le seguenti stringhe di formattazione:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nQueste stringhe di formattazione si riferiscono ai vari livelli del percorso in cui si trova la foto.\n\nPer esempio, se la foto sviluppata si trovasse nel seguente percorso:\n/home/mario/foto/31-10-2010/dsc0042.nef\nil significato delle stringhe di formattazione sarebbe:\n%d4 = home\n%d3 = mario\n%d2 = foto\n%d1 = 31-10-2010\n%f = dsc0042\n%p1 = /home/mario/foto/31-10-2010/\n%p2 = /home/mario/foto/\n%p3 = /home/mario/\n%p4 = /home/\n\nPer salvare l'immagine finale nella stessa posizione dove si trova l'originale, scrivi:\n%p1/%f\n\nPer salvare l'immagine finale in una cartella chiamata "sviluppate" situata nella cartella degli originali, scrivi:\n%p1/sviluppate/%f\n\nPer salvare l'immagine finale in una cartella chiamata "/home/mario/foto/sviluppate/31-10-2010", scrivi:\n%p2/sviluppate/%d1/%f SAVEDLG_AUTOSUFFIX;Aggiungi automaticamente un suffisso se il file esiste già SAVEDLG_FILEFORMAT;Formato file SAVEDLG_FORCEFORMATOPTS;Opzioni di salvataggio forzato @@ -1243,7 +1241,6 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !!!!!!!!!!!!!!!!!!!!!!!!! !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: @@ -1758,6 +1755,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 5a52fe447..d06635394 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -39,10 +39,6 @@ ABOUT_TAB_LICENSE;ライセンス ABOUT_TAB_RELEASENOTES;リリースノート ABOUT_TAB_SPLASH;スプラッシュ ADJUSTER_RESET_TO_DEFAULT;クリック - デフォルト値にリセット\nCtrl+クリック - 初期値にリセット -BATCHQUEUE_AUTOSTART;オートスタート -BATCHQUEUE_AUTOSTARTHINT;新しいrawファイルが送られて来たら自動的に現像処理を開始します -BATCHQUEUE_DESTFILENAME;パスとファイル名 -BATCHQUEUE_STARTSTOPHINT;キューにある画像の現像を始める、或いは中止する\n\nショートカット: Ctrl+s BATCH_PROCESSING;バッチ処理 CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -909,8 +905,6 @@ MAIN_BUTTON_SENDTOEDITOR;外部エディタで画像を編集 MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;現在の画像を外部エディタで編集\nショートカット: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;表示/非表示 すべてのパネル\nショートカット: m MAIN_BUTTON_UNFULLSCREEN;フルスクリーン解除 -MAIN_FRAME_BATCHQUEUE;キュー -MAIN_FRAME_BATCHQUEUE_TOOLTIP;キューで処理します\nショートカット: Ctrl-F3 MAIN_FRAME_EDITOR;編集 MAIN_FRAME_EDITOR_TOOLTIP; 編集\nショートカット: Ctrl-F4 MAIN_FRAME_FILEBROWSER;ファイルブラウザ @@ -918,6 +912,8 @@ MAIN_FRAME_FILEBROWSER_TOOLTIP; ファイル・ブラウザ\nショートカッ MAIN_FRAME_PLACES;場所 MAIN_FRAME_PLACES_ADD;追加 MAIN_FRAME_PLACES_DEL;除去 +MAIN_FRAME_QUEUE;キュー +MAIN_FRAME_QUEUE_TOOLTIP;キューで処理します\nショートカット: Ctrl-F3 MAIN_FRAME_RECENT;最近開いたフォルダ MAIN_MSG_ALREADYEXISTS;ファイルはすでに存在します MAIN_MSG_CANNOTLOAD;画像読み込みできません @@ -1138,7 +1134,6 @@ PREFERENCES_EDITORLAYOUT;編集 レイアウト PREFERENCES_EXTERNALEDITOR;外部エディタ PREFERENCES_FBROWSEROPTS;ファイルブラウザ/サムネイルのオプション PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;ファイルブラウザのツールバーを圧縮 -PREFERENCES_FILEFORMAT;ファイル形式 PREFERENCES_FLATFIELDFOUND;検出 PREFERENCES_FLATFIELDSDIR;フラットフィールド・ディレクトリ PREFERENCES_FLATFIELDSHOTS;ショット @@ -1177,11 +1172,6 @@ PREFERENCES_MONPROFILE_WARNOSX;MacのOSの制約により、サポート出来 PREFERENCES_MULTITAB;マルチ編集タブモード PREFERENCES_MULTITABDUALMON;独自のウィンドウモードによるマルチ編集タブ PREFERENCES_NAVIGATIONFRAME;ナビゲーション -PREFERENCES_OUTDIR;出力ディレクトリ -PREFERENCES_OUTDIRFOLDER;フォルダに保存 -PREFERENCES_OUTDIRFOLDERHINT;選択したフォルダに画像を保存します -PREFERENCES_OUTDIRTEMPLATE;テンプレートを使う -PREFERENCES_OUTDIRTEMPLATEHINT;次の書式文字を使用することができます:\n%f, %d1, %d2, ..., %p1, %p2, ...%r\n\nこれらの書式文字は画像パス名のそれぞれ別々の部分、画像の属性を参照します\n\n例えば、次の画像を処理中の場合は:\n\n/home/tom/photos/2010-10-31/dsc0042.nef\n書式文字の意味するものは:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%rは写真のランクに置き換えられます。評価なしは%rは'0 'に置換されます。画像がごみ箱にある場合、%rは'X'に置換されます\n\n元画像と同じ場所に出力したい場合はこのように書きます:\n%p1/%f\n\n処理画像のディレクトリ下 "converted" という名前のディレクトリに出力画像を保存したい場合このように書きます:\n%p1/converted/%f\n\n"/home/tom/photos/converted/2010-10-31" という名前のディレクトリに出力画像を保存したい場合はこのように書きます:\n%p2/converted/%d1/%f PREFERENCES_OVERLAY_FILENAMES;ファイル名をサムネイル上に透過表示する PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;ファイル名を編集パネルのサムネイル上に透過表示する PREFERENCES_OVERWRITEOUTPUTFILE;既存ファイルを上書き @@ -1229,9 +1219,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;画像スライドにツールバーを表示 PREFERENCES_SHTHRESHOLD;シャドウ・クリッピング領域のしきい値 PREFERENCES_SINGLETAB;シングルタブモードモード PREFERENCES_SINGLETABVERTAB;シングル編集タブモード, 垂直タブ -PREFERENCES_SND_BATCHQUEUEDONE;キュー処理 終了 PREFERENCES_SND_HELP;ファイルパスを入力 または空欄(無音).\nWindowsはシステムサウンドの "SystemDefault", "SystemAsterisk"など..\nLinuxはシステムサウンドの "complete", "window-attention"などを使用します PREFERENCES_SND_LNGEDITPROCDONE;編集処理 終了 +PREFERENCES_SND_QUEUEDONE;キュー処理 終了 PREFERENCES_SND_THRESHOLDSECS;秒後 PREFERENCES_STARTUPIMDIR;起動時の画像・ディレクトリ PREFERENCES_TAB_BROWSER;ファイルブラウザ @@ -1293,6 +1283,14 @@ QINFO_HDR;HDR / %2 フレーム QINFO_ISO;ISO QINFO_NOEXIF;Exifデータがありません QINFO_PIXELSHIFT;ピクセルシフト / %2 フレーム +QUEUE_AUTOSTART;オートスタート +QUEUE_AUTOSTART_TOOLTIP;新しいrawファイルが送られて来たら自動的に現像処理を開始します +QUEUE_DESTFILENAME;パスとファイル名 +QUEUE_FORMAT_TITLE;ファイル形式 +QUEUE_LOCATION_FOLDER;フォルダに保存 +QUEUE_LOCATION_TEMPLATE;テンプレートを使う +QUEUE_LOCATION_TEMPLATE_TOOLTIP;次の書式文字を使用することができます:\n%f, %d1, %d2, ..., %p1, %p2, ...%r\n\nこれらの書式文字は画像パス名のそれぞれ別々の部分、画像の属性を参照します\n\n例えば、次の画像を処理中の場合は:\n\n/home/tom/photos/2010-10-31/dsc0042.nef\n書式文字の意味するものは:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%rは写真のランクに置き換えられます。評価なしは%rは'0 'に置換されます。画像がごみ箱にある場合、%rは'X'に置換されます\n\n元画像と同じ場所に出力したい場合はこのように書きます:\n%p1/%f\n\n処理画像のディレクトリ下 "converted" という名前のディレクトリに出力画像を保存したい場合このように書きます:\n%p1/converted/%f\n\n"/home/tom/photos/converted/2010-10-31" という名前のディレクトリに出力画像を保存したい場合はこのように書きます:\n%p2/converted/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;キューにある画像の現像を始める、或いは中止する\n\nショートカット: Ctrl+s SAMPLEFORMAT_0;データ形式不明 SAMPLEFORMAT_1;符号なし8ビット SAMPLEFORMAT_2;符号なし16ビット @@ -2310,3 +2308,8 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!QUEUE_LOCATION_TITLE;Output Location diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 48c9e1a9b..95b6d311d 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -5,8 +5,6 @@ ABOUT_TAB_CREDITS;Szerzők ABOUT_TAB_LICENSE;Licensz ABOUT_TAB_RELEASENOTES;Kiadási megjegyzések ABOUT_TAB_SPLASH;Splash -BATCHQUEUE_AUTOSTART;Auto start -BATCHQUEUE_AUTOSTARTHINT;Új kép érkezése esetén a feldolgozás automatikus indítása. BATCH_PROCESSING;Kötegelt feldolgozás CURVEEDITOR_CURVE;Görbe CURVEEDITOR_CURVES;Görbék @@ -362,14 +360,14 @@ MAIN_BUTTON_SENDTOEDITOR;Megnyitás külső programmal MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Kiválasztott kép szerkesztése külső programmal Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Minden panel megjelenítése/elrejtése.\nGyorsbillentyű: m MAIN_BUTTON_UNFULLSCREEN;Teljes képernyő elhagyása -MAIN_FRAME_BATCHQUEUE;Kötegelt feldolgozási sor -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Feldolgozási sor.\nGyorsbillentyű: Ctrl-F3 MAIN_FRAME_EDITOR;Szerkesztő MAIN_FRAME_EDITOR_TOOLTIP; Szerkesztő.\nGyorsbillentyű: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Állományböngésző MAIN_FRAME_FILEBROWSER_TOOLTIP; Állományböngésző.\nGyorsbillentyű: Ctrl-F2 MAIN_FRAME_PLACES;Helyek MAIN_FRAME_PLACES_ADD;Hozzáadás +MAIN_FRAME_QUEUE;Kötegelt feldolgozási sor +MAIN_FRAME_QUEUE_TOOLTIP; Feldolgozási sor.\nGyorsbillentyű: Ctrl-F3 MAIN_FRAME_RECENT;Legutóbbi könyvtárak MAIN_MSG_ALREADYEXISTS;Ilyen nevű állomány már létezik! MAIN_MSG_CANNOTLOAD;A képet nem sikerült betölteni. @@ -490,7 +488,6 @@ PREFERENCES_DIRSOFTWARE;Telepítés helye PREFERENCES_EDITORLAYOUT;Szerkesztési mód PREFERENCES_EXTERNALEDITOR;Külső képszerkesztő program PREFERENCES_FBROWSEROPTS;Állományböngésző beállításai -PREFERENCES_FILEFORMAT;Állományformátum PREFERENCES_FLATFIELDFOUND;Találat PREFERENCES_FLATFIELDSDIR;Flat Fields könyvtár PREFERENCES_FLATFIELDSHOTS;kép @@ -515,11 +512,6 @@ PREFERENCES_MENUGROUPRANK;Értékelés csoportosítása PREFERENCES_MENUOPTIONS;Menübeállítások PREFERENCES_MULTITAB;Több szerkesztőfül PREFERENCES_MULTITABDUALMON;Több fül mód második kijelzővel (ha elérhető) -PREFERENCES_OUTDIR;Kimeneti alapértelmezett könyvtár -PREFERENCES_OUTDIRFOLDER;Mentés ebbe a könyvtárba: -PREFERENCES_OUTDIRFOLDERHINT;Ha ezt a lehetőséget választja, az összes feldolgozott kép ebbe a könyvtárba kerül -PREFERENCES_OUTDIRTEMPLATE;Sablon használata -PREFERENCES_OUTDIRTEMPLATEHINT;A következő jeleket lehet használni:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nEzek a jelek a megnyitott kép elérési útvonalának részeire vonatkoznak.\n\nPéldául, ha a /home/tom/image/02-09-2006/dsc0012.nef képet nyitjuk meg, ezek a jelek a következőket jelentik:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nHa oda kívánja menteni a kész képet, ahol az eredeti volt, az alábbiakat kell beírni:\n%p1/%f\n\nHa a kész képet az eredeti könyvtárán belül egy "converted" alkönyvtárba kívánja menteni, az alábbiakat kell beírni:\n%p1/converted/%f\n\nHa a kész képeket a '/home/tom/converted' könyvtárba kívánja menteni az eredeti, dátumot tartalmazó alkönyvtár megtartásával, írja ezt:\n%p2/converted/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Állománynevek megjelenítése az előnézeti képeken PREFERENCES_OVERWRITEOUTPUTFILE;A már létező kimeneti állományok felülírása PREFERENCES_PANFACTORLABEL;Faktor @@ -543,9 +535,9 @@ PREFERENCES_SHOWEXPOSURECOMPENSATION;Expozíciókompenzáció megjelenítése PREFERENCES_SHTHRESHOLD;Küszöbérték bebukott árnyékokhoz PREFERENCES_SINGLETAB;Egyetlen szerkesztőfül PREFERENCES_SINGLETABVERTAB;Egyetlen fül mód, függőleges előnézeti képek -PREFERENCES_SND_BATCHQUEUEDONE;Feldolgozási sor végén PREFERENCES_SND_HELP;Állomány elérése, vagy hagyd üresen (ekkor nincs hang). Windows-on használd a "SystemDefault", "SystemAsterisk", stb. stringeket a rendszerhangokhoz. PREFERENCES_SND_LNGEDITPROCDONE;Amikor a képszerkesztés végződik +PREFERENCES_SND_QUEUEDONE;Feldolgozási sor végén PREFERENCES_SND_THRESHOLDSECS;másodperc után PREFERENCES_STARTUPIMDIR;Képek könyvtára induláskor PREFERENCES_TAB_BROWSER;Fájl böngésző @@ -583,6 +575,12 @@ PROGRESSBAR_SAVETIFF;TIFF fájl mentése... PROGRESSDLG_PROFILECHANGEDINBROWSER;A profil az állományböngészőben megváltozott QINFO_ISO;ISO QINFO_NOEXIF;EXIF adat nem áll rendelkezésre. +QUEUE_AUTOSTART;Auto start +QUEUE_AUTOSTART_TOOLTIP;Új kép érkezése esetén a feldolgozás automatikus indítása. +QUEUE_FORMAT_TITLE;Állományformátum +QUEUE_LOCATION_FOLDER;Mentés ebbe a könyvtárba: +QUEUE_LOCATION_TEMPLATE;Sablon használata +QUEUE_LOCATION_TEMPLATE_TOOLTIP;A következő jeleket lehet használni:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nEzek a jelek a megnyitott kép elérési útvonalának részeire vonatkoznak.\n\nPéldául, ha a /home/tom/image/02-09-2006/dsc0012.nef képet nyitjuk meg, ezek a jelek a következőket jelentik:\n%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\nHa oda kívánja menteni a kész képet, ahol az eredeti volt, az alábbiakat kell beírni:\n%p1/%f\n\nHa a kész képet az eredeti könyvtárán belül egy "converted" alkönyvtárba kívánja menteni, az alábbiakat kell beírni:\n%p1/converted/%f\n\nHa a kész képeket a '/home/tom/converted' könyvtárba kívánja menteni az eredeti, dátumot tartalmazó alkönyvtár megtartásával, írja ezt:\n%p2/converted/%d1/%f SAVEDLG_AUTOSUFFIX;Utótag hozzáadása automatikusan, ha az állomány már létezik SAVEDLG_FILEFORMAT;Állományformátum SAVEDLG_JPEGQUAL;JPEG Minőség @@ -837,8 +835,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !!!!!!!!!!!!!!!!!!!!!!!!! !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!BATCHQUEUE_DESTFILENAME;Path and file name -!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !CURVEEDITOR_AXIS_IN;I: !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: @@ -1514,6 +1510,9 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_DESTFILENAME;Path and file name +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index c5461ab8f..46d273d77 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -20,9 +20,6 @@ ABOUT_TAB_CREDITS;Credits ABOUT_TAB_LICENSE;Licentie ABOUT_TAB_RELEASENOTES;Uitgave-opmerkingen ABOUT_TAB_SPLASH;Splash -BATCHQUEUE_AUTOSTART;Autostart -BATCHQUEUE_AUTOSTARTHINT;Start verwerking automatisch wanneer nieuwe foto arriveert -BATCHQUEUE_DESTFILENAME;Pad en bestandsnaam BATCH_PROCESSING;Batch-verwerking CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -752,14 +749,14 @@ MAIN_BUTTON_SENDTOEDITOR;Bewerk afbeelding in externe editor MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Stuur huidige foto naar extern fotobewerkingsprogramma.\nSneltoets: Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Toon/verberg alle zijpanelen.\nSneltoets: m MAIN_BUTTON_UNFULLSCREEN;Verlaat volledig scherm -MAIN_FRAME_BATCHQUEUE;Verwerkingsrij -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Verwerkingsrij.\nSneltoets: Ctrl-F3 MAIN_FRAME_EDITOR;Fotobewerker MAIN_FRAME_EDITOR_TOOLTIP; Bewerking.\nSneltoets: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Bestandsnavigator MAIN_FRAME_FILEBROWSER_TOOLTIP; Bestandsnavigator.\nSneltoets: Ctrl-F2 MAIN_FRAME_PLACES;Locaties MAIN_FRAME_PLACES_ADD;Nieuw +MAIN_FRAME_QUEUE;Verwerkingsrij +MAIN_FRAME_QUEUE_TOOLTIP; Verwerkingsrij.\nSneltoets: Ctrl-F3 MAIN_FRAME_RECENT;Recente mappen MAIN_MSG_ALREADYEXISTS;Bestand bestaat reeds. MAIN_MSG_CANNOTLOAD;Fout bij laden @@ -935,7 +932,6 @@ PREFERENCES_DIRSOFTWARE;Installatiemap PREFERENCES_EDITORLAYOUT;Bewerkingsvenster PREFERENCES_EXTERNALEDITOR;Externe editor PREFERENCES_FBROWSEROPTS;Opties bestandsnavigator -PREFERENCES_FILEFORMAT;Bestandstype PREFERENCES_FLATFIELDFOUND;Gevonden PREFERENCES_FLATFIELDSDIR;Vlakveldmap PREFERENCES_FLATFIELDSHOTS;foto's @@ -973,11 +969,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Als gevolg van MacOS beperkingen wordt alleen sRG PREFERENCES_MULTITAB;Multi-tab: elke foto opent in nieuw tabvenster PREFERENCES_MULTITABDUALMON;Multi-tab, indien beschikbaar op tweede monitor PREFERENCES_NAVIGATIONFRAME;Navigatie -PREFERENCES_OUTDIR;Uitvoermap -PREFERENCES_OUTDIRFOLDER;Sla op in map -PREFERENCES_OUTDIRFOLDERHINT;Sla foto's op in andere map -PREFERENCES_OUTDIRTEMPLATE;Gebruik sjabloon -PREFERENCES_OUTDIRTEMPLATEHINT;U kunt de volgende formaten gebruiken:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r\n\nDeze formaten hebben betrekking op de mappen, submappen en atributen van het RAW-bestand.\n\nAls bijvoorbeeld /home/tom/image/02-09-2006/dsc0012.nef is geopend, hebben deze formaten de volgende betekenis:\n%f=dsc0012, %d1=02-09-2006, %d2=foto, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\n%r wordt vervangen door de rank van de foto. Als de foto geen rank heeft, wordt %r vervangen door '0'. Als de foto in de prullenbak zit zal %r worden vervangen door 'x'.\n\nWanneer de geconverteerde RAW-foto in dezelfde map moet komen als het origineel, schrijf dan:\n%p1/%f\n\nIndien u de geconverteerde RAW-foto in een map genaamd 'geconverteerd' wilt plaatsen die een submap is van de oorspronkelijke locatie, schrijft u:\n%p1/geconverteerd/%f\n\nWilt u het geconverteerde RAW-bestand bewaren in map '/home/tom/geconverteerd' met behoud van dezelfde submap met datums, schrijf dan:\n%p2/geconverteerd/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Toon bestandsnamen over miniaturen PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Toon bestandsnaam over miniaturen in het Bewerkingsvenster PREFERENCES_OVERWRITEOUTPUTFILE;Overschrijf bestaande output-bestanden @@ -1018,9 +1009,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Toon filmstrip werkbalk PREFERENCES_SHTHRESHOLD;Grenswaarde onderbelichting PREFERENCES_SINGLETAB;Enkel-tab: foto's openen in zelfde tabvenster PREFERENCES_SINGLETABVERTAB;Enkel-tab ('filmstrip') modus met verticale tabs -PREFERENCES_SND_BATCHQUEUEDONE;Verwerkingsrij klaar PREFERENCES_SND_HELP;Typ bestandsnaam (of niets: geen geluid).\nWindows: gebruik 'SystemDefault', 'SystemAsterisk', etc. voor systeemgeluiden.\nLinux: gebruik "complete", "window-attention" etc. voor systeemgeluiden PREFERENCES_SND_LNGEDITPROCDONE;Bewerking klaar +PREFERENCES_SND_QUEUEDONE;Verwerkingsrij klaar PREFERENCES_SND_THRESHOLDSECS;na seconden PREFERENCES_STARTUPIMDIR;Standaardmap bij opstarten PREFERENCES_TAB_BROWSER;Bestandsnavigator @@ -1068,6 +1059,13 @@ PROGRESSBAR_SNAPSHOT_ADDED;Snapshot toegevoegd PROGRESSDLG_PROFILECHANGEDINBROWSER;Profiel veranderd in bestandsnavigator QINFO_ISO;ISO QINFO_NOEXIF;Exif-gegevens niet beschikbaar. +QUEUE_AUTOSTART;Autostart +QUEUE_AUTOSTART_TOOLTIP;Start verwerking automatisch wanneer nieuwe foto arriveert +QUEUE_DESTFILENAME;Pad en bestandsnaam +QUEUE_FORMAT_TITLE;Bestandstype +QUEUE_LOCATION_FOLDER;Sla op in map +QUEUE_LOCATION_TEMPLATE;Gebruik sjabloon +QUEUE_LOCATION_TEMPLATE_TOOLTIP;U kunt de volgende formaten gebruiken:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r\n\nDeze formaten hebben betrekking op de mappen, submappen en atributen van het RAW-bestand.\n\nAls bijvoorbeeld /home/tom/image/02-09-2006/dsc0012.nef is geopend, hebben deze formaten de volgende betekenis:\n%f=dsc0012, %d1=02-09-2006, %d2=foto, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n\n%r wordt vervangen door de rank van de foto. Als de foto geen rank heeft, wordt %r vervangen door '0'. Als de foto in de prullenbak zit zal %r worden vervangen door 'x'.\n\nWanneer de geconverteerde RAW-foto in dezelfde map moet komen als het origineel, schrijf dan:\n%p1/%f\n\nIndien u de geconverteerde RAW-foto in een map genaamd 'geconverteerd' wilt plaatsen die een submap is van de oorspronkelijke locatie, schrijft u:\n%p1/geconverteerd/%f\n\nWilt u het geconverteerde RAW-bestand bewaren in map '/home/tom/geconverteerd' met behoud van dezelfde submap met datums, schrijf dan:\n%p2/geconverteerd/%d1/%f SAVEDLG_AUTOSUFFIX;Voeg automatisch ophogend nummer (-1, -2..) toe als bestand al bestaat SAVEDLG_FILEFORMAT;Bestandstype SAVEDLG_FORCEFORMATOPTS;Forceer opties voor opslaan @@ -1972,7 +1970,6 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !!!!!!!!!!!!!!!!!!!!!!!!! !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_CATMULLROM;Flexible !DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_IMGTYPE_ANY;Any @@ -2177,6 +2174,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 440add185..e0b5b7685 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -13,9 +13,6 @@ ABOUT_TAB_CREDITS;Zasługi ABOUT_TAB_LICENSE;Licencja ABOUT_TAB_RELEASENOTES;Notatki eksploatacyjne ABOUT_TAB_SPLASH;Ekran powitalny -BATCHQUEUE_AUTOSTART;Autostart -BATCHQUEUE_AUTOSTARTHINT;Rozpocznij przetwarzanie automatycznie gdy pojawi się nowe zadanie. -BATCHQUEUE_DESTFILENAME;Ścieżka i nazwa pliku BATCH_PROCESSING;Przetwarzanie wsadowe CURVEEDITOR_CURVE;Krzywa CURVEEDITOR_CURVES;Krzywe @@ -527,14 +524,14 @@ 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_QUEUE;Kolejka +MAIN_FRAME_QUEUE_TOOLTIP;Przetwarzanie wsadowe\nSkrót: Ctrl-F3 MAIN_FRAME_RECENT;Ostatnio używane foldery MAIN_MSG_ALREADYEXISTS;Plik już istnieje. MAIN_MSG_CANNOTLOAD;Nie można wczytać obrazu @@ -694,7 +691,6 @@ PREFERENCES_DIRSOFTWARE;Katalog instalacyjny PREFERENCES_EDITORLAYOUT;Układ edytora PREFERENCES_EXTERNALEDITOR;Zewnętrzny edytor PREFERENCES_FBROWSEROPTS;Opcje przeglądarki plików -PREFERENCES_FILEFORMAT;Format pliku PREFERENCES_FLATFIELDFOUND;Znaleziono PREFERENCES_FLATFIELDSDIR;Katalog z pustymi polami PREFERENCES_FLATFIELDSHOTS;kadry @@ -721,11 +717,6 @@ PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny PREFERENCES_MENUOPTIONS;Opcje menu PREFERENCES_MULTITAB;Tryb wielu zakładek PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) -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 @@ -749,9 +740,9 @@ 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_QUEUEDONE;Zakończono przetwarzanie wsadowe PREFERENCES_SND_THRESHOLDSECS;po sekundach PREFERENCES_STARTUPIMDIR;Katalog startowy PREFERENCES_TAB_BROWSER;Przeglądarka plików @@ -797,6 +788,13 @@ PROGRESSBAR_SNAPSHOT_ADDED;Dodano migawkę PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmieniony w przeglądarce QINFO_ISO;ISO QINFO_NOEXIF;Dane Exif niedostępne. +QUEUE_AUTOSTART;Autostart +QUEUE_AUTOSTART_TOOLTIP;Rozpocznij przetwarzanie automatycznie gdy pojawi się nowe zadanie. +QUEUE_DESTFILENAME;Ścieżka i nazwa pliku +QUEUE_FORMAT_TITLE;Format pliku +QUEUE_LOCATION_FOLDER;Zapisz do katalogu +QUEUE_LOCATION_TEMPLATE;Użyj schemat +QUEUE_LOCATION_TEMPLATE_TOOLTIP;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 SAVEDLG_AUTOSUFFIX;Automatycznie dodaj przyrostek, jeżeli plik już istnieje SAVEDLG_FILEFORMAT;Format pliku SAVEDLG_FORCEFORMATOPTS;Wymuś opcje zapisu @@ -1365,7 +1363,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !!!!!!!!!!!!!!!!!!!!!!!!! !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: @@ -1834,6 +1831,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 24c41dd53..5c9ad041d 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -7,10 +7,6 @@ ABOUT_TAB_LICENSE;Licença ABOUT_TAB_RELEASENOTES;Notas de lançamento ABOUT_TAB_SPLASH;Ecrã inicial ADJUSTER_RESET_TO_DEFAULT;Clique - repor o valor padrão.\nCtrl+clique - repor o valor padrão. -BATCHQUEUE_AUTOSTART;Iniciar automático -BATCHQUEUE_AUTOSTARTHINT;Começar a processar automaticamente ao receber uma nova tarefa. -BATCHQUEUE_DESTFILENAME;Caminho e nome do ficheiro -BATCHQUEUE_STARTSTOPHINT;Iniciar ou parar o processamento das imagens na fila.\n\nAtalho: Ctrl+s BATCH_PROCESSING;Processamento em lote CURVEEDITOR_AXIS_IN;Entrada: CURVEEDITOR_AXIS_LEFT_TAN;TE: @@ -875,14 +871,14 @@ MAIN_BUTTON_SENDTOEDITOR;Editar imagem no editor externo MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Editar a imagem atual no editor externo.\nAtalho: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Ocultar todos os painéis laterais.\nAtalho: m MAIN_BUTTON_UNFULLSCREEN;Sair do ecrã total -MAIN_FRAME_BATCHQUEUE;Fila -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Fila de processamento.\nAtalho: Ctrl-F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nAtalho: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Navegador de ficheiros MAIN_FRAME_FILEBROWSER_TOOLTIP;Navegador de ficheiros.\nAtalho: Ctrl-F2 MAIN_FRAME_PLACES;Locais MAIN_FRAME_PLACES_ADD;Adicionar +MAIN_FRAME_QUEUE;Fila +MAIN_FRAME_QUEUE_TOOLTIP;Fila de processamento.\nAtalho: Ctrl-F3 MAIN_FRAME_RECENT;Pastas recentes MAIN_MSG_ALREADYEXISTS;O ficheiro já existe. MAIN_MSG_CANNOTLOAD;Não é possível carregar a imagem @@ -1103,7 +1099,6 @@ PREFERENCES_EDITORLAYOUT;Interface do editor PREFERENCES_EXTERNALEDITOR;Editor externo PREFERENCES_FBROWSEROPTS;Navegador de ficheiros / opções de miniaturas PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de ferramentas compacta no navegador de ficheiros -PREFERENCES_FILEFORMAT;Formato de ficheiro PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Pasta de campos planos PREFERENCES_FLATFIELDSHOTS;disparos @@ -1142,11 +1137,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Devido às limitações do MacOS, apenas é supor PREFERENCES_MULTITAB;Modo de editor em várias abas PREFERENCES_MULTITABDUALMON;Modo de editor em várias janelas PREFERENCES_NAVIGATIONFRAME;Navegação -PREFERENCES_OUTDIR;Pasta das saídas -PREFERENCES_OUTDIRFOLDER;Guardar na pasta -PREFERENCES_OUTDIRFOLDERHINT;Guardar imagens na pasta selecionada. -PREFERENCES_OUTDIRTEMPLATE;Usar modelo -PREFERENCES_OUTDIRTEMPLATEHINT;Pode-se usar as seguintes sequências de formatação:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nEstas cadeias de formatação referem-se às diferentes partes do caminho do nome da fotografia, alguns atributos da fotografia ou um índice de sequência arbitrário no processamento em lote.\n\nPor exemplo, se a fotografia que está a ser processada tiver o seguinte caminho:\n/inicio/rodrigo/fotos/2010-10-31/dsc0042.nef\no significado das cadeias de formatação são:\n%d4 = inicio\n%d3 = rodrigo\n%d2 = fotos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /inicio/rodrigo/fotos/2010-10-31/\n%p2 = /inicio/rodrigo/fotos/\n%p3 = /inicio/rodrigo/\n%p4 = /inicio/\n\n%r será substituído pela classificação da fotografia. Se a fotografia não tiver classificação, %r será substituído por '0'. Se a fotografia estiver no caixote do lixo, %r será substituído por 'x'.\n\n%s1, %s2, etc. será substituído por um índice de sequência que é preenchido entre 1 e 9 dígitos. O índice da sequência iniciará em 1 sempre que o processamento da fila for iniciado e será incrementado em 1 para cada imagem processada.\n\nSe quiser guardar a imagem de saída no local onde se encontra a original, escreva:\n%p1/%f\n\nSe quiser guardar a imagem de saída numa pasta chamada "convertido" localizada na pasta da imagem aberta, escreva:\n%p1/convertido/%f\n\nSe quiser guardar a imagem de saída numa pasta chamada\n"/inicio/rodrigo/fotos/convertido/2010-10-31", escreva:\n%p2/convertido/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Mostrar nomes de ficheiros em cima das miniaturas no navegador de ficheiros PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Mostrar nomes de ficheiros em cima das miniaturas no painel do editor PREFERENCES_OVERWRITEOUTPUTFILE;Substituir ficheiros de saída existentes @@ -1194,9 +1184,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Mostrar barra de ferramentas da película de fo PREFERENCES_SHTHRESHOLD;Limite para sombras cortadas PREFERENCES_SINGLETAB;Modo de editor numa só aba PREFERENCES_SINGLETABVERTAB;Modo de editor numa só aba. Abas verticais -PREFERENCES_SND_BATCHQUEUEDONE;Processamento da fila concluído PREFERENCES_SND_HELP;Introduza um endereço de ficheiro completo para definir um som ou deixe em branco para não ter som.\nPara sons do sistema no Windows, use "SystemDefault", "SystemAsterisk" etc. e no Linux use "complete", "window-attention" etc. PREFERENCES_SND_LNGEDITPROCDONE;Processamento do editor concluído +PREFERENCES_SND_QUEUEDONE;Processamento da fila concluído PREFERENCES_SND_THRESHOLDSECS;Após (segundos) PREFERENCES_STARTUPIMDIR;Pasta de imagens ao iniciar PREFERENCES_TAB_BROWSER;Navegador de ficheiros @@ -1252,6 +1242,14 @@ QINFO_HDR;HDR / %2 fotograma(s) QINFO_ISO;ISO QINFO_NOEXIF;Dados Exif não disponíveis. QINFO_PIXELSHIFT;Mudança de píxel / %2 fotograma(s) +QUEUE_AUTOSTART;Iniciar automático +QUEUE_AUTOSTART_TOOLTIP;Começar a processar automaticamente ao receber uma nova tarefa. +QUEUE_DESTFILENAME;Caminho e nome do ficheiro +QUEUE_FORMAT_TITLE;Formato de ficheiro +QUEUE_LOCATION_FOLDER;Guardar na pasta +QUEUE_LOCATION_TEMPLATE;Usar modelo +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Pode-se usar as seguintes sequências de formatação:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nEstas cadeias de formatação referem-se às diferentes partes do caminho do nome da fotografia, alguns atributos da fotografia ou um índice de sequência arbitrário no processamento em lote.\n\nPor exemplo, se a fotografia que está a ser processada tiver o seguinte caminho:\n/inicio/rodrigo/fotos/2010-10-31/dsc0042.nef\no significado das cadeias de formatação são:\n%d4 = inicio\n%d3 = rodrigo\n%d2 = fotos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /inicio/rodrigo/fotos/2010-10-31/\n%p2 = /inicio/rodrigo/fotos/\n%p3 = /inicio/rodrigo/\n%p4 = /inicio/\n\n%r será substituído pela classificação da fotografia. Se a fotografia não tiver classificação, %r será substituído por '0'. Se a fotografia estiver no caixote do lixo, %r será substituído por 'x'.\n\n%s1, %s2, etc. será substituído por um índice de sequência que é preenchido entre 1 e 9 dígitos. O índice da sequência iniciará em 1 sempre que o processamento da fila for iniciado e será incrementado em 1 para cada imagem processada.\n\nSe quiser guardar a imagem de saída no local onde se encontra a original, escreva:\n%p1/%f\n\nSe quiser guardar a imagem de saída numa pasta chamada "convertido" localizada na pasta da imagem aberta, escreva:\n%p1/convertido/%f\n\nSe quiser guardar a imagem de saída numa pasta chamada\n"/inicio/rodrigo/fotos/convertido/2010-10-31", escreva:\n%p2/convertido/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;Iniciar ou parar o processamento das imagens na fila.\n\nAtalho: Ctrl+s SAMPLEFORMAT_0;Formato de dados desconhecido SAMPLEFORMAT_1;8 bits sem assinatura SAMPLEFORMAT_2;16-bits sem assinatura @@ -2273,6 +2271,7 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... +!QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 3096f62b4..725bfe873 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -7,10 +7,6 @@ ABOUT_TAB_LICENSE;Licença ABOUT_TAB_RELEASENOTES;Nota de Lançamento ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Clique - restaurar para o valor padrão.\nCtrl+clique - restaurar para o valor inicial. -BATCHQUEUE_AUTOSTART;Início automático -BATCHQUEUE_AUTOSTARTHINT;Começa a processar automaticamente um novo trabalho. -BATCHQUEUE_DESTFILENAME;Caminho e nome do arquivo -BATCHQUEUE_STARTSTOPHINT;Inicia ou para o processamento das imagens na fila.\n\nAtalho: Ctrl+s BATCH_PROCESSING;Processamento em lote CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -874,14 +870,14 @@ MAIN_BUTTON_SENDTOEDITOR;Editar imagem no editor externo MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Editar imagem atual no editor externo.\nAtalho: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Mostrar/ocultar todos os painéis laterais.\nAtalho: m MAIN_BUTTON_UNFULLSCREEN;Sair da tela cheia -MAIN_FRAME_BATCHQUEUE;Fila -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processando fila.\nAtalho: Ctrl-F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nAtalho: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Navegador de Arquivos MAIN_FRAME_FILEBROWSER_TOOLTIP;Navegador de arquivos.\nAtalho: Ctrl-F2 MAIN_FRAME_PLACES;Locais MAIN_FRAME_PLACES_ADD;Adicionar +MAIN_FRAME_QUEUE;Fila +MAIN_FRAME_QUEUE_TOOLTIP;Processando fila.\nAtalho: Ctrl-F3 MAIN_FRAME_RECENT;Pastas Recentes MAIN_MSG_ALREADYEXISTS;O arquivo já existe. MAIN_MSG_CANNOTLOAD;Não é possível carregar a imagem @@ -1101,7 +1097,6 @@ PREFERENCES_EDITORLAYOUT;Layout do Editor PREFERENCES_EXTERNALEDITOR;Editor Externo PREFERENCES_FBROWSEROPTS;Navegador de Arquivos / Opções de Miniaturas PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de ferramentas compacta no Navegador de Arquivos -PREFERENCES_FILEFORMAT;Formato de arquivo PREFERENCES_FLATFIELDFOUND;Encontrado PREFERENCES_FLATFIELDSDIR;Diretório de campos planos PREFERENCES_FLATFIELDSHOTS;disparos @@ -1140,11 +1135,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Devido às limitações do MacOS, apenas o sRGB PREFERENCES_MULTITAB;Modo de Múltiplas Abas do Editor PREFERENCES_MULTITABDUALMON;Múltiplas Abas do Editor no Modo de Janela Própria PREFERENCES_NAVIGATIONFRAME;Navegação -PREFERENCES_OUTDIR;Diretório de Saída -PREFERENCES_OUTDIRFOLDER;Salvar na pasta -PREFERENCES_OUTDIRFOLDERHINT;Salvar imagens na pasta selecionada. -PREFERENCES_OUTDIRTEMPLATE;Use modelo -PREFERENCES_OUTDIRTEMPLATEHINT;Podes usar as seguintes sequências de formatação:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nEssas cadeias de formatação referem-se às diferentes partes do endereço do nome da foto, alguns atributos da foto ou um índice de sequência arbitrário no processamento em lote.\n\nPor exemplo, se a foto que está sendo processada tiver o seguinte endereço do nome:\n/inicio/rodrigo/fotos/2010-10-31/dsc0042.nef\no significado das cadeias de formatação são:\n%d4 = inicio\n%d3 = rodrigo\n%d2 = fotos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /inicio/rodrigo/fotos/2010-10-31/\n%p2 = /inicio/rodrigo/fotos/\n%p3 = /inicio/rodrigo/\n%p4 = /inicio/\n\n%r será substituído pela classificação da foto. Se a foto não tiver classificação, %r será substituído por '0'. Se a foto estiver na lixeira, %r será substituído por 'x'.\n\n%s1, %s2, etc. será substituído por um índice de sequência que é preenchido entre 1 e 9 dígitos. O índice de sequência iniciará em 1 sempre que o processamento da fila for iniciado e será incrementado em 1 para cada imagem processada.\n\nSe quiseres salvar a imagem de saída no local onde se encontra a original, escreva:\n%p1/%f\n\nSe quiseres salvar a imagem de saída num diretório chamado "convertido" localizado no diretório da imagem aberta, escreva:\n%p1/convertido/%f\n\nSe quiseres salvar a imagem de saída num diretório chamado\n"/inicio/rodrigo/fotos/convertido/2010-10-31", escreva:\n%p2/convertido/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Mostrar nomes de arquivos por cima das miniaturas no navegador de arquivos PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Mostrar nomes de arquivos por cima das miniaturas no painel do editor PREFERENCES_OVERWRITEOUTPUTFILE;Sobrescrever arquivos de saída existentes @@ -1192,9 +1182,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Mostrar barra de ferramentas de diapositivos PREFERENCES_SHTHRESHOLD;Limite para sombras recortadas PREFERENCES_SINGLETAB;Modo de Aba de Editor Único PREFERENCES_SINGLETABVERTAB;Editor de Aba Única, Abas verticais -PREFERENCES_SND_BATCHQUEUEDONE;Processamento de fila concluído PREFERENCES_SND_HELP;Digite um endereço de arquivo completo para definir um som ou deixe em branco para não ter som.\nPara sons do sistema no Windows, use "SystemDefault", "SystemAsterisk" etc., e no Linux use "complete", "window-attention" etc. PREFERENCES_SND_LNGEDITPROCDONE;Processamento de Editor concluído +PREFERENCES_SND_QUEUEDONE;Processamento de fila concluído PREFERENCES_SND_THRESHOLDSECS;Depois de segundos PREFERENCES_STARTUPIMDIR;Diretório de imagens na inicialização PREFERENCES_TAB_BROWSER;Navegador de Arquivo @@ -1250,6 +1240,14 @@ QINFO_HDR;HDR / %2 quadro(s) QINFO_ISO;ISO QINFO_NOEXIF;Dados exif não disponíveis. QINFO_PIXELSHIFT;Pixel Shift / %2 quadro(s) +QUEUE_AUTOSTART;Início automático +QUEUE_AUTOSTART_TOOLTIP;Começa a processar automaticamente um novo trabalho. +QUEUE_DESTFILENAME;Caminho e nome do arquivo +QUEUE_FORMAT_TITLE;Formato de arquivo +QUEUE_LOCATION_FOLDER;Salvar na pasta +QUEUE_LOCATION_TEMPLATE;Use modelo +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Podes usar as seguintes sequências de formatação:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nEssas cadeias de formatação referem-se às diferentes partes do endereço do nome da foto, alguns atributos da foto ou um índice de sequência arbitrário no processamento em lote.\n\nPor exemplo, se a foto que está sendo processada tiver o seguinte endereço do nome:\n/inicio/rodrigo/fotos/2010-10-31/dsc0042.nef\no significado das cadeias de formatação são:\n%d4 = inicio\n%d3 = rodrigo\n%d2 = fotos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /inicio/rodrigo/fotos/2010-10-31/\n%p2 = /inicio/rodrigo/fotos/\n%p3 = /inicio/rodrigo/\n%p4 = /inicio/\n\n%r será substituído pela classificação da foto. Se a foto não tiver classificação, %r será substituído por '0'. Se a foto estiver na lixeira, %r será substituído por 'x'.\n\n%s1, %s2, etc. será substituído por um índice de sequência que é preenchido entre 1 e 9 dígitos. O índice de sequência iniciará em 1 sempre que o processamento da fila for iniciado e será incrementado em 1 para cada imagem processada.\n\nSe quiseres salvar a imagem de saída no local onde se encontra a original, escreva:\n%p1/%f\n\nSe quiseres salvar a imagem de saída num diretório chamado "convertido" localizado no diretório da imagem aberta, escreva:\n%p1/convertido/%f\n\nSe quiseres salvar a imagem de saída num diretório chamado\n"/inicio/rodrigo/fotos/convertido/2010-10-31", escreva:\n%p2/convertido/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;Inicia ou para o processamento das imagens na fila.\n\nAtalho: Ctrl+s SAMPLEFORMAT_0;Formato de dados desconhecido SAMPLEFORMAT_1;8 bits sem assinatura SAMPLEFORMAT_2;16-bits sem assinatura @@ -2268,6 +2266,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... +!QUEUE_LOCATION_TITLE;Output Location !TP_COLORTONING_LABREGION_OFFSET;Offset !TP_COLORTONING_LABREGION_POWER;Power !TP_CROP_PPI;PPI diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 70d700afb..6632580d8 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -14,10 +14,6 @@ ABOUT_TAB_LICENSE;Лицензия ABOUT_TAB_RELEASENOTES;Примечания к выпуску ABOUT_TAB_SPLASH;Заставка ADJUSTER_RESET_TO_DEFAULT;Click: Сбросить на значение по умолчанию.\nCtrl+click: Сбросить на начальное значение. -BATCHQUEUE_AUTOSTART;Автостарт -BATCHQUEUE_AUTOSTARTHINT;Автоматически запускать обработку при добавлении файла в очередь -BATCHQUEUE_DESTFILENAME;Имя файла и путь к нему -BATCHQUEUE_STARTSTOPHINT;Начать или остановить обработку изображений в очереди.\n\Горячая клавиша: Ctrl-S BATCH_PROCESSING;Пакетная обработка CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_OUT;O: @@ -576,14 +572,14 @@ MAIN_BUTTON_SENDTOEDITOR;Редактировать изображение во MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Редактировать изображение во внешнем редакторе.\nГорячая клавиша Ctrl+E MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Показать/скрыть все боковые панели.\nГорячая клавиша m MAIN_BUTTON_UNFULLSCREEN;Оконный режим -MAIN_FRAME_BATCHQUEUE;Очередь обработки -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Очередь пакетной обработки.\nГорячая клавиша Ctrl-F3 MAIN_FRAME_EDITOR;Редактор MAIN_FRAME_EDITOR_TOOLTIP;Редактор.\nГорячая клавиша Ctrl-F4 MAIN_FRAME_FILEBROWSER;Файловый браузер MAIN_FRAME_FILEBROWSER_TOOLTIP;Проводник.\nГорячая клавиша Ctrl-F2 MAIN_FRAME_PLACES;Закладки MAIN_FRAME_PLACES_ADD;Добавить +MAIN_FRAME_QUEUE;Очередь обработки +MAIN_FRAME_QUEUE_TOOLTIP;Очередь пакетной обработки.\nГорячая клавиша Ctrl-F3 MAIN_FRAME_RECENT;Недавние каталоги MAIN_MSG_ALREADYEXISTS;Файл уже существует. MAIN_MSG_CANNOTLOAD;Невозможно загрузить изображение @@ -769,7 +765,6 @@ PREFERENCES_DIRSOFTWARE;Каталог установки PREFERENCES_EDITORLAYOUT;Тип редактора PREFERENCES_EXTERNALEDITOR;Внешний редактор PREFERENCES_FBROWSEROPTS;Настройки -PREFERENCES_FILEFORMAT;Формат файлов PREFERENCES_FLATFIELDFOUND;Найдено PREFERENCES_FLATFIELDSDIR;Каталог файлов плоских полей PREFERENCES_FLATFIELDSHOTS;снимков @@ -800,11 +795,6 @@ PREFERENCES_MONITOR;Монитор PREFERENCES_MULTITAB;Много вкладок PREFERENCES_MULTITABDUALMON;Много вкладок, на втором мониторе (если возможно) PREFERENCES_NAVIGATIONFRAME;Навигация -PREFERENCES_OUTDIR;Каталог для сохранения изображений -PREFERENCES_OUTDIRFOLDER;Сохранять в каталог -PREFERENCES_OUTDIRFOLDERHINT;Сохранение изображений в выбранный каталог -PREFERENCES_OUTDIRTEMPLATE;Использовать шаблон -PREFERENCES_OUTDIRTEMPLATEHINT;Вы можете использовать следующие элементы форматирования:\n%f, %d1, %d2, …, %p1, %p2, …, %r, %s1, %s2, …\n\nЭлементы соответствуют различным элементам в пути к RAW-файлу, некоторым атрибутам файла или индексу в очереди пакетной обработки.\n\nНапример, если был открыт файл /home/tom/image/2006-02-09/dsc0012.nef, элементы форматирования будут выглядеть так:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2006-02-09\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r заменится на рейтинг фотографии, либо '0' при пустом, либо на 'x' если фотография находится в корзине.\n\n%s1, %s2 и т.д. заменятся на индекс фотографии в очереди обработки, дополненный нулями до 1-9 символов. Индекс сбрасывается при старте и увеличивается на единицу при обработке фотографии.\nЕсли вы хотите сохранять изображения в каталоге с оригиналом, введите:\n%p1/%f\n\nЕсли вы хотите сохранять изображения в каталоге "converted" в каталоге оригинального файла, введите строку:\n%p1/converted/%f\nДля сохранения изображений в каталоге "/home/tom/photos/converted/2006-02-09", напишите:\n%p2/converted/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Показывать информацию поверх миниатюр PREFERENCES_OVERWRITEOUTPUTFILE;Перезаписывать существующие файлы PREFERENCES_PANFACTORLABEL;Коэффициент @@ -837,9 +827,9 @@ PREFERENCES_SHOWEXPOSURECOMPENSATION;Показывать компенсацию PREFERENCES_SHTHRESHOLD;Порог обрезки теней PREFERENCES_SINGLETAB;Одна вкладка редактирования PREFERENCES_SINGLETABVERTAB;Одна вкладка редактирования, вертикальная панель вкладок -PREFERENCES_SND_BATCHQUEUEDONE;Пакетная обработка завершена PREFERENCES_SND_HELP;Введите имя файла, либо оставьте поле пустым (без звука). \nДля использования системных звуков в Windows можно использовать "SystemDefault", "SystemAsterisk", в Linux "complete", "window-attention" и т.д. PREFERENCES_SND_LNGEDITPROCDONE;Обработка в редакторе завершена +PREFERENCES_SND_QUEUEDONE;Пакетная обработка завершена PREFERENCES_SND_THRESHOLDSECS;после, секунд PREFERENCES_STARTUPIMDIR;Каталог изображений при запуске PREFERENCES_TAB_BROWSER;Файловый браузер @@ -894,6 +884,14 @@ QINFO_HDR;HDR / %2 кадр(ов) QINFO_ISO;ISO QINFO_NOEXIF;Данные Exif недоступны QINFO_PIXELSHIFT;Сдвиг пикселей / %2 frame(s) +QUEUE_AUTOSTART;Автостарт +QUEUE_AUTOSTART_TOOLTIP;Автоматически запускать обработку при добавлении файла в очередь +QUEUE_DESTFILENAME;Имя файла и путь к нему +QUEUE_FORMAT_TITLE;Формат файлов +QUEUE_LOCATION_FOLDER;Сохранять в каталог +QUEUE_LOCATION_TEMPLATE;Использовать шаблон +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Вы можете использовать следующие элементы форматирования:\n%f, %d1, %d2, …, %p1, %p2, …, %r, %s1, %s2, …\n\nЭлементы соответствуют различным элементам в пути к RAW-файлу, некоторым атрибутам файла или индексу в очереди пакетной обработки.\n\nНапример, если был открыт файл /home/tom/image/2006-02-09/dsc0012.nef, элементы форматирования будут выглядеть так:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2006-02-09\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r заменится на рейтинг фотографии, либо '0' при пустом, либо на 'x' если фотография находится в корзине.\n\n%s1, %s2 и т.д. заменятся на индекс фотографии в очереди обработки, дополненный нулями до 1-9 символов. Индекс сбрасывается при старте и увеличивается на единицу при обработке фотографии.\nЕсли вы хотите сохранять изображения в каталоге с оригиналом, введите:\n%p1/%f\n\nЕсли вы хотите сохранять изображения в каталоге "converted" в каталоге оригинального файла, введите строку:\n%p1/converted/%f\nДля сохранения изображений в каталоге "/home/tom/photos/converted/2006-02-09", напишите:\n%p2/converted/%d1/%f +QUEUE_STARTSTOP_TOOLTIP;Начать или остановить обработку изображений в очереди.\n\Горячая клавиша: Ctrl-S SAVEDLG_AUTOSUFFIX;Автоматически добавлять суффикс если файл существует SAVEDLG_FILEFORMAT;Формат файла SAVEDLG_FORCEFORMATOPTS;Принудительно установить настройки сохранения @@ -1833,6 +1831,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... +!QUEUE_LOCATION_TITLE;Output Location !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index b11a54e17..4224ef46a 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -5,9 +5,6 @@ ABOUT_TAB_CREDITS;Заслуге ABOUT_TAB_LICENSE;Лиценца ABOUT_TAB_RELEASENOTES;Белешке о издању ABOUT_TAB_SPLASH;Увод -BATCHQUEUE_AUTOSTART;Сам започни -BATCHQUEUE_AUTOSTARTHINT;Покреће обраду фотографија када их закажете -BATCHQUEUE_DESTFILENAME;Путања и име датотеке BATCH_PROCESSING;обрада CURVEEDITOR_CURVE;Кривуља CURVEEDITOR_CURVES;Кривуље @@ -464,14 +461,14 @@ MAIN_BUTTON_SENDTOEDITOR;Уреди MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Уређује тренутну слику у спољном програму Ctrl+Е MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Приказује/сакрива све бочне површине m MAIN_BUTTON_UNFULLSCREEN;Напусти цео екран -MAIN_FRAME_BATCHQUEUE;Заказане датотеке -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Заказано Ctrl-F3 MAIN_FRAME_EDITOR;Уређивач MAIN_FRAME_EDITOR_TOOLTIP; Уређивач Ctrl-F4 MAIN_FRAME_FILEBROWSER;Разгледач датотека MAIN_FRAME_FILEBROWSER_TOOLTIP; Разгледач датотека Ctrl-F2 MAIN_FRAME_PLACES;Места MAIN_FRAME_PLACES_ADD;Додај +MAIN_FRAME_QUEUE;Заказане датотеке +MAIN_FRAME_QUEUE_TOOLTIP; Заказано Ctrl-F3 MAIN_FRAME_RECENT;Recent Фасцикле MAIN_MSG_ALREADYEXISTS;Датотека већ постоји. MAIN_MSG_CANNOTLOAD;Не могу да учитам слику @@ -613,7 +610,6 @@ PREFERENCES_DIRSOFTWARE;Директоријум са инсталацијом PREFERENCES_EDITORLAYOUT;Размештај програма PREFERENCES_EXTERNALEDITOR;Спољни уређивач PREFERENCES_FBROWSEROPTS;Опције разгледача датотеке -PREFERENCES_FILEFORMAT;Формат датотеке PREFERENCES_FLATFIELDFOUND;Нађено PREFERENCES_FLATFIELDSDIR;Директоријум за равна поља PREFERENCES_FLATFIELDSHOTS;снимака @@ -639,11 +635,6 @@ PREFERENCES_MENUGROUPRANK;Групиши оцењивање PREFERENCES_MENUOPTIONS;Опције менија PREFERENCES_MULTITAB;Режим у више листова PREFERENCES_MULTITABDUALMON;Режим у више листова, на другом монитору -PREFERENCES_OUTDIR;Излазни директоријум -PREFERENCES_OUTDIRFOLDER;Сачувај у фасциклу -PREFERENCES_OUTDIRFOLDERHINT;Ставља сачуване слике у -PREFERENCES_OUTDIRTEMPLATE;Употреби шаблон -PREFERENCES_OUTDIRTEMPLATEHINT;Можете да задате следеће скраћенице за форматирање:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nОви знакови за форматирање се односе на директоријуме, подпутање путања до raw датотеке.\n\nНа пример, уколико је отворена слика /home/ivan/слике/02.09.2010/dsc0012.nef, скраћенице означавају:\n%f=dsc0012, %d1=02.09.2010, %d2=слике, ...\n%p1=/home/ivan/слике/02.09.2010, %p2=/home/ivan/слике, %p3=/home/ivan, ...\n\nУколико желите да сачувате развијену слику поред оригинала, унесите:\n%p1/%f\n\nУколико желите да сачувате излазну слику у директоријум „развијене“ који се налази где и оригинална слика, унесите:\n%p1/развијене/%f\n\nУколико желите да сачувате развијену слику у директоријум „/home/ivan/развијене“, а да структура поддиректоријума остане очувана, унесите:\n%p2/развијене/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Постави преко умањеног приказа PREFERENCES_OVERWRITEOUTPUTFILE;Препиши постојеће излазне датотеке PREFERENCES_PANFACTORLABEL;Фактор @@ -667,9 +658,9 @@ PREFERENCES_SHOWEXPOSURECOMPENSATION;Додај компензацију екс PREFERENCES_SHTHRESHOLD;Праг за одсечене тамне делове PREFERENCES_SINGLETAB;Режим у једном листу PREFERENCES_SINGLETABVERTAB;Режим у једном листу, вертикални листови -PREFERENCES_SND_BATCHQUEUEDONE;Обрађене су заказане датотеке PREFERENCES_SND_HELP;Унесите путању до датотеке или оставите празно уколико не желите звук. На Windows-у можете да користите „SystemDefault“, „SystemAsterisk“ за системске звуке. PREFERENCES_SND_LNGEDITPROCDONE;Уредник је завршио обраду +PREFERENCES_SND_QUEUEDONE;Обрађене су заказане датотеке PREFERENCES_SND_THRESHOLDSECS;бр. секунди PREFERENCES_STARTUPIMDIR;Директоријум по покретању PREFERENCES_TAB_BROWSER;Преглед датотека @@ -715,6 +706,13 @@ PROGRESSBAR_SNAPSHOT_ADDED;Додат је снимак PROGRESSDLG_PROFILECHANGEDINBROWSER;Профил измењен у разгледачу QINFO_ISO;ИСО QINFO_NOEXIF;Нису доступни Exif подаци. +QUEUE_AUTOSTART;Сам започни +QUEUE_AUTOSTART_TOOLTIP;Покреће обраду фотографија када их закажете +QUEUE_DESTFILENAME;Путања и име датотеке +QUEUE_FORMAT_TITLE;Формат датотеке +QUEUE_LOCATION_FOLDER;Сачувај у фасциклу +QUEUE_LOCATION_TEMPLATE;Употреби шаблон +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Можете да задате следеће скраћенице за форматирање:\n%f, %d1, %d2, ..., %p1, %p2, ...\n\nОви знакови за форматирање се односе на директоријуме, подпутање путања до raw датотеке.\n\nНа пример, уколико је отворена слика /home/ivan/слике/02.09.2010/dsc0012.nef, скраћенице означавају:\n%f=dsc0012, %d1=02.09.2010, %d2=слике, ...\n%p1=/home/ivan/слике/02.09.2010, %p2=/home/ivan/слике, %p3=/home/ivan, ...\n\nУколико желите да сачувате развијену слику поред оригинала, унесите:\n%p1/%f\n\nУколико желите да сачувате излазну слику у директоријум „развијене“ који се налази где и оригинална слика, унесите:\n%p1/развијене/%f\n\nУколико желите да сачувате развијену слику у директоријум „/home/ivan/развијене“, а да структура поддиректоријума остане очувана, унесите:\n%p2/развијене/%d1/%f SAVEDLG_AUTOSUFFIX;Сам додај суфикс уколико датотека већ постоји SAVEDLG_FILEFORMAT;Формат датотеке SAVEDLG_FORCEFORMATOPTS;Приморај могућности за чување @@ -1199,7 +1197,6 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !!!!!!!!!!!!!!!!!!!!!!!!! !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: @@ -1745,6 +1742,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 9805f531b..73826351f 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -8,9 +8,6 @@ ABOUT_TAB_CREDITS;Erkännande ABOUT_TAB_LICENSE;Licens ABOUT_TAB_RELEASENOTES;Versionsnyheter ABOUT_TAB_SPLASH;Splash -BATCHQUEUE_AUTOSTART;Autostart -BATCHQUEUE_AUTOSTARTHINT;Starta behandlingen automatiskt när en ny bild kommer in -BATCHQUEUE_DESTFILENAME;Sökväg och filnamn BATCH_PROCESSING;Batchbehandling CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_OUT;O: @@ -662,14 +659,14 @@ MAIN_BUTTON_SENDTOEDITOR;Redigera bilden i ett externt program MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Redigera nuvarande bild i externt bildredigeringsprogram.\nKortkommando: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Visa/dölj alla sidopaneler.\nKortkommando: m MAIN_BUTTON_UNFULLSCREEN;Avsluta helskärmsläget -MAIN_FRAME_BATCHQUEUE;Batchkö -MAIN_FRAME_BATCHQUEUE_TOOLTIP; Batchkö\nKortkommando: Ctrl-F3 MAIN_FRAME_EDITOR;Redigeringsvy MAIN_FRAME_EDITOR_TOOLTIP;Redigeringsvy\nKortkommando: Ctrl-F4 MAIN_FRAME_FILEBROWSER;Filvy MAIN_FRAME_FILEBROWSER_TOOLTIP; Filvy\nKortkommandoCtrl-F2 MAIN_FRAME_PLACES;Platser MAIN_FRAME_PLACES_ADD;Lägg till +MAIN_FRAME_QUEUE;Batchkö +MAIN_FRAME_QUEUE_TOOLTIP; Batchkö\nKortkommando: Ctrl-F3 MAIN_FRAME_RECENT;Nyligen använda kataloger MAIN_MSG_ALREADYEXISTS;Filen existerar redan. MAIN_MSG_CANNOTLOAD;Kan inte ladda bilden @@ -839,7 +836,6 @@ PREFERENCES_DIRSOFTWARE;Installationskatalog PREFERENCES_EDITORLAYOUT;Layout för redigeringsvyn PREFERENCES_EXTERNALEDITOR;Externt bildredigeringsprogram PREFERENCES_FBROWSEROPTS;Inställningar för filvyn/miniatyrbilderna -PREFERENCES_FILEFORMAT;Filformat PREFERENCES_FLATFIELDFOUND;Hittade PREFERENCES_FLATFIELDSDIR;Plattfältskatalog PREFERENCES_FLATFIELDSHOTS;bilder @@ -872,11 +868,6 @@ PREFERENCES_MENUOPTIONS;Menyval för högerklick PREFERENCES_MULTITAB;Öppna bilderna i olika flikar PREFERENCES_MULTITABDUALMON;Visa bild på andra skärmen, om möjligt, i flerfliksläge PREFERENCES_NAVIGATIONFRAME;Navigering -PREFERENCES_OUTDIR;Utmatningskatalog -PREFERENCES_OUTDIRFOLDER;Spara till katalog -PREFERENCES_OUTDIRFOLDERHINT;Spara de behandlade bilderna i den valda katalogen -PREFERENCES_OUTDIRTEMPLATE;Använd förinställning -PREFERENCES_OUTDIRTEMPLATEHINT;Du kan använda följande format:\n%f, %d1, %d2, %p1, %p2\n\nDe här format hänvisar till katalogerna och underkatalogerna till råbildens sökväg.\n\nTill exempel, om /home/tom/bilder/2010-09-02/dsc0012.nefhar öppnats, betyder formatsträngen följande:\n%f=dsc0012\n%d1=2010-09-02\n%d2=bilder\n%p1=/home/tom/bilder/2010-09-02,\n%p2=/home/tom/bilder\n%p3=/home/tom\n\nOm du vill spara den behandlade filen där originalet finns, skriver du:\n%p1/%f\n\nOm du vill spara den behandlade filen i en katalog som heter "Konverterade filer", belägen i originalets katalog, skriver du:\n%p1/Konverterade filer/%f\n\nOm du vill spara den behandlade filen i en katalog "/home/tom/Konverterade filer" där du behåller samma underkatalog med datum, skriver du:\n%p2/Konverterade filer/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Visa filnamn över miniatyrbilder PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Visa filnamnet över miniatyrbilden i redigeringsvyn PREFERENCES_OVERWRITEOUTPUTFILE;Skriv över existerande utfiler @@ -913,9 +904,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Visa verktygsraden för filmstrip PREFERENCES_SHTHRESHOLD;Tröskelvärde för skuggor PREFERENCES_SINGLETAB;Öppna en bild åt gången PREFERENCES_SINGLETABVERTAB;Enkelfliksläge, vertikala flikar -PREFERENCES_SND_BATCHQUEUEDONE;Batchkön färdig PREFERENCES_SND_HELP;Fyll i en sökväg till ett ljud.\nI Windows kan "SystemDefault", "SystemAsterisk" o.s.v. användas.\nPå Linuxbaserade system kan du prova med "complete", "windows-attention" o.s.v. PREFERENCES_SND_LNGEDITPROCDONE;När behandlingen är klar +PREFERENCES_SND_QUEUEDONE;Batchkön färdig PREFERENCES_SND_THRESHOLDSECS;Ljudet kommer efter så här många sekunder PREFERENCES_STARTUPIMDIR;Bildkatalog som visas vid uppstart PREFERENCES_TAB_BROWSER;Filbläddrare @@ -961,6 +952,13 @@ PROGRESSBAR_SNAPSHOT_ADDED;Bokmärke tillagt. PROGRESSDLG_PROFILECHANGEDINBROWSER;Profilen har ändrats i filhanteraren QINFO_ISO;ISO QINFO_NOEXIF;Exif-information ej tillgänglig. +QUEUE_AUTOSTART;Autostart +QUEUE_AUTOSTART_TOOLTIP;Starta behandlingen automatiskt när en ny bild kommer in +QUEUE_DESTFILENAME;Sökväg och filnamn +QUEUE_FORMAT_TITLE;Filformat +QUEUE_LOCATION_FOLDER;Spara till katalog +QUEUE_LOCATION_TEMPLATE;Använd förinställning +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Du kan använda följande format:\n%f, %d1, %d2, %p1, %p2\n\nDe här format hänvisar till katalogerna och underkatalogerna till råbildens sökväg.\n\nTill exempel, om /home/tom/bilder/2010-09-02/dsc0012.nefhar öppnats, betyder formatsträngen följande:\n%f=dsc0012\n%d1=2010-09-02\n%d2=bilder\n%p1=/home/tom/bilder/2010-09-02,\n%p2=/home/tom/bilder\n%p3=/home/tom\n\nOm du vill spara den behandlade filen där originalet finns, skriver du:\n%p1/%f\n\nOm du vill spara den behandlade filen i en katalog som heter "Konverterade filer", belägen i originalets katalog, skriver du:\n%p1/Konverterade filer/%f\n\nOm du vill spara den behandlade filen i en katalog "/home/tom/Konverterade filer" där du behåller samma underkatalog med datum, skriver du:\n%p2/Konverterade filer/%d1/%f SAVEDLG_AUTOSUFFIX;Lägg automatiskt till en ändelse om filnamnet redan existerar SAVEDLG_FILEFORMAT;Filformat SAVEDLG_FORCEFORMATOPTS;Kräv att inställningar sparas @@ -1744,7 +1742,6 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !!!!!!!!!!!!!!!!!!!!!!!!! !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_LEFT_TAN;LT: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_CATMULLROM;Flexible @@ -2046,6 +2043,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) !QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +!QUEUE_LOCATION_TITLE;Output Location +!QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format !SAMPLEFORMAT_1;8-bit unsigned !SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtdata/languages/default b/rtdata/languages/default index 33edf905f..c63052363 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -8,10 +8,6 @@ ABOUT_TAB_LICENSE;License ABOUT_TAB_RELEASENOTES;Release Notes ABOUT_TAB_SPLASH;Splash ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -BATCHQUEUE_AUTOSTART;Auto-start -BATCHQUEUE_AUTOSTARTHINT;Start processing automatically when a new job arrives. -BATCHQUEUE_DESTFILENAME;Path and file name -BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s BATCH_PROCESSING;Batch Processing CURVEEDITOR_AXIS_IN;I: CURVEEDITOR_AXIS_LEFT_TAN;LT: @@ -877,8 +873,6 @@ MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen -MAIN_FRAME_BATCHQUEUE;Queue -MAIN_FRAME_BATCHQUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 MAIN_FRAME_EDITOR;Editor MAIN_FRAME_EDITOR_TOOLTIP;Editor.\nShortcut: Ctrl-F4 MAIN_FRAME_FILEBROWSER;File Browser @@ -886,6 +880,8 @@ MAIN_FRAME_FILEBROWSER_TOOLTIP;File browser.\nShortcut: Ctrl-F2 MAIN_FRAME_PLACES;Places MAIN_FRAME_PLACES_ADD;Add MAIN_FRAME_PLACES_DEL;Remove +MAIN_FRAME_QUEUE;Queue +MAIN_FRAME_QUEUE_TOOLTIP;Processing queue.\nShortcut: Ctrl-F3 MAIN_FRAME_RECENT;Recent Folders MAIN_MSG_ALREADYEXISTS;File already exists. MAIN_MSG_CANNOTLOAD;Cannot load image @@ -1106,7 +1102,6 @@ PREFERENCES_EDITORLAYOUT;Editor layout PREFERENCES_EXTERNALEDITOR;External Editor PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser -PREFERENCES_FILEFORMAT;File format PREFERENCES_FLATFIELDFOUND;Found PREFERENCES_FLATFIELDSDIR;Flat-fields directory PREFERENCES_FLATFIELDSHOTS;shots @@ -1145,11 +1140,6 @@ PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. PREFERENCES_MULTITAB;Multiple Editor Tabs Mode PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode PREFERENCES_NAVIGATIONFRAME;Navigation -PREFERENCES_OUTDIR;Output Directory -PREFERENCES_OUTDIRFOLDER;Save to folder -PREFERENCES_OUTDIRFOLDERHINT;Save images to the selected folder. -PREFERENCES_OUTDIRTEMPLATE;Use template -PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nThese formatting strings refer to the different parts of the photo's pathname, some attributes of the photo or an arbitrary sequence index in the batch job.\n\nFor example, if the photo being processed has the following pathname:\n/home/tom/photos/2010-10-31/dsc0042.nef\nthe meaning of the formatting strings are:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r will be replaced by the rank of the photo. If the photo is unranked, %r will be replaced by '0'. If the photo is in the trash bin, %r will be replaced by 'x'.\n\n%s1, %s2, etc. will be replaced by a sequence index which is padded to between 1 and 9 digits. The sequence index will start at one each time the queue processing is started and is incremented by one for each image processed.\n\nIf you want to save the output image where the original is, write:\n%p1/%f\n\nIf you want to save the output image in a directory named "converted" located in the directory of the opened image, write:\n%p1/converted/%f\n\nIf you want to save the output image in a directory named\n"/home/tom/photos/converted/2010-10-31", write:\n%p2/converted/%d1/%f PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files @@ -1197,9 +1187,9 @@ PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows PREFERENCES_SINGLETAB;Single Editor Tab Mode PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done +PREFERENCES_SND_QUEUEDONE;Queue processing done PREFERENCES_SND_THRESHOLDSECS;After seconds PREFERENCES_STARTUPIMDIR;Image Directory at Startup PREFERENCES_TAB_BROWSER;File Browser @@ -1261,6 +1251,15 @@ QINFO_HDR;HDR / %2 frame(s) QINFO_ISO;ISO QINFO_NOEXIF;Exif data not available. QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) +QUEUE_AUTOSTART;Auto-start +QUEUE_AUTOSTART_TOOLTIP;Start processing automatically when a new job arrives. +QUEUE_DESTFILENAME;Path and file name +QUEUE_FORMAT_TITLE;File Format +QUEUE_LOCATION_FOLDER;Save to folder +QUEUE_LOCATION_TEMPLATE;Use template +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Specify the output location based on the source photo's location, rank, trash status or position in the queue.\n\nUsing the following pathname as an example:\n/home/tom/photos/2010-10-31/photo1.raw\nthe meaning of the formatting strings follows:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = photo1\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%r will be replaced by the photo's rank. If the photo is unranked, '0' is used. If the photo is in the trash, 'x' is used.\n\n%s1, ..., %s9 will be replaced by the photo's initial position in the queue at the time the queue is started. The number specifies the padding, e.g. %s3 results in '001'.\n\nIf you want to save the output image alongside the source image, write:\n%p1/%f\n\nIf you want to save the output image in a folder named 'converted' located in the source photo's folder, write:\n%p1/converted/%f\n\nIf you want to save the output image in\n'/home/tom/photos/converted/2010-10-31', write:\n%p2/converted/%d1/%f +QUEUE_LOCATION_TITLE;Output Location +QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s SAMPLEFORMAT_0;Unknown data format SAMPLEFORMAT_1;8-bit unsigned SAMPLEFORMAT_2;16-bit unsigned diff --git a/rtgui/batchqueuepanel.cc b/rtgui/batchqueuepanel.cc index 55aea5f4f..b800907e9 100644 --- a/rtgui/batchqueuepanel.cc +++ b/rtgui/batchqueuepanel.cc @@ -50,33 +50,33 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) batchQueueButtonBox->set_name("BatchQueueButtons"); qStartStop = Gtk::manage (new Gtk::Switch()); - qStartStop->set_tooltip_markup (M("BATCHQUEUE_STARTSTOPHINT")); + qStartStop->set_tooltip_markup (M("QUEUE_STARTSTOP_TOOLTIP")); qStartStopConn = qStartStop->property_active().signal_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::startOrStopBatchProc)); - qAutoStart = Gtk::manage (new Gtk::CheckButton (M("BATCHQUEUE_AUTOSTART"))); - qAutoStart->set_tooltip_text (M("BATCHQUEUE_AUTOSTARTHINT")); + qAutoStart = Gtk::manage (new Gtk::CheckButton (M("QUEUE_AUTOSTART"))); + qAutoStart->set_tooltip_text (M("QUEUE_AUTOSTART_TOOLTIP")); qAutoStart->set_active (options.procQueueEnabled); queueShouldRun = false; batchQueueButtonBox->pack_start (*qStartStop, Gtk::PACK_SHRINK, 4); batchQueueButtonBox->pack_start (*qAutoStart, Gtk::PACK_SHRINK, 4); - Gtk::Frame *bbox = Gtk::manage(new Gtk::Frame(M("MAIN_FRAME_BATCHQUEUE"))); + Gtk::Frame *bbox = Gtk::manage(new Gtk::Frame(M("MAIN_FRAME_QUEUE"))); bbox->add(*batchQueueButtonBox); // Output directory selection - fdir = Gtk::manage (new Gtk::Frame (M("PREFERENCES_OUTDIR"))); + fdir = Gtk::manage (new Gtk::Frame (M("QUEUE_LOCATION_TITLE"))); Gtk::VBox* odvb = Gtk::manage (new Gtk::VBox ()); Gtk::HBox* hb2 = Gtk::manage (new Gtk::HBox ()); - useTemplate = Gtk::manage (new Gtk::RadioButton (M("PREFERENCES_OUTDIRTEMPLATE") + ":")); + useTemplate = Gtk::manage (new Gtk::RadioButton (M("QUEUE_LOCATION_TEMPLATE") + ":")); hb2->pack_start (*useTemplate, Gtk::PACK_SHRINK, 4); outdirTemplate = Gtk::manage (new Gtk::Entry ()); hb2->pack_start (*outdirTemplate); odvb->pack_start (*hb2, Gtk::PACK_SHRINK, 4); - outdirTemplate->set_tooltip_markup (M("PREFERENCES_OUTDIRTEMPLATEHINT")); - useTemplate->set_tooltip_markup (M("PREFERENCES_OUTDIRTEMPLATEHINT")); + outdirTemplate->set_tooltip_markup (M("QUEUE_LOCATION_TEMPLATE_TOOLTIP")); + useTemplate->set_tooltip_markup (M("QUEUE_LOCATION_TEMPLATE_TOOLTIP")); Gtk::HBox* hb3 = Gtk::manage (new Gtk::HBox ()); - useFolder = Gtk::manage (new Gtk::RadioButton (M("PREFERENCES_OUTDIRFOLDER") + ":")); + useFolder = Gtk::manage (new Gtk::RadioButton (M("QUEUE_LOCATION_FOLDER") + ":")); hb3->pack_start (*useFolder, Gtk::PACK_SHRINK, 4); #if 0 //defined(__APPLE__) || defined(__linux__) @@ -87,17 +87,15 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) outdirFolderButton->set_alignment(0.0, 0.0); hb3->pack_start (*outdirFolderButton); outdirFolderButton->signal_pressed().connect( sigc::mem_fun(*this, &BatchQueuePanel::pathFolderButtonPressed) ); - outdirFolderButton->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT")); outdirFolderButton->set_label(makeFolderLabel(options.savePathFolder)); Gtk::Image* folderImg = Gtk::manage (new RTImage ("folder-closed.png")); folderImg->show (); outdirFolderButton->set_image (*folderImg); outdirFolder = nullptr; #else - outdirFolder = Gtk::manage (new MyFileChooserButton (M("PREFERENCES_OUTDIRFOLDER"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER)); + outdirFolder = Gtk::manage (new MyFileChooserButton (M("QUEUE_LOCATION_FOLDER"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER)); hb3->pack_start (*outdirFolder); outdirFolder->signal_selection_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::pathFolderChanged)); - outdirFolder->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT")); if (Glib::file_test (options.savePathFolder, Glib::FILE_TEST_IS_DIR)) { outdirFolder->set_current_folder (options.savePathFolder); @@ -109,13 +107,12 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) #endif odvb->pack_start (*hb3, Gtk::PACK_SHRINK, 4); - useFolder->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT")); Gtk::RadioButton::Group g = useTemplate->get_group(); useFolder->set_group (g); fdir->add (*odvb); // Output file format selection - fformat = Gtk::manage (new Gtk::Frame (M("PREFERENCES_FILEFORMAT"))); + fformat = Gtk::manage (new Gtk::Frame (M("QUEUE_FORMAT_TITLE"))); saveFormatPanel = Gtk::manage (new SaveFormatPanel ()); setExpandAlignProperties(saveFormatPanel, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); fformat->add (*saveFormatPanel); @@ -210,18 +207,18 @@ void BatchQueuePanel::updateTab (int qsize, int forceOrientation) if(!qsize ) { grid->attach_next_to(*Gtk::manage (new RTImage ("gears.png")), Gtk::POS_TOP, 1, 1); - l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")) ); + l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_QUEUE")) ); } else if (qStartStop->get_active()) { grid->attach_next_to(*Gtk::manage (new RTImage ("gears-play.png")), Gtk::POS_TOP, 1, 1); - l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]")); + l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_QUEUE") + " [" + Glib::ustring::format( qsize ) + "]")); } else { grid->attach_next_to(*Gtk::manage (new RTImage ("gears-pause.png")), Gtk::POS_TOP, 1, 1); - l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )); + l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_QUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )); } l->set_angle (90); grid->attach_next_to(*l, Gtk::POS_TOP, 1, 1); - grid->set_tooltip_markup (M("MAIN_FRAME_BATCHQUEUE_TOOLTIP")); + grid->set_tooltip_markup (M("MAIN_FRAME_QUEUE_TOOLTIP")); grid->show_all (); if (nb) { @@ -230,16 +227,16 @@ void BatchQueuePanel::updateTab (int qsize, int forceOrientation) } else { if (!qsize ) { grid->attach_next_to(*Gtk::manage (new RTImage ("gears.png")), Gtk::POS_RIGHT, 1, 1); - grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )), Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_QUEUE") )), Gtk::POS_RIGHT, 1, 1); } else if (qStartStop->get_active()) { grid->attach_next_to(*Gtk::manage (new RTImage ("gears-play.png")), Gtk::POS_RIGHT, 1, 1); - grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_QUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); } else { grid->attach_next_to(*Gtk::manage (new RTImage ("gears-pause.png")), Gtk::POS_RIGHT, 1, 1); - grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_QUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); } - grid->set_tooltip_markup (M("MAIN_FRAME_BATCHQUEUE_TOOLTIP")); + grid->set_tooltip_markup (M("MAIN_FRAME_QUEUE_TOOLTIP")); grid->show_all (); if (nb) { @@ -362,7 +359,7 @@ bool BatchQueuePanel::canStartNext () void BatchQueuePanel::pathFolderButtonPressed () { - Gtk::FileChooserDialog fc (getToplevelWindow (this), M("PREFERENCES_OUTDIRFOLDER"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER ); + Gtk::FileChooserDialog fc (getToplevelWindow (this), M("QUEUE_LOCATION_FOLDER"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER ); fc.add_button( "_Cancel", Gtk::RESPONSE_CANCEL); // STOCKICON WAS THERE fc.add_button( "_OK", Gtk::RESPONSE_OK); // STOCKICON WAS THERE fc.set_filename(options.savePathFolder); diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index ba222ecb9..8463e86ce 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1461,7 +1461,7 @@ Gtk::Widget* Preferences::getSoundsPanel () // BatchQueueDone Gtk::HBox* pBatchQueueDone = Gtk::manage ( new Gtk::HBox() ); - Gtk::Label* lSndBatchQueueDone = Gtk::manage (new Gtk::Label (M("PREFERENCES_SND_BATCHQUEUEDONE") + Glib::ustring (":"), Gtk::ALIGN_START)); + Gtk::Label* lSndBatchQueueDone = Gtk::manage (new Gtk::Label (M("PREFERENCES_SND_QUEUEDONE") + Glib::ustring (":"), Gtk::ALIGN_START)); pBatchQueueDone->pack_start (*lSndBatchQueueDone, Gtk::PACK_SHRINK, 4); txtSndBatchQueueDone = Gtk::manage (new Gtk::Entry()); diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index b5773dc9e..0d9017fbd 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -356,7 +356,7 @@ RTWindow::RTWindow () bpanel = Gtk::manage ( new BatchQueuePanel (fpanel->fileCatalog) ); // decorate tab, the label is unimportant since its updated in batchqueuepanel anyway - Gtk::Label* lbq = Gtk::manage ( new Gtk::Label (M ("MAIN_FRAME_BATCHQUEUE")) ); + Gtk::Label* lbq = Gtk::manage ( new Gtk::Label (M ("MAIN_FRAME_QUEUE")) ); if (options.mainNBVertical) { lbq->set_angle (90); From 1b08ac44c4459e3a4cb0a84541cde05df92b6afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Wed, 3 Apr 2019 19:41:36 +0200 Subject: [PATCH 029/215] Fix potential bug in histogram matching (#5249) --- rtengine/histmatching.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rtengine/histmatching.cc b/rtengine/histmatching.cc index 79c40fba3..e48f2017a 100644 --- a/rtengine/histmatching.cc +++ b/rtengine/histmatching.cc @@ -69,7 +69,7 @@ CdfInfo getCdf(const IImage8 &img) sum += ret.cdf[i]; ret.cdf[i] = sum; } - + return ret; } @@ -101,7 +101,7 @@ int findMatch(int val, const std::vector &cdf, int j) void mappingToCurve(const std::vector &mapping, std::vector &curve) { curve.clear(); - + int idx = 15; for (; idx < int(mapping.size()); ++idx) { if (mapping[idx] >= idx) { @@ -160,7 +160,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) doit(start, idx, idx > step ? step : idx / 2, true); doit(idx, end, step, idx - step > step / 2 && std::abs(curve[curve.size()-2] - coord(idx)) > 0.01); } - + if (curve.size() > 2 && (1 - curve[curve.size()-2] <= coord(step) / 3)) { curve.pop_back(); curve.pop_back(); @@ -179,7 +179,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) return (x - xa) / (xb - xa) * (yb - ya) + ya; }; idx = -1; - for (size_t i = curve.size()-1; i > 0; i -= 2) { + for (ssize_t i = curve.size()-1; i > 0; i -= 2) { if (curve[i] <= 0.f) { idx = i+1; break; @@ -207,7 +207,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) } } } - + if (curve.size() < 4) { curve = { DCT_Linear }; // not enough points, fall back to linear } else { @@ -233,7 +233,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, std::vector &outCurve) { BENCHFUN - + if (settings->verbose) { std::cout << "performing histogram matching for " << getFileName() << " on the embedded thumbnail" << std::endl; } @@ -275,7 +275,7 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st neutral.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); neutral.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); neutral.icm.outputProfile = ColorManagementParams::NoICMString; - + std::unique_ptr source; { RawMetaDataLocation rml; @@ -307,7 +307,7 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st std::cout << "histogram matching: extracted embedded thumbnail" << std::endl; } } - + std::unique_ptr target; { RawMetaDataLocation rml; From 198fc8d8ddef85559b2685ad085b8a2d0d86a5da Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 8 Apr 2019 01:02:35 +0200 Subject: [PATCH 030/215] Added matrix for Canon PowerShot SX150 IS --- rtengine/camconst.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 5d1f63aa1..f4efe6fc9 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1224,6 +1224,7 @@ Camera constants: { // Quality C "make_model": "Canon PowerShot SX150 IS", + "dcraw_matrix": [ 13481, -4867, -1063, -2074, 9960, 2472, -170, 1474, 3894 ], // Adobe DNG Converter 11.1 ColorMatrix1 (there is only one matrix and illuminant, and it's for daylight) "raw_crop": [ 26, 10, 4364, 3254 ] // cut 2pix left and right }, @@ -1605,9 +1606,9 @@ Camera constants: "make_model" : "Nikon Z 6", "dcraw_matrix" : [8210, -2534, -683, -5355, 13338, 2212, -1143, 1929, 6464], // Adobe DNG Converter 11.1 Beta ColorMatrix2 "pdaf_pattern" : [0, 12], - "pdaf_offset" : 32 + "pdaf_offset" : 32 }, - + { // Quality B, 16Mp and 64Mp raw frames "make_model": "OLYMPUS E-M5MarkII", "dcraw_matrix": [ 9422,-3258,-711,-2655,10898,2015,-512,1354,5512 ], // DNG_v8.8 D65 From 56fff79e43eef5934c9a1ab23134eac77e4cce65 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 8 Apr 2019 13:08:21 +0200 Subject: [PATCH 031/215] Added Panasonic DC-S1 dual-illuminant DCP #5204 --- rtdata/dcpprofiles/Panasonic DC-S1.dcp | Bin 0 -> 1102950 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/Panasonic DC-S1.dcp diff --git a/rtdata/dcpprofiles/Panasonic DC-S1.dcp b/rtdata/dcpprofiles/Panasonic DC-S1.dcp new file mode 100644 index 0000000000000000000000000000000000000000..5b9fea8af2eca52a6ffb9f15359ff55ebf39ce90 GIT binary patch literal 1102950 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%0D_{c7WT?h%nU1&Jl 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≫Z8gqj6!o#G3Opc@%jNB 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 z zZA_D~zac7wtv^z@_8?*;#&vIAiwTg%R0)426os-e7jZbL1hSg=4$3S zn5k(m`Yy0W8oAIbcE*bH@0c6Ai`=B<3&gl+N8Iwv#o6XZL^*k4%kSj!-u@)szO{!N zcYob>HCOZQSwhR-Wucj)ntY$L2{|6GvZGX6BO~15yFYXLICb(GQ%oo#_q%(BdUTjI zsz2t8T%c9g&DG!n=jigXJaxUGCnWnf*Y^`tiw(UoY8^G01?2hP>xZ=`bXYU4u6ikO z04^QjeridQI5*G_m3GkMZeF?+qtaKpF3=#I9p47QrGgQwS zj6H{QG4Nqq+-k>nu!J1@7j^Ld>M-~WA)hw*lpI69h)I>`$2feVyw^7gcVB0~ve6~! zXq#mEucpKH(lDipX$qz<``eE(Vph5odC&nPJ~HoSf0_Q|BVreI$<5fcRykJF7Msaw z3~kgv{NrJbkAwO7_VN?`@@(i+m4n+h)5H<21FQnsGr!#}vNk%R&2!?S;*r=wPb3re z7!4QIQ~jS>Aaxb-v1L8gVZ@FSKT%IHGC)-xbirKkT-gp&=f#^~7&Sp#8ctA09k4_L z1A4ziWvNHY9q{YldE{M&>e|Jb8Q0`MhQ_H)J=}5m6wk1uty+4Xew&YV@TzlHq^$JD z=o{>%=dDqs-2)MRjCfu5YyXjzbjHdyMXw%jXAvl!f^c%wbEN1(W&)d z`q|LuP#D7SFnw6|M zCmqWz<|v9?3L0!n{tFikdvRFmvcLi1U$fEEx{>DH7WNp8*<-9XRic<#d`FXm+&O!c z{^zVg%c9@w_$h4Wzzs1-Uxy@RhGRvzST|@6Qa`kL<~PI$-_#5JYfa)+5&dJ{`&P zZ;*#!UCzjFenk_LrKeo#eEG`9IP_YS4QXrIVI%pI?t{7LaIN_0Y2Y}Gp~53Nm^iwhRvx-G#R6BuCqZsXYQo_ z1Sxj&tuT%rL0Q>{m7vE~_<5CnYpWZHPQ>5K+``RLoIgBbM44H;vo9~@F5y>CP= zcnou;UoMvuk9p%Z^(j}LRK`TNf$02=-;1u5v8*5f?}<^nb+{#W@M4|$MrgCP%U!2M zptL9V@4pJ#_~?{{Q{PLaf?Z>AxCv*&y)C6m z|4c&8bLJiQHI#O^rr=GBzw6xMR}J}fmIL1X$Y%a$u%xobDCZ0)VrOeMN7>-5EBAme z4D^}yR@gL=Ss1NbDXsjh@a-P?joW4`@@QME%^;59aa(Cb9JNv#YOJ2u7fq*IV?;jt zr5Cnh(mHBVcqh*|9wSUzcEy-5YA6zlg#D;?Sh-7!vTKV(6E8y~@UHMWu~tl=&};8( z9lm(!#rS%b$oa&*$?ch9XR$p#xaGs8ilM008JLzs55RHFm2Iu)Yg&?z)Nebal@t4* z#TciyiOT2JBAs=P^m&kTnUu3tZR_I8sth?b4)mew#ZzAPt8-nq}i+)WecCt~m z2z>8PyfmYpJe(ePqgwpSGr20=c8SA^BiTT$+0w6BBQd&v7V}|kq_xY&!m)KGDx@sY zoH;WIZQrC*e;X-Z>YIX2um1MSJ(#&fGi7WH`HCb0h{m)~CbK?vcLxkYUj8 zOvm|Cd5S)55;AQvV0h-BGWeeI7|D<XuwA}0eY-&Pc^4X42SD6;@k>Wc@rCn2pV@2grZ z#Y|liJr?N8l-6D};;v`yt4u6h(Oz7#ibrNx7A_jL6(2Xopzb4P?mXxqp3zt5YBD)a z_dAI1T_X|Do|q)HqJLy^4#-<*liEZSq=w@_VJ_;wtuF2z3#A`8=gscF6ul;t`&N29 z>Ru}YTZd88sfDT89VKuob;mK}gSp>SZifs;`CInS0l$?1!x+T%&WCOEBGFPi3^^m{ z_ZZq-ZB;lDU3kxXZW*MmIW!6b*c0lbf0?xMD=^fzMCzsEoNb z*;(+sGf*UVn1sbr1~Wv)NL#+8VRX~KeIbs1*reGWAB!7t%u49hUT?fG7FWaB2ac|y z1Utnekbgd9!)E2=%4F=il8#rceks_NhIi)dXZkf1HgT!=5ubr-z1xeaD<;EpLk7(2 zbrnlpCy;}bfjVi{BCauW(6}RZjc^txx{X5ueT0T=@DK*$$Kst?7H)R-5>wkGB8i?M zBcAsaUkXO!s}1?6i=9QIGYQOarw8~+bK!i4-r~d@N>8;Eb%zc|?bgg+tMx~*7#t7H zX>#^n9#LZ648xE~ibVMldl&B-|7$_%XeZDp_5Y5c7I#*qddF4auC6N?$Gh&4^_t=BdiikRB$ z11~jJnw*Wtw+88GI{CD6Ju?M;lG1T;dmHhS{&AZRq=WQFv4nZZU*4tDOKY%bG9e3^ z?io<)Wr}@UcxH!k=l*djeH*gizBL2uix-N@2Qo3^cLpM}SBuT||BtJy42yE@x+*FL z2DXBVi2-7P!OXo7yE`!GQjqSNq9knW?#93Z=6ME1#csv!#O^@(*74WJ`@`#S;gMnX z+|R!EUVH7ewB#Mp6a4sYss4KUU?0)q`mw#zmz`>CBR9CnZ@+ZmnhKpa>hLjsuQVho z0j}-2M^k;1bh>IB@(buQVxA>cXYK0D`FnlSMCtsiDEu&C{gdw`xnGLJ+1zC0yR?z| zRg6S6fBIQGd#7LeBm&JFq+;e%H|eNtB%)Zi2l`i#9o!-@>pS(D>V(PrRFN1{ojMi4 zIr8G$QP@O0{6hK-dF9t=6oscC;`ce(wOuTXnBR6^T`Vu)bA7xo^LG4H@$;SvR>9@t zTuF6QVcOIO?@Lr@Qu9Fmki-7)Kchnb+QE8P+c3Poqr#r*^`*8Zi5NRZjg;S`q;F@F zp~z5UQ2hwv$;s$`n7KV`o}@XQjLxsraD2W=+WIaTXIg1+`oux$XHqhncreZ!f9ppI0pM_OrHc<}JkyiN*--R63k% zAlV&_L_TLa77KFp(`QAZ->npsE$S;Rc^iqp&Z&rZE0G3Hje_r&Gk(!lZBX?oDbUz2Y+wFi}mcX{uz) zTCd?kHRn@W=_2PUBlFc5Q?NwJCjN2oof_3#cS#ReYmexl!JI$&(iirZD}Cu9UV2V) zVPBQFM}twTi={btbg-|i#nra=r1MX;m`r}4hr>O|kf%Yli&`wYa7UWXTIuCL9cm4` zCe5m*#-UTxYiuJ)C6@6R;E{-T4L3=XFT~)vF?aDUBujzz(KvP>33c5arC$3ZQQ3?B zO`0eAMSCLXo16l#H8J{4Un4MS2mOK@w~;1QkAgWdmOtM2rMjo0IP~St+I&x0wKE#s z0=WCH&6m47Q%7`aDtde@lRMo=K*JZTodz^9w5R9b%e$OqRBK?^Kbbod-0^99W|X)r zso*}le4MZ3Us7y&>y7Y6YAncKmj9@$4{U0yk(xS2-|yipwBq-pyVQ{yrp2STml|Ws zs0Bg2(uSPToN?Dm<^y!7dY+mH=TKRI~~@*uKsQ5&UA7Ut7-AI<9#VHQ-if$jP0Jg(zQr6x?QGLr~al?g?gxUhmvb; zc0sxr9go5@I{1w{B-J6`cs_M&C-zt=1ssXORbuAm?s3w#xy%D=xi9wHUOI9j0?(B6 zF^u@AkD3yJBgM&RzMOjX*CY5|c((JWO9_u6F@!t3wRaoI>f=#xt{@zP@#wraE?cS5di=KhY7KngXQ{>`6EFR%qq8usD|^YN4W$luW1-;t7s*bN z*%mbh?pLE^k5;l`4z77iO)Z!B}}zNd(Y_+Ox!3&-@9eS1I4GailyyG#tm+Lv3G? zEL&bCht`U<+4QAy^tf=0I?sJ=O|~3-FalczwHd!&k;5uSp)a+Yrl%Mg_9aB4Ml5+d zpW7RLK8=G{bSl~&8f37apoY7W9?Fe84Vj!-&0LUzx-TXedXS%cBPj{9>n&8Y+o{4y zp8NmLM|uS^#s$?vw(4zA$M9Kcr6n$@ zFqm{wBY}F-;`?(Sg-whBeq++^5{>1;4d41tE& ztkF{ogU^5v1e24~(XxTzvsWlgEK@PVx0b=H*kLjkmc`*K&$G{(v4*`NYVPM!yErt=Aa|rEp(l6S2YDOJ)@aZohI$b%+{Mog zDopY(ALli5zbU#b@y4Wa%zdx24Nje-u$A+dFjZo~ZqwO#E^83{c1%GVn^>$e)xzeF zRl%UyDzqG_MdQ&83KVPN@i0(}*Rhofem|pM?Q$)ujDBgTKY+0+;vPZO%ZA%~V)6c` z7WFDihRwyX_)C01F=mgUdw2}>^8c$P))^*kj)sQ27;SeiHdruc8e1h|n@yTwlRg3i z=h2t^g4!^pegrhcVV-&i8Lo{F!yV2$Ms#vDI3$O_P)1#a#bXRsU4r4hko4^3=u zh&&$&htd>$f7{of{v3-HCsQ!Eo0DNH&s!VzEK%K6hW&0@a!-gsWd(Bzb!ZxJ%5d*wH2E+(Y};|jusW7LFY!7IT)55PeJB!p8Rz{6RvEfBr-u~h%i}vN zG~B!uhKck`t(Bi@SlliQf4R3?&suE=9}xnR0P3#v4lqkExfH^Bl*mh z#9;C(^+{rpyr=V+#SaiFF?Lfx$U26e>T~$%%=Egly^}k_TAZKgf`}JP6bKa;6hG*--0c0R4`W(CD$!;7&Yk zt{M50quLleLIYq-K1Oy`V?%%LJA5F9fA{HCIhy}=#9QK@IosvJ>me|ElZ>?%OJwJE z;aG5#T;e|~MY@B;bCUDlw^;sy5S(p8Z{jaO@+x|(nJuG_a8N&a&C@{Y zmn1>{)=WRKH9EX`jPL@X)^Pwmc2_T58})}H)_z&ny3XHWjr5(!PHCs$32 zfE6_~DomazyRVNzw;!DE@7gXerDn;lrNe!PL<>Oqhrm?WQ?}z3oyazWs8Fmefz~f_TJn34|Fgh$0gO4*; z|Jp5&8pQhdrkYw7vGUZ{T9}on@ze!!9`o^u-)f{kHIrBJF6iBez4pp#a-xqK!&q+| zcKjp#=H1(rz4=C?A5yYQJe+w~I$KtdjZNZU$Inr0uO|D-%eUpf}efk-~7?X7F zRNl7yBL49HT4P-P9*lV8rM&4JjH~n1@V73@e_bhv8tv@6)u;43&BF0x9rL!;bk0h2 zxO-5IKZ}-19kY{w3-k!TbwJ9PmxRgB)Y#hlytGD@$Q^F-RDV5_<`1I}Lr)F5-1#l( zt+eRDelTK#v7Gyr`Du{`-AC1vpHn026Mt`2>*liiM-?pjEOffkMy}=-kL@X1Y>wdk z+Bz2FKWK5(vzz>i*yFevI;81sJ<*1TOzhRwwGVqg&~SulvRTr z48BoFren9SY-%+-D4O zmM!Op;^x34^nc_bSK1Yd(yjC|xIR-3DGq~zvy!&ggXLHIB2fG#3CH&&$o_nG_7)~# z!muufZ(bMD-I?@oDYcm6)aY-5H$mlfwVSUH7$(1k4x-)s`O|E0sw;zkCat6G3L zdT?@qh@Y;)poZn~y1b4{^^eBVvm{H69ryO?A6th*NsRQ^jo*6rsO_D$fQ2%YCHMfrdU*bqs4Pwf4Pn#8eXnC3^+Gh4hOZ|xkp+1*K~P)HTs(jPsF}c zv*a09!clyH9`3awz}dSg@`r}30XX+x z?T{fSu8GCeAoAZvu9s`D@AykxY^lCTexlUk#U3p_RH|g?N$h-3AbABB-^evDXwkE~ z8qHf~iptYe*i~5mJXfk;SxT87i46-GL#Ollr^CZhm2qzInI$#kd9K5IGx`&CM+YUt+(?7K=;c!NMoDlXz7f-Xk2H3FrTq6sB#u4RaaVSvJoj$|3dyyovddWx zVC{YC2XXO}q!S_fg`f#S~s*)d`V;^Kkjd9mF`N6>$-mBcPiV2gS z^ofH<1o@on)p8zj2(JPie)nD^Z*|qeioKQg!+v?{;6%J6|JlT9t(H8WQS^&k`Z?xy#F%ib`a8K){>*mcwerZCe0nm8P|XJ;A(ol|J9)@aisj5 zMN*qVS}a~jye@33G=u-0eno@2ck-n{_WYW&w&Kuhl65OJvWO|As^3aCJ}034e%9*S zs>o$w@wmu3q~Y+!@`2wm=)`<%a8@Up2UHB%E0b|$8=r>*p80(WYYHTctJh!o6c zt}n5VO=6Z5R7MUUdw9dW6sgK?@`x2$cr{-usoCp?W@zy#@vzj}h%sl)^sVMqX@7ea z+ID4)*Y~G%bW?x@Obp)ENyInDc5=bHXw;9UUf;dmayILhX_pg`_j|ZJ zoO98J&4}aWOq1vKjzy6pXUdsVXvN#lh)y&CNm*?tR$MMV*sp$(qU!e{uaAyvk^X7eStzX=;BqlhzQ;*j7DNS5ciYm~cyjv=Nu`vU_mvzdAqrX;<@u z;AW<*bdnN|U;&QROIS0Jnmr zCx!&nX-9pA$LpjPpmy9c)>pUAOO95Id7UIQ@cJ%2ZyHDZjhX|s>&i{ZcYAv>38zcV zW&54+@Ow|~$56ZHE+Pi$N*q9Kv12 ztj)@y?|3fOY4Gjie&tWz^I6Qj&#_0jf%l+e74{${>y(*%zE(0nBz9b)?8-g7{8Y~6 zUj{1&m}udCUyBE(4;A-oYH(iYu)I>;{BF)_d|9U>&ttlNH}C!GHHbMUeAT}>M=V;G zh?#Q+NK@5u*i3G`^O+Q>b-Ot9nnhlmf40<@yiMgz-gkFzNTs9Wu(m6AqFvug+b_rC zoh$jbFHT8jb}DSCLh8<*s^cibT$dqEnDL~v49k= zDxQ}}UzQ8dvu3}(NQb@Man%Vx4}|e zdIVzk6VJEUub)F5X(c&heTru)uFAw?SPxHVxLnzuHHL<@LQ(c}WftcNo*5bpSyfZi zV2^vB_}9i#98#@A)~eIW>-|-@@s97MYpC+EG66ZxiI@`ECs(10gN`+AxDpdH6o()Vq@*w*3%`QaNiNKQo#2{@oWE^tqVC-GuWP>aBySBRMUT zt2>M%_q>ZW{}ew!XiL`4UD&r?Z6}9)p-=kl@^Q8~Y9yy-Mx%`9dBEnWlHarl+{)pe zh5vqi2=iO!ea^v`RaXuPr%pU)+%vx4QEsi4g5n^?*0H5%KRX#Nn>CnP&q2(8pNMJ9 zy$5Sg6z0%jA#o3r`fkFXIiaz$7IB6^VZpgd@djcb9b(14Cu+q0CO6(OL8$rqI_3ve zMi4!lRPbWWE&5Ip`GxW5WzTz^T3#)f^SY216n?LwNNpPnE8mI<;6XcQ;Q|ddqvV$M{q)g&S7i(BL9Dk|97~TaP zkCnpcD80MGSVM2{l=tfs;7!c>|L13qYW3tDQPEhxl$@nEv*{flfwSzd?>0E7zuhes zV;BpK*C=IpCt_WK_{BIA(P}Ssh;41!DUU4J?=+wis56`J8tdvA@eo-z0Jds_=mMA=`C_ShynrhHb=7H*XVWJ>zk} zED@r3qbR%@iw1M~Ubr*+ePS#%KRC0nND)g{M#Far_f?xs5raA3Piad}&*iN|loW{; zjP0NKkGK)b*>@*Cdkr&{eJ4d@?n2g}ms6BR3uDoY^OOw}J;lPG@$?y^F6+p8h-j{Y ze2Dk`C&dNpp;NK#IF zKo5$c?CJhkir0J{Ct?(%zWa+m!AbbVJUpY;Jn?~fbY&AQsxR3f=CDpHB@XVibFX-7 zL*BtYEy}JO6K{s9;8~Zmr=1ssb)R@FNzkF$kz2yRnqkZb9oEdcFD_J$#UA29?lJeo z0q{Ct(2t`Qxf~CI=8JKUqcPQmyIs1sqU=ZlIGH* zvh4-gx=sRplgjgQqw~7RSH?%<0s9p5w`tN}_NwpqQCG05L0>H}2BV&<@$BIm<)uZO z)sN%Mz`LK=QHeYK>oxfPB1K%{-r=+7tV5DFi~gLMJnKsAbfzStIQPDuz&zabs>sSo zz=wNU{8?Kfh8~PZDWAP{7yby7C9$Z@`r%o=F`BAlU_xBRcUUcyJ|kf}0H)hbdLzvpEFbjO~jrl~JoG z6vw$&)nG|gtT_~pVVkHmkzETldCvdy#hZTH5ufd1akR=D`jsq0PNR4newB*;lS^Q= zJpmP|V^eW_M~8lQIcw_3y>g354!>(_ac?%y{LC>96>~LkB4$$9>;b+ESHUctIk0Cn z!)HxAVn&zeeOXUb$|r53agFD>K}43cd3iW2Ik$?6DALdT9Sw7GU=HWxD9 z@=R$Xk3%|4MxWM5F&$QnaWg=0}e@;tZ)kbNu^y?2to z`kT6&`e3}~{~{K zc;gu4kqg&v82u(Tx!~)baHz>asxWRI_F6@w*H-F+o;!y<4>{*eq<(K^eTSB;XIgcc zgG^^fhYv1l{5;Ih%X^B$m;uChPo$vPG&=_`Kk~L%haVr6i^(tIQ9O#6KyY`%M=1_& zr=!Z{=i6~3=FeyjF`VH@*nxkT|?C;op^1hZ}KwSI$k;JDZ{3 zt5CFHe(*ot3Ga{6|An>wm*stNF)a}GwTX}U48`aJvk~^+{!8V_$hqQ&FVmB;e2Y7l zn#{uZ>b$3tXJfE8eW?n_3o4C=K;heP^7v9keGN_(|g1z-gOYTt`FC#aX-jkfmE?qX$FmQD&iq}Sz zi}UPN#JC)zu=t7^n=9=hZ!ioG*^g|Yu3h@FNHpZWyUTY&ir@pP6-!_N{I^* zPkSuhc2jBK+RIet++eY9ijBH={aRTLhJgV zXki-0U6C;RFz3tU@n*T6M$?s{@Qt8`|A#C1J0}WO+!2^?_7;l9#zJn#&*;M&ymcfl z#QgI#=rF*#9}*9F5+iMpm> z3`2M3;g1s!OFOrR;5X0k`d|}jV}1n8SSNSC;HIO{iJ*Xd{&(d+ekSWVcGuXv(9XF9JfaQF0VJYk*R-_I7d zH@%Q;mV}>eha)V>1H*IKUlh5)t{M5Fe)QdApE`f73tG2I!E5THO&;h1Pjaq4uE>JR zPiO2=^Svi+fKuUt&eZ#wJ#jBe+qhwqp1KgjCHR+lpc6HvtJOJ&t+q2!M85R6%f;C6 zF%YIJ)3Bz=MNE7Ujw+1vt*!@gh&!#SU*zIuFNJDH9QO8LJ{hwVKkbOG58%CdbUV7d z*U)#FdY)m?=*Jq{f>=|Ha2x!}BPP*Xi-GsQ+5hJ^v9`24US|~IB?rfZVJdOs?MAXx zH!TF+TWFA;)<*h~$lj1SIrGUZ#ixm!r?6gkv8yQp`FuW~q(wx7KoLA!3;!d;DAsQj z-Hp{e1Dxx%yCj;|=4Z^{xjS&Zx!-x@fn@Vrz8NJ0N;+IeIhQ)Y|C*+T4nkQz0H8*4R>tZnSz}utMGA;JGM_qC0}+In*R1c`g{5pU(YAW z-y2!fD;SV<4vo(V-;R6(MH*T+djZ=K;W)tj?0NY|O5xBOYV?36wC>TqNRdrZeFq7LI7E%BZ$ogyZ^X3c4(!|^W5MZbZp(>CdFbH{1n z6vR0-`;M9)%S7~x0Q6;?y~ei0pc@+Imw)1TNpl0T~@KEY^ zdSc^`WTZ4FN8ip9_gAOj)`ewQlH!R%^0gYY*^XgG-Y6~R{)KHWf*Si`I&;j3X=hMO z-}-($pHi&}YbT9AO=cj$$|Uf~z< z*iJ22pRDeL7aNIN@U^OzTom_CX^8_+n<&mgIA}DOMsA5&_8R3Ger-FQXKuoie{s&J zQa;YP;r?>>$zk}zIIFU*O0oT@2TL4dy0M$|rE&!7b56ao`eFTx+B$q@Zd&jz%YO25 zY8A5w$=JC|sTi(>Yk`(pb?wDBa+Mo(B_>>5C2~8*K%%GT)1qu~J|YYuEtsFjJQrz> zf#kg=qUp2xcy`GLwHW7J+=UIi?uCo2F(y73hMaUyTxOiR<@(^sbx+J>FDCf@jyrkb z$s*o^!xv$1b1xj>dryA15ygSjjJijSsh}LxyzGlyzd49;EJV>SKdgC4tTnBMtYT}LG(;B0Ry}agm ze(*3?Y`Uw3j&Z*Av5q)R%xq;QYp)40%1S#~mw9p?k@oCgoU^NzkMo##+{$rf`3E`2*u|gOVMaHlZ)eV> zPY`n(`AJz(uYw@%+4I3DF}h9+qRG#n{(Fh|PL9^`)`^&X`J7lZJP?ysB;r_SW6bE} zi`^~g6>_i@e)RChZpOKFFC}+AJ@JciZdW)J`?q_dtTY+u6-|EtPk6CTUh12HRb`&= z7)G7jS*wtlN)0q>p*RlMh0~R1qBNZMU`Z}!r23-({SE?2Qt%CDB|Z*S}%ecoxICB=b8z1O{_2<51Fb#oC zI}KXCQAAQOmdKYIVXMi-oAQGE#92g;>?eA%Gx?| zrMd4D9@Sd(`4A1k*`?*~1ks@j^%E=;(eCpBkz^i-5o=kC&ti?;!WWxc)5|HI-bOCo z|MdS8WE*Un=!tX0EkoCjz{*b^)CXm+S9cbYtUa;jAa|CDXP=%;Z-^Q60e4%3$adbC z_k%kr57#5-w=b^f==(4t8xwNCxGqeA#6wQf6j2 zrU&xw8{A%cQl!OL;+&<|a`Z!4dtCP;kEOMgZ_3{x@&bAI)ohivgH>=WYL$r4Wh=!O?k;`aL>_*}JL1ARAKbDc2YrY!rki;o_Z0mXbgdx8 zdEiS3F%(|~?vL_7Y;)?__MJivO78R(rJzY&ay%LTJnneT-I|Ke2dFJTZN_BFC8)mC z7YVE8VB`G_aOvldN#<$Doxcm&HAA@DLBH>N`?x0=g^HWf(CPPfbkF0=F_rn*Vj*m} z$55|U8ovFRfT#YvuefiuZA(RHKe7j$MxXI3iK6CX-b?I5hb=#$+(QgFbT#MWe$%hr zo7ow^qTFHIHwBfV2VhkX54?TCuV+)M^0EiEWTbLeFp5}?7j|3GAEX+0t9tw5`!Q;Q zg)PR6+WxR&t}uGH3g?YNh<#A+UAZ1L&PL($l{DNqupGx4CSYw2YY)z5Y@4Vtu{*sy z?)1YI&hZX8|EGENMg&#RaxaR#JTb{Be6II!<`J?vM>&^qe$F%FXJ1G0j=AM^JacPy z?SFB${ae0%zA`UN-bMY!i=T)$X4lY8wDymR*7MqqJyrPu`p-;kLjO? zS<5{{y@~;tawZYk>voC>_q|XsgShd=o1z)da93ii{To%n^fEVmCboHMZWF9|;RgE| zDadYRgKUF4M%3V5!^J_o8$7V$2)_>D4q{C&w4A|SJD&an4Sg}`%N*EO~DRc2LA{tTjR_MYU)bB+CM!uo1LFZYB4Oio}4|~Iv)>y%s`As@= z`}XT%Q7gXJdGu1(O%qlRv?!^Uf+BgBau@T)?cJPx+WoON@VS1Gs6{Q8Cja`B7XQ8oh3&7H65WCN?a{e_)|TlW97bw5zWizK(MZa&@+hys0d!PJPH3iLhBJM6>kS zD5e(Eq+JWeh_PNc6h}?G?4zRgZ+Cob$sREGp~znA2I*=tMt(Npyu^(>ofI6s-Wc7Y ziE;F%UPKLRoc!*N{_j$e5!nwzPIzL=(mCksI|1qnzSz?v4Hc?V=a1f_tMv3x$l{(& z^-%cGSLlX)IL@kKaAaIME~#hYLRIoNd!|D-U>H7D)}Zw+`j@3QhJGsNnS3rRvLw-h zchTJasaV%$q?pco@Hw@t$DiAye3GZZkHgfUQw&l(Voo(D{;;-cR^ESoO11xqbGz&? zIks;EHh(2w|KS@+vpp1_ZTLLcESB~jcZQZl|5gE;zK0Q@HR8?mL5h<#Oha7 z2oWt#dqTI08vf=h#N7GrJoC(ZHS)xPp>C+e-nO3QUEv8gcU!VWyiWT(42{B)S{Y?$9SXjD7?)0LL}{xKc44k9rJ2n{Ab*7{> z#VvRv<(r3LLU(d10v1W_9z?=OOFrlPev(VCMD8n*i`%ZEgv3PLny1C*sMY!>MmiXX z9Tm5(te-&+LLkq59qNR)O>AVM)rA*icL*rcsviP5C*~pL#-^-)&L~{PchW zdu{jd5OM3a8?4=v@o?NC@pz*v9+{`0WWgSB@sA6>+)sh}+iCGdLoX`s`puc}On8R4 z!ODqRc9~^jrp5zLtEb^*O%qhL_QCnxX*hej5zg7uvsjsqX&EgrD>)R8x2D5V)f)R( z#geC%POma^7&y;Adn_G`XV$>0uNn-uO2>u=w}nqH@-(dJ{q4O{Xm9g=`$N6Eu0utg zFZ}+%6zJ;TP#)y0YB_V@;hz@Dm$f(_T%$$B=r#Z1T6A;>PK$555`!eUG; zhS2M$+m_d2JLg5>Z8}=Dxhd}OuIV_DXZvf8c+5UGaSU*9tzOUqHUkFg_zML#*}v$@{IyGrgwZXWqMZ z+|x?oY|?tYqEqE)7&lMEjvyPQ!_r`EV~t_`MWsCBK$4wC-9NN)eKAXN{t|?;KwO|ZtOYf=|i-hB?7$iGq z;M(uy;-G<=1Y3((H;wwD@G$Yi8)s_NyvbBtA4@FgFF7A4)+?&^ za7BgvobMjkt|;B+jKWyz2A6JCY&|>!@$CCnx7wrdc67#dYIdDWI;gOk=z?y<;oA)= zRD2!ahN(-_aKZJvVl8VA*CFXBtK3o9`}ItGevuCQkD>Wd% z$#-h*jq4yv>S^c&kOZ&VACyn{|L?xZdSIy4zc{yiBx09UHKlE(Pz<=8h|I7g#mEDR^ za;HO|WFY<9w|wIp@u=~Per>;7DC1oDOnYSDg-aFD;}`cSW7Co56D+nCYA}~MI+p*&ZwVgkvwYnzc^1Kru+YS1wAJ(RaiER#Jv}4 ztn)Beeu)jkSmGP6C!{F{jEzFaI1SE58i`he$o1{U=VE9pF^Jgq&;l*}OS+1n%j9(` zh&jvM#T(8TYxDEyk=#+3JH#THvxd=QOhsaC?nr*%-5Ff0Y+8-;lvJMQPW_bch`Ej8 zp2GCTPKr;A)iCNsn_fxF|B>R#`hcE>g%0{lwyx+Nl8Wu#TlJ~#uK1wj+@#ZIeI~K! zPsV9zHOgFC!RJD8HjUaY{NnHamZF>f+BOIi9 zbt7Q&D+61-t4r>AvCvn^#OJW4`o516aC~J3Y970+tkahJYlZ2U+*T(_h|P~!mWGv| z=ZaGk)HuiaV~rj|Md+#oj3>wJRB~6*kT}0R`?YDsntyR#aJW2=u~F&*#T<)Be0fZs z%oHnSA~j$aHm7Fhkd?~jK2gLfG-#Ozk0YM%u1!TZvj_TtgWNED$bUY17E*?v z8!p%5jIVUKv~HO@uH8t(q-TMW=`b&7=cRM4BU!q?#TTD#GcYhPU7G%PHtdgNVB5Jw zY21h~v^UPg$vy+6y-T7ouR$g%BT-+WBn~_BGGMg+v+{=`0af0oGe<2G565v|lJl2d z{wu`Hjq&7xrQmowZ?P>q4hvYMZ#e=axq0<2=DUL$RbCdD`T| zBqb`97pMW7$$84W?Yoth9#PbACH{QgQk>#GpD*VHB|XN74D#ih@EQ4(>?x-3K5Xx! z!}w!9qS8q2xO}JX_uT2CKlLcyW^kWQH9)i?uKtI3zVXz0q9%9E=IE()+%I0atARH@ zx{xnqK1y-AiU%ff=dsqGU-|cA-JpF=FVuxg^!Hx4;`o77Jo9^_FP-g%kI|fsT6dNT za@?@bF%8;c7is!NckVlx-Y1=;=Z zdP&EgH?Kz~Rt%4k8V`xYEE;6o1O`R!PG}tmz6n13~{fB&!MjFwV{oq*E z7|EY>BDI+sCs<=dtc@27mh<;HN}So*OVnduA2FW&^^88^7j>$~k)NroU!dHP=?ypf zt!$oWt?V+(1J%gC>T2(ichW#TRq`bwU54uIJ~Ph0xeM%cOka)t%e5ln7(1ItI~KT6 zM>!3ywqv9^{_fc7N^et*R%#vUiS?~A5Lb1jbfN<1HRm&^m9$NA9_k0bv6;xu+9|~o z^Z&FW6J}+}lHdI>bI&n&k+^v@0rw7YFLnF3e{p{JKYXMlXSKrIIuc7>a;9kH zrVQT98B<#gp4ePdPT=eQOyTVH?nu#`Gwzn;M4sQH5tkY!BDt{+i$eIi_F6a+&#!Nr zC5D|Q_ zs&Pd5Bi92eV)&yv*eQE`c0(RD8Dc|>^KKWr;^08)Q%U3X56`=zCGoda!yoIvpLT^M zd$(_vouoZlH#9tv4&!?>q{2)OOq@f{&8umW$ptTLx6fq$TqUKioQXEaGSSd&vs5yb zUSL({BE}?Hy4xZI(tCbC{fGYL;V|gzGGS%3Us-f83>z=7f0V<-3(i3jh_&9CI!{df z8-`uHufJq05fN`9vDTaTMvKG3`CU9_v+fdo|Ne`!aX|U=d@dwd(Ybph!d|P@ZZcq}G7(3uVQ@Q5ca)ZGqOVB8`1_L@Z}Ej&nuD-#V0XZW3~Ht*~bwG=cNN+y+~P z?5aY)nbhy?wpmnN5RFFlIEOm5Lc9zKMW>@l2t1H1who`oxneTyUiyhj-MqOE&7JG& z=0f|;14ZYkE0ua%+3mC&u4Ge_zgvW|(jZq<&LCgtyPe{ju`86EgCuR}ukU}$1y2XD zk1M;Ox0~S#i{=?v+NQPi(9|7?tR*5drb|P6cp`sMCf?UikwTn&u)O|UEPt|E@|xg> z)V_1EwC_S`jYR;?T+76Sp|;Yg(m)I>%)m^Ozls&fK`8A;&&T));>m*`bmsiALA^!7 zVoL~2gP7|q4hl_P1p261NA-Rs&e_MKDr?#u=YIc-^Tgxj;~Y^qLs7FgHC0MDr=iE| z*`r~o(outeoj;Tk_dEJ5Bp0+=u$Xv52OsV-Tx_{Qm=j03JCyZX{vHu}PlJr7Jlm&^ zh;6*D^Et;^*!-yIc$K?&O6u;8+9#?k3&F})^cvf6qF>tjD?wz8(UwFPUr?v|gZArsAliJFIyPR>E z{@tI~UC#Ht;*9w&8E91XkbXG3^!$=3YvP5#hMOT)xCrRZ^LHtSI0{0laU zHn~CgYD#U--fx9*NjNH=CI2L|9ukt`u#NR@_kz#=;{2^{`Fk*-%>cz}!CghpyX%xD zE7zO|LpE_y=dP8-5XQM^3H3D|s6_N}9WJiY;@#y<;tFfGHtzHy%*q!N$=TmY4Dy=O zY2jg;0Gs`Z_}%!tFjR}eV{h&@UM~`*dxG(~Q8L23b452JKeRheKIhKmVs4-Z_2cP} zusK8Ytm%fMEXJF7RkG2erm|2qBzd^?MGw^%267n%L(qrD1vN3S!E&>9E^J zjAC)HvM_!+!s9d0yhUQZ;_h@@Z<`7IueZzK0T$LzV)=3co#nho!`z7b3FZ^NlZbmd|L!1 z1fshU{Yt_uU_CM%okr0+{<|%H7`XFtj-27c&;P}_;pFmhuKl~U;>f^A^xzyeF)v*? z@=6#gS+V9mP(zFy7=_Xm)C&8RBxKIG3wMzZ^Juro-=>2UP0Vw4kyt?9fmuspy*r9U zu{s`?uhCmG{Gq7YEfPaB$;X)TP`Gahf@!~GJgRm>WNn#=njgrK>zyasTy;a!4JkMu zw_n^~4>B+;6&_=^i-OP@m^Nk(PGzqY%c%c(g?z2|)l$XiB~x+vLmGBeo+iX=C%7L? zr;k8maZKfe=Ik$uPt8>BYvP1ftQqpI_~}g-I^j~sOhg|UBVAud4f7WnsB`_WG{k5I zevZjNiSZdpV*aTgn2!D<=SoJzW}8@YZur$(u{DL<55`rE@28KL6CXA{w{k{+vBIwC2x6 zKtUW1e_@@S_DTF8SGE!7s&%S-7e8DA(bXrJT2h}xCp%wMZ$z)9`wv9(rmiSDNp6Pv zu4oW61G|@`;=}ms;^ph9=o&BwbxckRzk^e7v=8S>Wru|R+az3ipN7M2R*9oGCgRAZ zbgUzHePG>*7}J^jj@329+2jcbV1M0b^Mk%(%>*2oo`G*anoC{IOoaF6bWFXnUV1ih z3f_-M$Nk(r(yhX2I7oio_UQv9s{$9~4yRspVLMSaz!UXsx$m^N3A&!~rPf>u78lIM zO|t;R@SG%!(7@wPC_<@4nbk5BgUI=O%zNkU#w7g+YSir6TRzUad{gb)J4GUp`T6bI zxytcgDFSB}1%PNc{$4%};+E5gpx#g>KNH@sDC*%eh0>vGlU9 z^HErm3$dgY_2rsY#BuJ`{@{K`!-%RFSStVvwaJi8t5Ju@8+)j`rHnJeStWHQZ*dp# zU}aqFI}J}c>pS3Vglp}l;3{XqJ8;w@<9q#ezk<$6^C|u4;$GP(@^ncfk!71j1s}BZ9ImgFi z@VGP-))*l9H=F`z;(moDukFq1&%lP|)cDGHDaIdk$8O#ib&0=rt?!F@JE&pvISPKWODrQCPi*=Xqj=P%Wl5$w}fH6>`OeKD-B6%eC4-t?xDDp0S3E z%>N<$$t7+_t=)%5jnTF)`yK9yOg>l_!*cwwN0*FB+Zy3Jah~p$DfqOc2`slwM>}ep zd%Cp1(i={2=6Q}kXn|&+CN}eiby-Wy{!QN*asw>-nnBfa40d~_LFAhfvl)qFXVM@~ zu874)>EHdEdaWC-i3THvVf;g49j8`{Zf3*qVO1JV=Jgd_YK%ZW`$t8_c%_|YG`Y*)tUP>!yWcP+9rK;4EXq|LAW_e77xc6MLeE1~tC7NmPz( zACA-??7{cc5?3cjBQJYE>rdP${5TOeAJy%3YW%v%ZU7 z^bN6kk_gjt)iL2ZJ>wQLU+EfQn(J(QITXrR<*-j*ExX zXu0aTvW{mAB3VmcpEgFQc$^a6m$@&% zv+c3;DffM%ko7GQ3koVA;a50HmXZVWwH6#bLvht68OM#9!F+olniq2KV@q44tNrk} z56z$xtWocsHx{R*;9zM_SgGAnSWLXPPhaAl&d4ZB0mF)4Hd7JUgy(;9e`uag;=WNT z{?;Chi7zI=+nlq!BSZ1^@px2Z+&29gh6A6*;~js_@kfJk#&;5eI14*zW=7x1sc>a~ z)V*7_==anaGxl*tHv6NpXqzXF45ju|hf7Mc{F$gXC>6OKRpLb_@~Ny+Q8xIl&{~8e ze?%&rYITFX6pN+A1R^b>6`q}_P0^w}UgvW2YQBC%B<2s{zLU)b#ab=rlryPmb!5J> zVga@NFYuh-t1H|*k}&w4264WFgf;h>X7Fs!D+v*%wUe>Ik=(_=c|ys(wuKLN7Q4G+^*i_X*UPuZvB&!E@(wfC+|PAiaR%#@+JA`E|M#MLyNrF^qsGyt@9MPuk+{k}vC~pLT&zC_pWNsbQl}oO5Lfe^T(5^2#>ndKgUwN? znA@WrCLMCe$OXjGeCkPDz6**E5VMr5LihDf=zgB>>GT+Epa<%}8`K@0K7*LSnW$Tn zyvHM+IMZ?#1{3Q$ZtpmZ`RRmTy*cYn(Z`BruJqI*ZXx)cswm16ovx(8qLzW!J=PZ$ z#Es~F7AW`igShkOzyEnpWt$s@CAn!REZ(Lzs2hu^z0)znMqd?aqQTGpmE&Bso|#h0 zer*BgfQx=;Eu&tOo6w(k;-^Nc-6yG8l*0J$UZslvk%HO06Pus8u3EM(4cViJGc(s$ zKeR}L?d3$&c-~Gufis~Wv)B{O8KNFd+}vx%JYt%g`q5(g29VQuNiSLLf0lTVo7`Rc zFIU$kPJY55>b+FkrS>E4v6S&Y)bO}EkGU@6SPF)=s8Cx_({=5`6kIm@SG{*RcLdzO zbntF~#h*Q3L>5y1_Y)9UZ)<$*yYCI;gm-yd%@a&u^%B3y- zsMk#k|A?6-a|ZdLc^@riKWkuR-ZThKJlnm!|F!b5)Iv9nn$P_mRgbyXO8S$)`O6~J zH14|+iFfMt;;_mzh`Jr`iRW1PN;R*E20G61Oy4w6Cwz-V@y#UeYyMGpHjBpKNyLjb za8(~08IH51%;yes)i-*Eps8^RTtDTjH>U@{*pD&KI<5Y^*#{5vS%?3AudbKrfw{UA z46?0{kM1t0eTv`3-_GdX(g`d0T%3*?j%V#0kz18oF^}C4Q{Mrdc|J;)kzYD}I-0X5 zHF`AUL&h_qgV%N_Qd>Bt{$|z&eF_k)L-0}UhGC^gN9Zx^z|1Zvy0+kU> zeCc^a?s~WLCDjYP5jcUI>K+|Sd^-E1Lp(A1i*FpR5flfbS;VJ)X=Yh!q(zS!+()j> zw`x*54vYM`lP$JUov?|*T<+3l4qK(_Iy)S_C(~0^eL{7Ad>CTNl3bzM0e!|OU?8?j85g`U{u=>UD!w~@T3yEkya zXV$lW7B0lcxEWYoD;10X&cn#%GhrS|p3zu;ob5Ur7TdX_4`_znDXu8GlLS5I`D&jI zp77(&yJXb>Rowx8m|vUy+V4fmYvT~)S7$D@(JI#pBk{L3dBlNpRli5a!>3*4IPZU? zQAR%V!9`y!HXN$2^jqPLIl<&5r@mf%#6Nfr8H=#CFY-; zmnTh?D7QG2r4hq%U|GraM%1$SNv}!&wpNE~hU0=C_p{$@RLu*5=^>qjQ^r}U4$i?C zG?_XrQ?IF-(bLxIS~Aw%YOZeZ%@2kXnI8sBQ8!S0a89Pcae21dx{epN4I(di$YJ%R zA?|R>CHA1|2lc_GF1Y-W9G2Qmu`|yJ)w-wQ=lOqdyMVqkHuS^^oeGC&M?`f_!xeJl z=Egh1>?^&BCeSaTY$oD2GKU+^B^TBSgPL)VL%qfZ3C?I_&ECqi3+K6R7-2(>^P%JF zB{Mv+gSfgI79G^xXZcY>mDnTqD^^SUg&>K~bAFFyhsPa@B(6;hw<>9>GW~e0r}ohQ z=8fmxY08#6K1fQ^BG#n8(j%8O3HjCGZ@pmMeP1y4RSSfQvpQ%AWtu zKJmCUW|k=H>Ah}~!=3uQe8uzz>yw()6R=8BYH~KEADM(l9qTJ8ZA0;Zv!-=_+gbLj z8iZl2Ne-vJu^MzZ02}TQ-)NGk@-$)1Ii1>N9=}!kGkoB{oV>s5Q1$t$UN8?L&$>~j zdS|IS#=J~LO7jx+>K3kmJ?Fp$AJyAOJLBwD@+nM>(ddd34wR>1cpVGQVrJn5c|#s+ zr^9>GEEMt1dip04Mn|1+$BsTDfsDl%XN)f;ci;y13_V>jhnisTgUvC6yrh;oYRhzb zsD5(J6XRMYakdt&9yfzn-yaD$?^dc>$T$yVAKkgAkt+CPBpPz3+k2}~*+xbm=zKa5Urj^}VgvARMXY4$7^0_upn(R}S* z)CPRtNEpS&!cMm9)LsK&w9@EDEa-=7Xy5$wUGGLsxJ9!eLhp;m>9OHUS8Ns54DOz&DB#D zd0=z{&KX)0S2LBk=tcCLy_v7>ujh&yztZre@jZ3e7iTzfe`jG{A1)=c;W3+Ds4l(e zS3&Fz_vSsSOu)G3&h!XPM}1;YW7uzu3Z?F7zu{Q$lN5d|2iW<_320?opI| z`L6kJ@q)OUS=`q=?L0x8v!Mp{pG54tZYwr7jiRp{J%VjUi#`{_(CBIs{_W65m|9W) zkh(%ezpIE%zx~kXI(e^i&njR4`rsz-zQrLKO4k5y9>@NA^YK84@6zR za-2tGuTW%v)}{H>aQ>O4ZwGa6-|ttPU;Clx66=t_c48lONn2%8&)LFWyx*q9 zytb_C2F?-M2^yqnc`w){i5o|$CGv_h>W~caketV6(~_Wnf37(2pB|JT-t?|k+$N5_ zw^cH_{Fo%#zw$-osbrX)87hW?UJuUX6yNG4(mr{i{kIhI8Jmi_oxSj!^Xk}kFBB_R zPnet2`*M#~@p|TtA1COAnz(AvxC%F1cA@9p=S8Zh5pLN1Ivx4lOw>{R+%V+7T}(nG zaRP40bIl+=XOFs$6=!inslC7OoVqN?6BRepQF!Bodf-tnEMOlr{?P_?;|<;jX3aKu z#C)~8+6O;#cs5kg>SxdVaEJKY;_x2o$bWn(KzBCY%fXSfTX!UZ(klh;#&=LJP4vf$2h?kN%kPnx{6*Sy8$EU0pXX7<^Gm&@kf_-BDkU0G1E^^lAGO^q=8b<8RWAB_1z4nH|g1t)S?Q>#Q z|6rV~n~YX}j|km1AEc9eRj~AgIJm=SQ{^!eL*nwoAGjs4ts_A^k{d#yOn`efzy419Ps zPaGZYiMa-xJI(bLmswM-x6H&@6Sc6I?n}He@m-5Mh?Q^r*ne;j$h)R$Uw^nUpUfDN zsx1EChmSXjz0~wonG6X)sy#K54qj7@>=1%#y@*L_o~;@_HxdT)GU)j6iPikbSoAZl ze4Z=DZ&3D-E8VJq{wXI4l(FAEk;1cm*WsJetJoKtc@K7(GFv=&AB(=^xV;&-TwF;b zNBL<2eAD)dEBP8s7)U?sR;R>(xzx?zo#=4vw(w%zUW0dHoA$3nhfZObAH$tu(PuGM z1R?k{^&{dwi-8tCcpaCF%{~8$#Fkzd(1?7i={4o`aMr6kiEn&ZTV8ALfmHT%p4=Smiq=Ww#(LG0;d*XxGS7gGb6xp|`9vJaKzWd% zboTPZ-hVi|GuM~Z9DT4Uk#kXlYVyMaKRk<}Pt&7MBIIcR0-tBV;MX;ws~HI6a?a&? zaQ6uw5s2qI1qXy z{BPcfpR`GN*UAg!jB~qfhn0_KJmJm!-0iHMSeWaJ*dx>{*c&W-KgHtlj0Ae#Z4%pA zk62tuz|Y-fV(t$OcA61mSM9DyNQ%RL=4$7?pGBlW6fS=vwl7UjuIKJ}p9eKTH1r3Y z9)xpulkn$6BYE<&H+3qKacpWUX{mT(!p~%k=+H@y8RP-eb*!KF^^}&k$t9eWiYD*- z%k15*_*5qiKZHsS%yNPI=`^ZByL|%`# zojhXYi5{$-jkem!WBEQ9pHHr_*%UeGnLp>OnK;sIoV1~)Zbx!v&*k=)6-R@R%Y5Ea z)RLEb22oQz4K~k-L+BWU;S;F0cCeMATNQ$~I}=d7&kifYD0+XiqV~>}ZPaIC!at0JwAhw+( z4(dn(-hMA<{XiWQ?!2pZe=mxA$I;W3JQibp=}T{dZp6~$)N3lgc+A1%Db#;n*-i#D z;(UO7iW?O@bjGnG)H!w4$|YNzk(!VW%j2oC^+Xp;{)b*~!7em(=$ ztw+i1N5P0KG(=W^=>ffM$!Icdip*R~kHrZoxc}8dekXn={VRQeBO+yp zlMAYBqPOyt6lpli8OH2W8f=>{`-c$^rq7+%hGlY8XBSN8UH0#qTGFpWZ^p;x6LT!w_t_$sM0_bESZJfc zv%4x;snyks*b4TK3)d>voS76cKXH?&Ja_UvmPm? zrlQXlq5eycA;!5+hoj=^jaW>WLA`0CC*mIC9D9_#`Oq5jHg_wFyC=~TtEqgmFAx`3 zCSm@_E;6J$dr$I_&xEO@@jDO9-;zuW&?I@_lpDT{NJms5Zt~m291%LL%NP|@N z+N-I_P>?RO;+?UKGtBbR#q!t!XUtIhjG5r(q5ii z8;pb&X~^jRSA6amjDN!DA+lwpc=I6y?#~i1vCK=Un-Yl)lh{}6KyeEt2Ce@;Uyo@U z+?C6WbCvzn6uq6HocQAj7uFlOHBTzlsK0GlMt#@qT}034^!{d?ufF#dpR%Zt$T$zH zku4Um2kOB%yIF4+`Gv9g%0m8sjmfn%xO-3z`|N=Y zo5|laE|L3h`@r@~23mhDk`>MY_**X%YuvZXNh^Y3bs+8%Q+l!0Vx0Tg$-HgB z@NY#;s%}-}IaM(FanI2?pR_ek5FqjvhsPZa>hmx z-MkRSIQ#wZRl=%x;SJ;L({;O|y5mdk2Khmk>WO7MtEG(d`js|fRwD7_jC0Y3U?EOu z@ST0=l&R!rE$4T^ICp8hPt>uG#6%r&s)5%! zJ>iUYC|Fn**EH+bApIM)qDs~^;F&swgyW=G<&ix$s*)v-!H9fRwGD#tmqTRY`ocQ4#! zoacKCS1hV|!H>1{u4W6A^S694f%Qg@NiUU7r(^M#an84BDslbszH^07iwp!u9hO%5o=BWW4U=|dvIFx* zoqHKr5u(Vkg9C8vJ8@-2+vI0Q-f_&~8L8>A=7(TZ`9ogw18ez-=lOhV`mmTh6J|4m z;WsZCugfNiw@pLgQH6T(@r#w{MUl|stiE(@HLE%0F{t~b^1i#>-|9+X4=<<=kc$=7 zPSLO7g$Imtr_cap_f75*80T7jN|b9Qv9KIZPqmp(I*&@$(X1!66f#<^$WYVQz)ciplT1HPfVtp`HwILSQ;jGZO2NScG zjOw*5#6{vZ`ss7d@G4S?Ttbbh04-8$S`X6Rh{62G%5k3Z^=yf*C+iKyx&6-S$|F55 zjAt$V{PSSt)(u}+AEic2(;Q`WK`f#e=ZLYVl&v1DWsBoB<|h_#Tzs7H>VYgHj4uBoN?a!^qsgljb4GZ$VEI}S3Y5! zgBKEq`n03`RnFeI54{}?2g~ZKU6Fl-^Zx=z>EY{w^%`roF%Wu~-T7Ky|;^gXH@ShDSY3^7fWag1N1b4u!(c>SM0X@=%}N%klDTm2Vj z&lXDUGR`U)=PlXpis9T?d}ZDkWxGl#o}z_{aW>|hO-yH>!nt>u+CYqN$z3Ed(o0j- z;)@c2+KjWsKk?#>Unn{;Z@j9uMU?YdK2Yu=44Ce4d01@@~$$QcT^g#wMvuSF3rXu=8eiGzjO6{Ux~= zPnSu@WkGmJjVsUOX|i5)F#df{&5iuu!XkqDU}og+YlB4_?kT>I*XN>Lrfg-LJ2g#& zz0u>t&B!yK$$9bC?#-1uPh(IpyKq=h=hzb6>M{y<(UbkK(WF@jE_N+Rl!_dGe9o{52J4 z9)&|!NN*tROwoD)H5ppbYb1BEI6aoVZ5s8~jvN;ezdUiOdNSHQd?&gsaYxB~V&m7= zmt|vJkFKobZIZ>BBoG%9^pn;&w?xfNP+f<}wTE#E%se zq{==$oc>P-Y?ILvc{F!6MmA;r{BfNe`OFpGjB}5*`EpD@FC6CV?$(^OvZ0|LoNv$* ze62>Vat*|?g~XdZYc3=6f-vYQy{>M$ijn%kSV*ke^n1&#n)eH)7B4a0?q5_>j6*TA zGe6_pOR9GB=yQ}x?No;yN`o&kDEFxx=ffH4mbDz+QOLeKtVPojYsDQwTR9JDzOiIB z? zdc?i^=F`v2vX{uA|I`^H@>b@BhzC)eHzp=wQ^6K7ZKWH|@H|hfeOmYpaly0fWc)e# zQEYwUguTogZzj~2zs}D>9nQ)YHt8fMY?z7D+;{X`VJ&T*IwJNT?m_0vkSBgPqT7Qs zSl*A2gO1O{s7&IB;xgob(N4sQvF~`8Bfl?mfsXY?(x%mN;J+R)xtxK!s}{-u?|3IZ zVxPWgwhYP&z_%3{STyyy_}DE7m!GF&k7}5bb1VoE{9P~J4N+$q1yc`-b)6s1fG>#lV9S=zS4~I)6vxxySOM~g1EQ()KBSycw{inRZfH`SqEd${UvM2w_BADeWLJZD0QA~ z-ztsw&%u!GjB{KE@y9C=SuLo=HpEGc^5%|gUJ@#fEEUFnu5d6SXLj2G@vwn2&a-~r zarTz@HhvavjAV^rS59#aYt$fjheL?rZp4BYW2Jf%T6J z{P-|H-Z|-yn4K9&ZZJ;_UKQD&_t($1;+`k9)H)`iyqc|8;^2+e?7M$lOBE`(;Abn&j{2<^zx|zXX)ot9 zEp)=x!x2r~SYtGJAXaX1z@^5Vi%zX3qkX31$!X5+lAFkfarP)7_WQvcbJ;q?9`pJW z|F&B#A16$wUP?ObLMF?5lV`w=8fyke-Q)>FCmdnTY_%Xr7I5csw+VIadQ6s8u6to_ z%S>42*OX?=)lSSOhkguIqKpF3&L9IvMsHD9{Xy>GOxAUtCF*v>?OeIby3QtC9eXqc z55^>-Ytj?dPLD_&Ib6TY9a9+RFZcJC z)FY-ni*Y_{J4zW89R*Lud3#v4^7d;S`Y}Hj580#CpAw6z)cB~q;)XJCMI^Lismm3w zCtB1G#R}HXbsm|CmO=hl+$V{;?nA}%5nkB8B?*yD1H`IbvoV-hlp*6XMYG76=tMlc zs_8nBKfwV%5~%Ngv5@}Y_OP=|Ma=t)!oB)5yd;)D=DiaAjHhDMo;3EiHRO(UcDPNw zm$!!+$qUP;Vol2o*p;%czhaN(oN1hy+)GYf;s}=(neb~iNJe#aff@O&al?#dN=r}J zP9X=g|2A=Ay)Q0OAE|n&gA!pAfDb)0kp1VNY7C#pe(`B2sj*IVw@(nP-%vkf##U9W z)zsdZ%KkUeUiD&HB<63V=5VBwdb3e1$^$CL*<{V~l40*=5!XjAWUF^2d-phDV}A`I zvYizB23}C=Xn4<^QzCeuo=(u9K}1#Ysf@h23=OuVH5Y|ZQ3#+;);|yXiQu~tFy5}g zz>T&dlNy7C=jjjEIzTiW7=~vx$l-KP72U5AW7dbe_5C^GSM4AerE`{eYNHtX&JPyE z29Fl|MCnQ&yco?Hp!*S#Wao*AXXvw_S1wkw*UOBe2FN0M=8{7(YAEqecixKEPaTj| zg_y}%e?&yoG)yAqa>*NgiQaZNL$0Fpu!hoiz!dygPu;oBZKV-$zZp(xyc_z+KP3*x zV9qJOGg9^%?*cvclJ*T}%0>V95ogH#>>>xbk{*ShGw4g0HbS<0ABHgUCLXM6CBF@i zK<{+sz~OC0RCWY{YEhf})G#y-qkmARs7m?y=-b?qyI*G^k#Sz&+DKV`#0df#^nI75 z95kg4Z8Ht->Z*(G)Na~8m-=ptI*EJVsA;)aLk{>z(c2;#ISVzIXyqjq7e%7DK!cA) zDWbtWdVq5OtG{NMsMr^QR(ubl^)_*qzFqHnXmNSXArbmy4%)G|w5WbUwDu&wjJ10B z$}8gDkRa?KPW9W$3VIm?U@ti`;mR{Hv5zl~cc(vG+zT;!jwk)p66s6&QgmGGh6$XR zJp21Z)QaM)!;?DmmJdXMnG?1TPC@>nyW)1wS=iWy9@F-B#aqW&m{*nFqwz1qJR@iL zbDw+Gu%=v-o5_#G@ z3d^?8lj7!58S^>@o5*uNQ#MDH_g%vsdgb{>%?9};hgy>(vxzlv&0b2(cPDHasDZ!f zcIC!=FRU^qPA=J0G)Rs@V6p~P$J&Yp>{$k8X;85-R$S5N{69s5ADeT;h&Qn~$3FZ{ zwH@M=bsTaFH85OtRE%+nL;54WPWD|9ogIgb4e2X%`-|A27l&qph(|TADNCovVs|X@ z!zD(tbY=`D9M|ITq~>y`Q#2lS;XOOXOs4;$rt&KCG`@G1Ew@CVxhXxVUv`sM9)uz2 z5cRzub(8LVUe0+X!FfSfdAwQ(T6a!{+c9(bsY@`mso$Gey)PyC9;64vB1tdGmF4LSQIE;M)TFIoFt zEWS(Pb|Px&PL8F|IbXlm`?hMASH#OWRF3oHorg<;_LG0g_)Hx#UD;ORf}-AxTl#e+ zC)p1Q&$Hv|5n^64adaB?eq|bQgnEFMjQKBRm3YTEg>V;pyu%@}lXJWY)Ud1d`??rW zkDP$j8fXK)3rA0SBOKD8ZIik(y@Xo#Z#1YL(^~cEox8dB~SC-o-~*qd<}-k zmx~f{Aey{>!^yJQV)mDu8Co20k--UxkmMRPUK}jfO`=aSxw@VQtFf7OSKO zy&r5nM5|%(*qY6m(VfM@jC%tQelLS#_lu%~#O0CO{J`kCFmI6nWfi^3{C|mqrxOr% zfZx|?BiUdu_gd7%oV=yIT)8t5>#Gst)M21(ODxp_zSk2b<7J3j5~4@5SL)^}-`wNO ziM`bV?+7_lpR)wUx!$~FIpqa&g9&GYo%E8Y$Ht=7vNRlivsiX$6pvhD+Q;dh%c~dYHE%{uo9M2(`Zd`Hm!x6V7fanx zW4@P5^lGtPuQoldf$RT=e|GYe(Opz6N5`B!38MZhrZs z6_IP>5wxCI4Y67L31=SVeOJ-HwR{ z^Ze}Us?_xH=`SrNELpQYjSw&=D*eltvhMFF+QdaabHVeEao@l1!VlHcah_w5M1c@D0S zjS^YU5)*YgX^EU)UxVMB=w)+0OWNIy#qTO9a7amzs^&3>dXs|a%phsTn%9Zg=9b|h za<(rq7zxCA*IOYSXU3z=i!|K5{6ll(=x$Tn?_mymrJnY>n)BHc)3+dh zbgug4K@Ga}t9+iH47gGf)!qfI_b{FtmMYa4=gD4tuAdu=k0bqIFq7X+d6u}ji8b?n z`jAyUAa*d1`j%T-ZB=SlZ9*uAis4CVPMV{9+Kr-z*{@jFd< zK3#{&d5m+H{_LBs%#a)Yl8etBM0mpxS=xsF(%jQD*H4ze7#kPj85~UJOFI|hnCcTZ zIC80s=ea%XP29EB8kti>4X%p`IOe-S=1{NVF6;L5H#bOUHP8E9;#W`S%F@>Kl;bR= zeBerX=yx2>k$c`_WR6@+pJ>CDDcmxHapg}6zT8+W3wKB3&>i~5nr@OS2E<|r zW9WDLirhIio*Ip5=s%=|E}ySy^eGMhx=hra$Vk8>=8g3q-EPB%UrhCTO*;LgdP#}H!NQuEt}GJVi#wyuQtfXlarACjvlEs4@iezNhoEf7d7Fy zta~jHHk&vD|8-p!bNo5SJcVTLj%V4a+ixH) z$*Xdl4{uaTb}Vqhn^Qc8*JtSxoA^^-g*cgO<8(KEgyID6sm~R|bx&DmeILQ!VLn8c zvYLK1j-2&R8LT_YKL-YLHWFr|vtpgQmS-~Q+6Y}Jv3}OOwFuA~ubUjnn)jL(RrBq1 zfA(?5Qj7KQw3)iLdDIvj!e{@ctFHfMdbg!g-*BS0uIdizx0Q1qxWr#q;KkSBtfr$& zkZ#NS1l(OfpU7*$x@$bQ(bbZucMz;=$=_3hv#CEV0(Ijm$i*<>F6^79Zuz5FSjl9> z&7Yxb@iQ9Io!%=w=>gq83bne>$Ec^Z?%m4>-2Xt`yyJazR#PIec`f&hV>|1LWHjpO zk+as>T$ePDINJuqpk}Idqdw4sU_%-)l(rx)p2Q zLt&NU{G#rG5}P^Q5=nvy{@S-2>6G6*WcsO)6d2ARdROao@VL zd#Sz|&$tKmT`x5*?PROLGv+D#C)G-a^2}~XpnlWQm%4k)xIbS)E&D@PbrF4tW7^KY zs~*!`U6249-jR2v6zXa(=WD-ZK7GAiSLZ(KwHDOw%-x`?MV-7>V>yqyyi%9=n`fE# zT9xWKx;w<3ZG1=^&c%5;`(k?4+7ORgKV8?>jRn!3aF+jJg zNi?-$iJ8rVcwXTmx{l3zPhIcJa1Q%VXf$q zBS+r^;%onRj$~AxR}#!PKW2TKt~4pN-$*~oP%Yj^uPHsh+6x1T+30B(QhFvc8Vk}A zka%@)>6l>pxnw8cMSHW-70K}kW;}P+F)aQ4h4o!7J>>3u(=ANm?rS$|j`jC-UgWb> z=X2Go>p9(J{;cjUd-e;2R`I#3QH^-3Z8PJKz^ZMu5g1udLOPw;6Qbf<4| zuf8@BYZtB39T>>mOr5?9-b-|btVhHo;>rrLbv+)i#^inZ@MP%)>W7B%5m0i&nX$6;6(ol4ML{2ES=kmJ++2&RJ+{LYr+fb91_s3c6e!!b2Ne% zQJ>0lSm{H?*_!>ryKNmx->r#9*A2vj&8=VBwyqY_cQQ{s{-X*PXi{NA7cT{Bm{Y zPH^|g8rnE&iOz>QH-GQbcVXXLor|j$w#?m;ZxeJkDl|BkM9ou+Kwa||?1QME(A96c z&h2V6dU1E)eSNSl|7Rqo^X`+=JL{hKMbKv_1>anZbh;hk_&Av!VH>{6bNeIULEROb zsyF4+SJBwWe9}7Wx?I~O9=~;|s2yER_iqe+T)Q&oytB~F<80$-3cVu@#_Eb$yUx&~ z=FUew3=3dx`L}YM?aqgl=p{Mf{BPnB6Wf<|n8q5CIkvHXVrksx5FGp`ft)CH>4V4Y z8^%zl(Y#S<0dvOi!F=YuUg@+e6VS%uKW`JA?rwYXu6iZFU#!!a98ARSuH@3H({v|C z^Z90e*NgMexsyxVs2g?dyN%QxFHXWG&Zg4l^wK>#$)B<1O#5>yUE))6$C-;>53H|K zb5^~a-=q2T>bmW>5^;*N!Ow#~$%oBYBeS_K~zulx6; zT;&&s{PV<(e37zaPz>>|yf zH+uWa@V6;g!n#&@m?(8UQc*#bQAm$~&?4DSO-zj$>$zz%|6ohzuJ>VH%&xRik8zVv`@c~XA#r@!Cr zBs`BeBaafdGMIbnz~FOovuiB0Q>eW;t6ciz(cg;Ps}I_1vO{bviWa8gy~_i+cnr^7 zX)1YoU!?ajepc=mwzqAl>&xeEIXNtz^PubR!Mdh#3f$&c>iV&!y2k%)*6xGac&Y}| zn^cbTrH74F)t~sImjN{^!{#e}ZOL<~LvNwB)?(v;DDst`NnD9_^ zH%WzQd+Hdksw0oHzfbI?#ox&Ga@PRXmDb$(URTSpEz%udG1XZ^t?!qoWx-eG`+i9{+wr12&*$vb1LDoT zT$OXnHF&#>nq~I4F-rTs6B!>UuPfH%3GM1#N#pRy7KHp;#nyD&>3fw#HXTypM53! z*s>vYWWSx~#UutU!nS)CfI+z}6}+F5reIf3Uf1AZxbi2nRY0rO-Sf|A~dL3Q?Yqvv{&+|01g~I4T2bHjDf(j)`hnYZowy%%{r^S_z5$HeN%v($U|=%Ypd zutu`?OKQ|*aL?YuOddLsj%nNZn&rLa_c81hZqxgr%to3Mv)Qr(eY_H<$`g9b;Zdwt zp83dSFUTvpM!(wL3DSzQ{}z0Pn>U*;4VSS#c}1@x{nawbfm#==N#Y~7Ni*ko)M(2Z zd-NgczdjDNh!fbKc3fI{#KXQSbu1fQlwv9UpQ*Q?>Rm1m1|*;=p9O8tGjfkxB0}a; z`z-N-yulg&1m4B-x2};h$k(~BkNBYpUDdCwH1tQR9OsjFjtKt?A>`|7p+DMQRB;S~ z3FEwRQ6JG|Lmck#uHC=9uc)7yilWZML+17qkM)U%Wlj!DQi=CL?E85Sw(U7a7$|AT zWIQ95IEsAFbR3&N-@c7OqRFFlbY}nPTbL~DAEx6d`}U;vIb!|Wboep0pKfjv#ng@OqK6H#G^?&?j>g}lOKA; z!y=zr*}0qL`1|p=|1WtQ9d^l!r+J5e^EwhH4 z`JX>6UKdf{G@E>=uhpcFQ6k!!5C_%NOm2G5xUElu`|M%z!dmVz`f|@+)mvs?jK|Rf z^a3kNl5<^{S8JzW;)uDjh8|!0cQRIeOO(arE>z5=pHawgIiL080KU$*7T<+K7Hd(? z1zMH3h$#5_whr3Yn^5$DSn+KS}w zvFKpRexPED($y>#SFN;&8eU6DUz`f}G2{)|Bw89gO2tS%lbQx5s-)p*Sin56uy(rY zGIwrkVyR=}Q=$@a^e$My{xIc{%7mD#CELgkzxG4*EHxdmykn-GsG&BeCa&KH^1Qy+ zRzF|JeT6akFMI!}dRU~RBk^WSrX5g?ZI*_M?2keQ^--N-O&Ir{Soh@}OR5u-o;{lQ z$<`N@guBeo#}aXI_iUlxk3ITC&Q(tqh#R~U3;EwR)%z(%yw>1UAn|7POy%L>jO{zd zv!S(YbVq|}^ci_EX{qj`COwZ^Wvlw6B;or; z`Z#BLsUNcUop*|Ll!29qGv!WiV`bdey@5UDK<*jU%+HVJt`X7i0t{PupzpV!3H57%PYKUb|B?Nd>1&sp4;?W&l~sc7S?#mRC*wF9*k|5D$;rJA++ z{blZd7PBXu7^wa^n%aun+51GyRbQAy{T03+y0fUSO{8ASJL)Vy%u|o;#o3q%=U;pF zsaua@?Kg}w$GAduW6mQlbDn=_@ecY{Q#X$Dr3#0Y>HuOo98ZwZ4yQS2CYwM-VZpnPZ`Ln8coJcp|Y($rg#pid5DM=di8g-|QBK>~h!%oU3pa8{I4InFm7M#);55JWQ0n@{f+&Zh(6#~Ndub!+k5HWmTq zyw_GvEICrhI>?rFL>N70WgQ&J#7kAGx=HjHA=zYlEKRLU=0Rsq-Wfcw&Dcu z{6;lX(dcY<@h66J8hy^13Kv`L@6VYQ^*TORtAo3&k>{MFF5>=qFk|2OHJiPsXEu`vT4?J#Ve>W~r#4rP^WV*`Qs0;Q2K?QDcgnTJg0&K7=#Gbhx3L#X$5gglp^ z59)md^bCB+JX6&W<>Xez>r*S!q6HF{(*JoN=R~&V=&$B3j=i??mHs$BjK1aD$Q>AI zjSdy`JZF9w@M8#0a-V;Y`C+&ig6ftjDBez<(Nk*}FCsUtZW3ze^d$eA_44v0Bri0^ zL(W>Z^d`3R*?0Bf<=lf@Ovbr2Me1iB8fvqo!0&vRy3MC}9As=Ajg8c6b=>ENG7ow- zSI4tvw2e*0u9nBuU;D7{Y{zGqob{QUuS_CG>8<54v@54RWp(P0k6nv5<-C6mCs1p$ zgOn%Z5y4vgfAjOfX7SQyS_m8%=b44qL?dk=HG|nNtT7jt@?)^D7qQd3^;F|V(}UfW zy~YYNYEAR|XMOo6l3ESqySuKU#`H$1?!b9W=VE?eZ$GHVJtv2i^;mSL2DrsOF}Dim zp4B>WcA19z-Pya|8-zLr)RJUvdbQy=JS}AXu!i+;#4N1h%;xNE&Z87x>KSv!z`pP9 zDEbD(lV{IGGRu4NkNA1tp4mkKseSIYNa`&kDv-+$0UT4m7h{P;_3HVInJM^ zWy$+CA$Y-i@P+Lw(PTy-dNa;7TlEt+r^FzuFLh2b2CEjakI(btZrXl`dTcoFWS-%r zf7YvwF0&u!y>_wiu6h<{6xrv<>uh2`>}M)QeCGGEpaYJtU|-di7>q4ySj|gi{meP` zWjo~0pw3VhYcmV_P_cffb|wK++tCYjNGkN1AC9gkZ-<}h1ABw3L+4{8wGDz!a0f7W z0XA{2GR}(g1iOVOKEm4d06lT&xoP1<4B8mh5~b9mVa~h#HW~Mbf3LPB9_EY5Nj&R{ zNj2kOIh=UNq2u7WDi-x$QX9DfF!&P(y;*74TQ~`^SJ+qir6ICn0Wxk7Ur(HQ7qbUg zr{bQ7_^8{P^sVB?uLk4f7fBmL)7}Go+Hyl!Mrr}CF{~m+o4e8JLc_Efjw|v$q;;5;Q zx$r6f?3RW-!`Y{%$D-wfG?<-Uf-bCE+kT^#S5F-V`y`;_$~3qTcZsOj*yL$vLLhUzCC@?o6%D>0wni_nDtq zZx?sO8{%|6vv=G3bU4Q5rXY0&`Co6{5y_t!$3D$aa0kU2%IX&Dp*z|5K#Yk`M|!MZ zT}@4VKI`lU&h5%Wch(Oh9}^pCR)EahL^Pa{gv78yRLSH$b&GSuQwmHEQp}aD6fFIHUb=d=r5~Q_|4B&0g5IiNy6^tjil7 zL|R5PLRnwdd2<|IP3VyqK|KHIx7fs7IHP7dv-pD%jhGJXJY-*LIWpqV{fX@ z!_6lSDXgKb9@Wxiw2nja+{(DGN1OM{k+ni_opJ88xvA{`A^`f#8xxzmi^R#%xM9g& z(k@OlDV(z!&eu%xm7g;BUyeqjduI z)SQf$Kaw$y&sfKObMWX@GX5Us9>pOOFZi0j^f(LZvH~TnN#(3W+_%Z22R8jqb%|)! zb3blQO2mfl^f7EE(YPOdj&^Vcx|jauwa9Vgek!s4Ma-cmW@qMI8#+!O#3sUg0 z^L2Dw6M>u4I5*yK6N8Cay4i+aA=mG~rvY`F@1^0<#0MCW9|p_Jbd1b>fr?)dNUxm% zm+3!IxHT5eRWhJnSl4>g5Dgwq;T++2YwH;U<8kK%xk%01SjRpg?VsR=jqS8Hh#=cDcc}A`lb466JnLN2a0FO=BcTbKH*PlkggEjNbWabU? zWO@T~Pdz4H9XX!Z71k1ZpD(H3@l2UA51*`Mgp38$9pxQYV)73%Lz1wE&)d1!>Ez!h zLD@l17II@2F=ns6Fjw!HkGrOf;lxA?ZL{|Ob_K7CsrQ(&6Jy!OPh+f~jVZwq-rYCZ ze{GN_abPR`zxpS`Ht#ZqhD9RuK6w^B?;$8Y3{!Gapndif7E^hryHFQp)H@s}Cp3k3 z@Kp78^sE+ueD+Sy0;^h=ocBlBCC*_>YFVdJ&-qYz1~nBMT0f2r#m8gx9GukLx@Hyn zypzvTw#wA{(c%~chq0&a-px9uVGQmP51I3+vGwq=(Fkcz{mHZ?h<1#|u^I``{PEW9 z`5KKU`eBvg{HMo7+3pZ|war-@uj?VZQ3FArGomkTGevno6fR8RYMU_Vn|IQq zXlR`JLkMwd%)`U(URF0eM=l`y3-dunc+VbJkNKg_<9-;slln<(`FlO5LwAjQpclma zle2M|vxkY?@f`7;hmLQ_ncL5~Ow~0=Cl+ruW7~4j4(@v6fK5r*zP=a{>KL5p!@BML zab#T&M>zL=g+DH#`weo~cTkHk;69GN3dB?LDReHcu$`W;Q<)Q97=FWw_ujA~9^m!$ zs@8XksQ;s%0a;PYx?y!6jNC?Djy3hIFNXRnzdxE+F{)#>Z)+T6Os%NYEf zLe6HthSmdCYtZ=v_lD`eP;Y_;tFLhOJxswZB@U0k=djrX9GVb^PtLr*#^va?J4a#E zZt@TR?=Q|8t7s8?^Sb=<-3J>ui%S?`AzzjHLfeIXvGoRFQZ*9SX8h-Oc&%iL5%eD+yC zG~a`SH`Mag=RWS4#I}lH^knY6m30A)s|2D3YnnPeDxie>!P|>>);}Lm6ybv=oR1i7 zsA|0-)*CMvXVsoM)+c`ZAS5>fK`R?tZ?q49=bH@7C~9V1>ryB>l1J~cx|MbCus9^z zkni@TuJz|?)DmY;RpBNv&z(Gy=d4>!d*YpB4P(n4+wqQ=--)}MJ*?4fp8ucEV*<5< z|2NK^=iQWFzxp8Hzd1&fN`BV);(IsZH1Z2Ya-B$+Iq?}*mnk<}u%_aDGezcoSK?h^AxuLR_{Z&r_M%|4WUT!_bgb$ixgFL~Du+hl;X%o&qdr=6SG2}38d z&*SW6dkq_mtj!(EZJuWjC)^}|bj)OGbePBD`n?$BvL+6wLVtptQMk%G&hPJPh^%n5 zF`(|*yq$R9A4(r?@{!#oo)iV4R~q#y_g#YM6#&D@tjz+R(l^ErJ=lxRX!i?6-Tkon z95Hg!^sSF2_#@4pJd~&Pt=|R(VJz#%K7~!KpHk28=qpH^H8 z9jDR5gLjAF`gXX%+2~9qy^cMGW7ec-{GLm#(63qONi69EJzKi2@f})f_sWV`%v_-r@yGTrSf_J^}%J_%XQf#FQG1~&o}NU zy4*32VV%u6I|n`eq3Xvv_lk?fW3TzrC!Xg_&K)C)R!GCh>G;tm4$BNqNL3SKv77v) z@jJgtv+8rV{W=a?zv`m#T)ua9%r1P`kN0^b;_edT%bJX@>~AN#B)~b|3yH-2hjV8% ziMW9r7>M!{^xe%|h0ccl_^u`o`O6-1h8ap!O`Fyr5O?y0I?=cHfvL?7091M6Ju zHdWje9*FMG-sAKeCA@1WVmWJjj!RJ*7?Klln4Gu#X3Daq325|_`{Cq~vMu|KmMU^! zp0ravX&aBi^!r{`4ya_tv~YI``Q-$otYR+Jv2)Mb7Dw zC-$~C;>j`G=R)4<=}2i`0QtzPcn>bI{#WPgldISHl<@=6zl!$;>)b}3Ar5k2EgK@u^`y15|cJssVnp~H#i~;mx3x>BbeUmzwp)obTOFtxHZP!Tl3x0^- zoP_QTb8+stH%#~r9v-ocJX|j57?`G-&U$p*L=Vigw>uh21P!xS~$K)>Tv0}_bK0UsEv(6*y)fOZ4L(z-( z&Z^COlxL&Ke?LyFWOJA@kNW28HHf|G^;CLPkRwk#dUs^GoX&p3H=Ed}@6*x=#`HM3 zPfz*swyGFkX0VWJWHRWSsxGmSH`&A_))`8dn~^)&ke<5NQlzY$NHpb+aqZND(t=Il zxY&&RjJj{6oc^ImE=a((OD%EoCo^=&nZLQj2>1W`VL!jW+x_gw8}OlDbP{SiB%#lG zFZ3Z-cA7>WVwm5(*o2vS1NI?cvk*1D7tYkNWy-E` z#LxMj+G=Dedh6*;Sc`n$n=_Rzth4nvNxH}cC{mAPg#PLcx*Jx;$(CN^hGBBA1gtYY zDizfs7mGW2r$!oBd?^55xzD`*vn!S}mq(xHYTT_!&=~5CU+-CSiTTyvJus*+8DEpK zP?YVC63-NLYq$}QbllOo8T(=FL)e_Ge=hd~GQy#ZI zk2~L@m?x5oDP{Y(Pa&skVhSv^qhY0D9-u9K3yta`k@xGj-OPcGm>@0UPIVM}-ErHS z7XR08O#WNF&Nq8h2pei|KeEp6ds>M6Jst=jM4oGgwvfAo;;1Wm9bL{SN5*pxc{&D< z->p>Ml9#evlX<4|{FFVsH~LJWPPS@@vbtG3eyoV)+x|@+K&)fr%UDD&j*?gYAbv6? z4w_GsOJX__KiL}x*A?lie$>%y8_aBb?Pk){so}^u6pxuJ9i^M8E(v$^LO?ZbRmZv@g$rl@x*;*$cA_>p%=>OuJR zk4C;VXYjuHuq0M9&pQRRH`+pX8aWHm+)L`cm#$2u=92wqjfnozcb?5U9mzBFx%)4_ z`}3^od(j#fD?}81#>Q|4#CJBiqS5#Uv!qA;FkAWB}HHrzrfcfMfu1b;AZh_Dt9-8!} zTpD@87cZy>tl9RjWLfHk^h9zFA9ujQP98Wnncn1|M&U(6H>@H*TziKzzQ3o(#f=oC zkiU59xC`b|M?Z3EE>ut4@TYbfny*vzN&%X}^>C%uS^a!?IMo zY{pz_?qVHRrXb+^D6F^SetS(4E|*-C=D5XR_Lq3{ZKEsA%^;p{M*e7X`_li;^WRO? z>-=_7rRe;^9ZOi}!#dXD$p(7XvCciNH4?*hLowZh+^wsZl@;W=Zahz3$A=Bd!&TJ2 zYZE_PL+{qBF%Nz1>V40SR--_ge_g&yz37n6J^Aoz+i44d*yZg$3^ zMlQH|Bo*~)@%x$UhW8VgM@Bx{dY)&;_%yVQ&BQv#AZP}pAy7>Y6t#LCZ=_=4d=CWh zJ`CrKGcdUub~)3h=Lj*0Z@Z<=@x=OCC7}PqPpXbDc$U}$JP^D8)%n|x>UBQ0xKfxt zamRDkxy-^^bj$O=t|9!K%;VRXIf1Iy0U|-jhc$=YLl#+Nh z9{cC8XPz@wu_}zipB?O(zc*IaaG$ic9{so170YADyMDksuG7q6@^pGoKfF&5QmKP+ z<3-{4N$y`^ofMT#S_p3NY}`z&BYis*h&f9V@a^(6>8ZIN=225WZFG(_GTDoM+vGI3 z3+cjA=2JgrmciV2Qr>45=I|1yq0%*PfHN9$|7LwuA9cf=FqAur>3v2aSBHMiI%(Ko zXofzM-EcBJjq@yh+Ln96?Q|MC&v8Q)=ak=vm~WMC1A{5#ayCoD;xQvJ+m?FtznmpY z>muJH4h|35+ce0LT$jh7=?LZvbU2~Y*=2mRjC-mO z^6(qys`fq%!keb_(Vt&Ka?=bz%LCM^n;S_lj{3mgGZBO8L`!q&TWC%!gYkgbkye}fqs0R9XX%rfFs2p8vkyAgliaB**Ch{X z#}@xc!ih9D>16>iXLIh#Qwmh$vSRV+HS@U7cKDaq78qB(&aJX4MfP3pRaob}p_XEP zx(77Ke>2-%Pn@TA1rceve8a;0J?s*IUac8pw;*)in7{i|J3U|wm2S{x@cw=8?BBV}M(h>FyW9*X9SvN^i31@U5cDu0u zYN^jeN7Qe_Gi-A}IA#ubvq8fp;PZ)e5lOUdK8_tK`u z>dPQ0W_t{FxRYC6Z>j3xVe+BKkJorO=3kw6aOe1c_ef>KDn-AW?ohMNp9ahqJ7Ybl zF(fbFxwhzkGlcyk?`n^Y%6aaeuV3Tc@@nfrB*)zM67qxMb>{iHn zACJY+ng>g#at7(qBMxWxP4LhG;I)%?gjf*5m~`lx|#RJn>Q+( zIDahWUOTzCiR2N)z41@xYt-!}eRKB2;1XsN3{y!xKDc22vLwuSX)3kKbi_pZGmkrA zFFAF#NBR5|9MTMuGFIE7=ZI9ePl=btZMDUNdc+fqG9>%j_84l%L7Pcpx4A0{ z$QLP^_*&W5CkTdfIk(qNQr^sthXecPXG>cuk8Z}pk9(_FgABRL6Y_zHS^K4RFP+LA z%RKIm-kxi!`o?{7VsB=t+{{s3DT~CrrE%!j=%%XjW;o99T^TyQhV-#z2%heVN5*~~ z>0|u>gt5mc@@pksV^+fMderb<(36}Vdt&lgVo${_BzNjKf;jj2RcTA#9i50NCgWDJ zhV=P|JtF7}aeU@0mES}=XwFGxUimfE%Te?o9hinn@58Fe8TQ!qGYy{%idENJI%EBU zbo`osSe2hjfASmY=pB4TRopU&+NN~$y7WVp-H4d~m~`NI&$;b~Ch^Clm8v)FXMcvpVMMs^zdCQfP`%F2gPMp?Z&z$-!C8CVX2t5U z8;ZG$4z-q)*p|V#IFJ9|Gg02^&2z_oV_;}|qrb=F(WW``_tGs@RWIWZ>_nb%jbhba z?lufhQGdJjld9$(HI)9u^$K;QgGG_3$|Dv$u&4B8LpZrA)EgfjCbhE*!RdqX75&bvn ztyX#Ocfiqz6nxTauX_944%?kmq4~a^QJ}EHLEg!a!@iXcsp6a0E*%XGrpYcb&WM-O zF>7alY-r|*RUI>+5kFI|u`Upgm}6+RJic_giyD#4k-Qshp}NqAGs2lP^fkGnO6NXi z{e~21b~>UO_=S85;>Sy7l&fa&?tCxvtoIB5SLcoYug*WmPE`Hw=z*23xT8Fftr`*H zfqI-J45Booil7iIvm%Bv#atSDlJ&U7`n$zSQD4css}Yh=xR(eTvI!02Dgjb~lquEvUarggQY9uv4n z^h(99S&b!U18T>(QyPDymK4eUYVap|*t)0xt8?+P>gU;Y|5TM-2M-L^B`?=wol4Ka z1KnBkM(uPZGs6({Hm5GQGDw=TlzhMZ41OJ$|RO;~5&ifxkNLGI;P=POl;w32V& zuB+5tc04O7I>csGaT5AOLe=s<38&=`f0fIX`l-P>-_D-VClyb zM^w?bA@0BlRlooT+-IF5cNH3MyKj#H4$L?2F<)-G!U0<*q@(!Z6*=gXGv?@IAZBzO z%6xA3{`DC5A-CLV3PS>mB};@{N>LR zwYo_uKZ3D$I(c7%)1=Q%@o0UMZ^O6El4fi?PLR*irRfoAp%?j*#84W9-IBJE%lC)# zu1(ihl0NmvhsnWs+3<^WuNgf$h_P1Htbr(h>K{k)9mHSByDAv^4|%rbpVIsr0nklJ z!0)$JQvEzXTrglh^2x`N*&c70{z=5-J4Yn#Ror*oA(zp5jpSV5f{yeG@Copewhwng zJMwxz-)SP*x;r3wr{S&3%-W75%j;6d4lekRf8%#WV&QO>x^ zz1g1(xO;w+~yC&l}7N6t6Y+~>Yz z&9|@nu4GL3y?~rCatSBX<2rKlzwU-(d$y1eCCTo zr1Q+D-Z+^UUfMG0CeNTL?+uUS5^3+)cvN&JZ^-_ZRMw66E-{pVDW9aqoyjAph(-JR zwc)l+jTV!+!*|hUjxYBZ$LXojxET`X(2HhfJT&(=L(qv}$ec|w44V;$4M4&M_HxNh zFel6pn=BIH{j5G-lIO6XC%IqcRnltWn2pF4i)wj6D!Ao>L0^)A;~S)Vc1}3BcR4@=4OLt#N;qVoEP)o=FWYhtf?Z&M;8g#egevl_d;-C0A4HP8E)%^l39MJ zuO`ndsv9mG^hQl`+#{`9Vmk4NMc`ZiqYia=u2?jbSpSO(sd1bW@{CfEkya=bCp+NT zlr$_^7%zP&vxkQxGm$U#mJZi(z|W`*Y;$>~nqTgO!wWMpx&0MY?r!$9ISWwGq^9(8 zjvqaPvoQT&gk)G1jvp7YFn-Bj$+Qo3riEEJW8;hO)EOOnumI*wqOtrlaiXtja9Z|5 z`g@Q1EcT^!UsV3@{XDdKoudtBsLJYl;FK17!MvNQPfb1k?XUY8no9L11!Iy4d5j-- zOZ$kIK4qQvl-!Zp-lQ(L7j?%mHQ>sPLNG z&^nTwM)Ewjj6j}qIDCkkWbFhpZw14I`0m+3qp^KU04|bW``K?SM)&o@w$=21UNQ1sBzcVY= z*B=0aM$HlAX&4ksr}>TJ5y!mBH(_`0_bM%=bXx4P*Ft7wHuo9r-PQU=0S zYC=2I4)s@OVrbrP>A?aA9Iu&$AE<-iG8Y{5T!^&Ituf%f7dkx3#?FM9n8p0@P-zij zwy(h2+G=`G<>K;~+t~k@z93$U(Ei>zpqPFnyj#vp9DtsyBB4Do5v4=#|EsgnmFnkt zXCI`V!Es3A zd7gW{A@gnN5yd*|Htm9J?gQ(7B;USbD05DtFqiv|$f|KTe;^!9*=M`b=P&&gcYu6H zd+c|D?d>4wle?ui&JVkL24MP+1gPno)sFtaGw6ZSoWIip`hDpi=WMb*9N$}#XL2eT zu^;`gWveqzzepjU)fEl9JECQ~G}OO29~&RBp0?>QyEX-?rM5U8JLQmzV4YUaf6kx`Jb3JcOYNwa zGf2aji4G{XO+(!Ra;~4UwuR|f!r!rKhz%O|%0%BuQFyV!8rMq}@O#BK{*Db|{1!qh zJRLtKFyqED2SQ^NeN|cq45<~`y0uX5PCn`x^Xhf(Xx>9L?XNq%%G3zdt5gZ@Iv&yU zBsbk&5=(<%)|Fnn7RMyb(X81O>Ld1im-ISv2g`mV_Kz-RAECB8`akTV59%}~pW!Vv z_MxNDzHTJ3PoC$Kb6^!4hHb3#s2kqA|3c6>l`~HecdTZCkS5UMh4|19dbW=s$GYXB zY`A56W64kEAUH2W^aBsH_)A@I#7bmy|LNV7xj(P-P@dxmrzxq}Gaw%`dUEb&?#Y&S zYfuzzgGU+}n7e&7Mvbw;)a*>2!8OPYvBXVeL3yrED<__LgA$5Kl~hw+JhVldY)dg@Z#f(V}1w;_v#P^KNRfSK_LiyQiG_BGvoJ{+x4)eP>-nE#Z9=N}b+>J}}!7jS6zSF6xY-Uup!l z&ZSOgw*{2JVOaZ&clFmm9G@Bjf9jM{K2z^Ruen*Q^QA6Xc$4bOOaShgEtlgB`9h}D zGGwe=2V1^UBQ8=AH3azI{LG6%z3LoNCK)cl2CGUxOdBBp;_B1hB8ZvA0;t zZxDw?$HzB@f%KKDe#d~&VHC1`hPBpeMQaC2N7N*-9E z;qNeH-sZj2G!#1DxYOo4c(?|?Z^TW*B;IM=bK!Ks7lGu!h`sr!yVDEX>X0LGc{|z* zcPK5G<7{;R$0s>MdqfJ_3=|kyX$R}fR0NX`Gttu;e}AN*$&yRNXDl!@I0I9A-@-G8 zxmev~0YVx*gu0zM;3tv7%Q2ngHidD{((Z6Q~{nS!B;>>62UyJBZ(cB2-iNtbybB4KWj)9)c36c5p zR)5r?A6~L0`2(fYPW575VY>v}+m(x=v0*S`U!>P}J$^R{!Kqh?7`KSr#le9n;k}`A zLP05a{;A}DMxHqXZDtp?Ctu5G&`ms@;fhRRB7Zto!l9QV_O{Bv*AZ{|Z}SXg0yH~Le3>Vk2roiQz*8NNm{p>*|yjtl*_N3|`<8Ny6Va&CW=O_f?*WM<#q z>UF;SZk^F87Z0@DuSWYDp{gn7oCh7Ke=F6NuG9;GE`5_K9!5yz2kA$?lJCF&I%zHW zZb=oK%^#hRy7GIU$DU)<*SFHZ?$kJt6SM1A0~FMwNAg#4kCHm!;$LF#QS85)499x@ zJ^NZx54G47>%USjc9gtO<^$B%+XT@*f9pZ5lNdxeM@^_~e&ON!T%c6^1!P zqs5hE)HK_I&!@t1_8Yl{NA^R*Gz6VGrD3fo$1)ZBLxXfIGB}3^6MQgzY6fBt+<+%> z{JEnuA?ZJa&Nx@}{*#FhJt|Q%#tC2gFM#{Zo5(n7&(Aai#Y1JxNwI@gXc~&2^LzZ! z9?!Q@Csuw@n#>&4^e^1gmhP9bm^J3iefWW8z3_z|Xc4%N%Pk?;`YHWjy%63AuyFP~cBKzFG#C-jq?UkaRCc%ezSz_1)$@f zoDF9Vt_z*3%mwAXV8F&!n7o>rC-xpaqI;w5pd|9q=^K9mc*#Dx;e;e;C(MS$Y4#>| z$#B~4iv8TZ=lf9S$(jBZ_gA*A#5)X9smUSt#vu(S40F+FFf}RM(S6HXgJSMd-fLw* z$8Z~tU-8Gf^%=M^@BlOpu|I#Ef&I^AX3V(5LY;wY`%1898F>ibnaA{DIX;baMXlxZ z)J^Dw)~DT(+$9NJUWH0;J^aw>CUd~ICP~MRgyG9#`uwcxqw2+3cuBwNb-q;bt<-ZJ zb0ky$*DqpFyax`pQR7bGE8~EKP-b(}*G?-=HEkk20j6+QGGm9T5BuB)QJfQXZmZ0w zcdOb%&Bp!OQeEz1<9K&mSl(XR@s|EWJeNBIM@S7@Q>T1@Z>Qlr=_$E9GHbp)B|afML&T~~%v^c-7@Q5SM}hrTXYa-s>)MU_Abe#l#B{7(u*sv7s}%(DyYhI~|Rt^7G>^ z5s50U4aSOJd^@4S1Cah}}B9ECSU3z9FXUBv|zJ zL>(9Yd(P)dA>^7)J;5w>xw$m;Z5WoN5Sy6ks_L{M8pb`V*V(Tbe-|^DuwUl*Qez4 zj+vy=qrXD81nPS~EL08SoBND-*oBdoRbi`%A<*9`abqh<;XAyKdZEWJ%%%FlYLv3~ z`g%UrU%!c1XX^_? zi94lGKlspV-BK?D4GJ^S!PpC54`twk_bT-3;)Q$NGPvK*!9C`i9FgelUpW%B=X&7# zA8NZgY?FRkc%!Q)GpDxXt0wIxH*XVtI~7lr)y!y|Zc)9?Q{Fqt-r+XL3t}FacL%w+ zn=R5`lBd3{k9<$x9kU-s!!0jdPAQGR&}(Yc_Fg9MHjgGhi`dqjJ#xpV(J1H^gZ8&i z$-A@EaGXjng7Sy*bMo8kB*q{@`=fkj0{vOfF?-$kr~H@SiFv%w!`*+$CETgx|HsG6 z{3?HEUo)Tsv5Kr$^6@)r)GMNIV8b%`^w(%KQIk(r%SB!>Gzx0s%LeldORiW);H-Hf zl2zfVtk5vLcS_<}Y$u(hAKf&b^W8|2dIbbxGqI1DT}LE^+UoTu$xH02g?H>Bht*Dp z`-=gPNBZDx=L{IC=b&(=4~iRSlB42>+;6_f@0f|UiC)ab^`%d0I{M8Uh)0&*SZkAn zwoNWboo;zUBZK)m2GHC;QH|VU8#9yp!|g{JS=& z`WcO_>r&*eOI>k@TICAsn{qIHQvWDTrx_TT-S3a(z zj;Rr~t`{V2$?cf;t=mEI zSEZ5(K*SVr1~qJrA9aEdzBB`IxmD5>YKLzPVct+m zsdS38?gD7OxTVQvLKuN@}J^!Lo=Y({RGk%MxWSs@L1hh)}HR9rtt zB7t>I{IyIOScm(%7-E^fw<`twerzU}vO|)h7*3<-F|oy!<|malI?>p}-SvF`i^^jE zD0Hqteet*(%7`72u*#NhIPKUFIzF{Mt@YE=h$(Z z70r2(Sk8N4V&B7xnmiHDaB9Hs-&MBfGfVvtwJp}~l{Ms(_i7jmJ%<`1)i?^ae(b;F z>I&aO^a18hb=6TFQN+*g3GeaJkj7$r>j;!~rVi^sL$Q}!=nIdit+-uJC^tgzm3tej zz#2m1T@dycBqCzO10`%#0F<5dP)I+dR8U7|c7a%}OO6u8{9kSAAnMngthmhaMZGa; z2+MgTpMLF&2Wjc(bHrJG&^`cFx({ZtvmSWn#4f~qXlf2kf8EF)b&8)Ng=^Ul|f=Eo~y)im_r_wMr5?Z{UDCrlPpxEsg3L}NM&fngm>7ZcvWF}xt zU^mfeP9S0f6LJ1^OOdPTj|c2Y_T_7dPcwWml3x0IcD`0-K4Jg1DFs;#PAe_RMQ?nQ z8Xw2q$|!OeOk1YI@XsbCs6hbcfLNh-p)yPr3fG zuC{R1r(W(vYsGtn8$FoSm~EG!yo(Pi3`WJm>=JgYYxC7Zt&e*o6 zBg7>3x~{~_VK!c5mxt4jpZ;a_rimKNA)3iq!Fugf5p*ONIqTx-yD>#9DG$UIrv%jK zJyG=d-cf>$9K=%yYZt_+C8ywD8P>^4+Hor%Ch zHF>OEzh}-fa zV_R(Muf~*LJ(bCxZfMe;K5p%El$zuNyd*ZWv15_)(vbf4^?3IN-%~c*MxiU`&1v0g zihGw0aYUedZx{0}W{n3H5=muAJ zVKj~SICoH0hwQ~%e{YF82wv!N%QcWK8-bFY~sA&v0^o z-Pu=Mcf-6cY7F?hNf}68L&ODYyb{S{k{`^V@%y8!Vm?AYVz|RHnu((^QTW@R znhT|ea3^jPH=q7p+l|Cx?xHW|Py>F(RD6w$fa9GQ9Pi~IYS@P3_@G!Ud>kN@UDRmg zvk$owD-7-jL%TC`&~~N>(+7cAK>q)N&6%QqQ-4Ge!_5=f;tl)WF~k;oe#sSi2R$+2 z1^2A(OTwx(`ckHn`8L$+F}4bJ<5rXyP}Pl>=A{>y_i{0 zbAYHQiNy6;)E^a$6}>At|EBSr@30VG=SIMbJnG_xzQT<2MSJpiEOKJSIlmC>AV=*< zt#qNgDF|cRaBeJHBx2Y<9NJ7C$c+`E-eOMD1MiiXSFm zukm&fe!vCYj}aqq*dy#VI^iyPV!f>oicZ%Z@r54R?bgXc?d62!YU)iQj|pe;2~Unn z#k((Ogwp^o*q=?slk)T8&Wu3(s!WC2=7cy>CmbKArJ}HGjkvX&-U5y2v6ZAJ(gp_O z>lX50Lk`Qs`1`Lo6NTM#P8f}!8G(%_s{3!KyI+tWkXL<_83(diO(kWWEpAK9V0to5 zaT`nic{h6X^Zni1B@+6I8W&0{l|4J6arFUxy|c7L{@`e26343**g>e~@|?5x_`PeG zFezY$3wyjf^`{A6zSmK)F3Ms=+WN=TDr`` zO8X?XHur=hwG}lzK8v=M#0UMTvlvw=J}~#kk9b<09oxl$+)%Xc&wbI%{-Qr|y&mMR z*!F3myz>r$*5oL3DmE_uQkQx3BdgbWdBQ>YR1X`>C{#m3^PW6|bNAE{^l56?Pia5g z4c*yGC+}IJG)@o4PU`lLJQK>{Z;{B`$vm35&y-7(ndid#SLterj$`?*@to_7XeV~~ zgrg>Vznb+2i>A?GNH-u?c;7^k|1K0w*oUYm+6o`?B#Sw}d@T(T!}mByW(K;WxLon%?&ON)b0&07JD1JAdGiNZTW=o za(Becx8(O;yC&9$*>kT>AIs;DMgL~@u;)H;+LX^C(bEAv$WO5SU9;@{Fc(;~q^9_9 z-Lg6tJTWz$*^aO3mbF+Oh=cqr!lrx?0}bdu5SNVYcMgcOS)uqcB@qW#szl@t`cYh< zuW#}wrKxWSJa}&wjO$x+Lni`T4ppyn*PZ$D;7&HkVx1TKIV7)WWs8ZdbAV$brCBRC z3~s^Rqi3+P(JUPOSE!jcyh>S0AN42fPd3`gN~U%sIu!8^AM;Sj{>!_IJ$7-ThPc)# z938aD3Axc+jP4hP?13?O+p?FKxhxbv9l4LXK#2Ha5I%B#IlawX%stBt(5B>q1bd5l zZTw+O?#Qv8YE({IqHH)te2Rb8(YH`Zmc!BWz8ZGdFDrL$ zFn_ZybuuxZ70*YZSlpZZJzZ__b95-~lY?ror=zeV{&;sccY4c*iNdr1G}WT_(2=R) z*EK&J=1$MZ!9}dP;)Bzi6WgfcMD}n`I4ovgZIUBu{BXtAanum~SSLzOIul!+p zLepraV|)k_$B={d`@PY}HW3IIRlUwfTYJmq&24a;wFQe~5kb}C(y_WE%C)(A`KP{=h#r}+>;28cVoqU{a|df z06%~UbUxLfB46q{AA^Y%^?<*G(D|IXyLwj<;6?K#fy+};SS7S`~Zi@5N2)y0G^Bglt>1`ZNtc00xy@HfG zreWyyOO2q?9Oc4{P;}$W7^JyFN#wqLHaVy{k1r~}E(N0TTFyJizAB}hJL-R-k2;fP z0?C^>X~j&6D1Bi%+Xwx~^&OToQP`Gwpldk2Xv{oCTAC|f>&Iit{uHsp)fvy}Z*aB2 zY7uvVS<*Wba6)6hD0;}udSVYJBF>6CQFd5CUGnF$3NhrOJ$ekIx3cvY(Pts~G0&4> zk*-npdAuhoLQ^1HXp|ir6$rm5p6z=tgk41_v_vwh{%jS^lS1+96mwWC2#?MV#xU;d zZrG?wXGGR{Asy zBWG9*)tp(%=|-Wr!kMwo1hvwhJcm~kxr0i`SIpQ~3 zsAZc)Z$=v(@tpagh9~K%dZw>P3G%>u@_=jE%@C1&Tp`g{#eaB+n4#$mH~N-eIGinh zdpTea_2*8xTg2@Jc6b<>h{zx1LZiPO`pu>;`|nNR6Jw9e9`she|62SS;|!VkK6MuV z6mPUVG0lfsEv=uzlYH#Z$P^qI^H6A(hT`cl;*v+!iq7$T2e}*U*=dM)N1S>VdwWlZ zB&F@@5UlROjIePVj7kPZ;6=OYb?(rpz6?$7oLT3yyUR-_R@#tPqQ>=?uS$DnyTYvr z@8Ou9@-x3MoLHd7>09IEU_n1jzKK`ctL29G!=blU4ex@@vX2Nuz)>~o``?x8oeG8b zYyMe9M`>~?1ecm~*S}(*(!PBN7L29`Lb<1+J2em@o4b*yrOJ>|{%G-pn9b)BWl|3J zmXqo8>-a*6T;z=}#Q(ai(iMqyJy6Rr4$H3_h)$PW@U&?>l6F{$kWJJH63@M0nkZT~ zbimi#1Pof1Cz|xO!%`o5lTAAyd~e%A8k>aZW#`13{`R=mial_~BXRPb6WX6+4UON6 z1%)2y%pPMx+BF&L7 zWf{Mx!<;zlg?BC08xes&m#g<1C%Qi>eOc26HQ7HWPm3wdyKRFxth2seVrlOPSLBgn z^s{AN>69s9c%DID<4fyHU*$%?nQvms^GBsKw}qoK&-T&`eR({0K5dBG4yq9%mnMfI zh`qjLw7@o4WgR+vq6!kk0Q|7h$l zdTzI;UsM7fnq`Z!Vp{|fU$h;=@B0i}IE-MXMNqjYF0iBjB((rq*F^I$C!8ryM!9>X zm^0o3Syt?;7gdOqgaG*R4tY}Jq-Zcc6g&7?485BwMmbQs`jeN#j>V+nr~o}|CbNDwfVu)x4*5S!#WS@-KlitWg84;oxP@iFFEh*ibsv; z0py!g63AY?e>$@W8_q3;R|Ib5GTU@tT*>>0a0D%9Mo#@Xr76?H(6*R!<*0k5`qM&j zh`q;&UB+^sDIt`7(&y*a0@>0(7^)HU!OMOt%c%hfNT$x~bYJDBlOOl=)G#h_S3Gz5 zKwDzI&Ye|C&>Al++Z_w7-P}($aYu()bBl(vk+Q! z?BN?jT|jE0=-9v(IrGWcdzB{w*4g0s0BYj$_K82AY>`gdQioxUc!Yd;TS9OG+pHutsavIdT4llF?^un1`aqtJkI_4QIPz zDC=yM-QH+0^ITS@s`0{J(>RnKOYwXY-xz)|`au7pmP?3d)!#Xys3S3#{c8N^+OjmV zHT~tthg8+QR;qt5m~$9+9XiHxhaW)@oLTRlB>iJ`_?j4n3k0Fz{HQFzR9h9W#2r8fFXKC)V)l!3>%v1;V4VEiQaZf@^A#nDfyA=3A06 z^4oFo>8Km(jO2c4{Bg0lgFm$9F)Oy=b}?&M2;LVZV~*K;vFmpT^6BY$=|hn+qCYcm zsdLzCR4Jb;4ngTlHO3jNlWWc9_x(_HKgQidnzAfL7$@q&q&=Z#i&=ikFOv01YtMpiw-QEw5mP0c2ZF#H;d3%lt{ zTi&{~L z{R#E@DWU7V`TH}Ern#SD%{-SF*7^Ijt;+XYSENlLhqCEoWq)TUVrtCJ)@mZ2?68MF z>-^Gjn0VLT7B3<=8|vDM4%*fjO{{j})kM)L$qGaI(y#T&aaI_Q*{Xx$)O}YJ4^JWI?VwmWoZS9tDbU@PCw@~;I%+q)lC6!zl2U4;bm;XlAWX66 zj?Rd_YD=?f$p&%=G`YhxyuDd=w~WACuj+Lk*~qQ5?q_QZVx42hSClMPZ18|}F1}T} z)ZssFG3)%vQm-`OVkn*yPn{O{u4D)2_jtaE;f3u=FLTGD&6=M)msA>hFcc*_)tK77 zqIBon5S+V8EbLf6xv2hs92Ig+eS_s0ErQUEyVLk1LcZI{A3cd7{yJAzi9X?j^V~0e z)HP5HHhD4EmAj5ffl7gn2h_Yb3O{XBYM8q~J(IcsW~7eMa>Qbdc*G}YiuPG{_)th) zM@bKH@uoFK#wDQJw<%)nI!g?(B?t9zfH19Z3B%#^8EB9pf>`q&yf=nFTq&OC*dcBQ zy$)^`h~zRCbTvuAhN8_P+us+1r=~#b-~!R`Z4i!=k5qD_t+4b8!JfuR*p&TTzQkGk zmJ2zV>$6pVO1MYj{5x!;rK~v8f3I)#I={?!Ep`834HMRRn7d)ANs$fCu+B%iwFf@ls2^_$r)xU*?w9?IxQ&55v4nHIlMs$YjX$JF@ zXJPdE<6gS;`y}PZNjL20J9zlgRz<6cGj7bI_EYbwvNhPATGevtoizDK( zsfJ3jq!-x>zV&A})K>lWjKG8+%x3=g-~akCZt4_MI`AF8U#xSVZp%wo@3X-k*157} zJ$YnnS9D^X--HFq{_E&vM^4r0A&cd{*T`?@n|Lo_uRO0XjGlK z<(FK46E*3q^Y&O>W$uI^yyOgSUC>9VPrUx*AZm+JCo8@Oh>a$4U;4&N*|^RNeeaU{ zQIe{>n@auH1ipjP8v5sxdv};UUi)Gt%+e7DUAZsad{Y_J+ZK;|QkSdxpE$|c#Os(+w zNizOe$BGADj+o`1f_`n2MFP1=Hyqe|Or9^Uy$isW)yc@PKcFm#3npfl#Ejcixi@!o z|7ED0TvJ~)j(uGr>ztf!Em?3^A9kU7o%K(rl%Co$7wQP&CU2gV4$7a4_K)bL^4?nZ zwy;HqbYlN;=j9{B-M(CihU=f2%HgMesLG8-msCAP^9FtPCPicH3`1q|bw9Y)A~)A! zuF{~&4}S$QLMcpHaNG~wQ;B~^WGb1ZzIYuJg$Co+C@qiqz$7pV0q%R1`ShJ09T~+v z{xM|*{kXi#n9~z}Lor$G4%@lW(0K7u@iAj=y9Rezdw(mTgPb6};~T9}S1e}#mbaBY z_8l6FwuV;tX2~r3R;`4|nz`68@;{zaC(+;E492~gFVnZTP!-ICTbl%C0t^)!7S2SC zBlP17GZq^=%z|x)MEq8UF@@6{twX5K-91PI&9TC{Mbvr(4ib;)Mbn!-kJj#&%5Cy2DH5f}tOh zPDIhCv!>X~bFT3*3h-0dGt4|-&(x2 zu!J-94pHofcludkibQYacD2O#0Bc8o-Z~cw%Mg{QXXTBI^uK!a8$_LCZ^%nRVSneac=!T;W^gDq+ABpRbpSp#3B}+$ z??e-8ADpDG?U*r*rIplS=yflI`+mAoVHtDaGxB&o_mOUB_@aVZVE2WwlKn(qyg?{h zJ)I_XCTG5wyrmxEBI(9!A7l;XzLS@Ow8GN|yWY_IT6)x3&@S?|8 z1ilW9l$=g`BCLqopogL)-7_92NoIXGO(l(vcBk$pJqic=Nm975)$QDn z&Dg#=Gg|7F?*{Y!(P*>3mo%WW7aTR|;aim|6)XKw!(D0H4;9iVOLF`+Q==-ln{cz5 zo_g=<*3ScW=a)27SQeT1^qNioGydhxmU* zn7F^W53FA?hQl|C!)E)Sw20bR)2U_4aM#7+v4X=zF4-B9s_%SiPoH>&6pXA zn7GzbXcs@U8x;!88Uv}jFhYN`eJ<=yry2r*OOE-Zm5%LLS<-1Jd@j{BygB zpENC&($eV9J1GM8wX(GN3+MHk+_wxUl^Sps|KvIKNj4mpG)e;TnR(u`W4`q3xjz8=T&N^R z!@BOgduZFjl3)`H++z)_@zY(c+;4$iy~vHZ|54pznJqM!L#jL5iHm=GVat#(jD5RG zoX;~E#{Na#dQj|j)CW1w`Pmj;7a#ZZ#f3AWnA7*CczL@o4s*U$)v1k?Ji-tCHiRPW zRxe5Sf*;cPnS);%NgK)g?aAlz#(9p^d}RQX+2n@>IZL(fftW_k-xgaUrMa0w_)`;# zO}o=2^GnqH5yH@YOpX-$BLoe0gu$$QpOir^<>3z0Qb;b5#%F{9zSK6dEtjtI9-j1p zJ2j=3rSqyV!fh;=P@||K*l1JDN)esdb?Hk{mDV9+DS1T3WnYZ!Z}u zEf4emkAs?X++0eU8~|HhFQ?B^ZlxinJhJ~9Xg2D1K1N|$uGujlO?26x7` z$FvX>o+2jJe!p~>{IP&8St1;>53%Pj^pmqxoGO= z6iFj912N?m_kp@yl`=v?(b$9B{?*zt7dNQA$$n=@TRF*!x!FAm|IE28jNQZe(yF>~ ze!NF4u}`spAJ0Z{+A8&(Kg`dw!>~KIomlzQ77fTvDsGe{ek<_i??{X;?~rKF%NHs9 znbEKBieBq{(UX08^8!t&Pj5fi^5@mfI!d2U_~Caqa>=rXN*7)IF_K@ucAG9`>vLYv zHw-zkc2e@Q04(4$b^abE{W?$VdI`0D{z;LJko(X&oi+U6P1333!Dx0f3?0Kb>u3E^ z)QLQ({l!uW-;X_u!g2NVS?MaDPxda>RFAGp?Wgj*Hz&XS{R8QyA!nFLr5&!kMR7=b}_7C^XGu}!s&-vqB?-<~dhMdQl z>Uw(Tv_7gO2l7s6QWT5q{R8CQm-r6#jD^X*KC%yMRh?bb{(4y{eAxV#|57*3-qvzS zK(PgVrRWK*wMo6Eza@?{o+n#%7k#_i;mt(OP!48_z72fPfwiBtLz%dfxa)hKvBP<9 z#6`b-F^};{h;JcH$YSq5m-p%J-qKSA_c8gkt+R0Z@4`{;#4X z6Xu5;#&b;CdTG>r`u`GBb*d_mE-3$MvrwPe`?6;2O; zy!crV!pYM+-+z)^vXj2vr=!T_7%ktK?2m~>(fFzABdZ>=zdk@eAVo)ccH=;74T?ph zq)zfn{_cmVM^U=QNX{^zmRh@5Y?MdIOA|TgFNng%)@OxNoI7=GT9^O4sX$%g``7{v zikXwwt&r~}ufS;D-QCj`$Pc@^U$ZxJ1b# zc5}y-yBO0oV&opI6T50t$F@zR+_!!xB3-zPaXwhCzm~gak5$+*&r@DHEf^Z1^joR7 zLe_jqEdpwbJ$t=SUPOLxvKBGDHq+!;)9Lr|i=I-7vGNAyy-SZcPi$i-JC+8(H8U3H z9S6v|#3sEDP%~l2WO>PS&bnXlPP}d`*Yds{kih(0eO71}&79h)Zk!LTJX|vTwFR#7 zECm#IDy=E^LL_-aPe&z}7XEa^oIl*@wp>~|WSK7-@$+Uk8B=5OL|owx9^JZK4bUikaDCzr~f zMiSp!KyRR*hvb}of#~8uKOi|@?nqAuhwun|o4-}odKd)HEyR&5H^@UzbN+jdKH!0C zWc@61CjU?`eOj8_ls%2c6#9T9Cdx<8g&>c7kEEk9vJ2mZ_rxuiI7G+>%tf1sot}oD ztZNd8W7J~W`^Z5yZ|RSDphr&6MRKU0FYM^eUA17EJb+qu)#;8aM89Us@%1jtoJIb1FpLN|yBx1tXueL_3=}c@sI4U#i%r+p6St z2*8PS?kcYJm7|EmoN$T81>F_0|4JV$VDmZOLn%>NdN?2LxUW!_!J-G=|gH-x<@C6(S5_;M=@ z4%>Q{PN?){{-hSfk)5TkX11_Va5wNlL}>|qG(I?S*Z6>0saY9k!F+#pdJHaov)l(M z{QkG?x~130kpu5Seb=ByrTN{7w~#{~Qu{$3*47`b1Bg*5@5#m*0XVAS9IDR+`6lOy zRm`RNr$u>FgCJOMq-JJdp*;Ov5MC3b%hP8ZNiH>WA07`#e|a%eU#XP;s3##-7&l20K3t&xpaB4_fkC^0>aW=A3Jt zo@~v0_Ko`jqK&ca%w4B#O_^KV2FkNX^Y=X!i8&>ju$mJFJ?5|fjq{9Ps}k$ai=g|I z80OSLrC%>|#uUOl*)qN~?hp68I&ptw-PF?6T!kxJJqvQsIxL;n$&#vY~wPC%Kae)Yd7}lud8)&pwU7)OGdcM9yuZ995XMMMIt+6^f&6>EU!j zLta7-cGbU}k7sJgrZaf&5X}hLTVKA}H2~WWMdN{cV|g&BS05XLcUIc+!)c)?){ez@ zxxZY|k$!D&WAMy>iY#zuwd!d!)|>T}AN<3bF(wi(9@h$sSv!Pi)s6F*1_y-kX^yb} z$UAbDv25q)iagGy!{>dF0ylW#lP-0k7w(hlvH$jEy|`Z)E%^@!MI!4fxs$b&WJm{V zeqGvqwltesWY73BnK84aR!OYOdQpR6<6^1fWZsAD(Pl35k~W@tf~TJ&8{g z4vm0z!7FJnzyE=8J`?+$+!cP-@6=cKsxNOHPMxz@?$@O?lD9O8!2Pk*8LMh4PuLZP z0h-jFq$ zf=)#YS~i_5Ump>PH|xkvJ>Efn+baU4#Hlo?!L@x9YaZRYajt!FUZHW@6%GHe*4j8w z-S(CPKK@{h@n)o$KbKl(8sTXFX^+@0Dgq;kWA|S5P+VCUflb=nWixChP5r_%&gb&5 zPj9IM-`(DfZKIm;QY>@i)S>jO-?&tIJCR&k(Bu10kQBEo60QH?Ga8dD^`xfnEOOB| zG~Fa!+)VCgSU3z??v(~Lq<3gG>y1|>QjlRZRJtqIzAukQR7r>Y=_fyq zS|2lBNs}MbXMQbrF0{T&D$^(|ZK%TXIL6tWaZTecV(Z3oGm(3`Q@Ps`(M&EU?<}lk z6n5&jlFiCP5b!w)?~>cfhV6o3!yVDzSsmpE^+H&~Ggq(gCASHpj{D0P+;AQx*ZZ!* zsHhke&NGrP^Nv*wkA{xaP#(f}^ci>Ha^!0qDSa(>udc;^-*O8(Y(3H>pNkl0v^Ko^z)*t)zY>yl1-6L$j*4 z)Tc3X9-sZ;O^}Y-M&S?VCcP&vlDx{IFmVEB4ZFOgX3eR|O1`d9WUTanvuNAp#KsS; zkt+X+0Pxu*n`Sdwx>kk0Cuo zz8T7mu8~tfOto?|dz^Ug>-cgPPkltt>KaB5p8wk~{;RqD_rC|u7m15kd7)MPaAaqO zi@*PR=agmlu zCfv>M)rwlvnSRpS4dl6WV15}GE3MeZovHz>O$}B{Coj{>Y&(cvkJa6?lBiQy-8uK|6-F8xA zw&@p1**X~Wsp+}8MFZI>joS5wQJA9BQvO*J1m$k}c=gbe9mi5zl4r&ANq4#WB(djK za^je0|MwnzuiH+Fp$?%g^Milj9`Qw{ zGurX%{(~~bONGQx8NxWD~ zJ~;U>(~e&ewKxZMV5~msJrjd`BGHC9d~M7xF+HDNHv05Lw$YMKKd1I!&v5Lr)Rkf; zMqvxzg+Hmiq;h}yOK?_uq~l2GOL7!uPvbuCgGo~VBJLb73&#}ih0^pK?xv8F@c5*Q zWJ%rV>!-t^pQDn}{HXcXj(hzEX_7AQ!01TUKRdIfw72x>YDYhjTLn_4G4Z7$6(&wT zDdjB+Mx$WnvhKGe3+~`FA5Gnrdv7GI7QyIwjGo;g_2e0h^Y%*W;>I+Pdl18}=obZD zuV<1WePGNls1R}@Nt(dlYX$3p;j6j}#T|%S@b3KIIQOrbDa8bN{dcyPwz(yKq2Jlx zb8awgi5a*)R7=6E7z7JhP9^J+Mx!si1z35%0KzxniCH_5aCJ zD%xErUYkdsCFXGJyc1$e58}Hk7~38<#6iRl^dhKt`r@5;1m;iToHK-68()^aN|d+p8o;a*U^O zuenu&e5q-Fa@a-?&o`B%Z?lLeAB^ID@ntEVb&K;=>e%nNB)!ZeZ*gc8wh4LCVRIE` za7XFlsc}+)z*uJl|7PFVd7o&g zqBa-vK)bOKqUmiF=JUS0bbp$-@-Xq3?(}-QZ6Kx`;cUMzXGX`Gh)!3iYd4s8U)FQ= zPjXm#jb<*LepVgAylBjO@J?c(`lbtg8mBTRYiv;$kqfYo@yz^~p*Ctj&Htsm3&v-v zd+@VrxswC-Hdh@xle=qi)CPJ}q>j&sLT~ozws@_!4P&3d`*Gv7-r}!!)c4>!`}X=W zaVO8_N!D21oi~d|6X@e}JOXO>`(nKgtmRGUVQ^bVYIThqWPYAOlT4)OufZrvjl|PM zzETx2mSaK`0)M1Qhn55*shHY&^RuNhW2m`(I|}8`v!uaZd_H5MpkHsUI~2ZZCw*)hUN=7F)P z;TUvuy0Db_@^?OKX#GV(std8Sv*dx;TL|qPqLBBI+Vtxcf;IcRtK@s=e$x>?uB66i z1Y_PcMe!$+dE#XRmh?7PYxa-8U~lG%15-uuCp`pt-|W*rBYx@^0$V8(S5E3mX-V8i zaHfWy>qMzxL@=&BCl933QmSPRJ3*c22YM5wIDtI(WyFgbR)|yb_^!O9pV7mqYA4<^ z7jE-Bd^HwRzj629uP)ASy|_q9Hs`)A&u}B-q0-C@awZw)gdOL_1J2|UFehJ5vlhdd z|KBhVOkQ_QJvfWLmwbLdRydW!r>Fpdx!N{F5ysv3q0_0a`@4bglh5TTYvXwfCkg-5 zkEGuz^Y*TA!F>?5?!Ab!6>SoN9U?I_iXIkyi-a!4kyxBbZ`lu(!Whmpn(yb%%f4#C zygp}f7x_+V{S+z?1s~QMefDXR3l;UBUrBd|`Z&ZsY^oi-vrqpJ#6`>-hlnp}-4Wg~ zuIQnHo7+}lKjYlLK!q#XHLQm$^pe$Y zS^KM)SF@InRy+(;p$+e;27%f_Z^qnaK{z&ba}_L@PkdOj#n#&@)I8yg$d_LqIww># z=dN}InhF z@X2}pd#}ADcI427o~h95zE>}oz8B4`{8841adVz0p5s|)&G%=wVQ;l2W2RdMcxW( z!^{cCg9-~_qYv+2p4+ey+l8WaJpVqd{odaay6|17&)9zX+7MdzRQSG`{ovZJ=%*Qp zl}Ew>!_m0SUZ$L}O_)9lmcG=ef5$jCwnNl))(;`?>^&jUI)mIYU8FEh@<0)J^nu`}L( z=k8TaeQB39G0e8?^usJnL38}6>oF|Qlvu-7_rbfFhoGFK#wjg!i+Ib+^8a<^`_koGwF1MS#@ z#8`=iy!#Tzv!>dYQ2f}I`_^+=52p_jK1^Z`bfDgvcAlU=m9q`U#mhK>#^2FA;@J-UfqaZ6)#he+8`1gh{s+# zx(WAKlNVSKJ2l;d%vRi!$f7sr;^Vmfku}d9V%<;5Fx*##C&N|9F{;3tw#;w5KhmC^ zN1HLkxjS=jWzlJLDJR}?I+7mLB{<|7f(&v>E5v+i<`PGmL2qp8Ek6C=4-<0djBf?N zpWO0#)bg@d&cvBR0hpT?18wu6^w|i;h*IJLeIxOZ+6$f7YrRScLgRJZVdw8zygEx- z{(+hdOY8Cq5_5aVy{Wr$hL}c^1sT$+TJ9=-;k?g6Pg)o452-!-!Ea8Y!4B?CvVJ(6 zpJZgob30%$d+pOxg#qJKXyr)^B(X?n-=Dis3HtR7LQOtLuS44 zeKySaTz*%v_c`m0e(cxmezTsrmxQ*P`M&g^Uc~6l7`cUkr@ zK&_Y}e*fiS{3hlf!`?h#_WO@PUrvjDOcwX zku_|+5y)JzCOJo%+t&s2KT+Qxq?c5f%XgUlh~BgiF)E+61Z(k!_pcd+kyC%nmNj{a zh2T7hnt?&o$(?sj7{#;Hjx|G{KCRJ^xiO}Yd_|0fXB!pvUk=A$+hw@knfD{_wL8p- zo;-sSnR_RH%|eqgDqJGYY5gM~6Zw5_?zQbbuEvEv^hw?ufhnsmBWW0)BXR!22@i4h z1OFGqs;0liB;Jkj?9-m^{f;ziVi&~C8d=s;Ubq;Fuu{GQed{SLs)%Wm$CVuV4S}2d z;WsK87NO6vVww+reWka>$IGa)@ANuS~v|SR!zvt>G@4JH6dE=B5RnT{)r{PdrA-XB|n`3y#9lR>c zc|m>tt*n{)bU-NI>5Nj=)gLC}=2}okewa1YTX|pV6t}?lfl(Jz48~eGAPS#8Frud!G0WC2M?l z;sT3qHB#0uCI=^wK3RXXl+_x+nBA4$MRS@d$8+YM$liJ7%f`yR8@=&9fi>HVddiZu z?zk(&piKWcD(Jr{U!+#+{xdM3u2Wr3&0~nFQ04~i4~Bg~{~;l;CpO)$NK+Z|ClE^m z*xTRIQck27_O{NffjwF&hs1jG?;#dZ)mo`N-yQ$NN2BqyR!WDF&M+qSH&$Cq+0(=U zjc>%D;hjI|)6X7SePfY6{3UX<>~Z@~4F2753%*AkFl#<_+oCU^-B5S#1Fo zk#IDZ+ihq|rbh@Y`9URaz8!{5xoDLl6Z+Yw6a;ov3Cv&@g9 z;xx~1Z|+2FJdZ@yz3!}6rZsth2j1bh)tJ7&6Fxw#$2||$%^lvOCgBcl5sS z_r3q?iM;)@F8W@fuW3KVFhhatt;C7hyM0(~gO?lV$(hR;F1Zx`YI;*M?<_pH1_s>G zjAL%vVX*^w$?P48r)VuW4p(wa_Wjkn@TkC;R;+2us8woGg%01SHA;+cSk5~ns{GKK z?{!a24duBJ-l*(COkPJz>0QWk_?g;k+HIB9elGMaq8HeJPRd~JWk}?fcgWONiY=X> z;I6UNw9ZPGdrn9`5({lXN10U59g9Yhqi*^WmDE2G+kUC6iJ=q`4=#$KME|E5zTbu44qmG|ANrp<(Vlc)`IliE{9(gppUoQ>DxJC$}r zc>Fv9`pm=Sh0W3LU<6*e@Ql7Ognj}2C->8P<>yR{x=AkW7tTbefw3WgbJscK3vu?D z$=>DN2^F??T#HYGIUiHfzw*~Ec#y|uSQ!ca3YhsR2szR8r*pW16Bz-BpFqud?`mSr zzL?vI9)*R!p+_C~3eHb+e48m}F7d!8?zf)jc|O4WJY{AaB8PNShE=+8FE$REhr20@ zCb;9|zbg=_Vo2H2`^|{ZZcL zlzJn1uQ6usb>h5A*IBl{WXCxM{qG8HN|XB9<0|8vb}mo~jrM@DH_uaA8_DxnIQ^8k zv(qJ4Ol7^`l*-z;NJ})=jzA@I>yT+-#(yz}tUH_qi0yvvUd@$*8XPxN(~ zr>Fes?+rJr7|6z&%G^)BgcYh_CODMi<(MLR1hw?X8=i zC%$l&$6U9gt~F;CC+0h&zUP8xKS(PWrf(URRpTj zi22KoqH-9yDo6RXrl?-0iool8oW)cX8gKg)!I?X~wbFhoKAJGsa+Wvvysglv3v1p$ z=7m*Tg+8qDI?42&E~pfmu*X@aMNhIRn&|SG`+_Uk*WJ@c%4lklK45;IBH*uA^7v(u z=;m$BUW|9hC-%-O$W6Hz40FytvgP#{Z$NG>cVN3!9Yk)qA7)MFZq)HhSX|%(Rrgq& zGkJqwgS@f#E%{ov8z|kmUwkhz4zuTIE3K&e-JH5fKfdTHW7hj%hhZGLUe!^$bo51w zB=U|b>nVRu^@I8TNHpn?ji+~f@sPNLu(ezmZS6;oX2!aeh8Rq~#Gf5? z9n_5T$o2Q6K-dF}^Yt#VlDgc3J9pF{Za73*RZX6kJD-L7JMkc~FWXh*&v(uiUFSwn z3zYcMpz&e~@7^h_-_m~^R6De1zsozUe!;?VXV|AN;eF|^eLzt(Lj^Va)6Xvqg^}i* zrfVHU_BR@{J^#d^eshCT^^Lo#R3lQv;#47CK=cT|QJVVS}Q<3w`$df@)+DpuP?N`+J3(JsD6Pi$q1y?*7frt5ZJ{3` z??>XmwM}?f&KlW-IM3N@g85l;KjNqvajQ^0d_e#L8`jMm6PLTnv5)LFFGMsv7gW>CWhHCQS5z^ zcimI=hSB511onUd%qcfo-cWa6MGR_k1jaZ2Tyo2u+Awj<1-FMQ>}RPUTqPgi^gG3g z1>AG(MVw-hnQ-$gwbF_G*>2k)_$msKsn%$7#UCw?MI&lZ0{Yte;_d1f%&xx!zn6Gpwtp-hoIZsJeJ||e-fN!O zBkCJ@VZw9nV;0oH?1(q~M#Lkcq@gm3o_&3D;^2O-fpSz6f7ZG&XruKKR~q|cH|K-L zeyzpFmVVexT*)u*uJE>-A7d4OnH|TgCy<9ze6((y_qTMD|5V%IKI6P2j9Nhd*kcFd zTyil*daB_`ZziMJ2ck$PLQej|3VbIBu7OpAb_nsY9zePSf>$okJ& zGuuRqqlriQw`Y%>Y9e+gHnMvrv5Skp)Rz{LE0n?aVS%&y&M3|q*|&T>P-AqPy0^b)r+J_E;Jl-Ay0EAPXT`h8w|A)&bRUM`Hfy<<(b_m48Hj6b zqj8t7;{Nr1D18!*PyXDYY3qY3p2N@$^yK*JiDldqd=q&PkEn+$$MFouU&MU+Dc|WD zk7jPq>6z_~Q;zX?_T&>za$no^N*vPOe!^#B9U}+F;>P`(*vGvS*@XMH2huPx*$+ZF zH7<_d6!wy*=lCW7ZPx8CFHXLXf+xzTHv{k3=g5AkPy1ZGO)S{R=b0~*tZ_a(K4FXoDR z#7=j2jDT};lz1hZ*bei{jnJv$ZUy7d9#1R3nP}UQxaB*>+#_3EPCUK~v5x^QvWuhm z>@p6j@WFVGqL%;8a^lp@4nSDfjar5k+!MUJSr|b*u~Xhrxb^#u@QpkEgN>t6p4J1q zmiPi~s5gFW4or@F;T>y?ZhQvcS9?JHFcw8Sw_tykJEoPz;dbj{d_3TR(Tl08W?PB7 zXT7kEIP0I6Rn&~}BNiPGO`|GQ-1DbKdMu;^C;3kJV=yr&tct=->S$fkWo`QLoN$%6 ztrsz=sg>a+bNUfWdFENC-e_s)E~me@gGM9P55uda0vmg@V$5R`&%*(o88@x$-mv9PKk&6q+$$FdZEMJcudVX ziPcGdm}C+U{T3%-@W~$^*T>>#?OqJp?2nz~Gz@C(gm=BDH{wd4sZ$4q76f5B>q`o z%bIv;ia3J!oQ1c?CpX~k0%QGR_;7LQ%Lojzi0!k52?^xTu8u}$m)F9l(Ozim!x$G<^o5_DDJ*#r4F467p8E`$A7<nSX# zEjD3b6vDJx2y?6a5zRU2lwVOoL;Bw=Eu)WK%d^6y^&Y6*5rakZnj-fMajSK)=-6rq z+7F=DLn^(_brwQ1m9u95c>L7}asKLxS1sv@9GigHe>}<8PQW;WG^}dM+W1gBF~($= z^9;w-#zN&&gA*bWPfDSB0~ztyjFy6@4Rk&RLh7I2tc@C(dcWGmy~B zO3d8N`kHyU)_j0Ca18ImL~0FL-d7j(rXCwH{quSQ)g4nqkhFuChEYR>?a@H=Hz$Y5 z^0Ok>*bgn4cPFi}6&5e>!Vzk`jLgj!@YoH~ofuTFuVxM4f|@I_c;(X;OVXTh`&=A% zWQJqgbSLB-j>j~YnbeARMdBoChkmtT@5x=!c=`%8b%g6_UmU#`k5QG&5HivqPW|KX zqFjl7SE=8^9CfzuHzC(I2wgd2_-JP+%;Kz1_d+N(^t4icd>aOjXLWH=BR3EE>mNH9 zG0rXKzLX68=&`~$UvbWqMp6s$7~|~UVxbhjl-xysVn=$tr8Df|tk{RYb7>&WWz5RX za~J-f8)Dvj;y?A6hl>it;0c^9Gj{FTq>GxYGR&2CVYA40xS0GpDRV7iP8ycwBm5x=B+TI&=I#9#iK=POQha& z#H5;dn8kFbZk-Dn#{Bi2A3~0a2PPLMAm+<3bkOld+tvxtz1Ii21%9jnt-V)+dT|_7jeW$r-pBtNy!d^1aHh&Ux;m@{mh4?J=5h{@(7T zbUM%;pBU%#25Y2VL7wPo__vQXm#XYJXC}X*>5(py3-jyL9L`6Ee-eA|=j@TaqN123 z-W{IV2IQho&k&y*lDEU0K04P%Y|6Pn0q@RZc74Q;8zQjg9{Z5tkJSOp<$X=a&AJ() zmRZZRW{qK{=UdWd3-`-8BlLKzsklIGge6btX?<*)!X(}g`qUzrmfS%2hx?570cF%{ zJrwX#c%O%==Zv9j62zN)u(*#Uv@l7zE?}J%G65uxcjn zm0mKYg%gDRbAz!^i)WxTRPmKq#A$)tplAWUiRIQM`ZV z@BRw$j@U(FMhDh-6FKu(*G$~fiCSohoLRTspw8j<_Vdnj-+rKEBYT~sf5_zxx^G$laOLbGkl(JC??JGVy(Z+FEv_pvJXzcP zjK-IDN(EMs<1sms9JSTP``KSy<(cj*pZPD&H@N5dzqn|)j+;EA=>k}a)IkcUlG2|o z#meK{&2)&BF1`Feu3cKr5Gl};9LNR4;*vj#S6Sb+j3n16np*1xoMjMW+BkQfxP>`m z#z)rA9iFNCtcbv;5fMll(@1@S_3}^l+8fGl8NXwHr+yZJ3xU~+D`SYS&R5}er(cRD z_S_vLUSv_$ML0(8@nCzNVV8lz#qr$XYDX^C+R=jN8Tvk4i^2x2u|j=gPn_M!^E`K; zaOs8%dT?esuTvMHl-|?Y+>Htnn+dxeSK!@7_I>q!DlDfjhYf4vMH?O|gfi-QY)`;w zucwOkM^@tZ9Qq*dzNYB1jlQM1iSRnUUC}Yy2g_O~V(ULAj5;)9PM#Kz!g1Tw-)#cW z)ISETK4hp}XLC;>HxeT|bS}}nz}eta&N>~A{}<<<)pg^%@mU+`;ZYmpGk3>i?+~>f z*vl^5fOKOsbi=`JoZ;S9P}*3;PgPK zTEybl{NCa~?#kt`&YWshTrxd|Jsk67=NSe6#o2Ir-FbIk-HD3!7WR1Yo;$^ns}&QL z+hfih-j^0lguSfu&$VN&-ft!7@T{iu99wI~3(W`7f}A!;61~ljK|&&HC$i@JhHkiaC1|zkXCJd}5tq{fGNgk&V#kd>C%Js_?d`Irckp z7vmNAmwj8J{>>naiX`80ZZk|f;*SZ$F)SxH#3EN8YGkbjX~3Wdj!2EE0MZ07Bf4mg!jW&AnhQvL+=_2mox1#{WSZIs|AYjYwe+|;(fOd zio2pC8dM~rvP@N6OkJjlUP<^huCdzG(ih<-NjSFWm)c@r5X>qQ&?nemOllI0N2iHP z8!N<{E^>K#U<~N?u6HcowPOR{NHu0j8W3|H9PA>Se zB?d1CUlI(m9MOxtn~}{1Va4I)aNQn<;qRsk_rKcV-{bMf87C_4Z?c1MGXVx~dMV;2 zI>6^Xy{BJf7PnaMf`a2oC_J~Z#Q&HNz3S-k9lA%YKQ0(2_a>rby@hx&HU!N#$6<}T zfoPRXoKPnk)76U=I`_iR=>umO5!3#Q^Nt&J~-m3g=v4{{6*Zi z?=nzW;_QK~#5$TwX@U{4-$ZBf|6LCXKliZKCXRGNO~8fCULGhiF|MKu2|$i3^kJ;>OcGAEq9Th{9ym`eH0dT2*o%j6%M@^j~oqp);}jd zY@G=vR5;OkIlPa?VSIg+5Tegs>{2}B&y9qZTWs04Cg4cDD22zd<*;j- zgg!W6{JWbowzWw{S#*7cKKUh90m(QrS+Arc`ACJ^>CMzbM_j|5{T|zifn5BcHYcZd zhdP=*2nQAB=Jc7FLe9Na;(u}0x?MNUHaBM}f=Aio=k)XW~Yc2k#ln?gVj z59pF_u=!B7(9td&FBz`}uTKlzIag`MyY+_lTOn`;^ECTzQD}yyX5{7*Kb<*7A4W>{ zI^(H#(RLWx5odeAe(&=GC1mdV&*XWo{WA+mU3lNQvF3|ijESs8lWNH4cw&R_Qfjla z2W;478Sc9I;?aaCj0#(fSWhpMH>Q8bZ!@f(<_>GlSkt6&*xAz=!u1#|7^)Aa%?_w{ zhyI(czl9FT_Pi_N@Nv&E;e)p=9=A)tBCq8_<_;TFOiqNstgeE#yFH#TSIB9ViZ-KG zVp3i*<__&3Ok@9k#5n~A)@ch`cY-kKPcl*$=Nh-a!t>Za5zl&R88^=kLDpUF!)Emp ze7TEJ!g)ly%me?$xwN)!oHs9;tr$GO9=rafzF(J0#f-Oh$k@nP%>0?cn>*x+FrN(T zyH_|ej94jSoxT31uwW>;hsnIdwCY2LGcFC09FGwCWpgjw@hj`S<%2o%=kAzM1Qs7Q zL1QQCTBStb==FIJ3(2|qM(?eQ%kgebFzzuw?;Gfcr+tE;_ldntCvt1v_#cdbK;-Ld&98qsVBB~=By;o2QRi$tBDUR16|}-^Fz`*XS3J#9g7%g+ev)!=0SNwLf%B7|nQo zv?8DROSQ0<@r)q`F{GdwS_jb^`6%axLwjP<_%O_?;qzFgzyQvCuM8)~cWNG%UZ!7I z40nqEb;SD~ArNaK@P+zQZFevabB=O&MjW;+pm)^=;vn5p(5ZnxR<5OXXm%P_{_uv& zBJQBwN=MOb;#%Bu>oqF{?Hjm3gFWEq7-IbuE76(y443MAV6e#wOrJ!}t|R{-p1I;3 zaSUXbd<~*1|!a0tM8`bsfHo?M25lNjI+wphU5V9Gfs>~!Q8X|#rZV( zk^fsiU-6u(2x)CkjD%W4;uD4IaXZ`%rk;bVjj*2F5`p{ma!sk=u_p|hEa=VQ_eoeA z%KRP99h1Dacunr*N!EPJz6``)O^k)r+?nb#4KJv7@w6ZLMeXcR(LNL&L7ZE~lh?K} z7^|P~oWCN@&ik&C^VWl}R%7()0OY^q>`=J@YpLULmvfUzv$Aou)(e{!N5RT`EBR+0 z2p=5{^^q+&0axsxUTC4odi3hC61fv%aY`o*8$y=DkG)&xS1yPywUVsqIR?H^jNNL7RnF8Iu67V!bfAA6ITI~?%7r}MUu)+w&Kb2rA@yTsu?HWMrH2+C zp_rA&oV;Qrgg^8JyUU$or+={ZL?UZUGfLM<*_#PMQ{S=Qv>(n&0yx_1yQ);S_skC9Vz3Yxf6W|k)|$q zZXAPUmiu8j+7X79^eNc46BWDd(L9T|oZeimDYW;bpiiJDT%)b=BR35*OVVKPv;u2?t-|qf2XV*39a{#j!Fl%!&{!UT zlU>#zkc% zLA0d)^Fb$JXq6lKZlVvu^$Nkg9`8xha16E9!1z6(IKmq5SHCXECkJ&dG13iV$Dukn z1ozp8=!GxDbZRm*=N$I3?2D7>!Emu8SEd(zpdXN9e1ce0_bh174ZsRxVn^27iRqHh zbB_GTM+FF`p4CrsmDjr;$Gm7ySWl0FQPWatx4Xe$WHkI1oWfccXLu>ednrDFbF9ro zrtl;G}bhqAwO)yBu6r?U*9ofD{Qu^-)AFU2SJdT%FeM{ujfI5RsLFLJkV*K{$) zjZ6hxw!%(aLe5n>7Ccg;bgM0{^vu9nzvno(lU}ZxSx}4hm1T##{`wf8^w(WfP4&gM z7U}4AYYK+i`=P)x23Es!)Xz@_U^KCV|IHgMjSLjwKke|H_srolPZd91>GM9FS~?ah zg-L(!nz%6d?yL~b7E%*^GHc?)8t64W6knH9pS(j??wW@nHia0}T_Z#_rd9**#K0#O zFrpq;{lA>LzJYM1hQ=t?cwXBQk=-s39A3gPV?DCSE$n1K%(PiPK2VoNEKtF((@`uS z&#;X{N6nvII0H~e|(>AK=#?`S+ty9zPOiCBFM7B9GtYl;PdYJ@j621 z*rI6#^|8IK;$4Lmw267PAASkB5sT5`Q6i%1orUF(MKIfyj2SWKkW#z|Cy%9~pT`v_ ze^}s!;VM>m?=k+d74{Ix4R^2!cs%h#+$R|^AW_9Yk84p$h#Pz#|0-5OO^(~{i%+qs-f}c`jfLBxSJa}i!G^1G z=ridps*ILm|FQ&J(|L!=;})>dNy4&Q@38sX0<8a$jJA!xV)(EH=rk$~E%P*#H*@&? z7po9^Sw|Ut!4j)dGx5M=sPglMWq9^yJvpF)vIr|+V7L+06-UvTzEsEJlQG5A60bNz z_gWPVw{jn~-Yn*{^ty5O`t;Oz#A`b&T1O3({ELcLlk8C5ov}4vBn+A8hBNcY7i=L3 z8wKiev9>E~_C#&39{OQPCHKxg=A)ayK6f#><3^m*QPXC3GwxBWI)|q8 z6}|P8`zk$eBPz%RQIDe_Wj#m2XGi!oBG0qOC;U!f&A%uXxjw()*K-*zUWlXKoTl>b zo5e72OF;duO_Y0jEQ0qKdK`~wuCzEe51oxt@IzNe**j@2vUjGTrj@>Oe)e1p-m@CV zFO5`MJzjwBPqXm-@f_tI$HlnWWE0+Kj8yiyWrf7a>##l4o8BPy2<#h&KVvlolLM|u zrM5=F#?>Vw?=Q#Qz`AkXd??rWl!iUZ;;F4|TBO*2&<>T2s0;UWy6|iYd5q+vh}8## zX@2B6_6|pvw@-vAYsm{5%XxZ5b9@S>K7l!T70df#iZge$J;>2rHVJ|axnmp258Gi& zy>`a?I`JsZyu((7p^|gM`iFC<#1p>VscDhd1I$72J-G}s$-~p{jUu!EKSGvX-3L1ZnoquW?|uQR-1w)}VYn9vIf(ORXI~nWo@orv;cZpFV4@F=#!fbMf184v6Px z6U$765btHM%&dD4R&5A3de~$IRGeW9*7a4yK3R_QznF`?TML)+y|9)!q{cKI)T2Evb5Z^l# zj&=KuaCbBL9^b?9$8jz`5tHu9d05SMS7`9>3F6s)ORb`JuAGN+US9rsH6G}2XWAqZ zk5tabjI;uDHRXU#Xg71(u{ycF^vq+Nt=9+tJI}GaKyN0 zGiqrLtb3lj>zS1dj9CtsurMSy{b)RW?Q)oX52Y^l9)($;7ydP*)=zC`VeGO9RB*;` zwrqxA#2$KgXMWC{Ai=Mgeli2e7ww!Sbbd`P^d$Nn95^6Ya`wHFefk&m1wr6E&fNt>5KN0sAs}?mc|<+oC&9P2xqeE zbHl7IsZ z4nU)s3ihE%SheRA4tFE2#=6%jy$X+;kZ)g*j)S|up>=ESVP$1tp}Cgw@*{c*ug=1< z4?4=`Cc$`?unw=ankx%a0{gsf zpe9NMckue&Q2gMG<_vqr@k8qiMU3$m_S?BP^@Pr8tU-utG(I~_FeY~Qad0@ydzcCd z?4?&*b06HyQFu!1zdz4t-*1t^pGVYKB9{I1T85CWaH8G|yaXhcjLIl4b=*<1f^cLv8mbzb`V&L?#C%nkpaX21_%TFd? zsvdP(_9S454*hLDaEI?=68;=dz-c$?XYy<(m~Te{b(;%zq+^#w8Qwn%gyHH8c#OOY z>o(NeG|58wox2!lPOn>aCd#g+VFbB$=cXq^i2Z+Dy>(QT+xI;TC>DqfDh8rrqF^g< z77AFX7>IO-bRPN~;vB$2Q4~c*!bWUV6wclcwt`}SB1+gDm|(v1et-Xbc<&f@3@#TD z*0Z0r*P3gtIq%|Ui=wZE&{o)BW@6wCUm)yX{cl}oYip(u{GDjGEx11Zx60%PoT&bg zlm^aEDVu%Phn8Vi!Qa8cP3`&g<+-%@_xyv*`T zEL~K^eR_0W*(daVN}b`quz!Bp?LqKF#@%`-%dD*Ma6B0-!@IM^une2+w0 zz{DJ9!3AepNv*S}^EU}a-^8wR%nFeQc8BAPQb|daFABXLOV2R-_P_UBbpBp6wcELx z*6$fYy2~T!K=N960IZ-@8zV@6e>$BJu$MJaOd&cMWW7I|PP9f**2Ybgs=kB19Ymj1 zy@~#uwxM)Gc;w}-rAG;eMdQHN*jWb5p>dAM-44L?-nYd!Y<~tS;%7V1*u}t{s|*!S zd>tqg{quI`xr)|vp76YulBsTn;?)f?&FloPrRB#JG!?$6Z=u6H{H`MOOcWis1TARx zUGa1-o&|cCnb}>LxF(w3VxHP+uER!p#85+_l$Iz>WFIik>0OCEs4o_bNzo6ggU1YA z?sk)~gO`{<#j}0b)v`F6potoCMldtM&zl0wD*s6s+ub#u8gYmIEeK>Tz2eCm+>t)s zE131BIQT$ff<{8T3qHjM~Q46nmGeRZ2TVM^OuQ(@yAg5FJhvQ-d=w zkXhSA4!6Qd-Ea*B_4*M7kr;1JZs@BcHU=na z1$)ZdjkrDBp>X)+L5DohSBL*lgpUyuL!6hzYcq@Ekz|0or^w8R4FHcK5#0KB2OU{- z9Xy_nz_ZLNfqj!ilNY|vFT0IwnMMp{;~kkgX*X*{ep^@}rPb$)S^M^})TEX`12ZqP zZ+l}gpG3bezQ>;T0e?yZbDR%PStxdaH%r0WG5g2_@V8yjV;*_-m3ha&vl4yf*YzLR zRQ%Zk;7We@(ZFn1#ZVvclb7BX*g2fTDGhS;{u@~rgGdT9OQk=uv8-Y%_=;E3Xz`K< zGosgq(ahM@6u5J`=xZ_jeC^j#JG*?*y*1%9&n=z4SU@inoaYFo4OC)XE!qRkx4FmH z(~=FDqTN$tDQnGY>a>4@$N}1kk5MQ5trM99qo=r#-F80svtpwnAGKvLdhM@D8x+4^ z+QG{J8s-Np6qCn!(CYwj+CGkC8@5EycElv!+=l%yizMkM>3_8Y+tdUc{yOx8XJoU< z8>6W8n3TkykF)AU;7UOYU1D6p_I!gTD$cV>%2O6J3;K14^I^~5%mj0{mM#g@r@0H) zS`6UrY4sifreX0%-lcd@V}2@|F6gQ`#GA&42z@P-@wBjVZfEEV##q2_`BEi zd6f+3DlVDI6Gn2ih0zomCWF3=Hc!KOSiTXui)Y*OUhrQySD!+obt~EP?O_x(2fHU1 z6WO!Q*r8}#Me8DK6~FI>P?v1@z{Vahs%Z?P-fruF!<3p>6u@gwYnTd?g%?tw zfVSR?#)d^RbJ;Nk%XEeexpS0uAt);4i(NIEA}2?3k=dA(aRHc`^&3;m{5hrG943 z3xcTvUP}f8jxk@|U~2ljnhb4InItEaq+x4mZH+0re+U}sz1ES`V~t|R+!!);T0=Ji zQcP;4QPkWYyWUPSMRRvWl15`Zk;zDt*Sq7%$D%DCX=L;P#mez^G|UIO>%Y$`Lg(1g z#&YnNUaK>gA8yoNDy2~q!&#~#oNj3V>xkLGjL(YcFX9||sf;B_z&S&l+Z}0Sf0n_E z4d;1Pi85aRZgwT&+@V8n-n2KG*g?d(ogR1i98FosGcU8I@n-Ch#w#PvCoH*I&sf^# z1aG)+jy%~cmI~j&(=*+V2b_)hzaBs0a1@u>#L(3m#Qa_&AAL8Pxz>Tphd|qK zI%Wh-i99J&Oof^<`mGnqQx=8OTpc;pZFT3%?}d=9Sqj;@S#pDSK~%RMJpV!C`L<1g zH1J~@Y1;PYo3{qi2=~>rAgDd>i#;B%wQHy$>;Zc_DuNcBSVMXic1#7knYHua$J8#? zI1aulDYInIuh141u7-Z*uULAqRLkTN_y&*T+VU8epE$0VJJpW*2H>pPS1MjFwW9?% zZx8hbu?4-|sU-#azdKejds#SrK%D*G9%1S^V$wyNN5@yQjp31W6L}-f>laI!fp-OQ zK3>*?mwtqA3-WW!Vm-cOGjxgfOUY^53~tzjed>$AN;0f?j(rT7|AKb#KTmG(3mjL} zA-1)Vd}Lt^4FH~=Wh&$8N-=a2cxkx1pzduy;cCjPVThPhB zGnVO3aHp5+P%~ZH!ZvS%h7#iZ&6l(N+r-rKla#ikykfD?f_{VZX)wDpzcm7$?8xom zdV_iG^C+5wdc!_{GC#U0nw}x%Hjgd&SHxMtp}qgoog28upzgpNqAr>jrNz)R%rgIa zr}B`oG4u)Z<1GOjcurh2O~XAt*k>EJMb2{q*ZLam;oS(R61b4h7VfeOTm`# zMhTViyQh7ryWJ`Z4v6K8pyNmNt0>{v5+0!u0xV?}bvXT&Z90zqtY32Ku=BHG-}Z1i zD~I2o$0?Kb=rI$QMv>dV+s5KT?9}&a%je%bN>J<;+0n=F1RDPQl_D?Djxz5_>4Nff z_Gz&@b;`sYSDwfIVGr~sYOvoLH(1I+F{z;5aNF9#UgA7Aqpst;CodTazb(`iCkBq@ z+Ha%iBXscRkC?>==0}rhE@o-H?fIIo@Ul58rG0xt`2khrXUt<(709{CFw}ci(Bj^` zfy*yOQ~iBt7(L47k=>)o8F=jRX9c{V8L`Fgz<$L+9&9Zp8yjfn<{sv|z+2w04o+{{ zF<#{zLi;f<$n!hORm}n^od1b++qv#(KT6R+k25r$e_0YpPS;b(@SrvieTn%m^d&3@y0W~QFsi`W zyAWe!@}@#e68u{{d8@Im9rRL?+wNQajK8F)ooPopQSj3geNm`N?a1?y6n+-7Sa^s# zZQUj%^|*s9{&P5$qBbadcb~nk6qC_w#BHAn*MerU>jliKjQaDl;!@anOZ5|45apcmyp8o^Cv+6Y3(3pf>%W=k{xgP3CqqC>GlNeSazbq}$Q=$5QG$eLnlK!JV$+ zOt!W^#vbe7EKemu@>s6` z+VT{+I=-6U9^gx^RWe$9=mCG<(VMDo$f@yQJ?|s;z%EJ(byj`MyDHr2(xy~$HGa$| zIC#(j=)j-Ks^+zsUZk`a-g*AV_`Ve@sr)^3-yX*D9L*pS^@7IA`S&brC47#0#zSXd zmBQaaOpbHI$>-QEqrfw<)amMf+{FL>`G0x^2J0&o(s_2kH^EahS7N(%*ue`3`PSWv zd0-ZQy#RW?LB%Y{629T+sTa|6mheYR=bpf$C!-5DKy6u5CZ%4fL-{g4)EjwHIuc{T za~7Zvv;5>jb^l zR%Ich(Uo4D0UyKrGtaAWr-t{?Qp>I4l3;IIZG=67>g_xQ-1X{MXfBR+g$J* za3+0TW--UJVRR5ULWaJ;_E|*G@?t4{%*Q>r8@OT&w29Ys<`JXCw9MkadT%hVtU?W- z1uu_BQ+Pgnd~8}Il$pAS8)b>169b)|aX$RuVli#+A*DIdiF^_G#*e0=hLNZ9C&MGi zWIO8f8{7GS;qcA_u5t0`0bZ9ILO!jis~?``S5t#%S~Rp_KVRgbjef+@kMB_2<&jr? z=tE-??eF%K+b4Nac?os|Y(8^!4>vO01?|zLO2UEn&g2j-CrjTBf`6Pd-N%e(SY>Bn z(_3fq#q7!Sr;6}Kwsic2_cjW+@x@h z0~-OqzYRUY$#Yl0xm@2^vZ`x)p1Wk`DEMPrI)gZOI(16n*UOGH5oZ%a4K`2eM!K7& z6s9L;V`bn%KaW z_vL#s{|m1E-TtWUvop9an0|0QTm-1^MnQ%+~Rk$?K0=X>`CP^BUEtGhb!t!qQ*3$T^k*%?gU zSxjl|BdB6;iIGYmu(h{=ZSqEsnlwekLtDCoIM*sN6^A?6(Qo7gOVJa>LT5LcjJ#TZ z#gv7DqoRq=>)#J&X24$J4@>EwMJDs@7eV>KQrfD2gaxgRAXA*leOs=x1zKV{)gE3) z?Oro~Co$zTNl43Dl?MnBG^7!}YzA69Aqe#t;-52iG`|F&tb^*%4gXBs4twrbF^}A} z(w66s4W*8M!I`KEgXUW>yszOiVz-K0CI!M51@nT+Y(DXaFYWvXOuMLvm$ZWCT#SAG zbLG6}2@ld)mrS91Yq{2OSF#lYr_TAvgY2AX@KQNFQdSZ8ODCHB9omk4x(K$G&UDKG z`Q&IPVGVbsp;ge|oc5cyyzqoxDLj?l-Q>>41L$IC5-oZm<~K3B>}?5ehPuNnu;6hT!hvZ%2&X50cox-3?5s%y?Jxjd*K;egKs?{W3&7Rm2-}LE zA)rP=x`(c@A=o*Mye*+kuV1kH?IK9>5WW#J+VLUKBvC?cIlwjf*}O1PTOy@dmHJ$3 ze+VtY`?cuHY;He3n2u)w1F!YuN3mC8J_}sf&vL#y&XdlANUSus-JrzKsir|}4Dd(koah|`%Q-$7THtJmjJv}ML z4)9^)r{Y+eaj0!wxB2Nz1+TKD7Q{Jjx1nO-M_UpQ=OrKF6}m&+;7cr}=t(yf3qFR@ zvwA5>3;rq8J;TWg{oOB}eylPZT8_ZApXE+shTovyGFnP({8Dx*FoMp0k&yGNaQ0|d z1bx3Qp;@*Ym{D^$WnGj|+^&5rXLC5cuYi9{D`!39!)fU=37N{Du)d?hC}sxyjf4(- z?(h)0jQ+G>{UDx#`POpOMM@uy_~az)m4N5h?Cj2^U%{VI~O$Yjl}`v(gZ&J%eDO9$q?F`A)!U}waok>&J{S9 z29r)1=f=g7!<@GJ-G!5M6du=YsWa-0asQMQ^Pj;R5pjC7-AoR*c~PJHjk=8Q&drjXDl%VbuCI;|M{cR$?nSjS_blrd~WMU5S8&h1UaH@=cx?JZ4?VP9;8cJ0yFZkMxjx?tddgdic!j`v=6fi4= z)bdq@9(gV_;t_Zw(JI0pT~C^ge&_SP$NYF<0G;lJotgz1yg>+o#;KGZ%b&B@s}a-) z?Bhs%pz)aGSSp8p&HvVQ`raxEr%Sff4{W+{FQ4W~3`Deb9rRa_1Tr%{8Y)TErO_ z@q?Z``nVql+-M5;PKgdX`K)|r3L1{PETN2NhB=Z_S2_74*70a%N6aaqB|Yc|SJ*pJ z@ib`Bv?vP$wc$C7{*l)!3Ae9%(4|^vLB>7iM%x3>$3qLdawCtpfmk9AFT`(Iad8CQ zE{dWrde)`ct7GZo+qQ9TU3a^zP_U&@i1XyvPG#$F*-{kZ+#}wm%;KIa%|V>wkNK7* zgoe_#S}9#uT2!Wn9sg|f(b2AR%j(~U(GPpvclVc;9oG-1nf;M-*87ziuMMZ)_1K$I z$}Nl91>IxBbACq+MHlp{R|_OGGT&B_Yad2_yOBf2Z&OInTWJjJ_oUOn zJ?eV9@LpZqNJAeQR*%woh_W+P_Lk9Z&m%mi&Vh3OK-aG84W5Vj(Td}8(*5y7JKCw7uigBmXFgmdUv7H}fybQWG=lTFg`j%x}1r6TrweX-C zk!3t|emFhdFClrEx^YQ-7^P>!`*nUosc&m24cjK6+BZ36?aqdh`#zlQ-rkB+b3>@E zSwb_Gzf|NK1d)Cu&hyWy>;`JrWbFj<30udy&GVzWpYZ?9sAg)+o0N8gQzGicSL}ml z;$rNayIOE>UsqZ<7`h&d6M2oj6TMZ%nOvU7M~WQi_Xqd~d}dt#B0Q1z$mvL8J=fQC zpnP5UO~ilTzp9-m?7E!Z?ElO&F`G_*1)Su=eSXh5fZoP{w_m-MH$M)cm6%Nk+Kp`6 z`UvvO!rZY^stDbV`WgEM|C=`&cchlhDgo~hac<4qQ0l>L!Q+!s_o%$HUkY7mFyj2> z+7qLmqeJO@4Q5sQ#l|||7Dnwrt}Z=poP@d0Ics?GW<52QpqD8?-_g~mlgaU4Vbu4o zgfwD%n)GT7Bd2`i-aj9Wjr77OaU)`wv)}m1&QN-rj=D~-m+{SIq4Wmv_bxwI)=(Er zQ=Uq|DcY)VKNd)icnpGk7DO58B4L#?rNHU9l}WBF;)$UZt1M*pe0E{M2*uxkFoBX?Hqe zXqIQB3m@JM)xhoN%`;ZGhSAAvDZLrI)p#kiB6}>A(#V4sjC)GM$U_5j0q=Ll-_L~6 znVax_4f|(&3+I3P4)Anm-ZoCW8%nfBLY;PRG!C2CrXDS` zatfw3co$k;tX3@152P3e@G8c(D%4{AvCl50z48StP1Bcr(6cf|oLnrI-?6=OO*%dkY;(bOrlF3o%4F=rje=FQb_7r#MwQ^qE>W>{n@EcBs@T@l>^z{um z72EeRwde@)>lQ=Tq~{ce(04E0*EY_s9p{yeI&MoLh_l9^!=*Qm*^(vV{L=SgX={or zO-GzX9jZ!8--W=J8$7MZA*I78jD`Zo>zG$EecZ$_dSfM}_JWqt7mG03rY5C%lf_0c z&~tf#T29Skx{)Pt@{BAAl|R~E+9@@Z8f6mN_Q4t?s+o{KKBKJ{>r4 zW)u6q!i^3XK@(41lMiX{OdPtL=AmZ5i|i>5`!5&UMRJ1#{Eomq7Ej6K?wYpLW4#=l ziXy&8ZcAq94HG_=@ekS#RFf;G^A;DmmAV^w;vQt8<9x_5#Ca$5XNwo}sgFYF);I7a z+?-h)u)2}GVo1YwrJ}53EX@W-|9|s_<$<|n+DB|jjyQ)c)-8)K{C{x{oSRnGBzC1H z;QU)yd4giL z33f@Yz(3l3iDHv(7#VLu4DFK@uT0=UFO`t~^E`!batL;s;Box%g5tAk2t^?N_jUd# ztXzV~63=MGnc+-#WB}ctk7sw-n!Oq6M;VCoWau8`d;3uLJK*Z+oMNHJJ;-tcFueya z*d#|+I$@kdgV*)s8_qjYDr&GH+EaP=a65|r0o^cFSDrUy1+_LoNB5VEXBXJehRyH; z61H(~trfHqdq!XC_VOQB>}b*!c(m*|#JA|W(woaNXm9M`s^Hq)fZ6@EUh z@c%&%_%B$IcNWj?HqPy@jf!*a!l?K^%yWB@!lyozR2RYY$0wmQrz7TEuiq%n zApTA0N7|q0$lRWXf+GzdH5$n5o`+B;@X?PypTrsmVQ)QBLbA(?nCrG+%1VF-QbG`u zybh#@OYjl&Si>Av`ja}|7pqsf%znBrRkniT9&?uYxqH*lhv4McJzyC!cS_BIzM0Ek zCP{OK#&r@6Ebh%mR@hS$=2;sH^!ZZ%6*RwxjHr4ZSG{Eo{R8Nbhk0??dTZ*4{BX%U zkq`YgVftRK);R{Or=on_}(=964F-ZtXauaCx zhz65!$QyqT!Z#v&l_=t143)dIjdOiNQEAvzb^}DjX9rDc!4{$hKn^f8dD(yO+z@y)D=a z#`&CPBxXnFhS9xo5;D2Ej(L0urSwPfG}kDPIpkpvG&7!h-Y;g~Mun2Sb38SBU1yzK zLg>9kJWY3d%&s5D&NcXLDuY_stu8^dY*jqHO6kZyet?F!Dr!Zeo_y@jmGm9Y)X1Pe zpId=_7|e9?l?U^m3KxnmOCU434*zl5jF~cPx@jk zCcV;J(UP=43i0uyPAR&kB@5zdkEKJKyb&6Cvoy5}VvFz3JQDaS_+Bc!hDkq%(w=tsnFlsA{mY@WusWV(SsnOJ zJLu*q;_2JaK72aPKMC=)W#};8%`=2{f?s&7&XDUF2h$vpgoLdkZgVM+bZ$r}YQS8+ zqr{(jqUIm#H;*^jucYHr?2$Fk>9OnRY_kk9ltqYl8Zhp9HZ}_3uV>dmCEao;b z4Ag1x=_In&Dq#I{mXql#Xe?+)v8ztD)B${WwW(s(ZG|iOOW^NVZNs83_|YTaY@S*T zOm#*C>Q-oA36n&lo50)p)fTVo)Bjs3TWwD_-9JFYf%RU5bBS+-cJ# z;KK(7uom=jQSHDhcy7sFctlVS~{_ZXWGj;nST zc+=Ajwi}#;Lc~G-<}I_vGb+eL?cvgaFRXx;rJID#e%0a^Tf(Vj8a~fQ^Pv+XXxbp; z=My3xhWY&WeiHh6ei{FH8@l0Rk@GwGaZ3X+y|9tc2cJY<5+a6nfrRYjYk7DA{6NP^ z>1Nz!K0{SZ1y_N0U?wnOCH6i=P3M58Th_t~>7-?2Dc6 zMDp{W&dt^%|AWh#<=m4iihW4=1bDG~T9|>0KkXR}Z#+-MZK;?t51N-ZoA`SI<59I18Z>F)o zw$RqY=c`ge+4k%R8utx8^-DK1oAd~>;HU#19cSlkG22R$Qc(15<~KQlgvFS%SbSkJ zJd64vxGT@7@m0%F&wrOtR`0=_QX}XgFb&lQ6S?{W@Qq85tH;de<7SDex)3{BQ{DMO z%nN+cOTIIR=X;?y)dBh8rv5svjlG+!Hxk+%v4bbV7b9Y z^vVR9U*49FG$piqnU0b@?aziLe~5*mZx;vhp9uayOO3+ohdW(Hz54$6GIlm4oMNWI z(_OxX^}PjceNDuCMj^X%4}6B#;CFVbWF1dLkXIQns6n4tV{QcP!a1K~p~k&RBj{@o z&isYJ+zGhWImAD8_hjzXAA7Ac;D^zEA)g&DrV}`aGc>&Uq%UF`G#+(MOd{{IK9V}k z1g`RBJvX$*Y}Xy{OZG0_&KUl=xQjj0j`DhQ@K>AAA61ugwb)o1gE`~u!fI{+oyOOX z6R7gg3qJEqJmszcZ#d@*KXLh9R^gyZ{%DJs zatF$2$fsOxI4z8p|Au}-pexUwf;(lqoB|AO`Tp2QDhLBM@~DJw{TxTL!3nNtIxAXv z5?<~1+VbnVIrb~l?rl%gcOz~_PKqx59cad!1j=y#s3`A)o!q_&6nZd#?J5ta1K^bU zeBaK-^$^pgNeL7Z#MnPQ%nG~1$9&K;HoBXbzP>}B*rNl_R>PdV61e?RZC(wI>!M=R zf$t3YYw#+^1AB@7Igj5tB&HJ7hhaG${Ev1d-9_9&{z&=H+(X-mx3s;31Bk$7Lxr-unt4AdaWfAu_5tP%HAy zLocq^mX~XuIjBscZ%^Sx;I^#_Q*;^UKpFN4)J?A)<5NAT_XPL}txIC5`6h~bj6}~h zyO8%k3myV~ww-57c}!Let=pAA#=mcH&*)fs39MtdUlUha5JwK!d+OiR` z{M9zjv5o`FoGt9B7<-!42FZ%YMhzNgvN zbz&NeuQ52*$gZ5iOlk!^$ z6Fw9C%wgCw&r(wo&V7ub2<)hocIqztJRVE`!cjjw))Ce$jsu1V{kQZ9!aR6(M@@#t zi=Me)a|!(FOVAp7wnSKA7)NU(;1PA+LQr%EH+blO9&b~G*Whp0!Vg6@dzf%6Ig(6) zbrd-E5L#b~Y3Jxv+VfULsGAJ#D>#r3P5yCP9|@H$hG+fZXS`{Qge=y|XwS$GB6%A6 zr_{E5{`T&@%U%LM`N81NG&oSO^jk?!&`aJkbQ0VZ0krBjVw-Lw?0ObMM}e!4{+y5X5h$?EU<=cSlwtd^0U-FH!D1m3Os zwsG#|rcyQ}!k(62#a>lIkMdin*$ys&2H@#U<%ie$QabM6^!`5Op72xXgxY?Bh{|XE z7E?B6zKzvG%Oy+UCq6!j;@@^FpQ0kBB7N}ss+GzcF)#Z%Hi;5Dz7cw&zRDa2oxx7` zg?%1kT7y6Pb>(Hj5V}%VCSecAu|!B-97&yLKufx;Nbtt9=xBzWtIoTHFQ=mDHE_-W zFSiS6(5-Ff3D262n}ul$!5u{%JAcG_;a{IvvcODm<=a)lYQ(wdF0{Y<$%PVd``?3i zxAVJ12rYp=TRdj6p<%+7D>x_EI}!{$h4%fR(Rx}&f95O|BEkPr*&(O?A`_usKj1<; z&>QX>DLlo;%iziTWtFzjc?7S?o#EH1 z)^-o5WI|`Q7oVyC#rq4IXv{riMiJsFWwp0gjAGj`jO`!6q7 z$L!D837Xp7CX`PE|NJ6&ZXVKp<%T?hPNL`io7l0O-eNw8`ak{Q7r}Ta>IW<6`BXFr zO54Qr7+=G$-4ME|M3UMH)TlLF7@ZzTwa(BnHZ2wwfe+b;8tMMpLO~aM-x@K{m$xkt z4kJH%r6*C4^$x)%2psPN&;l~vA{@|*rT5?xc%RxJbO**>_BV+l!qx~+!3+8heZ0x9 z<$}jF>?Xo9eL|2Rw2z|fx6np=;vnol89^%Gh9z#DEeOxT=+TuF za(-ecOoDHq2K1K_+6@;LkBp{roiutHF-XXI4?gD9RFYl)z#}hX&glUC?L{i&gj{Pe zv2C3DPKhbC-e^zP>X3&+2bS00i=qPXBAVV5l^?m}L2AIh-rr3vA9oSjv;IkRH`=z` zacu;348WNQo?O1K1bd+?q4VB2pnTiQ2wLHd?ViV7$}jd7lLbBw5C177E)+vYHi@cI zp9xE`=dv1q*4O8baB@~8d53}{*Z+cGbw83eM?s7G<0&B_4w~T!N!036DAX)MeY+ak za2@l6ty(d333>ya-4rE!?ixp@ z^q}F}>LFBa!pu$zPn|j|;ellg%>Z}zjH|J5z&DCwjv(eQM+!^P`z!-Sx^S_U&>h^T zDtOs6{ZbP`P?vTIN~PKJx(T<&Am=otQuK8#p_3Noz`vlq+3=lfF)4H`;DcNGPqYd3 zueL+mI2#)dIG4K9p1wcD+^uYQdB#v^z=pyr^Kg3k^ZBUH`ysZ=t;+wlLWg7&V)A@& zxuJF}HE7`skNhVD;{E-DdwkT$TSDD!%xyknM`KozFazAhoJMF>UELs@d=U-*Oyp;q zFu}+a+La3A;U+8LA@G(H$Dx^deX^k89!r^p;Jx_h3gbt|(ddKFOJCbtum^u_Eqb)p zC2GP6^yrnC1CG$`AY28ueYG0ii2Ch?CxPJXVE1#Eb9>=6dhUl);2pBRgYaq>YCt@r z^&>kA-7ud#&>@-TKUWjBjEE=6A>d0MU4_B7W9XP1{vh4D3ib|Bv?c|f;`6!+mEg9? zwxm#gV-MknCS(xFH2vvcGupROI9-GKy{aD(b42 zK*?!sN?v2koMw#&7j}jV$y_h{YmVB5xxR67zXQ<}E z$D>CH$Gv%!Cvqe7#8-^*eLiLIP|pPNvVvav<$Qh!yD5F}PIV7D$u(lJ*PH}?*WOFq z{~7co3lhn+M=dwRJz#-n_pR;?pBsj|5%TCvCUAK&qg{|*fq1e%_ig}lM;4g zBYvy!Dd?Xn5!?O213CYKXE6w8%y}9gcQuKAj!2|}-^;k-W)d}^&s`u6;UgX-(Se!Z zC4NtZsW9$O+_|SGXYrrlA*!Pek+$sR`=HU-8Sx$Hc$#bOf;Lqq>ft_DxbIEqkDi1c zQ|o;`pfQL#duNT7*tp)Gc>rTa96P)Q6~aQIi0_ZJe+N5Ru61sK{8!SfXS z4P@{^xHCe~>Mx;?+*DG()?0|$lRzf(Qs_rr9iIw3Dfvz^S+Bn$N=D3|f{XRPIREX_ zQuc5z@)pkMa(^$@KVM88+9U2`vYGEq>|o(+mG!*K66U5*xCV3y)LPjs^qT8%h9Cdv z&I56WeAI@{*H%652yWE+Venv{X~Mf2!&iD7bWxsJ^E0F1pEd($R2s;mHD#m;+$?>K zj7$2Rx|#Mb6I zcL~K@6nSGz)&t%d{lTAh(0(*~#e?1_)4he*t^NC*t9l{+2l0#tsR;2Cp?i<>{B}tv z!3&(AdG*O8ecx5s&>RQtHSq4@dkI;n8+QYXUOlnDZ~-;X{rnWV?KniJc@#yy)~Ph2 z*D&G5={VYMn@X`e)P)9+(6E-#`D4muq#| zkb64;xBiRWkUfvst6gGx`Ue>4?h2M-m_Ri+&-p(a*bs0@BG4nOne~n>gb&XleEf5& z5?`YyqmB5OZC2-#aLxzdL{@z~(F8o9Vv>fqHz10fm9Z~cC_kJDjF6VRG;l9Gxs1M)3b$cYkcP^2>R&D1o zos&riIqiz>e%`2o-R0N;oc-NUJ8Hb9pyY}bQ0;~89l#U#T}5hOn$(}^F{-& z#5`wXD)iM)f8f?LVo~G3fAj4>{#-qZinQV1n9^Bjk)hXyM*ZzfQGA5yfdDuVqDdY=)M{aY+uI_|j(ef5xJm3-iZ=C}f17}JrP-9bIlBazPZ=)vCuQ#^oJ zg(4K_e6Uus@6^am8oUef@E6=gs0*RFi3eF1#imF5x;#$y929 zp1QpUAA!$*wt)XfyC|-C6kdcOz~5e`@=v%A{~QMXxqdURnwCggdL&Wy&OLk%?$Afu z;h&LshTCTX53$1c>U)EK!roR1-mAsqp7FACVp4p;%w<&zAA+5Q(=vG87yad@24U|T zoZiHud;E4dJmV1Oo*h>4Q^zE<1@-F6*e;^fukbS+^#60AujM`FxLA#OY+b`5%4Bp4vAVjXoM~bfG#mMOhsJ64VHLdT z`$ESc{uqk|Z{iB_iQBs)?Cr-S(jJ^h!`+Xu85dF8B3An+7qjyxP=Dz`-+RP4W`z5y z+i2|D_c_lhI5gzPVTZAVSzHu&1{sFyZ0uHZX$z`H?BcwH-rKmHs` z1uNiRYqg!{)}OI-zDK0lJ=v2v1_+~rzfF%;t~r^}AVxoQUq z`G89{aq2=oRxY8)@z6qaP&H8ir&))2-2a|uK|@)nnFCHGVjHw3g)fbU2GoxPIyZ0v z|J987Hr~@`L)!CwhvoDcbx0n+$>yDq(InI!4nOv@a~)92;O=YgvX13Quop5EzCta5 z%n`haQ|Qefk6y^mJjS~`4)1Tv1UBn5;($A`<@i80Z#VP;r^EkolREQ9uPimi{XOTe zV#47h8aWp^$K|!+D9-<2+?8RaO^W7cm?Jp>+r0f;k&BP7217@sW2<7=cj$+up@w7w zS$IBTi@WmVxUuBlN-D-J8NMH>1}^oY(Hm<$IorDJvB3^Uj0ZCLEqME1*IBI-PF~iHE-y{AX8n z<*g>*4=SODy1HGl^%=OyN89$@W5*8^t{^{^AkG)g$g9N6nMwwyvg`{Ch#+yvu;l^OkCC_Q9khDNBf?bL}X(|;f`AF zla{ECA#Vr46K>Nq(JFkOQ0#h->%3GHT#fIU3Eh(*Pti%l{J|0E0-tjd1tZQ{s6%cH zH52uokGz38UnlgFNoW5=@)6@1B&43(g;~VwPpJ8wX0V@0@H0ieD<53L3T8*sg=I4O z(odi7D8;^px}3h&tmIRN0n1$jzwk5}_kiB%Z+GZJ?ziKMG({7i6GGv_C<(VyWvV+d`=WnI}GZ+M`fuHa^)72;n>6ljJ#pk!zw!`ZQ1 z2&^gOyUB9&bNdj_gRSPGNy*SVM?CvDr-+PzwLd{T6Zh>Cy^~@77LT~~x*~dr=hAl_ zw5MyIiH0MeY{*5PvHT};y@Waqc=FKSU1%BNUvM8eB(@vn;n^+k41d$WZnP71$4{K$ zB?p!00nYws!Nw!1`fgfVP<15>W~&kEvUzg_YP7B=<)yabvm81kCiHk>Er@A zjVb8MRjR_t>57~@C!2GLHqJSC2$h`%@Tl9dw01gj_>I4cc82lvvkFaGmlL(JC}DRS(QpK(^LPxm$1i{5wVV$>>&`-rZBUti(~&6DSGqS6$+ zTfXp9NIfE&7KDBx3b}e>y{O6yyMU?4QKU*U0-=`)o`B9~ZK~SRcr-q{(qTq!RB{R-~Cz0k-xG!1zJ&+n6~6O9dkP9*Y| zxtawXUkBa|&crnLK4d#6j;3~pH+^HiXx{|vYu^I4S<|s}>78&Iy;e>i2JU4g@cC+O zmqG^OE?je9I9<90UQOyHR{A)GW`)UUN$o4+{DpBe<}2{Gyszx`8YzwM+&0epEJKC= zp6x&MCiN~Kc!`A=esc+=zj*^s$6WCrY6->h@q9Gin{Q+AzK7jq=4mogOod*tjWt{N z5L{q$cq7f$RjgT<3}1#snqPR| z5&gu9wTR)%KBQrV*>Vn^m-YneVU7O&SR$p3Ttw5N;A?sXxmU@TmLj+Oc#NK%u)*<A`g$NS6nm=rWIr0+3kFo-5eH5 zHNWLFEndXbO0fI913rDfRYVz6z{N$JUyUBgqir!4O=+vY5wj~*C?5)cbHrK2s=e@d z3a~-M+4*)3Z(I$2fd=pjGZTI{5&Im-4^z54VmWa#nu2>jG-fW#twNoQoX}8_SQ>&n zf7~IFj%?Huh2#D@?T7wOo+nD)gt#EKcS~Q1&bh$v5qTi{k0w(QEuU+Z%2RPPB^dmzwbErB5{q#u09olzw$h#JJ zHhtXAP|i%;`S|-LSqik}H-45z)ab_<#XN`S>3sNGKRHfocg2(54ft61-bzPIFndBT zWaQ#Z;}XCt9xA6}TFoN8w?Sl7C8xf6c_!;N2T-C3bWO)=F$>FJYQ&!SmFlZyFM%r- z?FP?3V5;c+UwEwCK!2C(&A+N3&O6)A2ZhYdf_8uSEh5gcpdLcy2r+#F)-h^s5m!OK zliMA6px%vgsk{Q)VM?yfkCqftSl|&^wFEjC)OlHiI`}zQaaTasmA= zazc*Ac~N8{_(5ynFH+i>N*18Tz`3=0WI*PqgKSY7xT~+AZ#ux_5ZkVpmzECzwu;!+ z4&O+shQLa3Zfo;*(~eod`Gx~)y>g1YfMNVZ{;gVig*5Rl1WR$Y$JNjfmJ-8Rm;J$u4$D@}?$r*jb;W!7Lvl4f# zNg^d2{>Gkq$f)ZgXfVdlW=&^+C%B+TOCDunp$8A`P~@3e@uK&q5L-EPo~1P>6Z9x2Q%tlV>U4c3seMSU4zr_tSOcgj1>hF-{?`arn=Y(ebx6(H%SqOcFsmQ}4 zKGKo%aipDW8Pc?Rb{8 zjMe~`*f?r2Yj-G_Hm^*iPC83XhW3Ll6zYVFch-tV97K-HKz*hCMKseL82o;GUUM|L zqgN>4c)u>&(rV;@$#uXtfQ3AIk7x1&dHYi~b;nt5k2r=FAER~e@UaQ<@2D%}@B!MT zD{;q-tf#~HbMugw{dYIhmp#A*Yk*yA|D~rfm~Hk>Cc|VU)9#o-n*fuF8})28$8VT^~yoFxA5c-IS zXK%#rN-6vvDsX?||CxQ?O>w3037G)CO0P1q$JsY`gwCKwHD%asG}bu zKP;H|he9?d(3F-WD!-s&>T(c%5aYnXs8=@4+#5~N&d{(s`xSfG;qV(rfBv|MY>NY_ z4t2lY-0P%XwUV|c$tYa;7`@E%BnNHGxWlt3QQ}U?m|@xfjwH)V;J+c}`8`I^yAm&G z{-S>neFSn&{rSJ-I=BVY4Jhu>{ zUq#RY;D)m%zv9-d5(?CU-er$f{Q7k4Bv}FfP43Gtj+D_UPsHNJR=%+5&8RhBGs=9rj@u4dv?V0n7om+ zypWs6Lbt@CkOoY|y=?<5V(JC@rvhK!Rd_ai9)Wj^_v}3C=DnY2=}_$8{!5~?yMM@W zc^qw=l1v?|l}x3$n|k^u)A~(6srh6mmE|HQR=ua4RsLl04*ciAk4bs0HzhiukIT4A z8~?bGJ9bY-MqPp?s58w$PwjN21p4t#REyrs&7^=j_i(0_PIB7z!GlT%xRK~rGChba z7v(NnN$t_2Ird2swd);5Y$UW=y7>!ri(+W*;I{la{ir&j^$^}aoac(>alV?e2K!0G!)|>eI56~*ZednvH$J1-E!xRLaXUFwy+93D@ra>e3)CJ>ytCMJY z0b)3AqsS@`GYy8j?0Y-X#kpJ3kVq*%XOP)T)X&OE)EpR0e|3^+Dr$zp`x(@TIo>YB zHhKO*nrw?W;oN5AK=U~TJu$GnpIP^*H_qv>zVI4&@RI!TJ(wrv*Rp0(8;yFn2%mTV zLTS*MN$e;?5B`A~ltRhXT}GoPydg=wFU@}mFDLVtbX4v^d(!0ee9&_mp5{#Y{ZeSA z<1^qd4)j_EFDGyK#%^<<&$jTt`+b8tsW{OOAz)SYpcm%pHstzLBG8~kM+eIg6yN?CGv7rOnXP&X&~ z*qB03hPN}Vv~r?vd$1F9LdBGAaG^`+hkqJArS9L{X)x+4&wlVGoa{rlisR|X{ZhrK zRp4yjhwq5TVtx>uOc&L*=XuD>7NIcKld{kc&VB1Ce1ev;?w15o6?GCG{sos0asKzJ zkpGy7{>~2Ct>+y1DL>R!;pi7ub>NdXqwZP{f2;4QZ2k%C;}&8raA~H(?g4P-Yw$=u zsUbQJJgqAcKYR~h-Q{yKgJ6oxc+By{(5*AK+md zkcY30G^a3p4RcH;%J8DI#>g{Qp@Z}Wv#4&sgr>r;sR>TWtP&mFvAIlVRLY&vVMH!0BXluW)(kJtMGr;n#7!$#3P>=o{ah33vU6@GAZ zFiqEO8|RR^R&Xag=`!N1cW$Ln+0UB_5a&bs8p0T86r4t!g9a#gLohfp4yf@?$hi~F zZIc)nX|fS_Lmn8n3HVZXWpKHZDd;Hf%F%n-c$~Y=RnR529M66u$6ojX9BIf9MRO_q z22lqOl^2+Jsmmx}9`3;{W}@23GO|HGGqNUIGyrpBHRSZ~>9<7_SIB6(2KxCc9jF0$ zR}_*=2mU{y#KOS9PVB^lvj^-h5Gm>I&O>)Af`N%52DVth*$)i9_aO$+IY`m zG1NX4Jr_|2FDMS{m7B1YT!=mGS({CjvHhC|bauw0JmwC%Hm9#mw*=%A|A5stJNVlr zVC2EZ`l??xXxu&lj~}(vf7ICy5uf64|8En0PikoI@Zx!Xbqz}DSq*1zS(>K>y-gnY zndyi60o&v^+@W`V1bBXt$LF+#)+AoM9$P0l<#F8zWP9RXKedir6<#hTzSw5 zo>kVy4;v}ujrC#?)PvaX)_j%vY-*OzV-Mo9Om8}SpWdnL>oi^~0xV;(@-i{gdyAxd zF|ioJyLRE(jZ#~kSe%NXZp?!!$$lMusH@4{>d*?Wi2?5A>`?#eI2;^J-zv2g@6MRu&e`9Tw=kGzj}r1>+I?5k z9}{9r41pT3&Q0~TqwMgsUp!(TG}K=`#0i@G-WBJras5D>~WoO-qX#!Y}^<}{A8S;PHj`xb)7FF80VW~&WjHP(b&P7 zdE>|BVkGlr*I?d*`i^3pZVV!GShI~EA=(769w0_B&{SRYJ51c;25Yj|>v9F-(c(9K z+N{>e8pAk~WsQ+E$x_w~kHtlkX#DNoKu#nc>BgGdxbH}nG5fRC_t@w39IQB15Q`10 zGn|`iNKJUQujO#o7#S;dUQ1urwy_vkQZAW>Gp|r9=F!yV7}}b1PHJ&KnWI3&`cPbX z69<=BffzC{0DITPA7hx=%A!iP1GTwB(S-M%X~6>6 zvtQf7eCygg1!|W)u`M$J&D{!d#hTh3O%l=O?|C%bXOHnnJDqR(&0d$jrJM7{A?G+uuk?&a?2{)Rk*zLOwye39|iAL~EXlqxx6-4|I~9|@Vi z%4~Pq;{oIRp`}-u-+V{RVVomf+Lu*7_Jw|jD0s=YMAuuKOIQ-ajm#HU2FJiLl<)71 z5f`J_1Frn%X|+%|ma~>V9L2tBxaicF`cHR>b*$7Bt0wSuL*93jYUCGuzR$6io8xs; z9(z8P`#Rja(c35cb4C=loq5(PUDmir-AeX%&)d%BK1(chsOY2I`I)L|?^xvVduaSU zP_lA5_Za3<1F*+8MJfBBPfy9g*sxT({F3|}_Hk}qK1+)XLYTLyQ@3ISl$F$@=$wEF z`o75S?THE36L8vP6`rZN;DjOlH+7C6Ai*BP=y@7c=L$Y{vZLoPJuDhjK`p=@8y>~O z*|Y*xna()O=gM`(KJ1dY2tv?1(_dIZvZwnVp&+)-ldmb?=I;Z^$cTobN8!CRQ;IXRrq}X_h1&@(i!f zCH|~yBgXJvI$uJ*P`V_{*)xW4zA!t#m-x(jR&L68UTZEq){~o|M~_(T?{fMl&U1Zv zw%1;l2YzAidx&>p_Fj3Qh(&;U3^~3T@`?Od)OC(Qn`u+zl%~Yg@3W`#DOR1+V2|U$ zID0o#xUe73q0Ym4TLbCc4<+nRvv)hCk{)snrA&)Q)upyDATKd*A#?AUdFVUW1FhOp zSKlfDMGnq*u_6&e25rKN;r85rp$|*VVa_;hp-26?(!)32y8)Qaa=J`#`w9420jHqS7lVoE845T|aM|^1H0Mn12uB+#83=RXdA%>_>OX zQJ7LZMKqoq3m4)SpJopd>xnzQ(I7_AsJ-~Y{4kKU+@C=WM6*Vm&nt=7%P-{TjPqO8 z#8>oB$%_t=OT(TdFKe@WHZvAh${5`56D;q!#9rhl>y;<1`Tu+ zoj7u>-YVL0Ph|fW>SknTN%$6s??>a2_2`TAdYKRQlUuvja2R)h+@azbewlBN-5Z=R z=z1cIj-*oK#ts2>ld!aSEnFYlLNhZFhqr8jag9CN@H5#udn1-@Vm^OM%$fIzx-K;w zICuWJ?}yY%BLrq$h(WI%q3Taw-`{?<_cSN3_+8fbD1B-e=Q$p}Wf%M$aguS4@a+P~#;Z0hh{SO7IDEFC zS2DS3*1h7fy5(YNerf=Eaj#+R?&H#)QQkfg?`w^ zI1f>OBvx_e@}6;i+i|y8$KI`NBx5AH-xz@m1daV34&*thS`R}*FQtq03pnUls|j>VxDxvD8GxDQR9r=4#zMKkhI zAI>92vAu`%pds~w=oz$gN{)26!V?YuCO~t?eW}+57rZ=`h;c((VO5|5swPrrc-gC!^J9TYUVMh_*ZDvLA3jBJ+7>?j&58=8A#j%q)M{9<5#cP);1IUV?|T zAddb=yF)Sh;4zi$D0(kGuC3$xpleOpr1Sq5=W%!a%BFCB*__zjnc&W4O6u_ZVw_!9 zJQVLn@OQK!kMZ$Nv7K}Hc~R^WlTyWG_G4>_9a&y-5FR?@)SV))qgY?WGgln^zUK@ z5zW(OKj!1*N9moXX(CVLUEGm1cjNvVvhxgje>2x)y2PvM?^5D5`6ZSI*63Xz|9@_QF9)2r&ID8BMjp z%4JE|V$kS6zrqadBsf$wMVqeFwra$){kaat+PET{v+w2ORMN=C{{PL)cD#767?n?K z^II5_x_wpUWOE<(|HGfPjcUrKU9rbQp655S{mXWwJEA?~eAJ_JS#*>i6vXR}T&fao z`sB9R5|{h6U98-|nkt$cq`*XRp7@P2pZg}W%*9CN(?mh*&0VoV+>EG1nT(LX*W%GH7s9QN$75Ksh2E&Mrm~T-%ZNMG0-t3!JA5tZOI}|-5 z;B%v|{Ew&EJ+b!O%G)!kEX&Xs%?cyoc({4lO&kCgqbc<*HWBx3bwbu+-yLy{JOq;*dG9fD zjX5hhYGWoBJ|`AROe(KCbxS&NF1PMqEtf`47yTlL>rDxIQj$D_HMwsLOiafq79J#D z;4Aw{u|aVxh?vSU^4Vq_S6qvst`B)Ez6Z`K^7BJ*iaTf%j&4&Ja1Xb^mv|_WOcW1X zyimqoW0g*nUgaKFoMKMai2h!BROyJutCFzy*k)CRksSthO-A{{ma@)wYlIH}=VdI( zJ9pS%*wG~HS!pLK zMeL(n_tvXyPQFJld9cMR72T{kH(pOnV@?xkd>-*4<_&|(6C_jigT2^mx85Hl^=%l7 zCu5i^re#Yf>M;+qPd<=WD20#%se6Ive3X#h-;AMu6LVAN3zF+V;&}YK%;j6s)JWph zeW)FGy+YbPliXhReJ7V+l`j07L6BQGXX$ZiV+Qr-$@kXE+A3Xs;*SdM`c-7cO3A;y za9Jx6hVzC=oqgSKsTqCTtk)=-=dhOhkc4+PkCpao=)n1DGV0c8B?sQK#k;-9XtX&> zuJ_Xxe|3{lpxh-p+dCqIYx0+=?kIgn-wNkTvH^Ffe`RqmpmLI2{gGO6)E8>x)oj7>|-eu}0(&%b>*|C1U zrc98`iF4X9KR=k3Cus%KV{I#Eb-zlb-^5qC64O{Yrb0S=mUUTUp5dx5Qs!gg6O%dH zUeX9p$eU=!SxKjbZE@lR`yJL8fj{XN>BoL&0^>YFn{z{Q@D8$XUp5HY+QhM?SZoa* z1gEo+sDF>2O}sXoj#8^5D~>bl&QNkcDBqUeZC>h_aL^xLrzhayqsNlmk6J)dBH})7 zlU`7-!*fg$bo$Mfep5rca&R(sM=n=PALWSgFQ~mgc7-Z+2Xz<6rNFU{oeU+lfR54= z!Ed+R*4l}?T1ilwQ6X2EdLS@50o83PO+kEycSNQtHA8D#5`#H}0ExxqGCDz;X*qeBC?2bT3 z?otz%o0B#a-ZP0EGtSGS^br1nGfF;#ea=on!JKIN;4;@-p93x8ta|L*e`?M}%~9$l zKZ?aL<#dE^34{I0I82x=v5yVLAcuHlU!pgknm<;~O2D*?W{4~%UNj|+meMKV^M|9|uLcN`dst;!z&?Jw3g*38v?&-IWTD}6ELZ6r2^rb({(>@7^_Kh<)tRD6eg4B{I* z4Q@(j*e8x>U6+~hTN=##eC8rK(sx_oW(U^TYMl3V>;t`)tQjVd8_;Vk?tCTBoEWR! zr5VuX-1eV;*xrd|NOg+FY{q@rNk=MqbEozsu_IR>9ALjyGmqTg%hVdY6OIAAJ9h

fBPG9{NSMeltf@YNbMF&0zUcJ10E&o`UaXhvX#51rMuu zwr75o4bPBMz;l|CbmpmG1VX4>A48$FG)jm?ss+#NyIVNY9D)Jm#HrXzx2|)hX_( zGCwcq(j22sN27@RfF#>q(Bk{Sb;wCtJPu2DGRGQF`+D?Tw2q60EAz${T?ce?B=`Oq zIiU1Ms$>m#egW@7;-C#DkUwyhy@`DaR*vV6j6HR3o1~-9GbOdlSSRmHMJV^XFI_nJXF{OTxqEKcxP8PU!nE z8E%(WNoP2lY5b0HKJ!Hpo9%$0GpQKYV~Xl{s1t1ersDCy1bOL67i{{Gf`j+Y$~hmr z@cnBNj%D7KA5!OX8ufK2Y+b1uTaUVBBRHF=`M3xcJIUSex+=xG zXh)pMq~`WpNL`Ys^>>+mYJpp&a=?{a(!o-yAS z8dGboWEq-mrY=GyYm7!~a8@@0odRO<=kI##JR3%RQ)f(a4jv6a ztBQCGnY9#MiDOK?lYl4uSyBT%@b?3;pogZIyv_x^yC>sRzy7#GtZWfIeU_Sjl9m** zcSuczz2Q;dO>N%Sn1>w{hk_k2L?$je>XhPr7;&U%`tUxQ zDH%`?Fsm#Qr_b(}?yz21HkWaBekzS3-do?B+$@b|NL@hw;BtD{rS?TWqTz6qeESy$ z_&bm}<16Rg-51jnm^#h;`UdOiJ6gop$8&BnHwCZwSuK7{?5O1mM3N6Ro^jq6z7ZSO zQp=oupxKul_^8ial89K`+qe&{4~N24H;%qzMHqWF2*1d4tN(2ue(m)~aJ>X1-Q0$0 zh2Ge$kx0+x)tH~?j?rV2aD850G@66b)J0itII$+H73~Vc(CMl=8K)-VarfO>|YN+3PI6jSeqd;%dKfO9B8S5)% zNRH-8_C!!Ws;J6y$_6`q+*-Waie;v4W?nLND?;Ur3z;J`auqvN4*q%zftiBUT%+ojV;v*lQQq?WXn^wdC(I<}XVy zsf`kzF|pM2Jb`A%L-2fZ9R40X&0Xj~eA13b&FnMOh4q6C=clu$9wV2;3;z0v_!)N) z%6K<&T9dFkF&_saov`S9GAxjR=fCX8?M4`J@GB73Tr!<2*<}+udVM+g=(qOfJy5^kMjNbiU zoQJNc&C4yS(@Zha&jHgJ&x7Ks;)$Ch^thWk!pdBVZ%-cD2KwdoJ}w!2V_c_lwz9Tb zYWR!0eGbgSCpzK~vCkDr#7^_aVDce)o9v0g$@K`*JxQ2Gg z^njZd2j!JJNZv<1e4TjQD7%k0D|`{4NWj?5cc5_b#1SX@C^fi>R>UGI_9ww&#BtQo zcZ6DJdQ5-YjZK?vF{2y*S&)u7JyKATYlYpvGmu-C9RGPXFbiIS!abIF zamOB~1}>!@^&qUDE9nw>jQJzd=rvv>olFeEDB@RkMFs!Gd1GpAp1GTO z9Ywm20|suRc2b{fio2}Idn}AZ&$^b7I!XrKfRCsD~)HLx51L! z?>=347ZSrDrexAakNd{tjk3mz^svBDUB>@9ap5K5xN?OWgssWTugHXEOU`?VQ*6u5 z!*cH9v?^x3cx)fEI)&rv&=|P4K918tVK`VuUc$s{)WZvbl^1tLzE)w5Nf4Yl`!oFd z60N=cQ81cw|8XDDW4;gUS<9`l{s=<__2fAdQTe<@_X#eT_B09Yk3B;AFMITKNTI&r zHLM?K1D(cc*iEk2$9J`e<3=N5)c&3D^K-stw+SWnsx? zYZ$h5K!fxp*c2l1BlrHnU+EvOR%cNZI*BeA8p9o( zK%VuH3f2&;!B(QXLB?6;yT{JXzu1e)?$JbI1o+SxCQjkzSaub zc4_$h`#l0GEU|g{B1(^RwtfaSt6$Eg`kaMn%~U#An-} zzDX8N6b+#MmJ@<_KZ?K`QVo5zQoB;SARt0@CC3MO)HeLz`g!o?9PoDBqise#WhU)*a+Uj3Mc z`fa~@(yJi>o^RCk-LAT#O>QE+g<9zQZghlc&t!Dz-cnzupDo;Prr^oI7W)2o7h}V| zG~|44uCH~$3}rR3^uD9607)asc`T)TTEOhyMG_zQdZ!gn~h*&j=;5a+*9N59TaA7tN)LyON% z^fMNDVxm?8O2S&{?;Glh9ZA&H>C!=e?_~#Sv?OC+qb~ZXJ#4V9I)%LA9{N>#Ey!a} z!|iQ-^q1B*=#S%w`PQXWlv-J<7K0c;TZkigBQU|YX$1%_0%7_ z(-dW&bCBDy0N3wXVMSOPIWZ}!K_gw!ODh7_ZhK07ZEdl7QtkXaxlUI-jmb`!nZW&& zngWHRnlpB`;0{H!B%SNv4>#tJxaWn^t@Gs6^`&Of)GDbl=S$u^+d2{I&@7Ke-|5U7 z@B3nQ9({?)J(${PGH!A9vzPg#!AW~8H0A%lmK?C2+*cpOUB63wE^cPyT0QQUwB;P# za0{vgx$6GZ?a3>~MjQ4ipSff5`6Axek3#Wk@)a{43@o*j-SqYeX<`Fvl1bFa zh7D=uzc%3jYw_|N2c)I1qW);G|fxGNIDHk z8`NIV=N@tOE@|{d*40MDn%10?)-$%9nNR%Qy_B}U;h9}WorlH^U|Nr}gPY_vX|}`F z9^7;3#kthzewaj@!#j=K-4tECjU`6fiP}43=TR$`{8HklV9z?YJvEI^@%gw;A1q7G z2 zsq;1<3&*Bd;w8DMmBaz|WOh;%QTy;Pcg6qr9-J_+qbfVtmiRh#jK`;!G*VIDo;}0h zoD+J#uXC z$l|V$(K0E490VnM^24F|QVWM@SldUV>EnaaB4Q?L4LSQBc24TsF9z0}XK5~eBz5O! z(T4NIdcSL=5yV|Bh&lYy)WD?=eBCOMv;00d@_<~aUc}tuCm<$_7-Li_rk!zyHRlXE zJlk#A2d*7Uj3rKP$-*bV_dhVFvtplMe}T=_PGwt$)PZd z%7l3mJ-&H(S|s-O zo?W`|XeeI3qR09-)6!$z=wtqryX)>QrG^1v5Y)*EN((J@tqMa=K0E$a38lX*lsL(m z-`#|?(#B7yiFA;>odKz(V+>Tu-AdnX=dL>QjLk&*@x@&t z(TY1rQ?OU>sx^14Sf6xWW~Jy6M&I=`&a-SjDLl^6lZ5#HuANqrnP)itloL@fVyKXPVbZUf;rN_+w#`)XXP*q_|bIdnopVoea%58uJvi8%% zE6+gH?VCN~{HU`UlB)VNik$6^{2kiwRK46!EwUP75GO9FMz;<|$1C&{8~auDfc&4; znbFnT;zj& zLUA{n-#0Q!PAC8H+_MO@4NjBmQQvQ~FEucatdI@3o3^$Kdr_}E`KP`TOA45Cj%<|& z@8kVr#b_r4hIy2g z9(D;vu4fWnY&MYomIYwQh!h-J{z#g~oH=28D!fg{k=O2vMDH{N-=SZn8+~3}Q(^2x zALV2}tRNq3OP~fWQr|2gFcbq5dn!1tuPf zzzB=wsyT1$$pMMLfu0{#hpDl-w=H{*-yP()dxN+K$M~!tC;MpxuK zEah2JomACloLlisp7ZY`7x6iAX-zL1b3-|E6FCypOnH_OB|HD3cF-w4&$m{}4F(0n zJ~sl5!}iHG)MW0>XCZ3A1=;IZF!yL8aKq-MysRU&Z5QyKuu>CG;zMA^_sf>G7GX6Z zh>GH8(Y~ix84!wua(alr8ZO#52*X&3nr|`sVzm|d1MeasdCe9*qr$M;i+mC%V`}97As@|)}QKV13ftr;Rslz=uk%R-68)J`~2Y&b^V2|S% ze4~HLd*YB!EniCGy9Qth{Re++>!4Uv$j^Nn`Ro7v^MCqCNB6B$6BWdH-jdsw8R{u=kN6|@a~y8@ zO%$4*KA7Gvfj%WoggSYoNo^9*(?3amli)^w^+YW5vsY|>?1J0mGG%=~CdFTJ#f=p1 ztUl7j*K#imeM9}^sh1_gkHj~c`e4Y6=8A{&lu&y?f7$|#0cL=Zk5<1XL+ zd$I>Tj;(U&cN|t%v_mkKP`_{A&$hyLPcZjq`CJ(F7jra2U^$I?SnDLQmv?tIW4;|m z;x*6nK6l=mCtSq!X`yJjll9v3NYSx06nUET^-fC>8co7rvXAqKL(9akC!zEUg zBBq6SBFH-)9=nDJ2jPm{!xQlQ(k0ov(g~fM6L7L1TNOa8@03?ObXwR-Tl1W8lAM*+ zs~$+Bns}jujuIOUilo^m{5g~K#P6LodZ)-s+OgTLR-E07cBsaTG{a*@_9MfNtMnqw zaphtJy7g`^cO7q!1Zq_{XvWLu^8;|4wL!FTq5N@55YD}&4*b{4vTaciHT5I#XzdR< z=SvXvCfTzMZ6#jm1!I@XKkqhevGiated+0wenuf)_X@!?g9vo@S|~=Z3qkH=da^ru z2<o@k3uQT_G4Uxe(wx3(eZ60lWz+QJ`g2D@XGV}+jQnlP+y#rmHQLEvWh2yg790v0Pn9k9g+u@_8|ceT83lYaHkMC(BRDiHoe^NIrK=O$T}HR0s4V4rvlI zS=!H?#EphQc+fmq>Rjpvd6g?BMD5h;I3bKSv&6OkCvV)>I;gTwGvzbRKIDFdYEf5n z6yKq*V#Z+k##=i~X8l~G%9XWZ0*EovzkAUs`JEyNcpicM&pyfdyMmz4T>8LGLv&-_ zP_SnBu(Y4}Y7z`@))=GC8i?LcnV%<8ljw-KxThdTONTSR{efcao)9>W=4UZ1SvYnM z#qT-vJ!!N;6q$uW!F**Io-aNx4#h%#FRMj+MM3vaJPD4(_f9IYC@KU$yD@KUEEl&& z(knclI7q-bp`{8yTkdd0bv!2u=y9h0o^$$R$HdPs9+*O$q;x`&Xm`&U>AKVuZM;GB zCFZvKFn16C#EAiOt~hWk zMWY#R=ovxZ?#!vuX;(k|^>)F%1tEGjp3&bb(W+LQOT3P#yfaJ@=uIxc>xZf_>gJFh zFi)nB;@*%QY}Z8Ksrg3PB7wR|jU#bV?TS2{c_a041gV|_9}(s6xsSl-u0!HU@sYV`1#9VRO)raIL)qgJ zr<&B^hG;O>9|t&_9DMqki2dXR+vD_#J#$|4yzh#g3#m8Nv`o~W>wsqL4`;sENj*s` zXiBj#sk=g42scNAS+URyj}j}cnPSm1`hY)PC~g{9VE4&rL{8};YG8*kjLG}BpQ;>U zgYHlLuz&Vl#ZqlQ97}M!l|8vyX4Ln|vqMv7S1?h>wV% z7v^ZOd|fcK3|Sw(nkR0xrLOfD@+nWb3m4xID75Jv`7%y?_!NS5eb_@4EEBtQLh+Y5 zr0s-_BBDtsyp$0zpS)L8Gz&$i+pI}e3X$y>g1L-yNZfg$^EL>(d7fWQye0ZpbKafF z{=KSFG_7I%(1tT$Ri#KD;DJXu+`Zj=Q=Cb1!mW0kp>H@ZPN&dkGmW10l`2vB&>ZJ4 z#lXgJmpIkkgj(a=DQ>!6nwc}iQxm49G+Z3$=>4z2kS~aAZIaJKO@+_{N z{;Mn1^$)$fa=J$lGAbi5`*Q=4Mvbf?+gZys?k1X=2IFEd<1>4l zXeT zEVMg?vbLg^)93@jrei3^@?H+sJt6Kl<>$pXf6%@v5@!XG`^j0a?_IIm%^&rZ)J*vJ zP|VulMNFD{94j7+!a1&pwxwRj*oWeF9eb=GFUS7N9kGY=sR$_s6HZ+f-=>>D6&{0D z%sJP{`A}a$Zo{=>qS$XC(ui$2>K^9qm?`>k#(eT*me^E5&w4E-UaHp-r!|~$&C&v5bZJP!xL!Z93AMmmV^&8W9Lj`P>=k>XaJAXI6GW7vaq z@m3Xx5#&)luwNq{*eS`(-J^7M{ayVV96XSfrca#sxUF^Ae{a@yZiib@k>R7H?i zIr6TsnreuQeC|{$D}>2YL$sX8-I)_tMZY!lXXMOo_RQTPp|v%-Qrqj!@G)Yq$_a7w z0bRJ#UM}6>i<6AI)!Ik8H8(<_`cV5k_xYBgS~%JiUl`|z@_bdBY%{!MJQdgK%EzAD zq95bj;HRUU^qqb{)EVqPFk7}y48VsS^l$A|BwHO0fVLxj7<=B7hh3s3ycX}o9@VlY z@v6<2=|SH~L$vD_h|Wvt*EXuRSU)Kc5sRoF|olT+u`sh}W&?*QRn3 zro-8Lb_mA_Wt3RlBoIMk!>MPQAvAybW7SG}y*aNDGcEiubZ`W4X`5(p&6}Jr=AxMg z#d)PWcGIIIIQFR68o=k6HTK0;=Y?Y$dE=}TI^%{2bT)?pOU2)LB7zVMNJ+yct zDtjB!myLUpG0(+hl_B@bqA~r~6QLGvg4XOk_2-=wwtuV;_Ltg%!bvP!=>+{^UtHO+ zS&n26Zq~sC1##c?>fB-NdaL$5*m{PaYSeI3s0XkY*c+#+n_`9wjB}^w=T&Xb+hW1W z2)Kpl$V*SL_kTnj!`xARLEjd!js4*MRJm;+y^3t;U;liwY)DO~5p6l6x_DIH#j{s@ zioSSxRdNpX$_~Vbqp$T}`N+)xjGRu-fJ6VfBtHTK|dB_hVj2F0bE%|AXTS{boNARgk={*L%JpYn@i?|kirX!dCV z8Xe(Ibi+>~e2F2(a=tTk&1dm#jtTCrCdPjLmUwaB3c=(a)$vLe{hgfPv)d1?Q?ANa zzx&`wGgp}TxG82-QRgJBc3n5kVy4P|kSVknXY=iIRHjj8*u^-H9KKq$Z!fiLSl1cv zZ73Jg4?T)?$Zwwk@_Q}rdlv94-J30kjt;Ppb(&eW7WkUe<55n=b^JlqnDD%%tCEiyy5xaZRpW?X^ zeGYXJMz4rTGUgLc4i~G-{qUL3LVCeWQFj#mlMZC`-r zax`9<{}h*I8=@b%W5qlFh~Mq#9e<46!UNBQ+CeLb0o;L|utxkC=!7Wl=LcI?%Rjt) zaOIUNUe8#sc=ME6uZ?T>DP3Ipsvc^aqCex@_G?Gg=pZvJVVqlau~Z#gX$yHd`@XrQ zssWyU$hsea1)E=~!l~_ZgZO8Db~D+&ntsYA#P{Cyk-a|n<3%I>z7YoUea6R#S}Qku zTFdr-{gLY(j%PQcP(N;OT4t4Wxl3TFtn0$V%KN7BR z-!i>Qt}*w=;-^Z?nx-c1(YN~SczXCQ=p+>M6Q5d6-`+)I#B2*M^zmU|<7zH8PIiMg z@x8v^qeX0@BUb#IJ$INXs45*U-#zY+5OP3=Uz{gL6Ejacp~QgqLGt@f{`g+1 zMEbfc*@b*uA8Mq&TTvvxU+s&|-ROmo_dp(A&j)u3!Xd(%io9!{uwV^2xW#bs@tiCA z>qVkpfrW_a!#K2~M%bEUu_MMBqls6yu-z&ytTlrtYwT6or^E&Og=og}Jfz`s(c;&9 z7_v^D;LJ13vweee<)?iclx@#g1c$nu%YXYRK1xg{u z3zmlN=(F_)h^Wwt=rMhmmSWH}K=i2Y3 zQ@i@1J!`q@&?c%Ad{&OEi@=vh9aVlQ{@iJ%Z`$G^Dqj!!ebj`*Y|T{FWg~xL74&oL z;Hok-79fxO<3f)HW%i0inB0+?MC1O5vG2)Wa*SXNbX-iI?ub8rfk@OGENtp~ zVb@i6n55h3dGDl0$&1?gxyEW`Y3I(SSim^@j%;7r$;u2<80XnDnw91o+oCL+Si~L8 z(hk+W$gH5Z+R?HSeQH(tts(A_V^i|X*dM;ElMf%hQao+AKgRzEhq6ec*p9f0+eXGD z=16f+U4QEEhhtEbvgFH4KS<5#+gSReq~fz5EYDLzx%H~jn9Y7@yP3GHPe;`r_Et;D zp?ReUS4E$tCpc#$es>?Kl4E>u=B*OTlg7!ZH;KJ_g(F`#T|Ttm1IAtGfn<4GzNvCS ziaL4qQ?y5jgD#VoD z^YM{!F6{ALoWD39Gg*5yeWg}r`M?`8;klsvYOhO^Zs)JD9?nac;fNyJV7y8FU!uE}3nMlP20?1mnEE zU9Rr5+rH>`o4$1|rt4{s^T)#62vkg7t#`byKPD0*`mJ|K&!4qlZ3nIx~H7B7^#dDQ#5)zI$UY&;Kf;bE;zoUTAMZZ_QSaJ9qcMmNj{=-I=HdVl}4G-HI8jVa09++z*eDysV%K`)A0y&o@$ z!0q$!>I8KR54;o2X3U4~K7JNKb;{C|#&8=)KJ}zuB6F}McJsLosdHXLZg9Z%{y`XU zNfP!S+;QIAgZ#0Uvg$s4htJfm>pJ~tSz4lL3NOal`PTX)Y75NBn~%Uf2MgVA!);Nt zjPuTQ!}KZ-`{MCU&POyi>z!%i4;R*ZJ#M_xtN6(?Ih8Y3!}f}6!VjN~|a}SJmvJ$2VuvbNw32i__fEh2J;v zPNMu_xid702_#0}QJw!%@3Bua3exAKXY}#N5-O1c@K8q@<>3;0Gvj>NS`mNW7h85Har?ZP;;4@=mPINt_olAG z?Wzwxx{-S~y{W?4$Oj|5s6jN~{&?SaURc8%zT0q`s<4+Qh71d*HtBcO;rDKMa5o%d zv;yU@?@qXJp8kfa)A9}vJ6N8fXGW8b;?=vw@Qom!>a>Y?Gui~b$zA9gmnq)VEPzKq zG}grwiRDRivG5;%HT9~n>^BdCnV-8?J{8?oE`&GZ99jNUEH_>Zw?FJ19LmI!#t!)A z#N7#>p(1PY;f0R5NHY&Q0tZmyBp* zi>Lqa=QG+RlcE{t>zo4yH`3j9#SepcKjuW8)-7gUEt$Z1>zQtPlc@dZL!FTY?+o>d z+He+}5str#0KL_Zm~-^P(a1GcPiG6Ci#PwgjN|qGCie!29;K0kcrIiL3GX=y4oli%t`pqWNp)u%zs&+HunlUu8@ zs(jHTl{3MB0uW zs`aed0v0J@h#RW6j;t$8lxTResl5MzC)%u4qReBge6YqH*6qTP)!a`Wx!n~$$HMV7 zH(xg79@FZg2>hB=As=~SgS7`Dv3_Dp@oS0&djxXQMvN12A?yLwx!*OzNp#SekL`@J z&+ar4QZXA|yZCy>Mxod;2MX5D7lQYR2A)P((wjSvV~WJv*%p|_-@W8VmS~u6j~^F_ zBW&Lyw{GZ$<)-df-lnZI|24Jjc3ITIkwiSd8NAx;mjmyWmH@!_$6tXudiR6Cn$id=Dr-js+r0##0DWd)5xmXiK&9TEa z!aHRasu}0gYs19yWwT+%x;pS{vQVWFQ))n+?{-Y? z%{pYzU?slay(6cM@PqnKYQ!x1ENe~m#erL42q~>6j@|ackAg5v|K3pC;U3CEWf%sp zY9K5+J7RmEFsyD;SHx|x!sotW?5BRq>gA@eqW|%(HoxSTFv4DHN#sY=$Ssb|#boC8 z^7ZvZMElvOyv5$(v6?tzJPTgL)ng}qk?Um6CP=J=S+9fgE6e$)^C*z|rlG3rk0w}P z=Rr@s0f=^YK)owgu)S@ne`qoHbAQaK73ZZTnR+VTzp=_l(6zMmOR_0C{@|?S??{#7 zT`TG)@{W6WU1h~*S&cIky|EhdDBgp%W#onxj*#1NXTNPYXY0Bq^5A~-deddSml!3_ z?ZX=KD>2N%ctf#(IwRX8 zQE#U^GRd16)^?PTzdGUM<1n1u)>~|?w#AwUVR-kcweZNbM7E`p`$nHfrX3yFF{Mz-#uHbaNV_QrRm=Fp3)XdTY&Zd~!jC=`K8&%sA zR(Ms)TCRhde7ylRet)wMnmj_ztjF`o+DRRYk96@wOY*2DKRx5f)6 z3xD*!uB489k|@!pH)X66Sst;%>J)cq|AfJ2Y>0?{=mxsoVecRhF|Lj)Js`*@Yi28+ zd~?Pt-pha7=LoBb&Nvv#-I`NrSd`qO-2PkjUX z^l+G0t`hyfdEz6VQ{U`p(KXWpx4!f2eHkG>#Pa?vqdxfKlX7JXFKmCuU6EVOh4x(b zE1XC4S{^UioTA_L<=Xm4P1Mu%){im4uG~lr@UJXw#U4CZhn&x4xvDLk*{=P}GkkNH z+@{7GuLegVa+r@ijD1S~PUQUW$dMaQ@~6IR1bV$Jl6BIEW1OXrqwh^wI@B%IEoyIX6>8g@oV(&(FqFKH|de5SVtPH~m|k_)C9k$6myXx-Jzp<3q8M{n72c z*`i)EdMk(WJm?RKcaOtxiaBjl>=`kAJN>?!b06XOEwPDn+qE{-l)v#vY%iluGkNu^ zpWhYpj?p7~n;Jz8&x(uJ0@1*bv)yKU#B=Vw-Xb@C`^FUU&e8`)vx%b~94eG4^Rd~K zyXWnV#EJ;Uay>O_vqp-whr&@Kh+O1}hov#xkDo>zkpI00O>NUne-5{TVK%v~2Y(l4 zvo}0Eo>;Wk&LXE6N8GBThV#U+vW;N?%EzdYlaeUEX&(%a!Q`Uf+$yVxZv-{suA0jk zx%Spz9R5U)%-L_{PCTold8dTFsVPPh^NeFn+qZFhArB}1oEwWJg@Z*$rx2`QzoV)) zO{`rKg57Dc(6{muW~X^>lNrM$8ga5#DBdk1H*fc1v5}a~96q~-l{blu@=z4;UJl*0 zUt}!i{Hqdq*UwLhW$xkFI*r_elXt}74mj#mLM+bYO3Yv`xbJl`mQ)Qx{;5lNi^^2g{wQ ze^s-KaA^>LAnFs{e-p&oI|60oL0PoADe1Gg-_x=p&s<$&q3O^WR_MKxJo68AimI_^ z+05s@u)SR58tTaXGc`g2E#2`*;8~sbuCda#W;hOV59B|;8cI9nx1|?36F0mgPP7idsvK$^_gpUKv)^B1tHYr= zb41y<06dze!@32DBHJ_)ue)jR)S^WCrK2ajQgJ`!+<+yft?jKa=^*E@V_Ft9tYwV_ zKCC^A&ljEZa)fFmIpkN|6ye;HqsLio6Xg->tKQs$E-o0YJp7NGNn&*6fs*owu}u%*{)>9B@>U;# zWv}VI;?+a>k37stOElQLteLX9dkD2#xq~5oh`HQX4YQ`E%B@0S+S4C@8qwEVl_Y%b zv*x*^qYuIYp`H|p3jx$vcu_{VCho^`cJ;q`-A@t)y$|!A%XN zEz7Kx8;q5w8Rwqg9hK%)La}->z3e-BDgm6&c68vrx0}CmmU^7knbX=W4O8mzvrlRq zjLTw_(+@(hb~Cjs&c`dhH9|3x_fCqvP6@IMh1(-)Jl@wS4+}%F=P%D^T9i^ZC=8{w zs8=)0PdU&p9P0Mm(^t7FJD!kx2JVBsw^jnZBarJ)ul6p}lo_!R@G2s1e{-~Qq9h!p zgQ(ZNYLHSgAPmu^^aS1CL0Rb;jM^8d-FdOP(jh4T7R5Rg+@!ao#vd)>6RaqIhb3X=hwm@!A-WdJ(Uc{Dr)33R|v3_x05Z3nKKAV3deY*ti3UCKA zG21|Yc{_VUV(AP0-YPXt^M2>&&kgS=t7-(JH9t=sSFF_HyRf|zy)(BSQv8nc4(&j_ zp7`y`QtmXV`B^u6y)rS2xt)Jz#<48rV{6`n#?>B8K@sNU>NJjuM{R;zUp7>6dU^$l-jdlbzzcKOCxW@#s<6T=_s=aetn} z{7Gg?UP%Z%duY+NpRsbcIW-a+(icxtS1G2S%A#5c*w^Z%NUQ5lU8n@y9=TIoAvf|) zzXbehl_6gJp)UY=Wyfp$kfw6~<0iG<{`WkGC+;`>7-WU=|F}Px`By317KnbF#dp(g z)8ET+#>hCMnCU!AU;f@ zPV|(T`onzIpT<%1;m=paZFLazW2kx3_p#D}*#3^uoEhmZD%LZ3C-d{mZ?e*Eb1*LR zv;VEV%E$)vP94kn#fGiQ${5aM$(QT?c8${OFFh`&Q41(=sWKxi6nW$bU4NCP2;(qx z@Z|Gql&Dly!XU>`?_<1Lxif+szjg8G=^LozxQ1gl_a1i!xGD=DhG9;pe_Bkll%@yR z+p%T{OdP2g1hGH0p_clZp2`~T4(E`^I3lK@qG1m*b$9}f?JE}-z5USWK>{Y7D-4g4W>;=R#%f5kYf0#BJH23VmraoSz$tLpREuQemLo!`0Pae0r&R$=63_pn4E{c zi|gpCOF>AoyvVRp7beKS-|=DIevfX&{`$tT?jH<=;z_SMClO|ic$~G{STxl_jtEI^W!tM zjZ;Q5&Z8OU%wImr%Aw(KS{9FXu{KIx0OKr(S6mpc?0do;+qxRucNwgl-XDrl8Pt4i z*;xq-qkc0rf^N>LuauwU?1nr0>S5o-lJn#_kD&MQoO{CbkU#o7N`SrdanZGP2s&FN zAmrpxkywr1L(DndbIPUb?dj#%wc_6K%>EBd`vh8Hsn)%Xik@ntZCL#ri)T z=3#OJ`pqnwrLP$i1{1!^2NrkIUwamY>J51|46EpSwF|?m-}Dh{bXBoD&0NiWw4rG` z73&kB*m|8hXj>O57cbEJNl*Qm96zO~N*Hp;p-pN%Sy?+FjK1QW-}N<7l&$=pi>Xc8 zyQNZ%_u5bHp0s;ZQ)#g<9OlI51N|#0oumjHOrid~`jbc@H*Y`pFkdcyCmix3abg?y z&HH^27G6>4b)I`G-@b|h_Swg(Q0J<3Wu?cND14d`kIS>GDQ6y&^M8&SO;c(rro$r8 zn3{y2y4O^`FA9Z^HFbXbR#W1%L73s9Lu{i;ifqkV%PRplUw#rY@5FXhsZl)ep~$2L z(qmWZ{HLB0#}lHlgZt5k)<2UL~dy0&%_pH2{|% z5*{Oi5muMFC3ae|+m8IH#&J;39U}r>s{h~9xmM+lV*5LC-|Ex*bx{+sjJ5D0{@vdz znv0QvtkIfq*Lzeqk;filNNZxh*C3vm#9~Aj#%-m&@ctEpZ+&^U+DD6_?91DM+}bu7 z;&x5e;C!b%j;s^u#+K3HN}iMWOD+&Y?f3~s`H%7jPt0{Qt`X;@-yhC;9*-(I*?@kY z2GqQ5>@828mWZFVsGa+4mpmnp8dr?1P0>>s>D0*O?EZLoE%D$6Ie@H5UcTrojK*nD znKj9hg_7`o%Cm36bDnP{o~-7M&TyXp)F5GL%e!=Z93HMp5=RHpgJKT-hRU+UEb={f zxwD=*o-Mo$=mQ%;z0EEM#GIe}ISZ+s()5HF!FOmk&v41aYr?BM4$aT82Pu9gQc9>( z@tHi0&`)A7pTjlsVI0>~R{rTLuO-ge%eT6+yFKSE)##0}zLrvC6@}LOxWnR6TZy*_ zgD#8y7H4ZJ>BO&Gm(ttPtGe=SfN&An1_wLkUiOcQW$!Zz`h z`FSFFr$r5SNv@^jwp^_k=b%N;gB7G_=%VE6?h*Ys1C9P1I}c^KYls zT-vPOc*@8VVqUuqB79N-??Le%HlBK9{QRs3SD~ zsTh$(-+SIKdHdgs?DJ~eXWqVW^Otx=d?@V~WB##Wu5xEE=Z$#7yX;<<1bi)9E$S_yw-x)E z+Xh2mX+mzAg}TCdZvNjk(fDd6j`9p2YBfznHl^ndKO27UE>hdmqpT8rGc7xc^?Q?W zw@Ms_O=}~D9ZSF`etx^Mtyt))LoPozc+^QO529WuKmYf=i7@i?(yvVsK$d%K0--nPyCL3U)@-7+=jZm zui4`_OBP}vzuzlr)0|!`z&tdYUr%nkMyNh<2a7n*)h;<=`T;e)Sy|6N-Y3-TBd;1$ z55!pr-MJVTJJNq->3Q*ST@-mo><0(k7TvtLi)TT9ox9J-@d(D1w)BFW`cBjU9OpWki8 z*`++6{JcHAlQ_#b|NHv(&D}*h@62)hJiI|aaU&xRE&16{3=?KN<1_gAao%XLdx;f{*fO(8)^}A<%X!eem+Lt zq_%SLJrQ?!K6FFqLALFJxZ5NMT{E?~CZa{c?{HLGNd3g^)1=PiS01@jF>fSI7^CFw z&4eXmJFVSa;l}&nF3-lAqLpIvFD-5}&LMLHL>hPLM)CK(6hB_f+nInNydPh<_7cNq z(f5hDS~P4a*12mjy%GIZeCmj?tVz>(557HMC`yf}oy$D)Zr5))E|WQdxpMQ=FY*h{ z-0HVtp7$)5ix}qwx0<{c;V`*flw z1J7#VC;CqE+3NbSXEduNM&DQCr78~5lbVVaW@cHC5c)cxr_Fk zxyZ;-9J?8g$E;EJTPKL#>;Z4K;=cWsbz;W_KNy#5@NM5gv2OHy)I7>P{W~YbAj|pO zG3M|5>agg3A&`61TJ*ncCsuNQVew4XGX;H3o1~KiUcF+RqY9#wN9!{&^gD6Up*0no zSL9r??;ifXKvA-o$u3W&a)*5hAbSyY9<#+|k8R)|;}f;s2k_HJAN($JQCcci`6;Igro% zggJMh_KcD1Gv7q=?_3#gDW99Ih7ohSx^=v4=p2hxdAwh4D()dynA zEiF14GFM#MAdW^S;V5G}(IZ$`El+^DCADIFBr$+KT_4-g!?b==k#DKRQoggso66+Z z#ABK;hF|gy%Wjp~2e5uSc|J`Jr>=%Hm~oDnDj#J%{)lJvNY$FM0pH^rBdMJ-X;smY z4C>QNU|#x`SD3<>nN8!*O?qWI%#81rWgJGVT4r{g&nnTG-r_k=&CK`?jrC)$$gC@^ zVeapsrEcD)W>R<<=MtN!efqhwRG)Qb%2n1&*%Qsq)Q*OVKRdUqxac8q)bo7DN-k`Z zFRx+E+@EJ+X$KLM=8LayH0awqQ2fcChsVS}tC?hpCat_N~mU(EDP!aBb1X|EH6enA3G|I3dC6NM$c7mo9HUOu#`@SR585fh%p8h2%nbPc*O zo>^6v%T0KNc07>9cj$9 z%*(=Rm^6>?{UQ%y?}xO~DxT%tfy@ILxzaHH%s*;+0X#V))nRUK#yVuE=?m%KoxC)c z|K^;pQodG=$>;g?d7q{3!^j2r6Nk?s7o~L0Y)?*Mjbaojxu=EUUIBa02|Efu1qI>? z>#e`X3gqLxeNexi76HA7i`Vq>7;{96CF7&T)^YP#BT#>=SA@td@Q1dOmfCxb#lyHz z9N56$t6;BevLqJnjumkvlO>mxl6je!%bc7t#!>mkpLvBCU9%VUmBIU{v0v?9Z+J!+ zIwc{vZ5-l1FBUJ=324IKbI8V7!l922OBmbv7n=#qIQCMk-y)k`kOLE0WAJ>w*%&0J zeWs4#c8;_4O8Ane;vzD!h8!?`LFSd}JFY-P1jKi;`3DTGp;&4H%)0PxS z7PidEaeNnI-${L0cN_AoH``qwW0(Cc(`5 z-+mamUfRhBAO~#;aj^KhL&&R(eqJ=+SE5+1f%lblmV@i~glt;XfIj)J^LAk$SGSPj2u)7|uw-ROVR2>FY!U zcm3UZ^Nfvl7O9{&RG5J_5ckg&sfA$$AXT4>Q%lEy0%RPm| zSi?S^EPJM?K~$<0AUA#JFKT@8M|X_uu?lDeJygjIDc(WZsvtoLfoBKidRmMH#*q2gi0sWYC)T9nwY}RtfJY=f0=vur(zA@7S z^F9#g|J6~H+IiypKphU;86}zp`EaM1c!+_4Xz9c`GT%G7w3o2!8jG91D&qW~at!p- z#%1CN@4nj07AOzb@NRlTZi%kH(ttJlvl`T3-BvD4MkT@6m|B0|w~M3h3D`9t4%Q{U zqJDFFbAa#ikai-V|35FUIOy9H$_}B_tz>L%vRlYoUJ#3NN3qOv>*FxxhzWL2=exd#e`erpOz*?o!W{UF*hX}7 ze(fHgT}}pG^DH#~Mql9aHF#&oyQN7yepSlm_lv_ie3+Ww|eg#v~LS zIAdB`*B5IusRi+lKAzh;!u;)gd`sfJ(lJ3&6?vl0X!eFJ8p$`Qd0zaH`d8(j|0Edl3~zmZNJP<_s|MfURSRN79qyz58OQTe zt&2FIE+1 z`QQ9eD&^Unv59fa>xwnu#0wAbYST)Iv!qp z_nO|FskEJ|MRV57*;teh4)|P3Uk&~Lwboq`bXF~ zFh8$4BJZC|4S42+VRKIvjlahGj%W0=d0pwGE8iE!wn~1!)QVVISH?DPLtQjG#GIPX z{Ln!K2i|o>%p-s4mDFn#bMF&se=NXnBXNa%NTi2OGqfQSL2E3ntGDkTbE|QaZZ!eBu zZ<4;f$mcXQ))uhGd21r|wV{>(b3%`_OHy~f>;AmID!p!pvAbCp@Z3(=HXBps(^HG* zcGeFa>aoT+_JjG?cOCann3J1PTO)ZtHdkhk-jjEBs2-g!k;laRa6z1e2#-Jq&aBs% z>e1381cjUlwr*O8p4>-%(~tYe-S*?&Hec8fyIvKNjc>EO(Ylykz|B)oi+gJEQ#3gG zO@-zGF6d1?G53?(rB%b7*mG-f%&U{^JKYi5O8h* zZnvSxqmaI@D;cXA<0Z8@eKL137Yu(YHF?9ngL%38vfl8>W*%m~ZC1+z#m?-bzwlW^ zFNBV@%pT%*vl`@LsuwYm9`t`ae+21{+!Y{x)Y$qM4sbX5yfOROUV3;w4B^fJ^X*eX zT#D~<^?w=>GPP&?Fuf(chbA3GJL)++A{Mo_M>NGmAz`(J9Uq|2$wm)wM-# zXD4X9>6`iRnH0L#4(B(}FUR_7LAkjdR*ctR{N>ZKm)Tr2yvTZHTxD+0^m+vhu|^!CKDE;IcBCn99_rY7AJbQT9>8sVmP=llqw}HN#c&%kmu+XA8^^hfi-Uy10kE z_Ey&3t7b|*BZ(c!%*CGXrS5lGGu|K`+kXi1lj9Iv9)}EX?ou%K59J-%U7ZE1mFzp1 zZ+-V|$J@2kD;q%`c>hC~L+yxOgX6KU=@BH}=A4T)V*2bONRFJkNvf1{-3kdC$u%9exF~+G6NVd7PcpNKeDk&say~@R&)8dOqYFn) z2j2>Dj$S`YZ}N6AqFBp0yWUr7Ok(~1nA!yesmgce+gkOg`#FB7qJN%Rw#=(__hM+61CC#y{$t}Dm|U|$4Da%yR!gz7+brbwqt9QW4|FGI z;QdYwf|j?zTC%dodi}%GCCS&>2A!;_)u1~pH=<5y@E^|424yM#AruEAD)Q^z-}ct~ z`lKR&aZauKN$E9|v%E*-MBQGld|4HMfd)KdMdOv{#KB^DC*8SiqF4Ws@$vPq3$P)D)Gp@vW{D@zEInDZ!=WzenL`)(7 zt{b1< z{RaMw>_eDN?yetag4^01!~C5#_^^XIY{{pQoHGaKkI*Oh>M?Y0JPRAxU$@_xgOZyw z@zFmXgSJkkC!{6LzK%wl*bQ>zU3)YomoXtr5!*xEv2bKXKg~n)V)ZAUYY@UX2VeQ6 z7(2TnpK<=xc9r7#-3R+Cb1!VlR3+!P8dF9ySESWfw*5!E!H&DqYcC4_s?_IWeK6<2 zVj=N-xuh~De;Olx#q)jLOzc?oPR=|?{c`4t_x4uu2KI(in1_4n%uTEGx`W? z(rG8^G;|>MfODVQoQtmFd!@Qv4{dq>8wGP_E%(JHp3Ry|_>Ox|z_1gXNim)!y)4n{ zNF)~K$HQirJEAxrUw)0XgljZxH~DjCh4E}m{rzp;*bqri*|fDtiE~E~XL(QW?!#R- z`gDhDF*x=N)}OJ%>ML3d>GlAJO{}3M7J3%1kXy+Tnt@taF1wHalILIzdw|k;TQT0o z3e}>bG0?iPH0il50?3)@Fl+_+rB3W+DxPQk!32G)qEG}g&M}StD6fKCah`FGd%ap| zMxC+WjPuNe7D|2A;2#)g^V?08D?Ee!?b%27zb`KF4lfGg94c;;aA&VKl)YzZ>^xCR zCRbt$|IGRh!tEz9Kt1bi^%>c4w1)Fl&JNm)lwIOEL#fPrEw!Xzp`yV<_Qk4i9i)HW zq)xo2Y#XnYCV!^ym72VfhWDiJBQ%(`g}jRpZj~J6eCj06^Y>OrIUS80=A9oWO;9)^ z3_GX~>ppKX4EqG4Xd?SN8($oFLX9ZSP5xVujx<*f{2(rYceyyxpSvMjv{;{0jQ!{A z;ZseAH5SiN8fAm#HRuKKdCjYU=Q2JSHFMSHb z8n#F$7O6e+o6o?S*ah=RXl2#4)7Ch|f5Y;N_i@*wWq zZCo+4X~j678knMgPt zvd@%Q5aZl#>{oF%fxMMaK7(>0<~?A(T}b@D_cAfNH@)e%vu-#%PlWM(t-{@z z%DgzVgthU38sc~}`V!WnR{x9>a;81~Oj!fR_^RbDYxwoK>}{kfvT~T(Ma$VcFI-wU zhwrWpYw>$|JIvx=#lwovGT^OBnz>AkE&BUuX&&ze@3{|Vq6+L7n6z6EY3fKFU9ugovcG0%X=8s&lYFYIynCP zhCkhG;C!4l>#j>(_&HOi3V*hQPY2IkT^;VEbIg4GHs@a7E83~ z(~MZe^&aBh6Z+J%##kuV5jWe>A1s8=a^MR&k+ZnId#UmAVZYpMKRwpV*ngGB$v25# z8d3vVd0JQA=oyE(>?xeSE-h%$Jqq0pGEdoclU}%U7p4I*nj^Bbr+_<@DO$XH)(&sX zJurp%S3T~6&s^k;*PQEL?YJ5`c%U35>I2A5TTYv-yy5{&Cwx@#K5Fnmt>RzNTXRfpZq{g?|Nn*WBYfFSXp0-GgsK_ZB7sigR~gOdvv+0o9M#Y+p!Jn=6z#D zLL(h)CbLfN*F#L6qJv8ud-b*r#FDwx|K*+9IJjJH_)v?*zgctN6>=t@BR9Lyykmmg znQ=DZe@|2WDjMH53iTh*ASs*mvF?CYCxFhzV%c z#~J-!=@5P)8H3t#XO`H_{C?X}W^ap+#212sP9P}J7F+zOCHUVZWYxFFJl@|OzA5Pa z*a;hZQ8S9%$=95@^yU6cjp+x?-hbjwCGqS3?FUPbr|5ex=YB5ZJVIMV-{gTSz08P< z_S~X0H1b0dHSc(0M-~H=mpotUxpDXyTvvHfk9RnGK&xi2#9iJw+m{nZ zetJyYAU9_vdy}GqEh326z^WU37B@1)66S}IKdCiT7%tw>9UG@_lZ;{M&-P5qS*n zUpva^)NqXtg`=1Q4Z7H*4Z&NDvPZbN=uJ7{+>hx9*y_Gj!d^_T|3mgk^N(p=ns zK<+~NOiXw8gLr&%V1SG2BbZl9QhsiZ1A2m-a{UZ03Z|ZuFBq zJPbvv?a=CU0&L&;AS~M!9gienuk`|)oo|P7o_XW*OL1nJ10t(Y4>l)-yfGJy$W}vL zqYDl%<-R}p({88Q6rCe~ugIig-`&1us$S%|U>4(iQfHtSKV8|U65oiOK3y3B)MFhAQpYqfK>Yg`<$Y-0k>CRE3~8Fo1N zHv#Df2VlwuTTK3vfWh4DHmBdpV`4fM`&=<7#{n4=S+~rcfx_W#_%@uiYp>^0a`Rwh zg;3AE>{ijb4y@L=uDfV=I+{kbF-B_t?PmRMk`Y5mcEH1Jhe!rGj{N;#2Ryi$fV&0R(!erXG#Z?U^u4d7 zTRFDa+bt2utcS^`?5HoEfD;j|(CLB$+*wPvp?~^nV|T=D;d|abUMedML6>8k37U47 zn?}SSwS7Q^yiqbWRbQr1ua$9L>}{xD(9{iYDK}}dsG0xro z3|Cgx(4e0CKhKmVN@5`MWIXZwtDnWKQu;m+(>T`iqPQ?yi*)vYK}&ZF_d{BAf5};) zYPm3Iqr(Q)aw`M0!og36e?FUco4bp!H9EYHByXz8Bq8tPo=s6a8a?SJ{DXD4$e$N` zsQWZ&uWqHpDg_-aEAxaj98swcH5BNsfJN_xyw@Cmd`!- zs}=EQN8ePv4{N_}jI;MuL%rP54HFpW^s3txuO)t1$vCea9jsLC!gFO?3%nzI()Ut6^K zL%rL18k9$UlMPt2j6T6$sMCG9MGtCq^wlEX@}z7yAq1}5IG3~F-pZ!y`uaYe$E=a`ha!pZTH(SI+C8F`x zm4#L9?NI#yJ@^a~3QmPM!1%8g59@6zw7W--Di7|A+`V1&$u$g*jj5@1EJz-cu11-* z;ylH6a2I_&A6ML^?)~+!JjKn?4RsjjJr6vUjVJt2#5k8s=%aXZ78J!e2R^N-?CDM{ z)`Na+fzQRmES_y0b+pR$B9ilzn%TtkbX&!DVl&>w#71HliShT?v%X{eW240m=#bf( zc-jGbF^ZbvnbV0KwNr^JTXp!I&VGJxd$DsPbI1+$+NY`u7v`Cf&jT@F3 zl6T^JOrHPK5jPIfKWLO9KdEX5qp69g;dof?U~YpNxryjdb*DUFjSWhdB%*Eet+L}a zTU5TlI^=nd+`iNv%ew0DBxIw!k$yQL`{>E#kWO8=FvN9?!D4!UXA$EX$(_>wt?Q1@ z$WYF=n?r1i-WhKiDYI(XV@sSGx7|*PQfj0RT}|%;?+no*oVsYuIp?sn6}Nbn|LGj6 zhW8eOx^XYTlHP>HM&cR!?zNHRKUcdWd$W&d!n5rZzD>>`7F3sg%C&K^vO%C0x+>&4 z?-(Gj;k{;W#+WyFRy64cJ=rwzSfB1t)Q_{>PFIO@)~Z=J?&v>$J?rwp8%&e3iRmq- zf6uZoVXF-VrJs@kKbVU*8=LA?yF%-80sjEi*#`gvWBE-`Jp7Y`{AnCAtVs{u`Oo_&$I19O)yK4uzfB3&~ z9uVGH?9tAp_k|h*+X-3e;EJB)w&r(tm+LR~#g1F_reA!bDC#KdVl&41XKrD0?s+Q2egP~ zjd63qI%!5ZabMnj>yGA2!>Z~~`)E7{*E%Pi_@*Tmu7SbNdy>a7ExraYwoji+ryprx z`A~yFub)WLxOhYoZ)!5+Kk1a9jwzqnr<;4Ev_oOgkn`8NherBv(I1ib=;?N+t~7sx z7j?MlC)+p5)P0Hz8q?n``R4tiJzE^Gj`8&B>q@T{JB+GBUTk`{yugk=G7XZj=k8T` zV7vpoT@vA+Xed4mbjGGM9a>JRFXCK0VUfl;uYoKlbmm?&b##BeY%13&;*7Xf#W*X+ z2AJ-)bc5Lq&R%l|n@zauhDgSF{L<5AJ=^&s{T}(rmS)mRVh{PmH@d9%mzFnS9%kOC zdU>(*&XZifWOBu=^CaaovAA8th)xzu+gfT-dWZP`fu|CP5gFHEA6LB+2C()RJ)WMh zE$U((?~{Qk>`i=HVa6>j8Z%ck$?Qh#NsDOKZQZW+!;k>>Cd;_f7dsTQSkJVm%V&@| z1RdDWyhzqUy4V{VxW_!kNQV-KmKf6~0;cRi@~i)l0uKd}GfA%YvYpbe3*K-hZ#%`H zr_^JF8^Uc8G4e=@!i8;|P*RqNjj#L4+sD~s&9o%yp>L3lI@;rtbrMEe-IE(Ebwt|v zM2uI}5f|^y#l~t0m^HJtkY{+o>I8Wh-FC{&=g@MP?8OTYPB(6xJ0lMrh!m%*L*7d@p}Cwlt^p^ifWx-NJp_4n~X{%`JAHc61O zKDlE!bMMACP0gI5opHK#5~hFbE#I5rfHZXyVkhmF8_V{%yEF+t&%en#W;>y*eG=3= z+K8)DIR}YOfX(xMOfK}FHPS$R?}%K}h5Vy7)Bvf|&h!W4JnBoudSgY)siyDdxS?q= zeGuOHn&rQ8gY$Ckz`m^_eQ4;97lmq+gojJPExB(B;`~R}OJ_>BvoM!ZKtk zg?YGViR2Kj!DGgG^3>|^IzUW`bCdopTG1_L&ocb-S zjkWJH@pE`22J?F)zu>v37J|VY6Hyj513AO|u(u~7iBw>bDE6p{p$)hb5As$M}NbVo?>r? zA3VOYrmrXDv5O+mhx$3yf=3s&XDr*UtQhCx4l_)rIJr?@N=+;v!|cy5H&{h8wr$!- zGUGgXJ^guaXGxQJelUVu3yWh?&@s-7h(E{GcqheuC68A_uFjxDtpiMu;+k5a|GVV(uwoz&uUO~zyXc~vb9=9*_=Y-8d> ztlyHlZA6<*oFg!IxR2j~lDfp#GqgBSvKI+0*zcO^P{nIMIeIae$(qe@(@spd7y*O- z=&k9r4l#d%A+JfqB|ZCRogbn+lh7k-BJN-J!UvONeCYUDs+{7A#`lvkTHi?eVCRIB z<5F;HZ$tTHQ%8){q;QV7Uw-87j6QxTn7Z^3wi9V?=!w39kOwGJ9|CydfPFc={?zt z^X@aNETa?e0qrho2y`mO)1GR~@zlZ6=Nx)c18g6-mwNa#JloIm(^39=#i zHK(;0^Xd+L!>D(Xp~I1Tk5TGFUvqMWFE@P(=lK=7I&a|5CjpEguIQXpug>l zG;K24Kg-1^truM4Q&7B|Tpn_erjb|i(V#b8_%aW-Ucg~d>&46-1Hz-o|`(9$0rskvdWewS4FG4}=glb3w|ne>@8!udJm z8-J>U2)_55BZz@??up6g$ZH_3(&*PjJo}GxlAGj}`Om{X=9vSHds_t$RDrR~Y{ zc(5EZqq%#vpLOuPZHP2soLgzwOB7<)NzN14XS%<>fIWP+Rz0++z4rmOaL@Gb9p=NU zWoYy@8dLL#3uS%5ZbYIcF}J9}KhfrIC~mUXNUFmb6Lla5K1{;Wt|ho!)fdi&jP0C@ z&|mdr&PXLscL)7lT@Y%r03ChVI~{XGGov&l)$W9HBYRA?O~dW;Yb57>_Sk2WhS?4W z%+_d}(eKs*+^~$43(19+(vs0FVXhq2nR$YDOp}ev|3A(htSa)K{Z`)`u_%o9;5zo? z12>vQcW2K&n%V`|he%f3{oLWm+C%J>8r|k>st+~2kG_)jv2Xi_t?#vKfXSS#bPQo$ z+HQi}9gH(^q}Au9Vcu5a^jG-jj|3o(HS!_m*7iy&^>R4FwImi7v=(Q2F#qs5C2!k< z+3XivHY4X}$_Z>Hr>yf*4Gtc^2?r1I{(5sZpeaSjHEL=;=bUcRPjus+?+VWE&W|@# z^`hTL74~-*7u8Uio~BRkn?#H*t)XhUKL7;-lku*vq008-d?ZDtV0-INn0UnlZ3jDG!+maMmi_lz|9nA9`dvB(xd zM^X_v_K+NXZY~C`$S7&Qxxuq&m`}=DtV}v(r~3SH3rP-hi1jM z2b^<10UhTxP`Pn8Eulpc?k{Sr3it5G=ICS`YuZSaMBV-#Pg5|&KvS~9yQRqVa_7r&wZDfEt=wv zp!_B34KO#G2TtmifLM7#3q--&NDOGD3B#F@Yxae6&kr^F#QlOD-l2T-d4_qu*i zKd1Z*lHXEaiuJ~YzYnp5Snh--oKuhcf^+%QR^&`&!;7k_WAn>g0y7qYLnDLQ~c1 zPmUPeCmq3WYO4AL5Zm|3z^>x=SbE(O5g#&8Gok>-pJv0&Ap@>gqTw5EiI_WSjQM&g zr^Fr$3X}2Xz#`LD)Fs{;OMa=v$fCtlJW!4G$N%CRxt0$LM1mW7ux5T-C)G^YaYorp zjWeajQVkn_wC$zFSof{cWA+>o9e5Ykyf58gY}b$GJY_>o)MRW`tfik68^bl2Jzo+r z=jIa;IGwn~e(soLd*ge3&IlM^F)A71r-?bShIsyXHEP?F(-FbDA*Fq-fUh?r9B;vz+F1byWK!_@k0oH-c2Cq zuC=O|I$g8JCILzp)$nj%>}Sn3Hn6A4F~bX;B2#hGwzn#(yDOvyY4BOyQ}ra@0Ug(- zqtekXs*dNa@%2>(vQIZx<(#5FLeN5NZ(*qVykjO-{>s3py;pGT!z^q{C8z1K1*#0R zg+4MFN0SfBn|HdSW0fd$dV8es({%bwXII>tFs^K0xGkK$wnmM)z5!+@mb+tC4c2n~ zTS=P-P*b#x8ihG4C6A@NzuIsPJMg?zX2}`88F8i2m5{W8TuUp?1T9;m`fUw8SmSUz zXgDhK?rpo7c_WYfDdMH0_&#iFNlnJ)S~RW4JMzsU^fRIc!))>rW3#dD13jkpvbUdl z1aFUPFoScz0kbcm7W*B8qZ%B}e8Cwi=lL<*8MyTac?G<;B6ZyHuBD3S9s8mn0kc;& zS818sc1%b@v!|U@M!qrd`kajP54}`suLx||oJzgO0jk%I}UT+LnR2b^57h9pLQaaRyrTFjg5IaKet|8Au3gsxpsr!mwKDSUvIp?mTkF zUCz1s=V=Pe?vXQ=5k^1iDN^kPmY7D}@c%u}q4Ulc8V_~DXD#*2BWs)ag}DQ@)Z{{4 zHA|=;fGv!(#V9MOR}%TO&8a;&W|3593TLl_xo4`$mtJRRfN88TT<%MT#Cg6kS8Hn- z;{11F5#)U2KW&LQoOLYLv&We+0Hy4c*L>s7k3aQj2Wjzb=s#|g7d^zZ=uGS@Zljj| z_QXib`EFz{!S%7^vqVt8=t?%~m~$tRwMU%^hwy8T7IPZ1-Y`CgBmC?#G6Ba|J;Hus zBWY(7vF+#=zDN9?Ym;$zVO7=38N{uVQZXT>t}3@C?{UvG9GTHXwaX?J4}Yhl>5LYt zDZvrYf62g*^DR}fK`<8dT!nfCnRjTc50<2<&wanTJ|SM+C`&CU-rHM-`8Q$}j2y!^~YTl-^W z6E$93F_6s7INzv89OFtq=}&$3^gK6PuQ^FW?114X9oMk_ZHbw#4Wz- z@vNnPC{hOJAm`b?q-8ynPPf%!<3r9?I#t50UgWV8^B=ps0ah`#ZCQ&vFzbvt+(Rtk zJjKRjD85)~ag{T{^0cYw=%)or*k{JNLbF7Rp#|JENMReek!6?x-1H5Id4nVU70 zs3lJh^zrOWv*Nzg=XkA#zfF{9yP&Hy z(2<m|=>A#+g97fCmjc++?x8Hu=U*BmDwP)orf8I5v#z$2dg`BAC36*mgW>^o=FN`rBN3-+)kwI7m>x5NRO zo{NG-Y&vF)%f;O-A^7t!4Lkmv#qZt$1qIt$G0NHsNmK?POGz!r?nxjan0p z%y)oQW@7GLhQ4=lD*!rWJl$OWhvUAEmY{ z3WwJwCNqn5OP4K$@d?}w+{@ie2Ta{A@($DE*Y*R*~nQj4`+ra;_|veq}K38um$TX6LOE11fm;# z1sXjyGON6bUUOxx72-U)>w=<8a;l$O@jQPXP}DZl2J!o2ar*dxqNrALQQ48Z%By3G zcIVRrg}x-~2d^(G{Tha94XAAqDT?OF;oJwOpJ1n_MZ44J%}svJuF6$q>z?#-z4*^t zwxw(&N22m+`l+q%E3ccxbHcBGy){8rABy5$9{o3u&z1XALtvdDeW{#cUgdM6UHr&m(fXG-`_Q{0sY&)JC9p$_LI1 zs+^bG&QYU)_e8DP#q#SX)UIx?!`$B6W$SJ+a2P}U$Iw~+5J`_z&IdP)%_wx46N>aI zNmvn=B}Gw(*}E%!r3dsu!xC@&<$GcNAQ^%7Uij}na!qz^!Fh}Sqv|WeqI$os?GEf# zY{l*XX4#E|w9+NrJu`%W0b+MxVPJPLXP>dVy9>L!eb?`Kzx?@j^rB{;eeZk6+G~-& zoW17Tncny~EDDF_h9a(6Wy@0Cb+}QpxE@f4^0N)$om^mWO`#@@8zmlHv2ZVSIh$t~ zhL-S#(VN`nf!7V^m&TxXIr>}c%F3I^@mS6n{`qBlW&V}~IK9xrGh(!|D?JfyE^}X_ zAYA#`CJ7H!J;sj7R$dvC;K!f&rRfT#n`1JZ4sfU4d5`ji99(sd>GAU1S!MBH?%X}+ z@6tb2y04`kMKkKQw<;l>>T{=6$DGr%sx;5!{$pwS^Nogb^CxS=0Ag?Q+KN3nA69)} zZ`QkqIP!Pi+Qd0T-T%0QsA=|JU1{D|@@MLhn$CUQqiw~1L^8(t6Nj2wT83YV$M<%b zC^vty^7(rdCa=hZx@fEA6m2Lb%^|*S`aex;<{`GFGBIO|7j_l|kQa-1Bz-m-5aaYX zTnF=!qp&%aJmK6K=>Dv{<+?LkJo({P%%ATrSzrjVbm86%Id99S84jhoVt%0>rzUSO z9Q@0jf{FC)V>OjcwDXSA-1oc$rRS4)IMes4_y;RzwsBXQzT!1zy7F&wB0Nvgwp-UK zyE-S~IB^VDZW)y`XOi%21MPg^o}%+0*E@L=2D|)GBF`nmmS-pZay2b@;o|!n(=H+B!UP`fm<2SYEMa3E+Iq?5Bgcz0jfNFxIG!0pdk2f|Klt>{}cs z>&EL56G4uT5qfF3ONX+=ock9fkuNcs+UD#B*7KHgyAq&s=CvWLmuyapfoJ&)tV_A3 znEngHX>-Q*OLYyV4&0ZolYtY}MKdbH4@FtTAUXEO;ZWj;UU3g@M= z@0lLuD!QB>zYM5T=gR^|67F{%`lNy9A-4b9kyA7t+ zi$<$X0q|)1&f-ETY7S5j;D7VyWV<}W85)C0?cQQIlZ*%Cb~Za~CBGRr+ON~&!dX8_p@!J` zv(!qyu9w0lI&7*%zRpkCawCNJh!ox(!X3h1}&v-=KEY(^(7L=u5bq|#$7Bbh2S~oa5>+qNbR=% zSoVwi%jc|=S)3a-_?U(vmw#A(-|d0f@!UmfyG@g(dc$y;JiSHLF`e@QcXHIWWnOyx zMifj6{O}>^n#K5K$ylXxE@tO(87mE69b6FM%g<7IgP|yi_>j|jbjkZ;c=_53O%uq8 zJtSD!mm7ndzv+jXB}yx59KZgeN2wo*QY();iRZ~ZKDJ1)jwP4r4n6nw%gfxxNqD)C z`i~D9iwp0;wv+W3@T`Y~kuUCB3N_$*kCB1rlkt_$U)TDH(`YT{*o>_mQlNq7Mo4KO< zu)Wf906BTia|V%HAoq#U9rB4^Gkvz)KN*UUzyIN>{G{{__U>3u248L{V_SIR3G0Mq z<(4QXy1JuWPwr#Z-dEVamK*vpkGXJojHc@dPqcMm{`95-&Ug05&)_JG=u{1*$3((> zi4W@Z-)pg=5B+D6Q!zVtShdRFJI)0q*?;s>w;TRNyP_52BFxdtXC?Wj7QuDY8>x4uT+?ufJ-OI{XX)CGCw2{9~gW0U8*TR>#?6UgZ3G3 zCNB(0*q_Wb@1uMxG{c@RCJ-yv;EbLR*^`$$Umn5UN?J>=h4Zc`IE?q0*OHKC=5!j#Y z4YMh;EaqHHqBgi=F*{d1xXLhotP55Kroey1KEv^e)Ij8%zWdASih9NiJtygrQf7)W zi(IlFzU%RP?@q->;!)-ewG7_fQI6*%;O}ATyJePXc&UMc${y({@ z21ybIMv!Z)jkVPAOh$Y1^IJa&k}Z#uk?KyZsG>>Iiu-;(LFDIuGFzUI1L9K#`7Zrd z$q?pXX$Ltwxv^dLSu=*zCP()UMJDEJ@jIB$`9}pgN$|=`!J5WL#rTVT{sQ*Q6Ap@c zBNCyUyZJBJAc@<9;X!VWcgyEW#4JCIT}E8}iDa2y+Y`HM6B9dcluS$<4<85S<*yn` z9rEX&v*o#X`$Cy}(gmB4LY=`trNGS%FKZ{^+XZjUl^#BLb1w`oU$<)77DV8&!HctJ zYm0*5Bt&}@x3lr)O2gSvE(i=EU%{b5!>d|wpg>*haPIcOL z&O0Z0A4cvtM?LQBkCCO{lTm}SYSST8B_M=q!(hIz z!u0iGb}azI7`yh{FOnT?ywQ<9V^VXf{4AP)DZE>U1V>7{+r)x2rJt8@kiw=;NN7nu zCX1fZ(ZU&CUgV}Z`b?>=jK`gw2^ep@Vqs*S@O@(_RwlY=ZbgwJx~&%;mHuVEx@;1b zv6uS4_u%((D-2_XyC5i>+*l*UU^>nfxew_}V;U$E_jut}t{(MsW-HFzsfl5noHxy= z?A{lT=qGx(u6&~`%uc}Sebh5`sV1W$6LD}ZHN0Hg%5mO<_oLaPIWtgpUrWLb7d;vt zASYW!GIi?o@Tiw8d6l%t*XR*{B}aU+hqnD2B=zauh~ebGVer8X+1NV{3|E9TZ+XYQ0%{erOO7`2}~ z3gms3FFb$ikhOTFRH@*Bp3HwL*IXn~ja=FLO2PVzvt-#>N7N}toYmTCvTm&dt`YP0 z)h%8oZ+FDD$vQOp)kW%ka>2~Rc+^Z9t>`~{qUGrjSUs9-d3rc!)(1S%q|;dQ&^+E# ztBc$D{g`D2)1fYiiQ*3ITQPheL!C$FRJE-eDKnXu7t(I4Ys^#r`cTvP6EzDAM-=P* z@fi9*50?oaloR9)uE88QGtoqf$bFH-T*AJvz5MK&geQyxO=E`0?B~p%>9_CKc*^g^ z$>g%&Jv&@4>rAQn(}ljbB3F7c4!r8Y8t>?G8Btn?++lo=aa-g(^)u@Q@cn+-FYg$0 zs!Y(M-E5I54HBSj#eU5MMVdE=#+pL<{hYm$_$mZxgLz--cgU}b0oXNAhr-OQG9uNB z+T46+L$=7vArr7AiFHBL7WsI^>Hl&qk6l~k(<^(FER~AWCYvSU8CA?OsOMWcPcE1^ zpgr&Ajy_lrw0`M{f%K)YiSbHKIdW+-o}8A|%HY0n$YV`+s{Bdi zByrtqll6F8{)18_JRa2skR$J5RnZht526&met9ct;E{l$<2nQ%vyhAAKm5Yl?1qP< zlr~F5A@8<FG6uKLm+Aj}ad}%Ze01xi#{BLNtkKV6Hg`Avv@IT=yH@lzZ20Dk zb+mJnH|Ykm=PnpZJKtz?!O-rKCpJxEeD)fySTH|q%ea@kbdr))It~|EM>ie6Qu#NP zdI#~$d%cay$(EcU^rzOz-p7jFjCcso@2T!(WZ<88SQNL+-{Z##}``cs*oWqp2p)nbxylX%$8xC zmA2AqLA5fux*`GGtWs9{d zhVz_^ZoNz9{&m0t_Or%}JVKp|amZi8oa)zkxe#cFG@hgAndd}*X&jE!=4^7!PD!M8 z;bd(b!q!BH>vj)#nuVgX=@DgjR5*NCZ|v>b&9d##L>xC1xATLXzJ@uUoNxXHfBN%Hi)9kl)D=tK zYtj3~cA3igRMLC)O7thBU&V1)aYT=Cvu?@x0d^=uO`N@s_a$xJIJ`{NVqn%OIc@8N zS2g4Db@Obg8Sa63k3;dsv!n!X4MV3D-ssVMm1QNXM09IjJbxbPQp2$Eoinb}&dzfi z875zIff?=mY)F*BDc_U*LFUHSiwtwpqp zZf(##C9n+h7Gg54ME+7%F!tJ?)}r~ls0;T-Tgg z)$R4NvYP|W{-yT%qm%MI!45rHe;wTaRJI5b%{a6~t9 zwqDmOvS6h*2H4SM8>h^8x2=$ zQ#Y*@`BJN#Fhn`WVb)#tbOt>)z)OW}E{BV>$>n!Ej|G#t92g}bduxvIf7ADt=$LEp0oeQfLIm3i`-Okv`g+Ahf zvb1xX>$ZiHf;{n=xjlNSg{d{7{;wXd)%R{;^(L{{w~_VWkne?qqhe9rk2r5lRYL-O z`+76pn>AY)=G2PA$m=@Xt8Z?Y!x;W2m$724vtdhS9OuzGlo_rw=oXU~k-0?Al=+4a zTjS9CDDN7>Zo{e7aqyp^#iqfJ42|`1_z|InV?`6C`|(&TWqrP)&{A>FipGh~T9n+8 zs;pZdj%S~ek<)a$Qg&nzf|zf#ef~}Htj4{{)yW81+fm+)A=ZeoMY$F%&wn_RyOBM$ zAxk7A!5)VyvX|QAu*}+Ki(jmL{Joz^_o}v-GvdFz`kxFACtu+jewJ4y)UvM~@cBUk zDqg%R-$LEcwQ>Y5g~!OL1rv!6^1(oto#v*0BQdd0aXaUINILl9p)*?0&U-H3JTQNs z3;sT44qV3kU`H2EWYNwKudP0~@m(ZtoY&)MYW0JIzQ*AA20b=rmhAs@P%P?s>p8#g zX{IX>ahrHP(ORLr% z4%7)rMBdA1a(L+kJhO^G|AZ{L;^~hI7kyBFnQCxo8iuE?#q;M5PpX=ixbKYKwDW|@ z{^lUA=?Cqca3kHk-q_YcP5F>MSv52LX#t$!Z%i#}W(XY1-O;+1j7Cw$e zjaSr!HQ7hYihl z?}@_Ds#+Y)jW!fglX1w+WR&u2q3qrfi1sU!(dyDNrNu-aq|Qsm;jN{_G1m=;Drhk? zeW+~h>jZ+oVUT1M(kVmyd&$)Y%n#5Iasfs5|wGoodnLz zq?8(e!Jhi0iEws)Blj}k3Q@r!voJz)l?8k-&W4T{U+s^-)uI&3qo%ifyRPORjX~*5P zwk4>s9@$eK?svlQ=UR;1o+_U^j6-e}J@>N;_7v>f@?OeR zvc>W@IwaWsleUBGVeg!XFWX;Be4X+5H8%pidd!w>kG$cTB&40!{^@8@eF3#v&M5Gc}WvXePPyjtFkQ@cZ|jHS=^&3Imhw@G1`yW%Xlv{EhnyFjN+bYe3;(y z#K&mNH_^hper?Nr7b2;*&N*Lxa$#gW?g<`DM&~l;4exGD#G}dNKw224BxO)1SI-`I zx64Yw$_Xg*H5mh4TZ^%u6Pi9CAKJbU3EN_aE#;`4W3x;)J+a13`t!?Yhs3nCHA30L ze82ditj(~&uxC2hn0yr9UE{FbCK34lSgwaL56_Cg%GT8W&iBHnkv`ZnW4;o^9hNO7 z#qHd4UxdZl>&{4^o!#gCGq1FY^A_HNU3??WgPM6_Fzvi(QAq!Lx=5Tq&0N|z&wLqs zq~}+2etfl}#n%-vIN?nDw;N`We2;pjJcHM2rCO}{5Q9-ddqyv@*v9<@ciz{_@9eS& zt{jUoraIIPC(dsAb6yzPYNf^6ew_a{(&ABJ zd5b2xXuK@R_*`#tVP%I%*pe&oO}Avje{<%a8>z9RR#4o=OoT@QW5vcqCFP?R>>`q} zVf88HNzDncc#({`%j!$wdPkh&+$Hv+qx>?pgZn?`Y;&f|Z7*w_Vc)gN;H{!89*e=m z09fUomZl%A(dv{AgI3;_v29ozwo1gM{ug8(^YCm$Af{oIOg`?3rx(02F|m{K?w}90 zw6-he&*%G0v)Di`$Jw-Vy2(28Max{6!%}1PYSzJfwLD=$JNGP|UHHI15)Ei){hj>6 z-Oe!(&ZM3nIZ${oB?e8LsJDCNN@3of7#yt37*gSL;gv(w);!1_MRXOztK%{F7{tEW zkLHFtXXyV88LMBI8?raX;PnYDg54$W$0C9K)g;e(;_=f8 z2J;lGu-zo}hg0Kw2J_GSeNu0}9V#DYANKerX%y{(fV^<%O0||fcFY;RdZFXS!J4b< zym9QaO))!P?J&pU*=1*Jq@DlkmmXN;g8H=c?;aV2iz<5JStk4T&fN`F>>`nRirT^J z0u4a}VsMK+;l!lrhIw9`gFCPf|6#o$V0H}FF-J-rdEAh^AO_X;Q#*LmbHjvr|8aeD zZoR&ovT9ZgUU0Vh_+~@p4YA5)iLa7=-ITulscD#?#mV-gl-7?q)9k55f{(wlJ0u!Y z%kl2Jn65M<7W5{4@?e?Sink^LJB-Pwl)FOdVi$s2Ikacnt;(y*{@jmA#@0566cayB zbhl@0x&1&H%DJb>tz`UkFDG9rIH31A<})W+$gmt6yrP{4wHPAGD=VxkMJ&z=KM8MX zh40KgusTI5hK)rFGwxE=og~e_*I8`40&@m0qbFx%S{xfh z9^={8#q8`?*WGfksSO4ak2Ir^&Y~l8$OeblZx60s*n5p5e1{Mxw8_;F(QYDa!q{)0 zzuxfvO(?#PBkm>dnxO@`eamHi|(<_HClc(E5=7$7GhlxS8iM zn?2IX_o*8jibJvNBUPxTIE94aY*)^q^13Md9l|l^tqzms+bap&S=MgWQJYhz_?O{^`e z4*TO2XAi^w)sUS7eDTF25$*O?lMxljmAyF;>5(PHw6X_YH%>xbzjMlqobl+Cm_$y4 zBqg_@Gy2CT5zjQD z?j0%)cza5V{+o-}-ODTZSoYp)jr=%bV5YaVc;#S=d2jVNvUXeHl-7_;$D)zE8c#0`@419K?KT6r2X}er)e5Wy?n3!u&Lr3rIqObJN4Z`9hiEuSckSF^Bv34H! z!5luJ{APeB>-hyL%}>it1~%aAeFup!QT>+@0;Y1M71`M~|bqxTED+;l(}-gh-h zUon(v7J!svdVK2MLczxn)aR_K`&BC?<#j0B(&*bubV?U$o3^rM{c>-ia(^>xVcNXp z$lXe-_z0BxN*%A^R}@W`NKCk(!?5v^sN~bw%=l9?)LLR`=Y{O`otP6S4vhb?Vf>mBY0@t_2A92<&s3NuE40z**+qwu zd#B61j7ZEsqD52Z@N%4U>@l5IN7mB6K1HGLVN|(W`cXZq@ znmtecT85!pR5B*k*UGkQAs9b583l8i$j+TX@McUaKd6mTw^T4Dn(`j^yJomZ4%Zj8 z640S@hUV5Ga`Ox?&R=)EAjopg_pw+_4wR3vhs{@BwZVAikak&R4KEispoNkB{AwQ! zBX9X*JoD-?Z~7`vsioC`v1M4jAZ0q|kjK_>MtN<9GL3gaH_l#5m)xu<)KQ&aPs~ig z8RdDO2-tNe2DIus<=CeP)Tu+vM$bxed?Ral&g{DBno5Rs6vEg?T{*R` z4Oh-+YRyj+(|6I-h5WB4kS#~_)Ry(6?f{m`ygISCz~7~`+#>Z2)VSyTeTq(GbvDrBACB$_P9VIg-1*1(^8m2j4QI=N?Meb>8;66xGE>xgKaARuo9lNSI zltcVZ{o;6jlS2`fv9+ujABd;gTid+zJ{x2XW$ihtgW;l$1Frn0AKtC0%q2(7t%mHe zWP2#R-9vDd`TXpSIf}tN6!YG527P3sVpcH>moG5Kb~>xvy%olHMZa49L9tpLjw5-r zxmy+4=ox|KGuRJ|Y%cAZMB;r0YtQz5MLiaYmW)3wcG$?cxG40Q#5s7UU@2QY8W*Rt z#(X(RhHj6>o)voR4xJ+<$T68ndoCKbMqHo9V90aM=ojyir>yI>EmLr3*(vezj6*%< ztFfaw6L}K{-3jsl|N0;i$K%kBc=(5@f8{hWdz5xVO;oI58NpI7%Lp#U{@*)=4SQ zOe?;39F!end9s-`d^eHDRio|Se!UHGeAIsr>u0Fm$pPWCEiN}!zS;SsS??6)|6xj> z&LN2IP9K;vPnl366i0}Et7)=Fd7*|P;s@v8t?npE*{p>bXL4-I$v;S+oB4Ud9ES%DGd!#I9-hzKN$z* zu3Iz~^e0}W;|*!}HX6>cDOmaPn>3jcgSRUAE9O*H`*a{iu|_KDc5bd-eiDoR#3QY4 zW~R>C%s%a8atf_&p{}eHkAv%IliLl|ZGmxU&mGiFFRQ6>jPp&ohcG7ni@fU)2~*h!BX2WhLx&(NTu5%;&rPM-*bq$HOg*3_)JEJHOS}p>W~+bJjCCY7 zJU_meoy*fD@mTQg=LMm^dac?hy1#4->XBJU)|%L z=In{L)Gxbvr+gt+`QB00n)`kEZ@I%TYnNK3e>fgLr`Fwxe058S2%LOOoZ;_Tq3 z*Z0ZAbYi-Ci9MDd++(bIf0CMS83k|tZKq1cskcf+qZgmYzVcH8jz(kTJ=(L3lUhjZ z<<6)4|D7Y$1oo_UeJ2-fQ*-q$ZPJ~-H>7Q6^+r$Lq2Ao(AJbILw2DRscl$#cR!|=> zKim*WKL4^;WawYsecV&>_R5t#7J(@HnOdd0I?J_H!PIIZuV%>-GM)X&2<}i@y?mwl zuU>C>s`!5Qm5b??XF6HKnY$sToersuO8O&*_o?<*p7Hh;R~&msj)FBg##M8Ckk^&m zTt1%029E>rgZpTea{C+SPYJ@(&fK-U-OTu+S1?}k+|_Jd#hCOc7>Am2@AbhC)ig5% zng-<281PVSZ4ruL#Ai0Tc}A`IDHK<@OV}XqpxSy<7}{2$cFeU+YC-^O%nIbo{hFs< zZ5n}*<B@7uG)6wb86|s&C!lFskWm`8_s`Q?Y5k;5VIBn~|D%O$mcL@4(19W}5ws%=_^;YkPbY`@vAwqzc@t{piM zdaqH-=TJYC?@o7Yfm(4u1gbQrM$+&c_3U?Yd2uK1acG)qEQ}b`Dq@|^n@ z-jc0DS04ex99kjlMNKaQ!E>G`2Y# zZ^wtAKjXu^(QS-1hlZp1FKTv7E^WNLHw>4aP}{EY74`b+Fu0$i#^t?DYWf}e!(M7J zhEG=?cMXRZ<7!UUMAd3-I2uf&mQ&6^HG}$9C*!D5=-yI&#s1qZe`0GbtEe$KkWet`0;wIa{gE6l9gi@cqoxmENsphgc#}n)+U_q!lgPd+ z_bhH@+>!my!l{Qg32*$4N|WIsFsq({$bDNy^F0Vow==M9C-aat;hZ04V9@GFDe*oI zsqyJ3vbl}4b4hqQySSZ~*>**Xy@9y-HU&GHR!}Pt`!}%)bvt%!60?|z)E6KJP4-+wP961g`mrKLYBuozEe(3qF@vI zJe3rlo$;e5p>*pja-<*6;|TI+&N?QSI|Vb=Wn$CT1M={F7>w_!o6y}!3ZBQnmb-}B z@jp;en}8`+#q~5h=$qn8@O;dpP1Y^jq_;lMCNTdSN`YSGYs5>Wy4G5RH22oWqZ0z zq7D#Kmd^c!&g-R9S7KV{P$%@`4#^|dsn^<6d^S_08)uK>7$1E0pOl!{oX;>;11+C)5- zm&XI4As1>5|3`ANP9Qc|W>TyEv=rS6M#~zRDCMe=Z1#j*o{;|yuW+Vh3~YGc{cj(s zRHsWa>%;;)`<;TSqm7c;Zzj6%*`vl{sU0yL*ZvYSKYFtCb2I>gJn1MI0Yj;%hEDl<#!u;DrL{zX|*7@$S?W7c=o zr%PA%`%AMgHm>Vj`5Mh${@oO`Ew@yjR!+v`N1P3D-Cs7N4+>%b4rFm{5rZHcY z9=oOIHtr0L;`#C_lzZfKOWsNy&yd5?C@KQkw%jYfcv>bt3`Wha)N%;CCQXtj!lyNP zA${&jlOke$uT8?W{%7RHw;-I~$2w)@IB9W~^#b?aOQ)@YF^Dsc!s2@L7any{uU%b$ zhu>4sY)wP8ZLOIIA-V8g3nIBouuwE_Eh-2 zb2mFk&OG)i_-d*~PG3XhU~}${@aHrt7cZ_Gli-GV>1G-HEEugCli#hSQN9OF#EA-%Fr&f+`Libgdv{U) zapO_y@(|0HLpz`GmKhtv(d`K9h^RrxxfX-S+~PXvO?JhpYi}*U=g*9f{p?lOS2M8f zJvF9N8>q+YkgJBi*YC!Ac|?tA~RoJ$M^ zZSu>kmjv(AVGW<%Mt7EN6?C}DXO9u>Wi#hm-C1vjes3*ROS31<=MaxpQja?nD@;<+ ze}5}6vrNXH+Kl<@+RD0PN%+b5R#3CERNR(`P0XX-r}Y!v?s&}d;B%3c>}DUL$@WzE zE)SD$gCnSSM}49{xng@UnD~EkBT9k18!-`wZXWH%U;cWTcgIo}_ zL)P6W>C7Ct1A7kH9UUaxCl%?n$c4ATLe6I}e()?mZ_rNWOd(#f9`$Zk)D=hC`FjKE zOs_95ecA87)`%Q#bG|6bBrP5{VI0rBuSC`)-S z@9Zz$5l0-99TJO!4~pj-HG3RVcivxs&<`odY`$6@yL<-vy&(73WM379Irv69+gIqQ z-npEOH?-}|?&Z~S4=3X_ZJQEtOOA}pgbD3=e)CRQPOcXp+EdM(CtJt|bDVxvI6X=B zv$k;O9oj#|PMnw*mu}4dZGKl7lgQm2)}DSzwd6YIHkq{5gR`HM@3gZ+Th`RJ$CRnH zId9?J+CjfeX*ZMDaP~%ijg3_PaenoYHXNwwqHH~!jNSd1!~A+>7#qj9J&2r`r578# zjwT_%iaa)jN-&8F@cOt(2lg{#Z+{Q}Yp9#Bb+BxE&+cdh{fjb|ef<7g8tU zE#Ft~ID~L#^?&`@e|3>s;^6|6Wvr;=D(b+58F*1dK65ogeK#WqI99;llisM@v0&7XXiBOU56T0 zwCBPVHlnd*3~t5vbC$FCF#b+6+S9WHaptr$ZP>FhwG4OnNR<5ic{4{0=+K4a<9Lv3msL&u~l2HMf(|k3ZMAp_FDXu^V5Qx9r@a(VR`=%y42V zuIG)@*s2NW$DC$t?d}?r#&LK|n~a}5*;2PT3L|gOe_~20v7EVBFh2JRy`?li5QJ*) zs1dn$w6tj(0FO=Nl#H7teUJO0H~Giv++8no`~z^Ce(tPHkw@07VI6p8TTGTJ`Ej^v zSG>PbGrNrOFYWBl`~9ECZNjT(z@PW^$Z88zE1w)ZqCZExK$F>(b_Iao|P*BBD7UX9E~FV-mwH5O{S>60;y zF<~BRs#)Yq@S@*tY*r-y22R3u#?0YOxX1B{9BH)ei{8`Z+i&u&b!H8iXf5Bt7~Gq7 zyHHC?FgLd0zkUB2lwq;#Tk{=ksA8!&DU8YV&r>z+3y%=*|C|1~=1g5p>HS(X44{Vk zwS}703B)8u^XzoGuepCI8P{mf_3@Q4k-N8UQ(4ROY=TK2xT7&M70t(*VkI%~A@t$8 zFYCj4OEi0UtP#||8V@xB@gJFMo|&)7VUH`oi#?nT^$p=215vdM^$v@^C{N)BlYQ*n z&5V@zaz1$6n7rX7*UG#`#8>Oce_dvV_^@U<{3iuL>5pan#CSA`E8c%zP@?M1F{e8T>s%@b*ybR7SV^VCRwS!BPJ8GO>M`qP1Q>; z$xFmLeW%YCX~g&Zx;6Qxnj0kWF*&&Cw@0eZkfQf|543IN;Wm=lhk4%s@>(9PB28^L zcNoQ*ee+5sCX%=(p1a7SmkphbMV>9@k=vuOT%Ad3MHVj*H)A_Ah(VKfBD87f(2^&~R6}x}ChGUvC)6T)Ihl899ucG_>vO zms6DFP-0ZQnV*mTRXFkp@plo_ksLHoQ^`Vy%X-%SBTi{HUn0)~&;C_SEnNCT>;UZ+ zI;RhQCnUixkMU%zH7@i{z<2(?#EwVSH15&N;<-5I!*?8wka_GQ1$bjcWzNeA_}-^l zp};W=q4$~d)UJ#9vx3lv{oeK!CurXM@cTdRwxtK=D^r8LkT{AOk>=y2{#JLC$f2Id ztd+8?I=RrFr{PA$$+F6ccD_bjR#825eJ674*cYE$or@c7v|)U%^o(4W##Y9idvXy( z-h+a$durva*)XS_2ffczeX3={n{haCOt@O2?_><1505O@TU~!3gEM937*{H(Bg;|0 zr7L@A2^ZxLdo%4AZv$2?5-snUi^JH9cwjG9tQ8W+k;m#uDd}pFg7#kI;n@+O91i5p z7HxZ?Mg_|)$8@;JIPlXeNAq-u4y9wN4{)(DII3wQZp4x+(*{^x?@jYN`fu{b?8<&Ro7N z`8(LhV1D%|AWt5iPDLkc)`5qeC5HL$Y~Ekr+m(Ryw?2$^Q?ohVFNhv50>7Z+jo|{ScG2mYPKUZGo$CsL8nTl>4vE z1`!*{pOeqr`Dl0c|M~7R4rbuMkO*uKV!pAKeDwLDnCVZRJ)JMo{sqF7e?x84mh7kc zA&}?g==Ld^D_Ncxb(j6sp2L*E9uu&c{XIigXDPkg_5U;`_Ek$2V`C4D{>L0rogiT+ zLXg)&hsmpZsYkw(lcZ+xdAHr?FylqWjk4?;EZzoVLQpRGQBzPYt%Py6eKtO`2EP%w zSM@tR4LzAlENeDJt@bYqub7)9_pwqpPNTLO^RYu08>(0CrsE!cxa8QUGMoLPvWyS< z^n7_C^iwCs^Mh`3jQ8hl-ep0L{wRyvvK~rgte9-3jP}waEr<8f(DE8R<8uoAv-R|& znrQZdI&NnC*Ve(Y`Q$y=#6GikA1qwW`+On$P}a7nq_Eb|vhFw*gy_U5w4e>o-Au(< zV!)T%F+Lp2gq1}YCNsyL%H5=!UxKiNK9gDCfJ6iNftkCeoNIvd-M!JJ6m9N5Ut?83 zUIO0B&qpmbJT!I1&+Uwd`7f0E<6ZFV1O5M1U%BAtjw%W4jlb(FD}Dtde*p8Lr%)~Y z5}_l<;{WE)8vj&d+rJC2jeY(VpT`)RkI99{aoYT61*2c*Y?P&)YZe_+ZMRIrB>Lis z4l~uhPqWas9Y5n-XLWmQ23j)?|2@z`U3G?9R|6Rz?!K2poKcjsNkx?x8^vS~dkMVP znjG+v$ZD)DqPRot_E)*vf_z+=>~DwEQ?7b*4}J;nqw7sIeSCH3NPEWYIi(q)O~%8m z{Jf?$&}3Nx2GRbnuXo02&h;v%v)*(ZgNV6NXb{MHK0W~1W7#)jTv8V$VakV4a<@{O zkF$;8%lHm>znnSm1(yJSxDjK}-LpS+fxM8O$=o%zGR~X1(bqXokKUlUUEc-WSWnG( zaK`e?7DphQF{`6eXZAgo^*X0!&z^>3%{Vu#zfiq) zE(`ID6#=Jw)SBMxfA{6AdA^x?k~wCr;jH(j{1UUNX=qFzZnA2JSZtwB(GHrMLE>4F zv6{a3qG3td(}*=a&wHDxwUjNy4SihC9KfZn=1Udw9qnXKb;CYQVhir5(Vr(=_@}A< zj`_nJ#^+#D^z0Rj?>hEKCuop?-1z(_>rwU|8#2oDjdlO$hC#&Q4Kng;{LWa8^3~$nVcv}_aYSa_OljN&0$h85YtbQdu{wc zl>FW^L_^K@rUC^U{$2bv#hR3QJPcFwlD> z;1Mu$1^Pn0|M_SnKZxXA6NG#)V?e=Zf*qrde!-`MlTRMeoI zJ?cy{4s<1th;YYkR7c~1i(#0?SY2<#TXmFW3@R|+c=K+PTEj8{nH}kq$I{e(=Il4} zY&N(#RGnqUelKJ4MbCPwSJPxPaV4Mpmm+yyMT-%lH zMgROeeFW-naYtV#;w2n|fpI(!jCTj-PerL?cBo;bu0i5r?hg@nF`4&zw>(tYWQA+f zd3G9PAmaO2#9Y=QXl@nF=6QAqFB6N!Jw&F>bf9)laedgX^|l*-ZBIuP+WD#DG^2*| z$0XW$&Y3R8dDFabhtEM-AJnP37$nfnUAJvhqtg>muM_)qZ!^_QaxgxlolU=uRhLXn zLhLAViaIt|mrYB?uJO#b*Zq>;+&dZ1vpIV9Au-R;VFF|Fs;D`#mUynp%Neh&oMc-r zxj7H8&zw|8mhesvy~y5s+99PsaY^aC_ge(`Dg9T|w{P)&?{Uen#+@;r55!j z(~mCj9IdLU5n>7csgV*X&=Fqn#H<mk$QzuYAFeMgc|Wvx&Y8m2he{-Oo|e62jZT$(fk- zEu8%v#LjCMqS)Pmfqu*H*USAQdO>0Kv*(#vvu3SlZ-h6wiVbs_Ltbfw>1NIl*lUFN zuM#(AvtMT(-sYha`pm(O57@^g%n$**KR>gM3V*FHp7Cr~R1tq0S4YU?FW>w^eB*@&qP#BSOvi3y2QnxSw7Za#=e|4#}y1q9eF3^Kv zQB(Z)%N5EV^c>o4k8>lbXX{O`oYFj)8d&26v5TOo#aOwHd*6*xv8U&Cbp30FRsZsm z`U-~aFvq|(^n#r@2VEanVH3Hz`X6e^9^5&yTv#*Ca+~9&Z3fxn2jg6PV?pWlEB0_@ zoG17VE3No88%r2xhdVztLEP^14!?08J& zoz8=xS-gYz18cdDM(s5*m$)+#Mb2C7Uvc9T`PB1?x06#5-h#f{+jvh|?G;nla~PZ< zhQ>a9HQ)6yJfA~f#)v}R|0jPD-#ck8{&4^o)~7dp?qCs~r$Qb-9aK#`u zdd`V)@ON;)J#vtqC$OGfZ;g2BsP~w^7x!jcqO~#=FP>aL`D=45dPfWv|3RzD0v*eF z-~3&MCO)>XhaPZQ>e$tIG-|ISQ_`#p1R3N(5xI@THMwR zR~Tn;rdso2b|i-I-KHgu#*g#jU<1bU)Kbm)?QxhR@jkj1q`7>JyVR!4rT!B%KD82X z%#B#_$nKi{1E~WPL%gV61I-Nw>eDm7RStV5)-#vS-pPCIVww2MoSJ!&Ib5|xc#UUX ze9L=w)n;42;iS)#|YAwfF1|awnc|Mo5l&f}op~r|+98Xy<`QLHH9%7sJ-rdpB z%K?o)q~fGb6wYhe;Q7~7_|#vIkBm!fg7?-eyeIeQuU;Nj zZ+Ae*>j=yr;weok^Te0&HS_b*=;Ni)7It{eIA1!quyk{kJxm$r+;byJ{l~abw~sRq zlUk*I!-^g%k(%+;bos^JByYxaO>msuOb3J- zq+!jOne`RmBiRkm)_8l*S3eVe-7{xsN#-XQh zYZ;2+W#rp0eJ)oV^~Z#sJfBe>vU4jh9@(zA+%63dYj2eHCOA-6hyHwS z9WZOF4f=-A|J2wScg?NPp)wU~w$4Gvm$UxgGf~faDU!$AVgm7k!!GV{%5aA|Aqs0t zER|ML7~+Cz*3b2C9WNc|V~6{UbL+B2rHebUE@zylcN$%q5#@$l#`(|J+NBphQ*(fE zUSH?5CZ!qcF@ zIT=R>cF_Fg*L7OOK4MXQP1sG=N5%Yo{%i3hlG^0F`~DjICmx(m!J*ph9d;fS#ys0I zx)A$YNnAaJ&w=y1piRrfI_{T*P9XpAcDh(r5{uunQ()1-OFZU#SHxPvsktOPc7`D6 z8K0B7nFyTWj}{j6JXIc$;|_RY+YNf1oO!42Z9pv-dI0qO+(3FC;efU~sQX`aN}6=b z1}(SHr+Y;geA;7$hxBsrW38duWCi`pDQNNA16yy|VOGl|YW4I+^*zp9vZ8Ukdb9d# zMI_Y6Ywo8=+GV91!t8L9asGzIrIrQ`7{xe0#+cHnOWbglaUL_cZmC0;C_G@Cf5e^D ztWw0`G2`V}f1So=Zan^0oG zXdd$a|5(eJ_{v6_D?GEac+ahH`Yg`pGrvCN85Xz1*b4GG8`9scQ>hr8`fujNI-%(< zu`-l3pfUv)%~p%u76}lhDX^`Q{#gWl-G;=7+C4ba-}^5=SPGLNA;_oSWo);8 zBKNW%xvrdj_@aP zTn9s)s{Etuee=DxTT4L!TiIIPxEPi6$4MFwVa1sMoV>t*N~6aSWpA z@$kylIrODJGnbMv(^-8p z=0YTU=ncH%?3-#fbl^VCN%pYgszlzw6wH3Z96q#MNUu|St(kmgg9`Se*GvO~@>IacZTB=7kZ6I-i2Xd!AzYieStiK&-a$ z1kreiAM+o5DBpAxd0Raok4?iC)s0aWPUvQ z-LHw)jrA!jeUoVi4dXm!QAFvm90zn^oM+tXUTX8q4bF`7664PrEmaiv-}!T@OEr5J z(Jx>ad+LI9nmy0s5i^mqLjO!n*+}kI+L9Yk;i@^p{d*(!fY)`PaV6L6&>YUbt$Jvb z#EqJ7<@a`6M^k?kJp|4X7c%%M#;~4!_=$gK@_jM zPu{~5n1}N&P|w+v+I8OKSGzA0{aj=4V?_#vS7wR3U&4|3l=a(!NYTDB2vbZ_aqqsp zs7m(*uG0Ia4#cDP?zrbe|E47FB3*Na)0;Guz10!{Y4(UTO2?W>rE-YVzk4tp=PDEB ziKngbb88x=me!T$?X^aAPAZb-)AHsiJ&{?DYIk^|&L0?vXf4KfO|jgPJCPmJYvTM% z_ZF1?`E7^AjI)Jj=hFAziGj#T$P2lyxjNPz=NacB)3utgvM3mJAeSILQM2Vl93C>x zEn+M+sjXC4JBi$t$l)3nXKJU}vmg1}QPZY~+B1C5ujDn-=o349IF~hW$ahi3v)rHe zpV#dQ@oEa|WcJHXMw}BjZ;+4tgE&bTb25A1%1*?u>lKNMJj){#DG>JS#e>C3*uuNM zO+vnSx0d>Up(*HAv_N?8jz(AZ#rNxEiQm1$vE?^&b+Sr4sUHOGfK+(&^%EO6(g*V! z`T1@(h>OZaT`fhl>dh?Ks~d7qe|I(Wcy*zB=ic_@$*t^|iv> z^W=Tq{VE^edA=;CV&0=ua$yfAoagtPHh;hDdNvT>o2sBc`l8&njC|LYHRpp-bq1IA zK5UOpjPu=9hcyGII${Ome0E}t=6kd|${FV-ea33)evA5l&cK_Mx|(>_avsE-%`Co& z4ntL#JDFHSn=7Iumb;Y>oDBsY5Zh0%W)5dQNm?yFYZDJ%z&mtlj<9Bof9_^}?i(pS z7}I0?206e#?8N+YJg0xy%S@gq=I^J!cX!rv_lAiJ&*`7c+Ri_`j|kgOU3uGoUN&7t zQAr$9V(5Q*zOA@@fV1qw^!csVO3dsWhRHgqNW8BjPQ47k_0&`}C~qukWqHG~Ider| zBeDC>Y+T|U=MvmV{A%QcJ-yT6I=G3DKH0)IA{`6-nv3sWt#E;u?~7Zl#jgFckX=dN zaih)x#4cVuNyUB#eKF|1BUbVZXnoQX$#Vl?^iG8_`>)9zPExzbyXL(6Zi5w?{#}g` zw1jnC%PyKH7cJ3)y+p+68)C*bM>H_!u5#5%5k()tRmA_}bHc>!DDvTJF~`0cFGk14 zVs9&An1?!x68bpY?#J3|ftIl5e!KzWZ{P2#d?1h7z+OE6JGaQn=ERVAw(%rI)|_Vz za)f%zdm+d39{c{9{IO_lxyOzatmAoZ6ED=Q2XNno=f1G{GIj4eJPXVfp34@i-`$AE zwKUd$HXGD7+0oPnOu>_;r`7ALsk7IF{?-@k$few`KM_xEz=^?fbCnND>v2!&kdNGB zh&#@#Wi8>oOkQE>jM{zEp}YO4Y^1WsX8PBUJ5(v3-e-eych2NI>WlYNtjT4g|BZEf zF?XU3tn-+Ew(E;m1y1O>pLhLhZBed8{e-l59O*t^K3YIc$J;gMunr$a3;*M`&}aX! zb-`WvP#XvC8vNsNE|4>`-MB}|K4oBgx!#m0?5jt<<@-E!po&`M-I%NMeM*kLpa;qb z;=1+ql}Dyin}>b(wLeFdt+^Nb!k^e$b~9=5pCq{QJe%|xCnarR-Z;v>Pb*B?&-g8T z$v&}Sq4bP-qpTbEfIe-O9+3}w*Et1e^$tl(SbH>BN?z~K66xNZWXzYDE2bWj4mKx` z_W{5D)JEyYj9ARBpNfb}b0vT3d!(4r7fQ=YYVI412F0m(?D9=%qveNgNQ0u(RdK7( z1EcPy!K&(t`dxEZ82HiSqr#87!;Uy~HXTh2kIH|kUv%OGy_!t_$V%d+Q;CE2`O{f+ zt8Isjm4eJe z+W7gAUXZNWhPBYc5c^d4rqi1ssS937^j11eZ&SGkK8LX0t0q1?OrNvfB-r#x#nHM(sCkvfuSt6-?d49K3Aq+chi{NB(`$RaJ3Yys43^w(d!o^gG+cc@ zT9H3|HYO}dM^WEyvh86f^skeFj0xN2vo;RUkVC%2wzjwl&Ijoa9xn|Prl;(&ql&mk zgYm+w!Ua9~bL|^cTO8^g487DijQBiF`D=P2B;A^E{_o|3k}JgyaNW;1&s?EUHKr~W z_e>9en4?rVdSIMCXG>>#N=DR*pIC>p9^on-pHJ<>u8i%A9I5n<3S}eNYc$v*-Re$1 z5cY!)_nwftxYMUPg7FoPrMol9AzDKWq)u(ztRQ#h67$B+maz9BHraqUaE?AA%jqG@ zp78SQ;p8LGLt`1wYSskIWp826Uc*((7_9~U-1?LIJ=X;FnEL~X{{%0Zgh{2;o5`i$ z)r-NnZXJzF`^llT(S_laP}tW_!+z@rQkPi)7!b`ph)!wJ!t-A6t_Ob zc_^9MAl6Cj1(edb`_b_HMPB{tWGP@9XLcPqzuvl5di0Gv-(lp*9MMQ8sr@{F_(txI z$I_ly<{`#;pFv%mFi*z!b*%lY+o10~)@Ho>#t-R_Rjk=+wPH^Z4cMP#56ItF@qS2Z zOK+2+6nOXZM!F&uE7@yIqwj0pWA3eTcT6uL9yynZg|i+`;-2x=4+#i=l!}`-T`}uf z3<{gldpc9X*T2-bn?i5d7cFt0dl2opyE^RCF=_4rZ}el$_III{bl`#;^v|VZ!_If= zDmxdHm}kIt>>>Gdz7xJJ&!8qtTVXZH36BP6pm2n>*xue5uZy@#*g8qv@8O2`C7f&c z3>5YqxkJqztM5I}D0ACUld@UO`gz-jhb231I$*_yB>e4JsnC&}(9w#z27UJ{3pabf zenJwQ?pe^=E*kyG-ThT-p_Fhs9@(sA7sT(E{_9ym+ z%oXjBf!n;(rVL8OL+1rJ!84z`iqD|uGI|&D?EmI77`PO+yx&(&PeV)VT)gZRhxOTM zm_I8FMN=ZMM`mpEjj)w^ET!y02Gy?%<1il#EJ(-7BWcp zfnkzL9=pl~)8jJX^X0kRuH|g3&B=sCS#RnUd*E+o25h!Ei8mfT80WwoV%A^m+ZcwB zYyn*E^nnkOZ#9y{R4O3u@p{8h}dcEX5B?2`waREAviz+3}z3{HAU z2f9(K`5C>Z`>c^_b2lVJmp;5tPfAmj)Vm!(K1tXI={32vec7|=-PM6qNR2(l+5BQJ z_LH1}vo{ISHo{ltjEE>&L%*=v-W7hz!?;>yO{1&-VW`@z&yK1fb*$PCotmee$vPvk{h<1*^VIMY-&OUz$wRi=HByZ|A-$_fv*k86f1}VaPbbd|EF- zsY|ZlXaAaU)@|{+#Q41fzO$}-dbF`JBG?HHM{vL9*mb4(R}Um~VBb9`M#`BMgDK_2 zj(2UB22!WfkoDP4>zh)UJGJ!tawlkcZ3L_)2V(~J<5qNl_W|zfFwR{Dj6^AWM3?QX zpC?<;$BT9Mt7Lq=9gOZh*!Qv5OPrR4Y}RYf7qTDev>fl3q`;RLru=L(bXjXO2~Wj? z-iNR(fHAL?hSVd+QAEtCS6&*P&pLy1!>McAJ{{dBox}vUcnqDJj`epB;Whc*>euNQ z+kX`fRtFQjUstJ<>jb$6=P9UErgWhekT!V*Qkpa%A_i-(P;;ioLCJp< zwSgP++!{WSw$7n;a!=yV;f?X8nEE19nTrd0q3~o95}BW|XaXKG&L?(owqoIiz+2TRri8J=ZwX`!(_v}p^kB`EIlnku+Ami_X5SYKr zApg7onJxV=+cXn4i(IjSdBEavCW0qx<5a_XP22Q$y_m7@&(;Aocxn`XVlLTW60WIe12>!~o&r7sgT!TuLVI@(`L zJ*lxH?xt~%KBt}X#s(*h;^&2Rd!_6*(-SB7Gjz$!mbw+j;QA@n)w*hFsXMg{+2c+9 z`A)Lkn}A~0(wcyl7=D+&Sd)@**2@5eH`%X;aStxQ1P+X|Hv7O<$-#UdSa*CRSKoLJ zcR`s?hzo5fTZvNQ8HctL1J&IPgP!E1bWO$K>&IEM6W8Y~sZ;Vzc&M3gm@DoLd5Os* zl40D0J@Vae*hGDrt>@EW+wM0SRmZ`NyGdmUUvZe6=P^2&NFMVL_aj2^Bry|5b{50u zs4qH^>(l($JXBA0=RKZci8xe{D{Z+JgL}nE@cmON-RGXjh1#5re*P+byhHz^ zPQ*7lwZYOK)GQfCURJ^g40)b}>%p8wb+g8F=I0yC8-A@~ab-PsyFYX0+IIo;ZWA}+ zU6^;b5C`6{1|;`!QQl$9f5Fcmn2NSPE?~(4;w73?oZavU*6iu)1g7E7yYE=Bh*;N{ zbaYbJHEOni`c}({c@2z~QRAiaf=pcRRLkfIbsio!%fh$u6?ink z7cZ={@GNc@2HU&ABQ*=*ZvwD!ydysE%0iz$kEBZC{8RaHE0vqtE6xg$hFQ2XRZ9$h zW{q?7h5Y_@}0DhaRsd2XB7!^E2WQ1*cvCy=YSl>WUu&(G5rV>fG}?~JoW zk1en-C7wr&qVi`69GPQmN2cQ2;cH0rV84EuwQESXo6Y;%tjheiTfLxu4{fBgn@~Exnw;~H?U)M5fROW*P zpSjC4`W7Bl&c@8n+3>o#0VCN*Je-z|KYc6_(Z~il)3Y(mzDQcKcNS{hW1Lqslv`I? zq3lg2YDsm4_e4i@ZOz)F(?HRfJe)?XXuFh%_gb{md;u}9U>(kQO5w+Nl1jIE` z4*X7TUM2H*>I>zOC!UydAQ1yKbEFPNvA9i+U%+9FR7AWam+wg4v#-*LL7ZQ=BFFnp z8#s@pCixp_RWVna&%#TjRUdx+^YRA8uvyT$(_i!1;`0w+^cRajOKlegUvkV z3X2X#Efz%cS!SYPYB!@_I^jqS%);A?-Hh7!1Y(0uHWvM8Z)ADh3stt+s65PbUe^_0 zW4T8?=r6k8u!Go~jY}u)BJj~HEM?5kC+e?39@O0tdG^#0TT!Z5G~5}knnZZ3 z&MK2ndEvrb`dihHlvd`$kp0LxHOw_59h7Ch`|Me}vAL}%9UBkIa z(Qe3#iC=am_w?i`Y~RmacH+I>DGxC7SQ;u)sfls%2b|ZW;VaLxj#ERU!8*j@;xgbY zw=z0U+-Z>?@4Lh8jpBYJVNRbcjOp3YDA73%q10J8->m8H&-t8PYyyD@;C7a}L{P-fZ=s-44{l=HB|3$A)+7IU|JqmB;&3 zr8o5+-4;?Guc)77yE+ba=MuX+8!D|KFD{jHv9Y-;rSa`KuO=RM8l{rr7H1{IJ(ek7 zNhLAFEvB=Uvu%uy?CE->@ErT-BZYbZDJR&!_$qPy6LELeYFnZ>2j=|EGmcpO;b_cV zz}!Gw>0{ryC_BM8r?XEfT@BCoX_zsJJCY~&KtXKYyiGdV+&zJ*-C5K1%plf%3oEa2 zrZ+MZo%=lJ?s6I$4$ngQ{10%>b7WxhTfN|+Omp8J|e)b#uPNLVz#w^_H{}M;% zM&LH`-8QPdOhQ7F*m3Z`OkAWF!Fk(+Q zB4iNKO4HC|CU^HHO@#mFG_3rXil65kVB0wzf$XWj^o_)w@#%;uNryrAEL*Uea zI9ym*sd#TquQ_rh|2J>6>b*eyx}6O&Ea+#k=f9Gw6LzdI6EVag|7e%w+1P29h|D9+ zly>wZFz-VRhcI8|NTWE+a$sNmXO;3yLlx!(kkk9>v~vHp1OzYO&US-u%7v}zOI*ft zUfxQ|7|vaG-iyuG4U+1dPsZbs zmgf1AN=1B*ed6k*9n#O!^egVfyc4OB{xVlwyOfHx?Qco@EYhg8MeJzOJLz(K8oc+V zlPj);I7{Lj#Th6~Z-ixcQW13^6Yi=D>v8WV@`1pNh z$#OpDSNG^W-PERJ+T(cq*O0pR79J(loViSx!TlFiL`hf`cLrI{v_6$q68}#-unGB} zd*_!tCms;bJbz)z$`V6;*5F6U$%)-oQV>HPLJo9Qzf8A9<`?FOcpJ5R z$e;HPJzjrhs}J1`#qmY-94XzXZoMTOYdAmnQG7zJZyt%34vD;@UZ|CqqHx)Q`j%Z9 z$fL%@@ZMogyxK|Ll@g1p@I-8i7$NJDo7Z#=J)T;c%GKm2{9sQs>a?F+&i&$Z#8~=T zrptpeshwYx1plC=a-cbP6d3CfdpF4w*t1^Z4E@R3!*XNxsfEo_ux<5e`NvPjUZ|Vp6{U^8FPW@M6)XR4k%eA)97kDM_33aA?Z(tOHC#0gPSAjaEKJ|NV zrr_%^JE`KfKSmQj)Zg3@!-jaHn7!594$R{liTRjOn>1k`=C|>}q7}ru`z?ojCu7XR39aED(`G|LFOa>f`dQ2?mX92uc0TL2wNI|gk-O;g(}+Cb zwjX4p<*XqixI44BzWDd={Cm$gmFbC4VlZy(zZ^UD6eD&qS6yK)3L7F^qsR|pt(YG< zT0EY~-2~!LwI_`fkw*N~fZqNkX=J_di;dz#g%BOXxKZdnd_kNJ7>v;Tro8J&Vb zQI!g*yFZ+QQ*h4ezN9tI8@|I+5SU3npP!!i&bvNw?_&IZ{ZS%4NlVssaEksZHcSnWDL5(As2NH4X)B<_*JnD=osK1@CO+H>L z2HlnP7YjZq+tABw27ms=yB^E;=EdPUb#(XW*B1W!;-O2tuhF(vqVIkcj9x$lz{EHW0;H{dGykQEW) zotiqqAGj;@-e0uLkA+;$JQ8mqlENafj&)|slf8v`Bks{hab9WipBx&>-aD3i3d0tu z>;LwKe>QnRzMCXV_8pn-#1j?`#)C8u^jnsQ!ei7-@9cv&E6CBO2iJ-{^yZuIfdjYh zDL%HQH%qZ~jX28#R;b-T?(_t5S#tc<1MKJxw}5rsqs8iR5`Af#B;x1SCh}WLe{^9! z`88;wJec~EnRBR7Y#t#Wofr;>+3bODE|q7$kHF7~^u_DCPrg8J&q2eeZQkgr+~HL; zT2MDiz2%EMcVaAdj^#P8(^U9Uw_$-L?}FCd#Kax(P$tncD|MteLhkf4p6wro#-a(& za|&}rR&P&{%YSD^HnoMr5=87b`av;=FTI#8d0e-u$2R0%p8>w^G(j4>Wd|OAN+21mE{qh z^jhRIO`9m$Xxxy$owFp1+T0;?N6XIC_g*#wq0ZjevoZp<{ar9}b_n$A(%)*)dBuUv z)U%&wRU^)&f0wF5r#>z`&+lzOg(1s?Nx-INQ}Px{;9t8OBChjy2fMpKVh#oW8u zUEbqHeQe&9cdO^go%)31pc8i?I#OHvD!r#A>KGebmdDet&8}Y}dP-kpi>vgu(@(^r zfjYu+NGuNbrN>Q~zPJ=ZFI}GV5%JvjT;iYY5Z(^b*HTk@hX zSM09}!~FK_uhL`0q=!LxbUXpvcop7TsI$S`IJQAkaXQ@#GZGVFdp%2jT-zNj^pY_8 zqPB8$|Jg{8d4@ArNn@Sd5KMgp<@65twZ;pd?u0?>*#x+@`sd?48#dmD6!S*LLu(Z= zk^ldX`mD@#mwGQ$$IdiE#B_4t)CualGb~WPDiNKw?pA+mZHvX75&@s#vUf*+tmOA# z`87daJ0`mG2Q!A+{-dAE+R7+A>&AROs)1;8EE*fz z@GM4l7BkwD@6nDurp-v9aEL=&#{BAiQ&D#g_u{7|Vt;*qk+y&yHOx`|SJT7<75T;N zPX`1n7WH~0Vmi-uwe}j3u!+21p2OyMH;SnH@o=t995!X6Xu3NF54;l*m9$bU?Hhq| zAL^6Se=6Y_{aa6}pp%m*He8}6XORji_svDfTyJ!FuOk1ojTmRd8I~7)5_8wd=R#eO zz&rT+<;7!io;mWaRH0YSHfh@rM-0-6fsNHDe6@2$S+5|JbsEQggFyHnbm8vjN<|cP znbzI4tP$sK+jG?6re^qVOpO95MO`?aao)gtO>lzUQ)J=Ix?6 zau{a?ci2;1d%Q#5`z{P4h;f7^UXg!N%l#E|MemfKvQ@VzR4|@TqgsiGwb5wB{4>a- zzcA2>MN}i^gl3b(&Pj1ttVeIDFjo;wu0lF<%Y_9AVsMHIx_owj+s_wKVf1`k!8)(e zDv_`>0V>A)&Gt=VmAwiBiM^=$ZWFck(+i?4b>q)$5PIH`2<}P$)1m_Lt10(@MyrsM zw?Hia5`gLVI6oelD)#sCMFnSXz6xh?;*ST)oaqrcZh$y?)fG+et9U2gmWy9F!tlHb zT@qW%T3hUKxkEhqyd5gtykn0PANu@dHpTo`&iH#W0M{0FhMX9PZ%xRF+#RVTq8%Zd1OfZ4!hw?tD+277F)y zesCEP4{b%J_~&IaS4D58*1_Vba6=>ZTA%(-5bK?&OW?+x1a}?LbD2FgiB&jZy+-a5 zN`JC>rUZbkjTPbuoD11w;=k9o5GDfP|kHc*V_9e2T6ety~y6EYHUq;J0L_B900 z7<0F4YI*d5Ff?bK+)3xTyoDOqo0*eM-ZvC;U(!dcaU%7#yNh#vos*^>pR9C1<<1zibi}?QC0l8n}@#f1gaj3H`qP*i#VP7Q& zbhXCz4zcL2=OVWoZi9nEBe1cVmK1i+5ywXQqrtvq(iZ(dERS<0FZn;iTk+hNxmGjI zGjs#hO(&XRtz8mgJ(Jb@=&M!#82N%xXVjyG4T{Fm^Kq)9+tk&s<_UVM zRx-|;9mO~91t=bJpXYL%=wuO(J8$SieR8h&I+%URPx?WW=L^H4c!Xc04|U2~F*Gq2 zi>&DvnYl)cQ$@llh_Su7LafpbMFu^scC}tE5~l=WLRlQ1{#YhDH1~sPQXG8R=ZVM@ zUYJ-CN1pi-;s4kTi@Wpv*`6yFb#%tTEP6H_NfNcv?4VvuPq!t`qQwo?3&nAmsxw5) z>NE=nXT_k`v$t|}xfQaq!cp9#kzC)v5hE)7@P6wZ<$Y?NXT~~H*R+@6v}Umwd%I?w z`+Ga7vn4aUC0-|6#jD+0S>RSF-|;nP)YG@wUpzXf#(CY$A{NYyy6sUnX>USIUv}M){F1`tt92 zRz@Gam}SCvTNrFP$KT?+L}(QUA?bM>&X+C`W5WE=EP&b@AM!-URPIH(#$m~-0#VeJ zv!Tt@$<tVe(XZ zb{`)rw1T72h_z_$%~|4QGCk{m(KoYMkeK;82A$7x7BwJQ+`1BtS&l01o}`QNdXc!l zJ|6vFrihEXLy(de2kB_Cn0Gn=RYzjc(kfN_`##SZ#3CR%OSmuh!q^tvDSb3we6n;$ zjxl$Yr!Nz$db+@HM=WO&1!BCbJq9xO=Db)X%&uBNr5A^9LsyD;8w>QD9*dD}mWa0L z=GdqcjfzXjV)oEku-eZ0yUlPhRpkJE=F_Z23uWVt0i2IIW8Rb5iUm7jaNe+Hoa^mq ztlrwl3~w0c&9}R&KV36N4&yxOcA9#Kz76&<&T$61@4K6>k*8+dwb$iw4`mB_L3RvIz^+-f#ng|H7(i~# zlb?DbpB&rv)mo28x<61NEaAP#$=r301kF7Y=C=x3+ z#-qyFMr@{ULdII2w{ODFB}->=aQcoY3qe(zQff zLZdO#b+s7Rc^0(0g>xS=TugCxU?1s^4&$E5`?)uF*3AWecGHx1560kyNzFL>>Ypvq zYhZ@%#GljbzLadeWR9(j^Qytq)$w{Zh-aL;ta+;5Ci$XCGE5CaJ)$F6B&UUtV=(>JtI%Zi$nr_tYX5S z%Z=7iC%JY4dXB3rb{0hABRP>K4tiqqh!}wNZRfuFVlU79shRZQb?+}k?MTdFoTv03 zAb#8r!B*yh>N5jH+U5ZIK*pl{$Out)h%YtaVzE7TvKYd-+n2_%xO2=^)Vbq^-d3@A z6_6}CoMBGBNYD5Ki^cbz_Sj__NBnD(=(p7hxpU&M_4WaAx*vC4iRJkjmxwzv%+c+9 zG)7n+68Y~eaWE$w=iB6odwLF7aLON7HnbPH?fvm`j|<)|+@)+z%)@JB%{ceTiZ9t+ z&kUxF^VD5iOE#P}r``{FMb$0TkqvAxj&bg(yG`xT*%x;s*#qjlS68$qm&lc~x|glw z-flT-7vZ3xlmkWj&1sY8k@huFn$Hk@S1q}QJ)A@JF{2yTrBG%665+LV8-RG z@)Riwo4=~iVRETlHZU6Bm@8gQx+j03*8PK3DpaL^l%Ead`#N5Qq*=AZrg!vzETl$x z(>mhSn-Cc8WbWNkU({L{Kz;%HpR(qnSuJ05?H7xe6MBdbmpqZ7&5z%Y7kB2l(f=eC z7nA+O&NOlnZ&IhY);wYH!47MD;!xtcS&ULyp~1m8_=l)P$uDyh4vE8%Pv^zDmgcz8 zAqEXjo)>xREpg~MxkvPAI=(rb3tRufG4#Uc%G-5eWoEap#;`*AmS33KxC z6SL*%4I&P!v|2_)M*lSp&?3Eu~j=>%S7*E=2#j?JkjyCFh602 zS{^YtD(;KjJg1vRMxe=_lfp{Z9?A657;fh+;=g<2%O@9@?%uDIMnvP4Z_PM+cdZ(0 zs%3_CjPtJG#l@Z)bG%@j?N*wU1bnc@or&!AHZ)Q{B?fpXoIG+DsJ~qfg6x=xy?Ng1 zE!{&flRe$6v>dgWYbbuRez<*YgW4o148ilM=Uy$;ZB~RM&5ZY;@dNc_;x5s830T@z zOP-v`T|f3;UvKEjj;>M2V6M>g?k`6-jiy$C3U9ZJlaFs^ZW*9L?G$S{XA8Od`Sg4| z<11%>2*L0JJbS)r@^k9|d?J1(uUaFUF8ATC0cZ0QF3B6mkmpk!gUNpzi$||!!_qPq z`?gEsXoVBnKB3myqD0Z$(hiw(so`k8LFB)lg;zh~pm+I{i19JU^fhrfl~yU*&Njn% z)(}Nw-iUGg*vBysetdmfv@^9sB>TapU9!YRa@QB|JjY%>qo|0aU&9{r8hy&%3*8hJ z^m#nPIL8?485)$BqndF}xa?c(_tY9Y8Rx{p_>$F}6_kZBwwpGUEZZFfC2{-RnQ}?h zk6=7#Nq(eMUXpDy@x+vBE1Fk z2E9-}Ef1kzb{y>YwwC)33BX|18<#50<<$;8XwoqjHltU{gV>MU{}uz`^g@nYIvWA> zDIRUvPaI5jLbn&O2we~?^gh@kXn7oNr>+%_IkS+_f;Hvx(?VU(9J5)6cboKF?0jL0 z&+M;4>wXunn^>TdJBn|wybyZRZDI9{b1W2yp5%|U+u;J;^GDSay9Q&H%y-~_a3tNx z`HHA&Q@m%KxBji8kdBx`m-VyH>mWnDd)CNioZEa`ckK60A99rb;q0|)HCYry-z|Ep zU8-Yv>l*z6nzIMLnQqufD-;sHI;?oVJ{(YdRlWqo?W z*5m%$^^uCL6%qJ$hW%bH6k9e%V)bJ7%Xz~T>n1aYxUdH?ePZ~cA$O_h_t&QG*y7EG z^qD2zG&1X8NpW!qHd5>4-u`g)_BsJLPK;yjr>|=3_CB!JBQ`wDP2RHH1AXaLIw)Vr zdq>a4!Z0wKe@= z8^1lRDE?)Nwk}Dq+G4I)a=;ve7-y4xEfoG&tl`Tzw-2bV=$+?-&W!V!XEq9#2zqGR zCZg0JU-5c(Ft%`ph`y&4DK|o(Je`19rau%PINQ3DOizNU*2>j)i8V>|-W@$unOho; zJ=OHVylbp%#+{vAg4o=9Z)GoI>XUE|k@6`~dE*&p*ybt}Z%9)fK1}cR2IN15geW`x z49D@Lc(nM~OKChe1VgC{-=%jw!_f2oIJ%R%qQ;@>Ust@LY#IyS6W!(U<2+F3MGRhl zSR*Igb%lBg&#;%aSgUbF?^m(-Rzh#M4z^fU7>6baON8xaOI+?9k6C9mBCDMlHolHS zhRJi$@umre>%=0q;ID|BXNE&(xO3b0x9D)s3I%rp@NL5p@wwUwC$(L$x8)7lWUwdF z*O}Bf&o7%)E4utN#dyX!Yf+}cU@!9$gN6#4cCV_#< zCCTBa#rau%&pFBkDeqFJ4jbagb!wm-mhF$pn>crD^g2 zxO&aFMw}hawpOmMGDQ&M9KNwY(Q=nL{26DzrMbGEYYm|{~EzYVeoVe&`=O%MXd9%l-^nUZ76tUC|3KX1RW-dh^-N*( zA`XYITowIJ7^5fqons&03GGp)_~%nz`{8Gi^_0)0AOLn=M}>pEJ(N+-=&M&HuTFBp z%x*Q~{9w%h<+$(sTEYZY+(s-pezaO7+yUeV;O;1gKG)hZ(rZNKAgH-skueP$`(FiWgulL!Q)-X5 zelu&F=X+0~{PWcm*BECJxk0gWt2v4p=M~wX4d-xY{NH)LTwJ@Pc(M;(2eBWFb1cbf z6@>T1oFDwnDCs&X7^}E97(IGjNzC{VjF1yhVWckUz*#`Uhy*lya=+vV@5DO;63{q8 zORaY^43*EAE4H;(AI%6yRw4V8BL?cA&dk-ses7f+t6i5yz`iGa(z8R=A7)3O?cI1Z zE}E+zxg`uUsV!*{zfqk#JQ#OW)B*Wqono2 z>@Y89MvXX6PB2rR|6+>zu1N^3zg%Il*&I(9=k#q8#!5S^VZu0X^m|ZpZY1kc#@Ta% zfx2-m`h_vhf2^F;Z#oB~P@DarPPV$L2R-6Thz~c}s19!sic6u4`P<{_QBOm0zHb8D z>O57S+7yPzk5u?$Sx@d@!Wr&r?s*PsFE6YJhmj+FXl#ebNi%q!I}tlNF;#Beh#IYz zIoEV_kQ%DfVH{{Qg?6Lh!EJiG?BT^%*pchL_@Ksl_S(qX8KK0A;jf8J| zWA4Mmp`qj?tiI1c-N`Z7QWhkf=NZFraX41YcM%78{)hkdLx;ADO! zW^L!EcE06__}2+=u2rBOrtJ+a*2xF99anD|;e*TUsSh^(pw9B=?D(PzXVO~8@*Y2W z2&kZ%Hb|aM>^+2Mb^Co2`MhZ$_VKJXxDhVbW84hbgKT~~SFR>jpD-mJ0Z&)T`Avcm zt)Y*3cA@-(*rSqpb$|Xwd30AlSaMhJ=(%n3w6;DN-hvpJ#eO++DServqtWfd5xKR( z10%?j3q5jB-n7RRZH?(O@p-GPbJhW8OCr%f&rv89^B-{t&$W5=B!}do67A6MC z>V?M8&xt_Oql4wowP#|^%rMky5TicpHWLR6gV3?cLwbGK6a$ZVqpLI@_6KcY>}!vc zedih(UJA#ety62nS!2If*>TNO1d}gkzFtSUW9)QnI?DOTug;2zH;hrQKYNyQozzo} zosiHw5j!JRt35(Iaf?0RcGrvQqD(Km;u%hFp(U5(dBcQw(S5hh@`Eitu-4@~uLtCj zrxrdslH^(f*m7FeM1nSr5Ft_)dO4i9Uur&uc$?l-(Nm!DI<>q-9ldPP7khSH|G? zEiLgN!W&oJVi47`j@bIa6XzdBqf6;mxow0yj!b25zxARl_jJY6!YHg8xm0d>&=GH2 zMM2ZNx!iA|9U_7wk>)&B`6$B%9mhnV@7`P~nfnwoI?%s%P74ek>Hvq~+@Ghf*N{n` z)R6F`2S6XALBr$eDOZzM;MD1WvcEJHl3x;ec}>;*rkNa;t zap~}W;#xmHq_KXR?lD{pec+3a$1~cR_V%P~EbZJN}+Rg(-Kl;mu z+~qD@n>Her?`hrGNHo3nRF>Smh(m^>o|%JeLq3wSNf=zy+e>5UX~YKxIG6Vp%D|39w2I;yIz{o3yC0$Z_LugcjIyFic-q`SKt z4lPO;m|!=G9n@a?U}9opH;UaI-@Nzt&+B)`c*nbkL*blful3}7<}7uAKF@qDKNGn< zbE<8vV`1MYUcP_O4bN_o*)C#*9JbpXAGXKfu<3qz@O}@hVEr=oQH5;1*Ar?BY90i? zlYRG6<8OQn?1~$Sg?qfIl^p~Bd~Nam2(`1j#GphODXz%A@ZfV$69duwkRPfT3zFiT z#Zr|&hA^L*@GDG25wG&HV+@Qra~aGSJ?jxMSgn%8*g_vXTfkZNk5n#7Uk@l%RnC}(Z^SJ}E^VOtGI;!Tj*n0C#PoiCIK{v386G0S zy89z!H}Rlt)5KoRv!1f{|H`@H+XBuYF2-Qq{Z-;bV}BfCZr}EDp0Fn7b}4&_P2)F+ zGr7KS@uhxYt8L=*DPQEf#9(*dt)hbX&(WJ=08N(IZRCR&oa4W}GD3W*_QVn1_k@C~ z(uvj)SS!TAogIHfjr2OyPVrND|{F&w>5Od z_sCe(e7am-Of0KH?C2to{c?|1?)Wu`bH*_jW%F7d2x?B<`K9mV>(w4GCf*>=rIDC* zk$S0B#B?v$5=G?B>OlX~W8rX7YqvLfiHKPZpCOcWJ{bEj2Cgd{#jb4fihPQ}=TWg@ za+)8a*fUJ+pD7BcA!tDCN4-LF!!`^6T!{C`-yx3o3xH2rEWB$R5&KU2!(vq|wstrs z?$_~0;%dfs|6?LNn!Cw7OEVVl7cJKN5+_D{r14Tw|BE+Vh~4`9V4S#Bz+H(IP9e-Y<-&r(hw;e!2_iFNFlB2OnC z`1sCP@{4Vh+q`kbnepRzju$oP z_bd!zF-^~2{D+xjem>|)k{HFFXNW7md$(NS+tvrh$;@+F9uo7ZNiFSX&e`&^*jVX{ zeQ&9&xA227I7pjM;2zDR#!6C}KT@{DkvFfQa3o*_b=>h^Kcb_usEByZ-rNBg*;M&5HUO<@ zLt~Fx%I4Yu@aNy}+W!T$di^kFHg_J|my1*M&wJK#FYL}rF_>8B?&FDno;FVC@bka; z#Qp!LDe_{@Or6Ihz-dz(DXW%0Y7ql}OLYjvw$vqw``gaN!%nD_(rGwY9EaYQvXt3j z^Dy`W`M#7ajh=@ortG1n-nbx*(IXpFRdVm|&vebMKFt5Q8ysLiK+}!SKksmVYFS&& zs}(WQ9_^IZd7PEo zl3)651LX?+jLiM$$?rah?&JKBol8#Coo9vSt~ciYipN_0RbuZ)4-6+i$mEW?VsN$_ z#(5;5G$cnhadoG*GC2cp*Ox4<{ScDHU2Lt!dfMCp9P{mOJ3G}VSKTU~hDz=pRGi9D zR6&+FSBE?>S&KC8cTDk-`@jV)7HW>F=V5kzH6o(zG?k+rv9%3(KG%-bj3nmQkbho$ zL0eOF&I$c~Q1|3{BhAJvXXL!4A6xlZsXNz&yH4aZZgEE$I)FT!d@u8Mom74>51h*P z66%Bn0+#OD4Y{YEeGp+oe9?|OEnyQ*i=iE2>>FZ+oXg~rGRx3>FrA079o494@2I)a%n=@axx2~@#$6ZL zt04zk>%i_B-z;KLX#ZE4O*Q({*<)`?PPy+tl!dijFuoqSRbwA2JvoC8_(QvOI;WHo zKYZvb&#k6Nsq}Y4gZJFa+P6blHq#wVUyx(aAy)yhoev(-CXQLk5!QXWx5;B=lc+rU z;ECpZM?>=cl-+N<;KW^^m$HQt`pX;DGPxAGPE-mzQ4^5wrM<@hC6KeE)a~T`Xy0Br z%h`nAPI5v%sH21>`$798c`JsK$%(kfx{b-balHjt zOe%MS)a&I0Rp(lL_K~~?t_q(HlFQ|rBP9tY9 zV~6QB#kATAqBH%>`X!p0-?%gWfIeZ%T#dG!BM#A5=tlI?n6kcJa-V#FTWV??$Gf3+ zId{1`Rw!T0-Oyq$bvM-8l$BfDP{g?Gxj9W))Xg2wvW6T|jLi#ntuw~Jxi zRR=$(y*9DX1N?Yj$$xIlJ3h-FyZHC#&CL^`ZUM+1P5(A$i?~0RymqG43&`6iLXQVx zQUdvK`j&{Rc7aIX=ih(7RP?N7UzdLP^U_0NMvyPOUa8T)<2KP_pBKK~BmegO9I>yC z=YQOcEf>a%5^tXQ2GpB&N|#TNV>9nPd3108qt~r7`(q2KSM)z|kT4!>As5q5#-=RB z;^M=ODB~WnmGfGmXU;kKPx4T0HxsK9{^gD4XCBo?+%EFN&2QWz7*Q#|WFEVVJOUXf z_R5dREw-F|5LOSi$uYz%_2d5L-k#)Oq2}@*{<%qwtMXhI&d1+!hpyXi`DgtAtoy~7 zc(9EaawGuO{Jncu4-iL**^^t6U*qc}ae7J+rfD-a-L?@wTL_ybWnug@1a{=L89)D;I8Pmx&w1pf-*8zp67=WR#X(@SHxoBmHD-pxh>W&heqc*@=R<5lzJDWelGyA?U99u~^I zzHsNVJ>$`fr}9PqzXk16y1bEa{}PKKjPGa1cNZTx3*JbJ5r)?De(1*yS=Y)+uHKyrvhWEZMx-}xNU;{N=o7@p~ zh&?kiR>MqlPdo(o5iY9H_uyTjLp%F%4{^-E>%!uMHzsfw+P%R^@roQN`@ECT@N%yB z6YGxT`AI1JwMtIpIrq#ZPKcEVp{=S?9L3aui=jP;x>|c(#N-hfFdj)w8AmU1ao2pb z(k0LN+dwh2bt=3k^DKRc5^i0RVPnAEoOX$#Z#MVf=kgsDriruE`0hj--npJBdRkBy z((B)RAV=&2w>FA1OF0K-T)R@5FBa~Mp++OQCfXkmA09*_ zjxq7UixQzflKt0z<7UBev56S-59j!3e5gZ{q#bODB7BhDSVE6w^#HkTtK`wb$eN>28>OEE}x?- z)(XcB$&l!CJio6J$pwjc&7Ys%XoYCco#H9F^}|V=bcsy?_W_kP5;wr;~KGGKoo)>5UaLogD{AUgc0*| z+gV$M1F`h8ug0Owbf*X!&iOWn_%QHO-x@zDRYu#K!s#JhrE_)em} zRMatX>2&~X_LF~M>p3y9AN#SM+&9#_CPp-&f1nRZh`lCa&buO6mpitz3q_YnF1VAC zh~atz#Y8*yD#@)kWa}{)x_BY`?Ehgf{`Iy0{!i<&jxzm3HoovX7HTL4aHR!6)X_SV6w6kb@ zR16NIo%!tY{D4@Ql8BLfe)eU%Xj7A%;(Rs=UoT3|(%4U9vsG;zwOuRkkfj#t(s6H<~g}TD0Q6hH5DMG4rM!gw{_)+O3 zdd_kKeyD*wTfDpH1#|XH{`Wk;THvEJJe7@cZ{o1}{C35xUI9{heon7fE7hgz5zEgO z9cV;t&E?oho7cz~q}2T<8)dXZf@2$HoiVxjXdma$no0$E7wXc6b#tDGedLVn#WO!f z|Gd~?oA}>5b%-ezHSVZk$@hD=-A>Vixz&9>M_aBH$3pl{YBEogmx{X2W3Z0T`|d0d zW41?QHJ>N@B#F8O)SctA#w%K6RsHM#$d@!IP|Vkh#8Cd;1sy%b2VbLFFSYbxl-xG^E{Zg-QTuSd0ny#dwDmHuiT*M2Cc_=p6#dSqu=SqZ_&6Xosb}o{Fl`)M4g# z9JcnXXk4hqd&bs15r>4bfIgma;r@}0qGCKXmg~}wY*`}O9%f&SxyR$8WRXTp$H)f! zIX!}e5BD4X@L9juM#NGB-Jl_#Z_N~S`$VFef9{$)PORhH`xBpy{RWB2N65Ly=ixni ziAGDpP)VQJ$E>?>_!)vdQ)lb|YKFW`|-{%Vx#InHwXsqV@ogE+=82BKXvGUu> zRigAIXEZ0&Fv%qQ%#wNYvROCqiD3{*{f-0D|R`Mn~u3n zsezuz-AqgtZKdwlTjVt&2Mc5OY5%6;jCBMiGuKJW{2h9ql&M|I=#ctv?IB& z9Li-iG1wcrQ(vU>Rk;Z$F=uCPeC3hic7Gj)($4qB?^S;PT81{Xty5^G(qM5G=FqmcJ9{e0h3VKt z+on#Pq_i_gg%xf4C%c!@_H+_)f9%iXHdZ{ICg447JD}*5a1S7ND9_=uMW=m@2usE^Z) z@yoxaXmCFQB|XWJ?sGyu*)oFXg1NE(QhCX@F!Fw}=kUZJ^R24`{#O`pF@H2UI* z*q-F>esxVe@Nl4B5Ob27i^QaEF&NESuSPph5y|<+zuM~&3&sdl2kvsxZU;gdid#;^5DjD$YsaAU$p5m-4Dcsj2lnQxHEOe zZz9k9RujI*E5A#p-u1l<0!v{gjEJMwknd?z6&cpqObUxIZd-*)lO`x zWdE~4D^2}b>yXU+s^yydO54cBruJ?R`jDaaqE`j68~vDvZ|*HzKStsj?YXJ$L-|mzNaT(of99!Vxo+PG z#L{lDTke(~eieo`%;Ccp#_J*^6nFk%4W<6Bvh4dWmW-UJ(PO0)k09!supfK3r{w&~ zA7>1xoAbG^Zm5|L_D7M=IeWDn%X$5do8(|$IZec;J25w8j+eMyOwF@H&)ejj9rjQh z*0ZBNA@hElhvIy>EBuqmjp){0IoXl82;Gps>>Lr>Lo-)oW9CEhuJ*Up3?~<@`4w`5 zR(02G{j(M>d`CXjUzGNh1uPs%8}|!4B{C+eKt?=(@w{3p5dw;@k(}S3W|A# z(+8R;HK(y2r5)F14^rTlfNspAOoug7rjf_;U#{JdA623;bK51I=t~bCAgP^ zkDMwhzW*^49_*7muHRI$Um1cx+CRH)ytK0mcP<$3^i%Sr{Jw!Go&D0f5){txHn4WkX`e;B@`t#bQ5`B&+03+uiW{!95gS#P#H!#K|U!u9l@^|xk; zcbu0N@!V$boh>?tMWKwg-BG)N$l)&G)rsW7i(V#cHH|>cY4Pa$>}cuBz%Zmwrf)ag zpgQn51WOp#x(Xj@cM^3MX~VXkcT1^f0x?*J@gVA`bl#qP@_g4X=jBP~IFs__ee7{h zsDg9dA@iKPo28Z;y>`Nn3FNKT8!ybl?XbKk9*fd8irQU=B znpd1*-Dt)BXU>0iJ}{t485EZJU%VTtIjnR(I3MfiD{`kVRhC+(U=RJUPLRLSms~_U znvpB;>_lY)x#&*wdl?_=qC}L?|It4jy8D%REN3{qXrBj)xX4|@ql0+&7iEbQOU6Fl z_u``IVj6MZ{b}1>HoxS|LUKaVwt5rQvZ`4)7V-IL2bBJp6^cBb?b#Wvq(;se`AI;uY)Is*|5$!nX1}Z?SfF| zm$uX6WKD?!l9sVQ7Cl7Zx(#;oJs$hGOibWz=B@L5zgRpB}kQtuRH^xHpi3)ar3c-XW;a)JY~~>6pUhSHZCJp=}11btMtPSYZxf6 zIOjRV{7U~sPi4z;a&YntR~@gRB(-7=PXDl|26t)#V=#UsZ96bqbZQX|L*D)9f2Iom z^ho4QWuMLbliY%Mig&baQMJEZ#J!=>Ja0GJjVgKGI|N<%URrk=Emiptb4A-;jNK@? z_z~+)pXPNzk*qfR;`~bLNqKIU7X9)>&D!iItTC6i636?JxRhrz+Nx?VaKg5s+_hQY zA~$$%he4cg`scJ2F8j#~n$G;zI#x{AwZc_9zAyH#u647;S2c5(?}cIldrGG{i|;)m zRcZBv9LT%==GpE&&Q0UECmZLllP6GKtvRZbk1rb5&TZ^9-_NbV2Ikd2hxOBBo9AFH z{l>|CwKbwnCerx%iw{*OIkV_D>XUb|{#K>ik7OL7uh8q6qRd~Kh{mnyL#pR0$Inq~ zk$$*vd4EL&lH0W>ZCJOiviM>wvIcWjHL0BaDDqv=KRni1EX*^au$KOI*|6#2`*z}v zY3J0Z-{dC5&1Lc2&Rg#$ugnZV63^|?0cm4z6$hb9AHKgD*~wJQX^vX zjxJ%{-EFzlW04nD-RJx_##?Gx;fAWFG+y|%V^&iklV<%kWBiF5l+{Pvl} zN)!D6lsozT6$htfglhsXWn(>KU&`SvnwaN1aIAzg)A4?ql=*A0l6iGk?U9;QU2|}V zcAj>;u_pdP242z5p2u%1RUPLeocHm0{XNR}v&m>jUlCirP;v51M0e&AXXEUZwOh%h z&pv$e;9*Lr5&dFc&IfxpRE8~Mj=@~Z(DuA|dnOu>=vNos$r0<>Q@lw#7bF{s*nn{C z;MsmKwx;kPhueLg`SgQ+@}U)V? z0-S@7yVP6C=N!bJc!uGQRjTlj&R8}i2LEJOs@k=6z(3?f=x{l+Bz?Lq)^K;jYu1y} zVOy-wrE3f|WfEk!71XmME<-8M%Lkz`n6?In%&YV6OB%Q8rT^J^ z=APD?3Aq_i)uA6)_)LkYCa)oVvPJn3rEFa?oS9clAHPIt%-POB`ifb{JQTM?>a})b zEXx?9q%podXWqQcw5bwB9Dxq+d$n>!Od3QyBklR~&}#1PQRj{}4-B&uJ(`C>#T+>G zbA1tWJs6XDe$GBim5sat@q<3T)kB^;)U@VGF1bgP2V^vda)t$lS~8(b!Rru{FZ1 zOWdu#yjZq2nT;98$nie7O#a=&kTa$@*w^hKUY$3=9-COS9h)n*Ub4fJQQYSmzeVXv zoySVfaoS~W7C@8+oTY9_n<8aRJ z#>L@id~s<_;e?m#W4VpHvGiy=TQrwqk?C$%I>y}sO=ia8SM!qMR*#G^?;QEHTr*WU ze+)2h9c#2}U8NeQW}=k$(bdjK+VX1#&hqY$*t}V_XTdCJ6GKq>sjFz>Y>3pK#GNLz zQ{rt+@k#sd^V~9Ooo43DL^PwFE7aFCK3i8IeODax$FI`lFIs@~lW|y6;HvRxPQLJ; z><>2_rirs4W{`G%D>u}Xlm(&Jew$=hKG`qlN^%HcSY-dp}04L?{UX&vBH$x zEwuTa?WsbO7>xER^7~iJ6pe|GxJ8>U31}%g)el58-=poYGx8{6in3}l_SIf2x3KoY zkzC@s&28lw&s;FD6MGB8+R2Z8*ddkJW8IO4r6wQd;qcyA)E`=)n$*n{FPgKzT96`n zKAsIf+Tlru=TiMXv(SLG!=~9<*iW429CPMlbGl$s#b4{GFV>TL~2Bii|6>!+H-jhCRu4(1rgHfg>!rk3)4a*^!~)U>!7jzi3) zy(f;=ymj$IH^!RDtD0!usQt;!6OYQ?cNPD&0We{nY&LA4GImcOO4zsgH8EQ`cQgpk zc=mecdMfVK!MHhuG4!;g>}np0U9?-Kc4sB>K`7E_+p+4OqDw9A?apR?*!;X$M&7XX zvp9QwxlupG`a#%CoBxjMD)!e3Ko{nXO(%YlZ#Ez| z)T20bYg8(iA0{VqG`Rvk#LBgoIN;9!&IksVl)jv81-G7@L6}vkyvCSOho1b*{feak z*$@hITFrqT#GA~5n(?T?FB@3OGq6#c_k9g@4?4|6OI0+o(_cvQzv#o#CIpCGELs&C z!aC`19OKgO`!p91d!i2QT)*dMP2b%Muz717E|u-n7=P!ycmwZ9i*QY5XAcD2CD!Qb zKbp;3{SZn!A2)5T*>=_++Vqq6?mtrgybnOfR?LqFA5pF~4Z=z07=03#DJ!_oF`F@K z`Q|XCBR|XXVXV0v^%d2kP+Xx;9x$Mvk`Nb$a(&L$H#AWK%fe8~obz%;%3>uDhMO)YS>I%>=1|VMT@X??o4#$4yonxsaPCsfUjLbVC$$Y#?6_7 z@V5V-onIZ+rLH3V-qfq}T$3qd7A#fI29wseis!`eX&-EOX|``A3zp%xSe4JECkhD6bjstaRABXp*K}Vs5sS z-^F!}i_$tW4A1C$^IJ_)?qr5jha(H{S@1Db%bv zGY9Wz=hK%OmvzqafgA1Y?s`D8J;WTPv~%5BahlL89vIKQ^veJ}%@aF+WYW&{r?=O< zSsj2U|JvE?qmp|)5PRFuK0V5nm)w(b)FzJQ%~qx3ln`|6&z?+ShH^NYyW9MZ6$1m5 z`42fuVtx1U;%p_fRs;;q*^7HIT)7)VPHzYHEw#HSd1E3l--SL|yP*`Pa? z74yl7_rsmJxaDPWVI*Uy2W#QdBjSBg5Gwh128FB@trhZw(Eh%YlEwLSPk8WNBp;tG zJbj$u%71&+xPi!c$zAVc>N0p+$^P6uiQYvH{NUzNkfAaB%h{)js)+|V+!%OROQOep$;kY`J z_^Si+lrbI=XlKQ_;Z2qDwK@WRuEcjW>Z`om!kpBLec+$16(7zhGWi@jskV|(KO6%B zdEehY6Iw}(p&`_Js&QUueG0-qp~P(H91!^Khk<4Dh5{^zAs_Mdgw=V?IPFF4k?MTFS(xb z^mZsBGs!vM;=O22PSK=QoU!IqiiIuxv2q9BOQkHn^E{`VBu=d7MiIN&8QNc%``IOl zL&mnu=h<79CX1p73*_6Vv2xo7`SxuSj0hwKZ0cZnUi&#{qN~R6^gpi1;g2p!r$*Q#&p#aU`B=FqI}n}i|L$*O_b$>jc{2x`x2C64rpH>eSJsP#30x zwMpv9+sd47A(-Bau{*d}SrQP69>W>GTCZ2cCC==aWBgVYD8b_*Fwcy=zU#qCE0aiQ zyD{!$TPVxf&u<;fpJOyZNn+3WS|okT@j=QoYD2`ua~4zBMaf+f4u=f-uJWeJYVKm5 zUrpVn$QsJ)p25(gkL?rlOmuleEz#rbKQE~eUh_RM>p6YPp~K?3uQSrSQ`_QbuCVNF zOHMB}hE~Riw%!&Pz#e|!9bHk?&J+^+GV@Db%PE`YpmvZN-iId0-iPPl`W5f^Cw!XE?=$?i{Gdk|oZtW5ugjWKq*?N14le$Co-K}O3MZOiJ?%W? zTad=9i2f>**dg~(nzh^o8}OL@(#Op;ueif?i*^n!eWl#J5{Sjjmu!BOD<++SF|rf& zCI;_T;+QA*>qFaGtWy5$48^9A^aH!+D;t=<9h$=abN_HKX75Adv4(n! z8EPE4lP7LWvp}9kjl|svB5|-O{K+A2kU4{Y-x%L$^SLIC#Ku@-ICLNmdDa^FLy|d~ zv8GsM)h#d>5(OV)Qkvy_Y6%ih48xn@SB zlAj)eUOKEtoNSb9*F#~%9OF*ysfr`iBey*0X)hhz-^ba{rKZ$=a1FP3DulVppG+WO(;33X} ztFDX0^+D{<@gB`OEr$0e7x5?N`2$KsV1@@S(f3+a?G%ZYPN?av#)r^ckv_-<*Y~K& z>69)quA8I#b2Wyw4HT`vm|z33Q_1#5;&=zzxl)Z2e};?aAB?e$Sis@r2Jfr3fYWr= ziBp=0HbdNSf&7r|R}K*A6U4b>G$LuS9S5mJ^u2P4cP~)43~I7(`#>a#C#E zNj`b{hes)eV!-zZyx|!h>9k86VvhHGDer8`1~I4`x#)R@qaLgf`^Ysttc*FiU$)31 z@5HP7eAh42L=P8Vv}vHmvz=;T$hm4WJvEx828;TRj+mTE-I@k2B5I;F&Qj;2ANM*- zbZ&PJ& z5%bs$J9m%=VAVMB`yjc^=Knp1y*GZWCZi62<^}e(CTf(-Y*XZJB(9(;LHW949_G`| zKOan1_ICG1Fzx&@LrZz269^~Td5l(V#m^`RZCRTfEWRfKl7sP4i!l*p!d(u*YUXkU zCw7P$#36qe&+{3(Ts(0MhovFsT=uD=irkaSnd`>PCYQcnB$hD;Gy7mGt^`J6U?Op$ zb!UtCZ4od|CnmoOgy+j}_^l*2c*JmFd@u~V3phUw)e)`svfeFcU#m_Jp*tZEv#Xig zbnPl;afd>yl^O?MYKxRq^7#dyj8Bi_WXv zFwC1h)iobwn_)*MWGk*mR}RamK0y4uaDzSvbp%|?vF3*qjv2yLhS1kh~cM*yPMEX@pIcP+pnVD$7t4ZuGw<*=?KG=@s+Q(UdSu=U?H}b>Z zAO=Reul(SEFTQZT{$RS9yq{C>*OD6dZl=q}hB;v^d*bIu?UNn5+ThA@H8Qhr%l72E zp7@sjB&@cG9%_nEK8G)9FJAZJiPPlk$D(m^(%vY7^d)k1?dELJG)20}U7NsT%ps8^U0|H;^_YGpHAwo=l|7~A)Z-jC zS%R}a7EYp$WUFeGy_FaG#8b;D?BV!7t6VUgc)4v^KT8u2*kJ*E#r8Gn@_3ac9u7@_ z_;5{LGiEOJI}*q**<5_dXGMftLSKR+4 zw({=nDY_EpD!=Ui_Rs!uaOsVECYZB54!&Yy$>7draCP90+u~x~$&)PMJeGYe-(#ws ztZzQkZ|_*qN*c6)GkV(jLF>`dts_C$MLYM_vyyhd`S)it9`#mB4|N#(n1@8==Sbf< z_g~YSI8WqD6UxI;q{kjznMPVl{9#Y}=ec!mNU=##xJN(Sy84wA#-2fFKDE`a|B~+Y ziN?|sd>1`xL$^*8e6R9n9;uDoVG+=IK%L08wXlgh5wCu8R=DJ|^yykKOgQVW8E{kb zObEacV#p6J-!2XK>W!#vJge)cN@m1_AN#;RKXE|U|BeIfb*T?Nc!aE-XpJm4>VVfd zCjTC50gX`tntf~|{O_4z?Oio~yqO>>8_mUc;uU|)vk)m8Em50!-R{87;tu(C9KTS% zJEEDSdPFWma=83&9QJo?iFHcpO zvNr;lO9wt2D4kqQZL%`@ia>K|#kn9%XAI5llOWBh7lNDg;Zc<hs3mLIwAz@wHVUVbiJhowi5pv@v2H(Wmc3f| zUO~P4O4h|Qd&7|!uyb#THGS0w#3M^wi@jy}eEtW|@HLH(JW~BW-aZn^=?B zvvSD*OI(XdK#+GI(QTPI`7nq<3bqsNBgk3D9A@g+Sn(p(3d0vsmulG<5zILI_G>uW z4APUna<~4%@4s;cw|v4&yS+ETF3yErhny=eoWNbSe~9sZ*haNlZHaxgm_KXPl`dWL z#;AxmoUxxO4Jimj#BRtL9lvB4p$9(Bb`*} zVi2_k7jmXCpS_OJ^tV?hV&YZuurcpiSa&!s z9!s@%mwki15Znd>d^n{ntP{TO1&J!%=MUe8L3J$({T8$TJY+ihkrSmeYp&B1ZD4qf ze9|4&(698t+1wa-7;_%Ue7w`JXzU~AYAokkzv9VXqE^G{Jh?upM-!c^W<75Wuc<*e zbW4p1wExp!^987#D+XPuWxAj5B-)c~+Pw z=--}?Pvjw(#M(`N=pwjs=3mX&baKUFJYyZ!xJpfKz6{J9ABLJ=SZmx(;vEP=zd;G8 zuHl1eAJ`*Zl7NwKCgOJsZyfHQ2t+kOhKoBoRwu&#LxxoQg)?k7B%#jrGbK7cj?@RE z=4^v}`FE-VMvP5{PLtlkF3J&RR@6Ie86a|~Z$9(@-}@am(P_Ik;)e3Bs(MN>}jbu-i|4ofE!$|syKUXbOYpX0V<1o2R&JUGhhxnjSBEE4*l6325 zAdJJglizBqR7g(65o*pQ<+IY2MIjizA`b1-KS|x#+tJhT&mXox>2PwO{*FV=LmfAP;lsLB|Cc(Od7eCVu+g8!TZ=(}&lL-tFp91{>zmWSN7!5FrXn6pcnaAi-) z?m72`_Xgn9YcE_&pbq$vf8bJ&oE5W^P|^FT^k#=Mss|@?C!&iK>E(!*Uy>1Lt}XAl z?0|E|DX8A{TDI-)1ixea^Y>H5(mYpeG)=@mva?to>4QyzS|f*QOLcycLx|kX{~HGz zJxna^(4IA50DZ!+&ExcQ%%FZlZi+H@)$7Jq2+5v2n(bTkAX6R9WttTwu|p|7A1Uq7=868*x_>m4~gUW|r2`OMa_ z?~(A;1f%}V*_bD{B&I&ni@ZmBI19Lt4(*jOIMsrf%v-r|UP)br6g3RJ3h=85IeqIU zp!=W_)Ym63ML+^ZZ9R%@8JLSaX4rsVEh58zLBH4sH?7xUpnUx}bP!D0#V%D^q&Z-_04{$F1Z@+Q2U216t z^Ftlx%pX_08#grH44Jp7@7^F-)oz#-kVtNgv6G}^zOTCN7!x-vmg2ahI(AMRnx8F_ zzO4_&LeAOWAFPtreh)zhKkBXfH%7ck82OlaM;`aakb~i<;@tW5*NM<(|FeBB&QqQ_ z;KUV zTkLrKW7leW<&{2eFSCYE5YYsHw0 z4y{=Orc%rH#cI*chq~&U7>kQC#4cYC{29#MpJC~$X@|H^8vl13jQWvYYB<0YPi^51^||9-4AB3Ovu?Tzl50-rQMmz6XsPKVySL z%u9U*Z|(|Z(+@Z=eTzE}xfilOk(_#uP(qAHhgfPP$DF~b7$3NdOGFok?fmTI3F*ZB zcT@86*LFZb=S0-r-V|bh6`BrCM4d-_R0SL6LYL>ibj4A5q`xVgrzE1?>{(*mS~H~m zP9X2)d@(uI3ay(apl_W_ksD49sEbkP^YO8ISE}gvOLmqnKc@8a?s`7%6q{CeLeVJs?GK4&kacF$; zy>u)l6x~@rPOI4lhR?a*6v~`@^)S3(f4+M;@hZ!W*>{Y@$*!#R48zbzD;g&L>|vhG zLf=_2Sk7KSv3fJY$eH(pyL;#Nlwb^bbljhEKfS|Mw0|Cp$IQY0gulS#p49f7nh2xN zpE%n;8qY3M*E_GKUNvj;7afz}AihDv`A*WSL{u0)hW|VtEXzwoa{h7j?cs)Nfr+@V zG7r%o?XlK75z$%ZaOq6ymTz@`)BU)j#&I&Ue(eJI}8%B z%E>@9%(sMv9s40`(?r@zH@N3TVNm0}g^6IbR9vRuWnPMQ?UaRsI*B+s0dHtkH#_gb;h@CYV`R(mlf zEsVkad#pz`ZNnSluzorazkOZ7qx%=?Z4jRieTGcD+pF`5SlRv#t}b!Kj}?j7nOTg~ zaC^L*&vTox2%ipEVk5P~m!(d`_1bf(nU=_$_^=eGHi7?+M8q$wSL!+46wO={vCxgW zs9Ez6pqGF(Nr7VQM^_AI|8cPQfRadUC*p(twzJvg)upe7nL;y>eg24~VzWAP(Ikr) zvu+NmMisJUb( zKJUeW7Pz-29F9ihI+#2JKCG{Q7trT$R)3k?mU--*8s8;nz}09>2_*)Vc-5}Q$wm4k zo?2I1v4cLLE$cWB7X@L=cl=r<;Mc{Qc)c_h>sd#XrhPzNA8IV{yxlodTdyIt)N*x_ zkld)D-d=t7mmHFid$XQi^veL~H%lTXUJX6lrrvn7G7(w}UZJXmD}EX#;+WZ0Sar0= zx1q!k>mP=RizR-Jp#FD44%+WB!$TA9bTbC(emBMn<`pA{wnlQG32HL7zWz2+x}j%* z1KR9Gr%e+z>N>;ECJ1?xYmKj2Y>9xEf5*YuX&XzOT9{(bSn@yLs#9{L{#+a*#&X%B z=_=JAYmE6FgExN$OO1y6!DBb=`6^kOI4cBeS--^O6-ZB~h2g?8a*kQvmS#?gKz-(f z{xuuG#+1Ca^x=EP^+pHs6Yt%?-22ZIOiAE;tRv^z-#xIGJq+s*_Jy{kVR?iaH<>eQ zX|2J-zT~>#Y|bU;Go4bJm@@<8S6?OB*44D6Kt$OJ$l~d7I9y2V=#R->xZHu4W z$-6g&HQf&K#;)P>BkrO$S%e4OsEfWK0ZndgfD6x8FP}s_zPXQe2=90MBy8v;hzTOU zPC^o9MjhqMj6Fh&BkxdlkJ9ZztaS} zP2$;9RAWIq|pLSi- zfwSh@TGW$dUYxJSplc)G#JyVCIswCK&ca>)L>TrIinZa5`{AeX=I zX-zx0bH2Bg^?OCR52`l$kt2b9fI5ruYaw;nR#E?`u!y<=UO06u5^a10y0dSziTX8m zA*H&PMv@=V-03en-`%~hbl>IK$RcK})y58`STl!xKGp`ht|iT;n#18fb!YzM=vv+I zz+xNX@5lF2r9Sk>gOpg5-Evp;dC6GgL4DHbm8wM_*!#7oUf#SiRX~F<&WOp4aO#aJ zkv+^^TUpD^Y$^F!N1+3KOZUlxB;mpxg?R2bm(G%EF*oeQUXxR`w-g${9$px+1kq_y zHtpa1Bj@-HbEUlV#89yAp7>*rWXK+y+mr-g@NsD$`)a$Hga4^)O)JKasv4}EyUSg%5gD>l1AT3;8va!1p z>|Vy;+eiPB*HgT3ya8=E*u2DavJVDO%cInGMoGH~e$kDu>wG18SU4vntcy9f4WYzzvLY zC_BC)3Ti&1?8<;L)f5#Xo>D91SwdOB#TYbR#=K=fM%ln&)SVu|`QxYDvYo6)XCES7 z^xBrPwdWX%h9n^7>Atetv)NxsPe8`Dva*ZE$cveufc4o@S@R>rCk&;Q_p@bXdL1K> z$~>pFK`X_R6(Q)yp2Onmt?ZEoAYNAE%P_T3<`f?o6sa&~cVm>0FKZ07Dt3(~-a5jW zcT*T@Z$5(1Wlk^%3B>WhB77O|gSXk#stGu$_%f9Ibtkwx^gnUqTj)Ve3z%SRck*d$ zGSV#AZidxUs1rJ=g=SNW>8PN6MtmNuS+DPiP%X8<203aJ<(^o5Q;n1X$r|Hx-tb+d z#+!;YnyRD3;Y?TaZ$6?qd)}Wso#gf$cTW@hIuKSJ)cA9(rqrf6F&^YLZ&s_Fn=Izxc$zhusF6@)sTVEty?!IlS=%2>N@HC z(-1WKObuE65Gip`AR0zf|6<8yjS0E-Tankpv9OU*7~`wKEouy%uYvyOTybP;BsLvU zA+NSG`!~d7A1cA^hR%3U9f;oUMX1q)zW0hd12xVleD=q{J1X;aU z$C-`OWUe#>&lus0XD;`y!Piahc-ojLrk9{q%&1)Ayz6NIzA z3#FZ_x0oSm)_?kgqco1y7T84}o0+s#bNPn@RF~A~T3xN#xSGAhhtv;U-cD*3=S{pM z`R5S@m+JE`=}RX4nYgvI-_6AevuI4{AB(?_dx=3eRj9>U^@q{W946{5MwKX z@rXP%uNU+eSGeE3rnVZn@wLUpe1ABr)c92+UOK7r;hc*#>iGsn$u+pMR)cnU(H!Gz zxuf;tXao(XrbT@Zj2BWT-jQ8F+Rm$@H%VbwIz<`cC>&yasR*G+sO2YI7fjMX(G#WM15WPDU( z_l|hc=mfE&K5E?i9V<4lH(N3{hIvu6_}MaqdQHr4mWGSD>J0LbBw>y%8f2) zdp;723%cO4l^Zr92;&HWuFxIBV;$A1ho zlQx^dCn%QtlCw1{ZdxFif8*jM-!)H!1Ny%pm)X$q(#Dyd@O($TgPuXshwk2Jkk9kk z<Pm9K+O3z#{ZvbkwX6}@1>>GVcC!*YF(huk5;2r zWwP)m9`&AW3<`%N34QAjR8HmWaBqU}Y8r&T#5uLC87Cb21mJNS&ezSu#2{lo6zD{w z_9k0#K*t*+FHj3|MJJK4$qjX>HFo3OO6iBz5qpViubh2EIWJ}&E)cu0{q`554>#>_ zihJWV8c~xfc0QiH@PU167xWDDM$-ZZBsES}6wQvtu8lVT*m+t`fF_~P1dUmD>;E01 znVxUPJck-UXXk4wPFv7VsX=@}N0PVkdwif?)!7+RijgNS@V-_#Bua;Ck!zYUe2ykx zdUe(ZWt=tjJS9tiHj=xB-0vT5Ka(7?$DaH z>Ib9C{ysPvH;-5wANV#KgMoan@47qS>iOx4i~N~0*l+sZyiV`sY)xp934+;+2-@CX z*DtgOM(3>`FT)MMn6+wm(VM46fsSQHi>S)-{ zi5JoPsY%o?8ha}f#pKbnEoYDobW_De&cAQbwz~9r;|y=;6|!gAB2v66cgLPC-0%84 zQ*2>A{M07`U+o5p9hc{!bay!X6RM=&(`J)z>n_7DRgtJU`d>TOdfQ*)$hfh83U?Ka+iHB0 z%`l4l?UN(tY5Z1NAnlhL{UTaPFB~1PrV)GYN*^hx+5=wfFTFdI#Tvm2(X2CXVZSt! z`=|Q;%xhzAN@$rH1gi?2psT<$~Y05!e@qEf1)Lm#;5Y?heLB+V<+z zDdI;P>V@s3-`=wmc6yvS&ZkaIGgr|tGZ@DOHJHY@iyo}q?!9E~G0;bJ2xAYDc*n;( zLxkaYKYUwBTu7u^9BV_ZidIn&P2mDk`pj7oExMb!Bl2(r^lkja*(@i_`W22H zgB^wQ-g%hr9FD_Fti{dNvoZ4{cL1#>i;+ugP~sehk7o?T4?AlNZW4-oy>24Q)fS#T z$?d!1qV#aP9V(jnK#_Ay^L`mM9ReMZO+EU+I+4ge^{<_4FT7E9EuDEC?OcEBowA|x zsDDK}w=&n$xJ|OaoqDloQSn8SoN13Ctc5psog|&8<$?8#&)zq}B>y;13}?PEpzliQ z-XAZFGF2lx`GAzM*au4H5*q7r>B}(c^{^Jz`Sw#9PoCtV;W2P}uPZFc7uRV*41Ov5 ziGj_7(X|m{OU@V(HjbRk+f>NC-PD}Bh-J)GMtGusUx#FFcxc>-8aUsYN!@Gqe z`;nuVd0;LwshPUvu&ZdGm<6K=VXzqDC7N8bCU*Xcajy}Cx&3So1-ZFN^C$$ zAnNMqi_~z=Umkg*pzV4oVm|Y2U*;&b(F#NU{9oci-`$kQlHxs4$cAgl$mKre&1EsZB zyr4IkeVDb&B!^klEcimrwG%s~1o9KU-_3fs;aMpz*B?{;V=(T_YsqJJAl{FT!QzGW z#JcN22(8T+GN+BO?@#@xEh=p8(pC6>Bj&T73OlR137-Z2nAL+Cnj3nF*2Jakwu-`= zcVimPEd|E}~jSWO}6KV&?M&R(u$)fVME8n?rJn3#B>UuaLi(Eg8 zt>=n%yXL~Vf_}>y=i~_1a0|mw|9gU{JZX(qO~dd(KV9VQw8D@pA&|B#5<4E#y@ z9po>HX4s*{03Q?#t|@9#zo`lRS!a`#@^)wDgF*k=+2&eRY3+q3QHH_HrH zY3JxV$I5a>SzsFN+{7?PQ`^NJooMF+1)nwTPrGBrS2gZ#Y%7g0@WiOqYGMV(NNd># z=r@77c=`5Hy`46&~oB7J->#1_;M}uH>a>{&01yurqT+zrb+x z+-5EMWz5CUHsQ>B!$f|oS*SV{2F>loLT95j^oWVfow7#UiLpWfIlcq3Hi~t`tn7=5wul2w2d3n8yWACP#;3nQEZvfPz!QP$D--+xth#r_T;E!kN$p<=D{v^46Ih;$H#k`&n-P+n#(#) zQ&(!E_QLpaYMlGjUHbNk`-X30aNBj9##N=##5{l87#NMNsah#oO&)&Q z+4uQ*sl^L#>{v~`%g_pG>rpSXrJdhD_$mD<^uU>A5oocksVGUJ7DlZIyl&oCxO8{K z?Zw>5A8#f`F=u#1Z0p#uk>cfJ>Mhn_?&y;({&-l!mcIQVW~X?eZ-pZ6-k2#4i525) zpi8`OV$0p)Rq!1AARmxv{9N(c$Q>br9g*r#qTH*D#Hv45|JeEWtpSRYDJJMSo%rWE zt;epkHiI4Q+}OQVnc+YSB+<4zhUscd$JpZwWA*5F{+c^k?r8r-jluASQ>} zRh9cS`=}R?sia;{)lJQrW8PTylDfJ>Yel=25Yakk=7EQFoAfTWw0EOm+YK#P?T$TD~-$Lf`fFBQ_rUdR z_Kr48)ASqSh1!PfcWOGU^h2R#47wgVr5UKt zc~GkuIAlE6{5>6r4G)>KHLoqz$Y6e&Ni1N8W|Gk>@=i2XaUR}Ux(Vd+vcSL|&cf#Dr% zii-6P7<@1svkr|AaX0L6D~>(cSK(sw_?ftBM_i!(dU7UPA?|S)bhEW$iqaC3azkM_ zs!(;fQV)#0Qb{y5fE5=9c#O!JN5!Ux%{V&h8k*x;wU8N?Bj> zhfH2UeY6(q$~+r;VKaLUzk-jHUGw!OZZQTMR@^B&Tj7Jf%c-k-@K0HXd45PYk3n2n zOHJe(fAr-Xv#NA}CNYVcU&Q84T4by-u?xb4MJg2koUNI6nYg$HDy%N>(?qZJ$CMG# z)OB5`aTwtHe|hrNT6;9Bti7>kDfuG;sx+r-dtppN?!1|dk<4m(pqRKQ{UJ-Gf#+Rt zxmyH|jeR7|o$i49GIu*e`-{LxJ6z3TukdlO*ivrGe1vt8e}Q;5&Ped6|3orbT;jD??2xC36e86i%59(rgvZgzvtE(8?+Ye7B zv0tnis_0Iw(o1z>kUif<;batu{TEbNddOd~v{w*}lT|Qn<*(4}3B)TM&Q9BpQF!nk zyhuBj{2guhMaLH=?D;IO;Z;`A*&D;sBauAFNYhbxk|Qe;Pvh@tUP{#4qCb28nk9Wm zazR?J2z<0ZDkW9hBmWe4-lujEx=rcNYnVSvzQS~_EqCa`@iMePE>sZO)55 z*QUd|FcjNTUyC=-XW-6;AoMQ!BAz_8!2us1q%A!ud<^D6cZEI9)_yMS%63QD*?)DV z@BAF5T#{&l8MO2EtUZdkQ_YC;VoYA_ponQ>0UhQTwZ3;$RDGO}v9$A}SCbT@M!91X zdy~cgHYj6*qWr8U5=XGV^!21-WEXF&xyPEi(MN@p;)B#hF}OIsxpFM= z>Kn(!Ao}e9<()u({Q9lJyfPEzD{>2rJE6kjm9EOHH-X$6CRXiDsB(I0APks4@4xS_ zyrJ^P@!{mjEuN+{zDrF;&g^DYG*kZ-P)XP;odSHVmwM&+nkfmrb~ z8jZgfC?C)9M;>dy^DCAsW4NEYnfmfZt9_Ie%qQE#uovW8ttcPtiF;MlyL?w()}0zp zzRWi!eykylsC0%^&j?fHI@_QlV@REvd18Ld z44mp7jt12y#iI}lblnmP*KTjb5YFr!CyE=mTdupVui)T6!RbJ>k6x#}wLSo*2WP#-Pl%ikG*%aOx&?&yP1%YWU2r zCUYLqdVq3wrY~|hKWpB=R5^i|J-tt~=Nlho_m}{TDW+z0hXqQD$Uxln=l)ezmhvod z%RRmj_n(`kTsMH)i_Gg>ZY3)V{e94%d-xxE+bDBfyfBb+lpnVD6d{j2u=aHXCO1D_ z7D-*^FAE~DGwY4!XNEI$I!7Q)lPSZrDgup?zXaPATqt z)LteYS5L>o_Tkj1fcrcr}B6p_s;M4LgJeX#dx-twzh`*H^HhTgbx@0NJxV~gSJ zM;DClEdn;p!l3#8+Bvu10;M_aJezoCf7=?$S5wSjwUIk1OY#)94K1+!KY#w(M$zW< zd~Bwj-#o9Sm{^ndAnkm8RC`5%!ULKmoaI>#p3w*`xTrYL-vs2-%`Ly#Rt1G2CpWN_<{n9_0_GP2`v*x0mpO%}Kb#(B=qrqyl^N%mPv4&c5 z*JE(0@7l7^H{K9&&_{hVu1skZ-`cegh#kDnk$OY=ZgEioScADok z0?FO3LaP5jjb1?jHb0BTwy?39bNPN4(monrA57D1xaEzb+$qYkjMQYD@Py5La?@mP z)@(8KfI&HNAq(GYUbb?>aQ_G-TpK1?9(2Mv)+v@F(xpug=ApQN`CIf=sWma=6UoQz zGQNXoa@z{)=h6OyZABPoqqlE|A!tgP7lw)_2S=laVFl)Gr>&x{)}x0@;_($1e5H+rv5Qp~Mm zK~Bq9yskB*>~|5LRh?K^4}DhV`_v7W-*Lv>vb|E4V3a!%gzvGWCn^c%( z-b5O5JOGbot9X}mlK#vj_s*SYL~rROogU|h@eQKUUG$UUqP+2)eYxD-!=#q(o~Tb; z(648cq+NI1$rTlWfGZACa-J)aW=0^oOPn;cw-cIIhGUWbO3BW69(pH+!}QT%=|T5d zaIg$V{cmq1TXN}mat1cNP8-pCwgtYEyKQT%foL&lDym;`_ES1TEJ~S*Xliu*u(T4H zvIUf}Uih~3jP$696`p>Wiz3^6YARS#SIG1qe@Ej||4 zJ6~4p>uib@M@%ZQf4Aqlx6%m^o3| zbH-%UT0`8v(HX^=A0~K4T&~Uftg@j;W}^FjVlxumG$%(m;^{fwgNt)Dn-%1n<*cfv zII6Ml;f(N~%;lPX&|K;4g0ZXtvqra&4)k?}*=Taf2J1Nd$Z>FH6RC-BJ5>INqN-F1>&&^f=?oJ-AmgvUWy= zK`2scWl4SY9MPmW7`9cWlG(NSFMd7B)zw_=pHg}ZjjEU$nCk{h< zPgb68H5v6a>>~|5uK0G`1Q-;Hj~?gCrl-z?e^YYv*2>gu)pbOpn*7WYp*h*k39~n< zF~jGh=HM46>|KpcRrgCo8CsNu-%*jZd z7~FiZObYMdfdR*fgPFQbTFoBdZq|dd=E>64HeTptslwH9<&xUdi+oEe2+vAsK?5&* z%409usY+^->WR+0AL}2lDT)orD^8AsqZb;8`kH`l~-?tO6*guXu z&!);YM<$`x!&t0tcvLYj$^-^>v6wxh1{Gvy;x1z0G-x22*=1m7F)b z;b|l>Qi?5-RK(sCd;T@P3Tft14-9U@{(ts8sl@|oL^AjDEBr30_j*BdQH7B`8j7DS zym2j`7;Dp3V#!_RHg?>xf80qZ7%#IKi^k9CBg9Xv1o|N24c~0 zFPwcJh4_+TVpzH-miHo;%9-9G^n?eN{f)q)DP4s{Ur+9ThNCF0hj@L{3wy|kY*XD> ztl<1a#XYVKWrHO7oj2?!gut~l$;dq~0E44~QFt!FXvbmd`CM@O$Ie$nA1il8OhBsy z?f`b0s{9!-iLsC~sQ_7FJKh8rl4Gd@+D_A}896|RJsZ0JlqThb12($HV&VK+()=@y z=-Y{U*@_<0==Dxmag97VoNwNqVhsil_-Jg2LnlaMAob|BYQYtFN3te2YF zxnVbFvVF=ANilZrICOxxAe-w_hLZ>SFXOJ-xlhvSP*3=U#UNy8L*bb0g$1rLFjRIF zc5}VS3qt;d+5?5j6>roBH4E2_64TCmV^)V4ENX5n9P+%ej`@uJxoM*QHgB{e9;@5d zIb!!!VlR`4XS(k!)YL!SJ&5||B~HTpus7!>#OL3(5?frnvA~h}d3!^lQhCF&JNs0B zUQ4kDykItu_d?}z<*falxXrUod9_jR&i>f+i97;}4;Wos$-T*FuYc^ETjQCsBy$4# zEFo`+<20qIdJ;x)e~iEhg+gh9x7%ZJx9Lz#a+8@b<$QMP>PMP&#~rYid-{(>3#qQ` zh=;^I&IunOMK5KnZXS!meRHJEZqBHEgV>L%c;pS1;ytjQ>~r zh*blVsU?N==JB#Fj%oFc>w~`VW)0QSG*!%`wxgEsi({0%sFTCF821yl>3oph zsl2fE0=eGux*JWn>Vbq4(Kv9f2R;)smb9C^sLQSyol$Yma_7H1fl{sKO8qMn&?z?# zO`BUN7iUdE#^5;Y(JxViPcT74@=njwo1*#FioMw~?yZzpYxbOWz}zFTcw*UAYEbHk z&I#O^ojp;CNpwO>?n(t*@{!(JIAdztSm?G|B%SExf>2_au07iz?X2gDOOhH-a*jyX zpSz+CXEE>mZb;78-S8}iyy9CwNoTa~_)ZLZf=L6B#W{sOv1GfY4x;lB&d4m)IQ3Fb ztd+gc-Il!ir;LR@XZ!7V7k|DtOSo_FK~fks>8|>S2HY>RTBt_j2Ju40`ODblYHasf zETYMAF^WC&#SPa9{r-Na*ua|W#u{N>?1#aAYP4#bBkB`RwSqp-h&;*0$|eteIqjukX1(cy^A)r|nEUdK^o5N;dE@xq>oiHV^|N#$MhMvaw?9L4n@59G5qn0+8w402>0#2h~7(`r%Q z+6zy5#UfI-SiCX!<~~#`%q_18jnW4#vSV=};Ln2WHiZ#}H$4 zS&y~J-p6ssSu;ZZ?_I8Ol>5%Jy2?qp#IF|c=Q=l%kM8op;3WS3A=P44o-by4#i8ed z`>a9y(3SK3y4}x;b`Sl~u0JuHVMl~fKYtYW;Qn>nt-@fZACj0itQ|vs>90N*M0|B9 z?L23S7x#|iQTOdyMO(E8ns8_AR^DiQB`#?M@2MU`W{i8IVb9O!-@Ufyo^O?NO(&v& zcFV8!mn$z>VMjUnj@Bh;=g2cqO|C8PPF`9~tJ$zS$es6B z;t_Hzmp9WsHF3nDJ>=2N_$wElbHqyS&b+$yOl}|Sgz8n))|q`lemlh(BltbLSCq&H z2e|OQApgnS&9b7MEBg45H@;Q2{7i>_HwO>)ZpfBm&UNJ{J`87;jhRE zocvDQ9O#GI=gBQOtz1-V{h-<#hxU(T5r31q_N8%H6S7Shb>%#wDK)t?iQ+;>AB3sN z>-$hw*jamGd@Jh7j)+q%%y)++_oENqFy`ONoMa4l_tra(``L`xrGEeJ9rrGJuPk$& zh;JvT4H_FI@7qicpSRQxou8y_G|mzO*OHs-Sc+DE5c$>~b8qRitrncEy!c2vh@sl> zdJeevggajY+G)3+ap0aec{A$iXgef2;@lZ>3unKU&zU=MP8*Mnkym9^H)jkh;%*2u z^8BC9XhSZDT`zXXqbtaL&1aD!=gCp0$TzZ>8Y|-$%SZRQAvB)6j*Vhv%RTO>!@ZK( zVQ%t;UF>6cke7a>h1{mZ6Q$&(Ie&4K{DL^NLFVMi)OMGpC*IV&B_HXb#&Srt54QA+ z$Imy_;#!3-ZnhzZWepym6X; zdrxgkF+I}*E=$Pk*e6EgKhYga&r!E`Q8)Ok^n%kA@&gR>8rPzK5Ze6wcOQ0Evroze zs)?|=!smM}N!~Nd20Lp}hfbBE{kqx`R)yr4-J7bl?rDR9FXTHqJWCth%pMDL5-{t? zaIMc@d$cB3#?C<wy_7`TI<6)(}aB= zAGEdSp52Kt;uw39d%AG0#;)R8@PxoT?ag9>^;qW!|pZI(% zrApa-@kH#p$DO_xi)G778?5E~vf#@CZRrh5q>!h`#(AnXIAtC}&XN0lVJB^giwjhY z8#O|z*R(8&b_IrJ0feA)4&3-aQ~8FesTZf56-5AJ*~zD$=FGbVhq zAW!4){_>$S)LI?GXSA=O?7EHoczwu?mibK7T<$^rSlVs1EYg>IBD^8_w4ZJgt@v)9 zs>vPCshQ&732zkspl|4=2xD^Q^!&-a=HxiBLFtFz^pmwM6NDvqWP0*%i7i+t3ho79 zQI~k+F3c8}$g%op6ggGi6o_l&h+D`VqO8Na#o??VyxUH_jPrZM=kbAYODoEy3|#j)PL=iq|$;ro5C;R(5tMlF*@a1QwMP8?2;O_jEM_dzk^eEGd)(#}v{G`~swUd2wywXGkr z`Aly&x-8|M_QSqP>W2LNA~m2*+VN-kH)$qza}O_*wz}ciOI%b2qAlO+{`Cw+t8PI^ zYft{bzSd%yPB3)(kq7UiuekS;xSG*?78c1uaL2#de{rMHa`A0XDE2sTw>h#vWCW78 zFPxl&mx{!l$}n>HkQ$REtypRu(3zJ=II{Bq)Cat6+J6BABE5uZhFpS>}{xPQ;%N!_q;BN zE2UAeyU))X-xKF*M&Vl11k^tASjfM~KTnPzo5K5I;g}E%e4D_%k@LdLz#jt+C8D^? z9&xde7yc|yg6U!(@wAQ`{(erv(Cr4A+T{HCRm9!hx`yK(@ZCHkqW_5-W%;kA&r$|b z=);$1If<%C+4Ci-|HL)H?ezG7JT)1k2m)bHx6b% zHIn=TEkeW}pL8gh5A-=1BjSH9Kq>D9yO&9#d*@X4WEl7Uq>1JE$@s(jWliQX(b1QC z@r<8GR^|v>zeG$6<6TxSU$k7EfPzHcm5;ZGudjHIaUamFccJKIOHR9d@(Nxr5&p~v z8#7+TR>>myN-R3ihEWU7iiGymO1cyeue9sJP{n=FhkSM&?~ApYIdkCM@p02L;k`+P zvW5vLR&w4~&ECf71oV9JMyz`nj$e!ETl*@7=j31{(LXZ;tZczyJPA?)0ZeMOr`x zS}@kVSM-r5Z7s%1o<}?Om7^VwpzCk)MO3wrE0=ABisub&Ys=$Dufa~9Ti*I0nw6}; z0-hrVRfw%VOVOR@ZfQ5foVZ0;^ov|ckI#$H*o8R6_&H+XNfFRH72Em!5B|}LljJHJ z{GC7RgCx8UlS|+$_td&*#5z?1x-v%HpI;{0(f0nIsO`PDOc;+PuO4&hHOn=k!7bt? zUy|$IMTnN{i)a|Tt~}9-8>fjKyF-qwx+jEHed22_Q|IgUX)&GqaZ^rHgCOUEu<|1x z_9gC1{=6c(v4`61ZyW-CT@y=whoYG=^>K8ri$>XjXm^&npHr?14D^8scg5RwKSO+@ z8;Wuhp|f`>k=`zw>R=a%#P$PUpf@SNxD zE3IY6p-XX}=T3L(%gd)M!rlMAUiY`qGhK))JWsTJBNl#2frjUf;(?gaA{hZZFWGoa zOk6|`VA{DX*Jpm(le$(feSix93u$up`o<`)qCa#1rd}_cUag4h`-T8YSI(b0M zBmVR(?-z^4`@|gfhk8Au&kWcrb{(T_@A5gC7K%N!7(=ec!TL_2nBS9JSl8olGonZg zPl@0xojhhU4hWGGidVzq(WUDVQPw9A+jcTv4LByM4lq9qNWiKGXTBc0KBKqBIA&cObUZZM5x?f*Y^HYxCwF9&D9l)vYl?T6*d$BU6n zKe=eUM?Q1+Fch@E^8HfTvdLEX^E@CZRDN5s8f82OKDU;m6f01Je|w`nW944eOJKtD z?bUtcmrWPp1kblD+Q^l<3*k@yw5I)!NGX_1yX6i4DL#{POPBT>t^Yyy#_t3q*j*MOb)3*ym5Ao| zHjBHioZW0rfck2ovSO|~OkVw~N8hv4N_j2g#;X_H@BZ*c?yoI|lE0gi>0PmjB~Mn>K!>Tp6(%N`8HNYP@{^&vJzEY&*z7-gRUNF{E)YY%o#oRi2J= zzVGU*da~!e1!zJ$Y@g9lPDoF|R@(gAjz;o`JxK_mt$r{1B}VBbBA52OWB*KauZ~9v z<4p6OSA>#rqTL_%Y^{a(X#U^3NWQ^^g`(&yd(}Lz4%;A>aX$0k`Ni!OV$$bm3}9Sp zotY+v=tW~0^P;uK<3yEv6!tvk_v{!XO5Gw^!?D)>>Maa{xsO8oH^~YS?My;2y)N(B z!)d~8t3P(|{$03Zi?C_s^?zJ9o$j3xv723xK)#5WQ59l{gCkzlA$Q00Gh&LZGg4ZU zhvI1`(e%7KbSC_J54u&B$mTv7aOX4q(y_TVzN{EmAH|_sw~n^ww8Jo<-3E0om&c`T z!Eyf1l#p1LBq-k)N;b;v_d&n~w9eb5g@ea^B_z zSVB9mPScaS%}hZR{rTRK_Hx&lB%GsdGiTSAx6ntx*nWHOC!xzaavAORYSJw+Etj#D zIi5S~h!NbCS;PB!^O2om_AX*kX_Hk)SBYa;D%RZORL@!<{%nk<9u#xD?*U?Qc@(1l z`+q%b#QhdgsLOX@P$a~)8xjA<&E8QEm%fo$Mdq1JYZ!|~+#~48-=|-Zj~L4R)(6b7 zD|W9Ix6XM`E0B7WAJ2;8oPn-oTs!vWgD~9gfW7OO2Y!Dcx{#mk`%>zfo!uzpal{9u_qm$_kMf-)JxKP30->!qGdzZO7V@`UCh0r|aULbRZUFj>txoPg` zlu4cO{0ky*juSd{Prz=UzvLmeM=jQgf6Z&jKkS^*g*mG7OO+TXd5{M*;-C0@Ao8cI z=bV9cysvAzPtZERqLs=HA(}SaSJp)Ps`eHnzmLPiHZSGg#d)aDGkzbH zlP4_4FrHs`-z?|oEWsFl-dZ<9w(ggXIkdAwWUzc<;ZtM?906Q&i>_{Ll`V2GpWe4qM3?Z{v1HB@Y=7lnL&J^f7s@#0Pd7SragK@X)Q z@@KrIon4n-l}^;4cI0Jp&(^CUf_|`8I>Ec?zEY?@dEpv=hpR&}MfEOMeDh*`G2n`@ z>_=_2uhbRVqa$0+wTA(DKW;5+BFCzoarFUnhMwK!J^jfu@RoJa|J;K$);HDGpO=9V ze5Uss&DUPuS&XKPU3afc)(#Ijgf;)!_GK6CC$SkmjFo-5*3$k6$@@QTz72)9WZT-y z@svJrHN99qb}9pH`T68JtL0U1(y)@g-NG_izW6H@V`%3IQO@$D1Ig&m___Mgc)9=M z#Q%${@7DL0lYA2JoIX6eys_-Z9NdXD(X%aYMKF8GJ7}LdQ%;I?e`C;_w$=YwAi8W+ zA(8g%*)~aJ2SlTi_gBoosUpES3MS0?J05QQDWIk4>VoJ{Oavek=Tv>1bxIw+U@-gA)U5$`k}9_t=f#vw5MW4GwsqLc`#&t^0((ZdHK;S@-?$| zE;%LFPouUeKeIyGCb!(1h64Kbs^LrJ^G8#0k@2~HWQgn^lZ+VJSw3qaFW${MfU!cq zroLP@h8)=RpDrC*%2A8~rL+kSR*8qBsY}c_(0j{iQ8PCNE!xJDBY1=G^AKYk3MuHyB#Qbu2ITzE=cQ29vl{ihpR*PxznizUMQk`o>sje|yUMQjVPhYtHx zbr08^fW4^&W^XI^Y+R`<} zXn3AnMYn>r-|m&bl6E`wcAU2P$j#XCn%WaDJ8Ad7$wdx(xifav)Rx9)p^)cMTW-nI zO*4o|jKf?b`gU*{`C!?fugH}jEJ)>?ko-hV66MPil2JlCS9r~pYeyzxGwb?O{YJ|} z>XGk@aoF3iz1*5}hChtG@1On@jW4UQlRm7o=$xqCH3l{5pU;=97n^dU@tc0zsZod+ z!TpI^J>n5pbBH)j&W%d;Hmi)kNy-yph~l%$cyUmgST6)+Mf|x_Hc95>X8t&k_xK2{ zG&#x#k5_O`bmW(``y%&Q$OSo6Z-ltbJ&154;_5ps6!qRZBBv2~w7#Ac-IVso>`%U| zt+i!CBYO-=Dbn{3PFE=e4|_HL|wtjzkqobbBMOSzza z2G;X4o{7igdLz;>lJCNu*_-5AQ&SPoeA`(+U5;;hY|#8I$L=8ZVb$ zquwK9#nkCtWp5i|qZo%r7S)u$SaZ+2HS2DJOJYPiv3Rth@3!?K_BWII;jPJtNyMLsf8_EC0cspg+C8^nH?$8-hAMNucDQ2QCP7rgI{P&5J zuHnq_v>MMh))DjWyTRC;+9!hsimMY`u!u9tK`!Cq)DlPZo=l8Z$^j8#Y7fIL^z%6% z#rjfvn6syP`$r3Ts*fwa>Jp3Sy+Y1g=LJvhHT`dVF79Zhy)q&L)5^(7etCoTRdO*l z@*OcZTB?m3UxH<{n|_S5HhRk@q|vsuMvl^YI_IJx^T1lMZM2FXnP|?l-_h@K#>vHa z%+E|&cv&7}$=tZ!p%8g?L-H)r&h;*s%7JUC zcgI{}uwQSviu{^287meY(2>8C#jsvszh(b5kxQK2JNBkVwb4YG`H3g4(C+6PHm0M*eaW24`dTyM&<0@+`-hHk7tYlpW#s>P~ zw`~LECdRRN&KMo5+faT&yi%)Hj3+s_M9nVI_(7ZRdb&m2e?*Q=+Ez0;UQBNkh9dgO zF#oBdEGY=x>^b|h9xm+6nFFuoPLraqxa#1A1m=aYtJ(|aba!Ys#Ne-GJrP*pin22* z6ga(+GVZ&ewmtVX0;;9#KxgP@s97I#2Nt%5(N8BwlEhet{TO?0`?6 z{8@hY#bjb=|8(O_d{mK~GTIw0*Zj+~J*82o_UGIT6kdu$QBtY4;f7+^9AZED{3h*{ z!eShw-Afc+1*vGVC$pG#9uuQn{yzg#f?aWDw$+1kH=OZuW zfe{Odk)w|D^rP~Fl_?11op{)4gB&w239A`5OlPOaA}0Y^w6n!mJNY?thbi>u>&=GA zlR5ui!W`qNS5x`cR22@>=GLzsibmfev6Hc-ablrxZyJurjCH;%7Yh^bU<7#aee4)0 z<~1W%%4v_OP6D3CLn}y<4l5!TzeUNNPGudCy$m>uf@Qb z_M9`NrCisJbu{lXz1gpXfemp$yswKcl!=`D5Y!2aL+$(P#OBTcC_YY(vTGUQ%P4Q$ z=iOPYju$Vg-0=1!aeV{5#ch9Q7+q6g!swa8z{>$4dMY&8WFm$+&coVY(a=^*7NM21 z5$&u($oFX?VU{iRxMIk!Jx44&Vg=i!$%c3-=`WDid6qJ6TDY9Gzn1AE%g zW__;KDqsz+(}pQ0BeeDOGf~d3Ps}&dUel!E1kcgK`fArDB%>dF`|_TK+OXZ^b!Ob| zrLL6CQ&ezZ?s3jc$p7u6#?qg+8LX2N=Y_zS{;cVlD8CyOi2Af`_uDqI@7zEbGKSm^ z8YCN^3`7C_JRrZ3Tz_gHZ24YvZ~aspDD}q-=4Q{<3Xyl6T0hMg)Anx@4fl9pAmh$W z-&NwSwF{DMh=cl^E+R)bPzNst$5*I@uGL&vT~bkd$W46koP}xh?Y39VMGsr*o3w~Q z$=D&H_rU2eucIcnT?_H?iaE^4A&|cDrKC??Y4;hi=%simeTp)J^o+U};{(Kiv()50 z5y5w0sI1#y2J9#P8#mg;t<_fZZZD&qSA6)W{kV4vQnu30>#u9~z1fT{H`#xWq&tW1GO-1_yRgBYbM_2&cPn;xx4!H7zh8cQ zjI17P)s~a^FwuO zjWn3ayv|@UZ4p*#u!=FHT6`Pbr+5uoG7s$hsj5z89)~{)HGcQq6Q?dmBWw)&vVK*!}m4W>q z?1W)gC+;|t_qC*@Aj<}`PH_+2T_|fiT2lj`JY>td%BI?u)aT2>%d5>)Pp^-~<<^-v z+H`kI<}93akvXI3d&^?C)Gtz~~K>WRK| z&~h|6OWb;w>X*!)NljpCN?w?)PqoZP8nHFr5~_Dwkc6B3y043wzIop$9AW*w{;#n< zb5Jz(A*mIA=eO=K=ugLdL%;Bn?x;&F9{l0m>abHcfqDfcj0wgj^K^mKI?Lm|)=Np# zeJUfKjLBa89Cea6{bw7o7OP^Sv*X{nj%R+*MZ0pARgoq+2^77Lf_`e)4@F zmR65K=6UXxrk@h4M~9*gxlHe_?Gg8#1K?^vy~ppX#53-v9O6#y(KQ7^8t;x#|G2Ml z*Hh#q>@i#pyO=j zj{kdgvfdINJ$PrN?G*>+j6?O;72`(gkRAFQeGp2B^QbunW$oe?B5NgU=i{IC56tJG zNU$dysp!v_PJ$)-T6Ztc*AL&4gp0(sVbf@RbR0P(#9uOjUNa>MrHtn}KU?W%%#X%L z=7h5*SJ7u|ioqS`&y)V%(p@$f5SD&`{PTb*?|)O6XwyzaSysjezDzTA0-1_gG|)q1VLPu|_VEE?)Y z?1(|5F3jT6IpW&?3PGoxjhS&srdUc#P#o0?^3tK{Pw zF_$Wz*3TaqjyGD)=VF%V50Ia^fH=>dmZ)E65QTfhxyK_5{q{c5xW^pB;BF`VHLDmj zWscFTu#Wy^R4m%C7h2EvmG02uINTyWU#FbZ87TBv=Y9A4=r&!y{qgMcu~tzQ=<+iX z@Qrm$hE_%wXN{(nK6)J-FtGrEZ^3BBB^)28;f>+tlIjaf-kHSzDda z^jK^jO}+Z+4Ryiq$YG`i>}J!-I^Wdb|I-L9KJ-xZE@$7EXL3S2AuKw2;?)=K6nvU5 zc8Kler&J&Aa>_^fV$Sbw8I-l&L!GFZ z?74kCqmMryfElIidzdZL52H40HDYUOk*Y6riNZ$4WP`m{`li{@Xvw>8ysn$R12r6; zFvlp)tFPa1f_hxcF>)L}>E=@BVG8fQyn>6m2lR!k!dTJd(jMK#ZV52pS-pLJg>L=l z1cVUJN-@)QrQBclVvnf9jwIc4^CV1fpNkzwJai|1(jT0CkIHc)btAp#Gr~UD%0GQ{ zLA~Q}*Pp$JerudbLePPAaa^NcqA;0$VKd0%U3FEI9q_~w<|Ks; zipAhoE;!9|yW&)m$m?s5fZJJEA8a7L7mP!y0e9PPo|pFsEBNzn{X2AR`z-XJ?4n>eN}_9bv^;; zmdhUL%5(a`P3fUPoM+cwp}%cM4He@2r&6ZA$?_#)O+-qC;E1Bz>hKXe99XxW?Z$wzC`Zh^jfX-oIDP`Ex0GOql$FG$QCha zndmm_mh{op1^fI{p!#)C&L0?r%mEeal#zye^t-)nQAnJv_w_3K_$nL`#Cc1Hnq`LV z9kGtJz{B8U`p69KsqM*u!-}Q)i%TO>nP=F0ezyMMqbT??CacFf>Q@=^4D;>-dw@rW z$HIU;x=y{C>boTV=Z(XDg>z;7qn#S~FecZ&dtaCJBp&a0-|a9ysxy6;fc8AYO)72I zbw8YlBOU0yo3ljMcS;ggbSKa4Xn}5NFYdng&P4;u6kW4xNhstwFL3kKnGZ~)?lR*{ zO>12SwTo8pPQ2UGRF^w}ybI>lbwa!8n$-(M!8H1U)M}=?6XTDo{j=e0RZX|`ycad8 zve9S%Juy1l6_32=39xy$=+w{=ru*qXMgCZNYdi9zvoW@LGf~&p7Mm7leq4C@;Px{bktE_*(Dl#7?TgYG|`Vui@{~yeKYNv z>$@$F#qzJL$NSgN>(5Zzfp=e@+i!G(YsF(TV{+49S9I&m=poDdjv+xe&ph$}_;3DB zJ9M**lklJmxkiUq>3kj~VQwGhdn@MXrc6vm%>kVKx##Pywxh>Af5t8~N*9=th-l{C zb6>gXKACG^&%1lhhtWEpy-_F}$XI7FNOxgGDB{Yp@y4T*?h5Pc{oFxllHOSNvyV4k zWM?Dc)L)TQ%MFW;XQRB`RpENak+~b^cSARl$8HbLK=ywoLd@oDIh(oQUh=HF1WqVH1m;63`vQMQ;woI5qHT=xE`EuJspy!gjv zy-%bQt`O%l2Q&1BCxZBVbI|*nh5kiB6n-*RWZ&wj_uUhXag539Pu0?b#_JqL(R-a|+hu^gE_!AnzVf~3 zGSpmG%UXlx$C>kYFx3s&5k>AfYy8cKIA8|j|Fq!gVpy;P7V^B+e(WZm)}yx_ z@7WbEjKy8{nxv$3Y#$gPdT@4QNnNe~tyA93+M}OH-Ggl6e0j30AD(6hEpgU=OV=-a zO>MDc=D_=g=_imMl6-((2_}Ym^ZQZg$TR%)?`PfFztO12SkYt51>KznvB>4l8w6>^1Zkp#O5eS-Qf>@fgOQr2T=tstxru&7_y0&AI;WUi?q-TfdJoU-=Ddj?9>@7nwqKJQOrM)gBmhqhZ(iN|a zbv+wvFzF6^GCLaT8hS<12Zv|lPfeZv4K*UVGVbmDC4S}jV{#+*##=lVJqCGWGO?{4 zd{Q)_C+Ueo_S=_l75%AQFrQ~5wexIoqN*cvJn{_p1`BAFpMPg~U0#N+1CX zWAdMaLAqlp8q8r#{-=!79oiBPFi&vkXR6CSL#|+3=5jT<>oodAobSQeM}AA4X&z@x zgE)74-9UGqef#9$wCkz+-cM-g&>oxR&Hy5dVow--s$*6S0u7dZzw?7`{3V z{Wt?!@ba2ya3T_QX7S8epBDXsLNLdUm~WNEy88Z*EjjDdZW9p?ykML`{*qWKs=2#i zC+~43XR64oK^{1tW5ZM7;zFV$1_yDzR%9-0`#Pa>ST6VLyNOr(-KdRC9%p7xp<5k< zTQjMjb2?un*k_VISaCk+K4hc*^#)tiAp66q% z+e7a%!I=DGb}ij>eLPxnW)~rS6F#>SkjGfj;^+f0`*3ceRVJF>qwezBQ#cpCT+g{BWJ|Fiw*r;;p?<%KN=IFIp7;aYYvYw$cus zqSjj{ob)7zv$ut~yVMbph4k+mH9-8D>V&hanJ?|?B<{PrW3CQ^AHB%;{olB;Y^tQ66>Nw4%=5e5Kc;g!Z4ax3>>EFstXq1GoOAv?v)!$ATU&&n zDRDNg)=_5`8x4>DaIRBJcP}9ZuZeTOo9CiEb<&Ezu`gHmw0NHvhnjrv+$M!aRt_ED9KvFkiVjnT>2 zPi#wPSP4&O>iJo7zraZnA3~Xj5a(wz28*hk{XJn`ecXM3C^3vhW7bF3^9Km`Z{djL zXNgK0D4J{x0^;f6K6a3}qw&S#$@H7MF-SyA^@PJka#7w55;sF!k=vbI)__6c&2%S( zCD7Zw-9V8a=7^2E`TM8#7t>Rn@bWZcTE{-3MxZ;kPbL1gMncmi7%Q4`=gaMk@>t={ z^y`W|bNj@Ny0r--@gbkRuiQSmv5&`~ybp7sEw9BW16!E<;od8`e=be@u-cS7^MYxj z+1zj##ju|+G)Q=ii^RY<)+X;DR$hq0{*)XXPUkXRMaFONpDGfJ^VmiHTUGtPV}Y5B8Ua^vGA93`s(+VJ^O; zk5_`^B(!6k2`DpHa@~nDWBcqy!xZ0r38+__HTcBQ$`9&>{oy^htwo5Ebw3j8BH0rt zo34!E&c&O~+*R-*Tm^;QDIX=AWFV_`;)a`d?zq(uABe`!CdZiUr zJkNH+oyE-dHt<`+JVE}aL^#^P$DR3Dl~SeFLh3AaWUYNTQdx12xpy@G2B#KE=jl;c zxq|#6+p}`WmT0_O&K|#B=JJkQ>I$Th8`Ge@vaHc~9Gl8_cEEh)kjev%H?xmD;g0fsg$oW{;CuS9 zp{Q}*3A=By_xQ7~=osRR6^!}I*#aH6!yV4d4?DJKEIt$kA%Yq>H{DOGkBm-7Tk2N* zZ`_!v5U)d&d=$IqSH~-^uIywnGYdmNjgpbopZg|%?nsWY z$yg8W_?&nqMdTzyGmbo~{Fl;5{`?jj?)%JsAbpV&P=6$2X3R0k*D(&unHxOlvOw}E z;2sC_pECg+q%Yi0T+iq3uxI#M6-WDYmeAbcmq)^r- zGgEUAsP8Aa+sD98!yf4j7wMh_HQV|1#0HttXM4tH-s4-$3ndYuLBpAxy)M`&jh!2h z8e4dN3>9hKNzR@w@|=&pDz$x=hzmU1#}>Vkwo<3$1>e)yWB;VacFE|&m^m<|7VGC^ z`cCE|*SjG;PfErp;+be>h&<{hR%P5atk)Q(!Msly&rb}f0c+}0_BLZ4^7y9oCN3J6 zTJsJaI9&>B7KTJ(KKhWNk~aaB2|Nou|fWuUXQT>#4X;F3$hrJiYE( z`54dhFupr2KPuWmeW~%-f%86h2UXk7E||_4f3fhG@2O ztR*MLVG}1lmjTJr6m=|~+Or;4=1N7D^jc#4nNqS@>K;swt?(SIZGBi;H6tD|{J%Q3 zESJiUB;eWZ9QdvKDLwp6Z(`<$3!@D1>1z_Yvv*gVV2oQu$=J($FU6uG?rccLsv-Z) z6MLa2Yr}BnA+yf(hjC@<%)9Wp%15K(scJAbZ5_G_~}n_*7@b8z%0g(;J$Ln998r0hbcMsBYaN}L|H}<$9ZP`8qVL#aK+B-)2q@sQl&-T6f8Pabl249WY-*8_n zS+h>L-;itr&(m*D(+x1D z2N3dcyVDUVi5e8&SLb7tuZ_A(9<_$<<>QRia%JL(0Bk=&ANKs7B5#{N?)=EZ{oi@w z=%D}U4@MvrvBM)sz@ zv=OS%5iY2lpN*LbRi&GZ8~@7bF&yqDMG@yEjhK(Mn<}lNH(%IKayln%kc!5}V(7bU z>{1<<90THz{V^Mfi(X1IrfJZnI=O<0wNR$z-d|7dIH+2~{5N%3c(<;&H~=B)Bx;M2 zUu`)K%_k%yg*YF26$GOkdYJHzI~1M)i>K^6<`Q$S$@q{*ztlD4A?%w@y_IA<*~gyh z#@YDMn_i6%b8*^mE?oJ(tnZVDnr~;qvpVa2?($f?%i~=bi^rYvv03i|%|FiFO7hXc zq!C_?3PT+Iqc598NzpH;r?h7RQeW3m4g4f_Y zM8-`K4I70cX=N&Wuh~o6Hl-qBXT`o~R{U1^CC~G7kRNl5O zIKjEkl_3UFtzIE`cbKs{AV|^-kA^$BPc^R3ks8>>;K40^|HdwjnEsfZs!Ik^up3QE8&ky4y}*F=7%M|>^?+gX=|Th8D+nhM7i%q#pBqC-`Fri+}dyjYGkJCiZwCHsDsYdA-x z7e}K!a`@KbV|)Ul-1A^OaV1pT@pRdrM;*Vpc=(;(YF+YC_Bk5;t3_bXqI~pd(jEoJ zgYl@r1pJQ6lP>-Ahig22Ha&(Y{YUu1Fp>V$k2{NVCgU+;XFhT!7Kw!ox!*dJykBe* z6AuT&lzO~(+V_!?zNJzJt|HD68+XWC8K1qp*#B`}uJv(n;QT!sgVx4rBSX z;kD{0xgMD(yadbrd#v~*$SG-~vkMj5IcM<2@ ziv{@IIu&c#Pw4t@F?{x<;<=m)i(ebqpGt+nZ|2^2w-8tM^j>p5Uc4S@Me$h9XEC?h zVpwFyK*xMr`+WjtzMD@}pp z4PrGm4SOnAj2l6YC2~{dbz2;`yEJ~4R_oz_lf~Hxk)Ejb#_}HQ#yP^PCemZ><~N>^ zjf+ncq|L6;NaZ|e-TS4|bk^Mm7G+~eL%lShFcuLLveEU$3+Wa4Efbi-w^N+~`>>KKBd8gDR=8+;USrkacUq zl8QKAoVf4*&hy1F%r`!6)NToMV4h3Qz9A1)iTN%VMIO%N=7v%|SLz(b{^uK;BpnZr z#@m(DO`5b^dceJGhh+A~Umli*ABbf?gE2h)t<;!vz(pQB+n?%V+1PmOkIts9MRz<{ zo`AGf>;pF+gB;dzBiIuzvJJx$n`HQ;uueQQ88J&z;Lck6xA#)qC2u^3J%pkTJE4nB z!<;Jg9-Ul<2HXMs#vOo18E5FJ%w3Qvc}Qz`3igZ@9|zym=E9gK)JskjE0gI9nJu$0m4pzx)#r*OhI4om6)OwFPfZjD#%q!*_om{o@ z$NKhoq2`QxZ>e@}xC8F-9DW~lRkdrL3p`&@zvxp#sd;z^hB#(pU${mx$&JQw{!DTC zQmG;5_+6bC!!MRe4W7j!bTFT<<6CLbPz^5jW2|1-0NV=VF?TfQKCOD9&X)uPW>SB? zvlTjc)3@|?HcI+M1N)QFp7~xkuW6`LD-|=@Yigae3NHtz;qX#wCfwVLH%HQ7+l4;g zKTe^@BMrls=fSA|HEiz69YDrj^{OkVO`S8fOCGw8JB?+`nKfr~q4*!fZR%F_WzPKf z)M{k+VJyw$EPm2NRCe^^yTjbF>nJqe;)U(Qm?s~2EUn+=hQ4QVa3uA)x_P1tLM&KA zT?kgrTyvqPF?lAfdWd(NRoU_U#9f&yW)}xxz``W#4cn|%S_iM_FqlL=@;212`Lr4fH>Bb3PSzcr4q$nmbR4o^PGxhJ zdV=Jc6WfLDZ;+Re4255Jx_=G7=|ft;^Srg`d7SW|7xpaXepY&FBZZ?M`%A6ux8q8~ zU{qgAPg1AFxS8aKrJd;=$zA84pS=E$n-?nCVCP3Sv^tfI=kpD5Jl+L8`L4acv{m{O z?Sk)-tl2l5m(zB;<7OWBZzsBocrCSY&d1RM<%fDmOHbr3tT^wUHu!{m=a?N<^`Nd= z%lq1;UJj^39NbPUR$Y)?uwxs2FjxLnFX<49^UZno4!TNZlVjj+o{g;|W=IE{#KDv^ z_iW=`(k6O)ZF@@JUfnIpko~umyIII=R2?Vi#n$9=7TPv%NA1!S*zkFE{wCq)qBMAK zWUMv|z?l6Re4p88Go1wA2jpt8Ml%au${lO&z#Zj2;kuoW9oe7eSv4^#!>C%k_qOJ7 zZhMOJPx6}M^U!$33CP3JV0wUio>65msgeYbz2vpN-bbzFIJD*8R;%7tl*G`_B|a10 zVl`{CFf=OR|Gj51%vn2|&&|NH&)kVT?}xC%{CezMv^1tp`GpMpEuD;y2dGVIPEW(X z&G0nZ8$MGL=s&9*+Wpa!zat90*853=RL=0EPSgLMXTyO7qq2tCWV`|G04h!LZ zB@8VeB$Dqn3v=5Knd96K%s`HrF6}6!r+L|5em#{E9IrEFoCxdx$+E>hA9EKTSHw+0)l*^m1ZtzK?#R!M>b_);=u#x|xpJ zud`w5@l!QmrMfMpHkjF5mCheQ@^@^W5q$f%k8yq02sMnc5VeI+3H! z|F_zbzA))YP8zvJU3zzheSLDMGBfbQwJSXwV<3K{;%^H_Or=h^hifuEUtECB+0=ym zNN@6K`yd&|k{`ku()Govg^Zp0RzVfc^QCpiWyg3c*fMS?T?WgO-i*T;=WN(p?bjAJ zbwI!6)K0Aa#B5@@Kl=|^NHKV+GPWgO{RjQc)qT`2-;&=%eoktwNOj_R_B~?Ar#iGi zZJ85`F=NQ{S$atQFH!?rQ~C#0d!pXPp0mX`dd@zrEoJfEm^>v5qXIffDf$$M_gUza zK2jR;o%vf~Ha5)-l9p5Z{5E^VnMRYOb9}aEIVbuNy->3FFE_bE-G*%&rAf=#V;+}> zAotx;iy_(Q8N~YfVX1V)E(6>D=3?^t5-Dd$D*XAJ`m+c7Aei3A%+>Q6Y>|FePrwP@ z-J_H>(hs!;H#X9%sKYkt!QNQJy-tVo?hjIx4#qhoU6E=lCRwzjgu|N@49LsAMQ043kLDr##WMN zZLvmM?i@|*x>4(*^1=vB7RI;C)xN(Ighc)>3&~fjNu^#*%Pc&vW3BB@?bCfqCWcjl zw$Bf~UkRDW$u-rsFOS4!btVQln`*b+XN}V_6N`JOwfR3|;n;)vmg7fjP1?jGh&wn# z_Bm(`T@v9yO^yD${Iyw}2`;e8!k;~f+Ou0zG17>f+i?@M1y$40g>|dl=NZ~q`*cJ( zbI-0rp>{}P#+UAVH^U3H*X)x~#Jl72;W=7+H_q0lXX1W~x!PCD<8b~ub*C# zzWJ6Og;(dP-j_vU`)$s8t$wT5_6tYBszi7y)^6^Od=^zWnEyjUu zwdA#-mgw$EE!GW&a)%&ytl&A^>?_GNasyDsn?C6WJmeeggK+s7dGfb1Uq{yD@NooW(8;B%^*+Zw2J;nf9OXXlB~oPrXYaN`k0_jKfCCMvF1$hSl)Mm!s%Oz+6| zksO6J|8B@fSA@}{fY`k55XkItOC*Uiw}f@WsG9KlnC}ML+Wr)HC+O zq+ir6b<@GZIt&~B1X8bfi)uk^CgQ!lE8zT9E|IN9nWGZVbN>mZa@%1RXvFs@;fjHL z$;T4S1G5m6Yb_tQqmL(bK3{k(kQamnz$hpSuMd{UvDJd`{Cy_2p1CF)P-nR3RO;VW zucQ=4hN5m?`Wja;Ry6cN>h+AC9r6Ih%q$Y!*t6}o)k(R+eW-z}>9ypZs#t_F&J@#2 zrTbjPWU&U(#7EnDv$Fe20&64st%R2;^8O^;-of{J)GcN3on-VQZ~S<#H_D3V$tY|_ zuI!d?$^<0|zm`(3_4;3>Mr0yxe#$_@TGd42&II}s(rYiLrZD~QY){O9?agXpz{_}? zUCEy*zpJSnoz?^9Z!l1;Ns9qpJKZ=U3Z3E8sl&`g-|(tT_g?AwOzTUwOB+1rk6{(%JQ7 zImi;uj1>u!GUWO8?r27Ajcy#1ANvQOCF5|x@egvRuYu_BoBJ}a8YvTI2IFN>CQ9G+ zQG%^PAq~rf$vh^9Qn-D-cnOP7_c_hWE+Vmjupv5*^^(5odh4M8S1rA76_U^FEK+URKHRSred z5%G9fZ8;iFiG-0+FfwPZRF%hM;D((?1)L2ZER?&>GRHjTRHHw3l83oj;5T!&PUq^$ z6Bsv2a(Fkn7Rps^+;J@~3-aOj@&oq(SW%ZIZ&edz0(DuJ)y%@2AN>`>B{jMoib5x1JG%Qt#lAcSla^eWc1mq#4Z?9%aCT}5PeC!cLn8h)o3DR%MUxIZfuZLJqcb*Ty2wKy4y8~+)Fc{IN0~{@;f4A1KCtYew7nLHQBAVY`nIjo+9wz; zTQgy|BvtuUGZgI{GcmXEJZ0OZYAgU4@V2t zZ4LS4=_sgUE9`q~xCctVkJBDvI6df%wsCLPJ3^G))Zp-0;x;~6G$7``E2kr=O}tn& zT7%8hHs2QMEDCud{Hs3OKI`Pm#~=Gsg<{-Y>VQFRu=;fQvV4 z5W_mMGvmgZWsDDEmpp8^J9(`<&vlwBlSTzle=G|Z8>Es-iki6 z%mr1~-Nbl(EOvRPF)#NQ=kjAwelHc>&jt${=3V~dQnBKWml)rKd$Qh~F`1eP=`yu; z-zTA!s3P`H2*y7oBK)nBa`~YjYTo1fklInwUGe6=kp?Hu)E5V%tl*>soEFf|MTtum2&{(_P*g8AoNV!QIQvb|drd*&JNNUATcHjlyC1sUYl zb`U<>Vv&(S5A;@p#PEzb6pUg#e=4KaBBIu*2LPeaXcu8`|8FSPf#92ndOYPo3`c1@f-+V}A zS$J6D+JP(#>3CG0-`gFN*O5PF(?@aZ6@cz*xN~&XO;N22MDHQo>F6*)*~EKb+oeoc z4PUN|q$Xi#Y9@ZHKB%}l(vPWICPwYNt+XOTsfoDiMhCj3to!i8q3$+?;FFOlA?h!of zoQ6%6{lw)RqlbMF7BO4V}$3gP#6tk?sB@b7&|5i zpS1}XJol5*#>5YExnnT!&}7A>yElSL>7V-YyY{J#2mW1*ga42*((48um{%(nPv$(5 z+79$ahrJOPkkbqgriOAh7J$JIKbvL0OGSJ{MV$W>wU^hPH%B1*fk{0sXb1XRASa#r z-YvdrD>+)C+Q}@m*l|j(*3liUb~8Ry8lexYDaE5D{pPa->=KU$C0K=u2BHIdCvR91uNSpF!r+#GrZSyW#;oB zJbp_b`NR!MpXd;T%+ExPS4WgCb*T4lo{5fMo+?oay#gz-*6US6=;^y%a6AKjRmNiT zt|&a5z`gYzUB&E{(J*aKUBzqtL>c>w{9l;`x?TXo4KX$hQ%Y%2JSD-&z>{3`5On^uM!Ei`0=JSkx{F``r47eEUFLJeELh z?bhPd7hi1L%>B&6>&}+dS3gO=lK}9MlDPiYe%_T zpxWGQ>QG$Qsz+Etd7cIB;B&IBt~>UgqsQ(LGv#lc00bW8&i?UGB`7fv565Srxn_p4 z>Pl)&eq_~XR=$H&iH1 zNLW;(zgRkV*nhScj(;N&N-ki0-=4yFHg&gnf7|aJD8_k2;_cNmJa&`B04b9Gz-d@p z-(1XK4%3I4bm?11h)PYuQFB}h62}e^rRzd)`gIbV+V>Ity96O=VIn>4x>6U#A5XYj z{$)uAF~D;??kC6N;?B0BRtqoeVlLR;qm6L&C!Xgt)R$`^!W+0@IQKC!qic(pLvDCq z6pMjh_bP7PyzqQ+B#b|ul>H1svB{0vcJ!k!2}?o$o)zKlVQrt z$APFt-o)tv)0O#BFnV(rY3HVO%Kn`p^dZTFO$)u!d}tVsmvOgo>pf-W&Tu5e@=k2~ zTNzRmfz<{X_+7oW=(;unX_M12UT!GtJ4WEqgEZ9nYAkxZ2uIhUY4~i>UhF&-jy)5p zBQvP0Xkr_Vk-JmSZ&ep@>?M88R??p_u&roHub)hN@(c=EhTsf(G2@h&Yy@=`x? z!Q#maZ!7++^1;BW@yMv%L##{oM7=p01kD&KUYvKsNq2f(?>85p=eptscWjE6jS>g_ zxLeUNmfE)MMadUWw52xv&ThrZ`s*S1HIm+_H72R%C#7I-+ln|hoB!}o=R@WgHV<@)ph>>R^B zgYz)uWLY4(-=Qw;hw(~m(_nZebNB!41f@%U2woeJ>wam8GPOz=g5?a@oGekI^1|U0 z!MZHvv@(jC6^CkNV3u{clDjGbSEf+U@XAZ2f71vYc$h|?xbI4hOXNtfXMOx;6_LG> zegu!k5wahWH^IaXwC*{g*e^`n0q}0Q>WkRo3!$=G}?J+0I9iyY}{n^B$h_davcz)Llum$il;s z4U{o!0_hK*iBD-gmEP~!(__Exc0FrlmJ7Kb)LY1jj!`~Q>!}`Vy`%%vl==?gco39< z>hqT?U0oy4g5FhMes5I%OIN|SuS>)mMcwi#>nDBh^Z0}aQ#K;^sG(D!lgtUAyZh$Mk_tn6o)f{o+ zlPlULaF6=@G?DG%$#@uvxzAK$#UQ@F*8(u|&T4h`{1p5!u86aPYKY1~YYubr-waeE z%rY%3V8R_Dm&eJ6%8V^>fH=pmZYa<6WQ-!tBSue?A2##H>QdH&vBh#r>OEp~7QBov z$VR*qhu@$_Smz(I%V~NU#L=&(sEIO}T+_yk$q)Q`D@&G#;_2=T6g0I`YP2J#!k6{6 zdx+9&Km@8+Cgr2UE)=37ZC$D(Y7O2un`H#1B`LhkgCv zmr9MQtePUVgAWonvF42HFJ3?Pz>2={+$#?ip&i|@i+kg%PtFpt$6VlGOE2kTYec5T z6@4a>H&(J%Y}w|4`xf*HQlf<){RL_V1YlHDq1tFu3b}bM73vg2{W?`3ao$0khmWeN zdOX?!3yHJIidnylW^Gt6SKkzb>M@z@2^^6#D$`S`4r55kQ@M6bC~9oaz~<#O6!A6;D?Qkw zc-CAQQlB2&zqzO6+C#BPjX?IKbZW{CREj=_V>EHLy(TGZr-Wn8kTh7Hv{c5bxNklw zm7E$k<;Jrx&Z{`{_6$~z&_C$xgJgW%ny5TwKX@d2e7n2PRP=HHo^bzdZ1i45|JE1p z7qW(*^;@}nj{8;@xyzAjB2H&}Ajv5n?|;RKnHycvxK=z&zAO^XG*R_6>z@Z>y4@-ac*wK9l&W$ zDtF@in>g3&zR&DR6HE9L=O01Cw84@aHE`HddVgMf=A9q>iL?51CHZcb02nZT{+H28 zZetmUV^>&TyPL_GlY_8;_2A4uKC;a%&X;Raw<|GU)>7j%k@KWWZj0pqG|ieiGp{Jx zF2_6zN0;yP%{;D`i~J+tJRu!B8lRK>nQ#AOd|uG!rd%Z|947~*;aK`pd2q9EwBbD% zS^P^rbT|y{&Zpp%XUc3z?+ukuC6 zjs!ef|57mt^TyQ=@#LcP70!R%F)SvY^?!<}U)vQQn=ziy8|ZDUGh{yvvQl*-;-oX; z$h(SlJtqptr78Ox0mE~fM8ia1^lR@A-+}d%kl%3_t#Yh@^RCDi>I00=`NTOSeU9py zxdr^^(HE>qTU9|LOY9@gCy!S@w8O-WIcFBSH!{`^z3YeDtXa0|)Y_tk?2(S7-a>eY zwqKt>s4i#X!^HxvUq}#a!dU}0TdTca8jKrNGchAbXh#`^qThPQm%YAD-^5VlMAwNzpPdVV=T|s;;^QQzkL7>(ib6pa-Q?g-SINuzh^}SmJmauPWEu2-&PY_$?b+P6_s>8j*5!EjZlYIkK(@%sUC_5Ea z?rl^f;=+)}xbeDV!l93@p?LO*{Jd%P<+II#$)9F@9dJ@!#`Dl^KfR%MdMLr=<1zhc z0_I*hr5p+MVoj5P2fw?C^?Tgd*N?}Ro>}5mq%)@0=RC!=SZs=Mgr|uHJ8xbVKEoW5 z!5Qu6S8v3K5zYwa{oT;yhDgcvKjKAqSq&Ju0B3M_3)WL<_yom_UBVn z%5Q3!UdY69>ouwkJ%bPwoQc;3zij6nbNbPW2fR(IUZ{hfQv>mn`Hz3I#Pq!(+zCk$XyZ2l-+#I10GdF6OmI&KwXA|0@-p$6xB-w^%Z zk`Hh>2G`@hiT$~bF#aA6oy!Z6x!V=jTKJMXXd{m7^TCF2n+iCW9?Vnc5$9{fd3C*C zs%FG_J8}M2yi%nxVBJledmr~z^={~f3&eSN+icalVn3YO#aZFhg{mP}{qY0Tzdl;3 zdijKX>GPRr@b;Q&dBY$a4$MR=m%pmhcER}bD+5s{jnwB>h9GkZeY#inRZpuPhF$Dq zEP8CMZedQo(9?9-Muw<&KMKdRr9FaIv9CJqgBW4sjM5F`QG2bgXldz=db7t>!1?g0LiGmX>^6?^ zxuBl9Dsk?;ARBvT?p7_YZ3&ClS-4#_LN%v`8$J=|#OjHv7t8&yfjIjX%v9Yu?2oC$ z`Bs$;s`3krf#))DaO`1~`!{-M24te|f+wn~{pkz;BLgS4*HCxK;(2DDxzU`~>fX$C zf2uNY<=$X*SI)NDJxqtqGh202IUGtn{YG>A)wL2CpKqn%%8wYe4}GlaccS-hcj7OF zp=VqwGM1*OH(v`yCvxf4E61s89SFfr?nrh!zf(0iDF_MN5vsqsz1)1HKVE3b+gQ<5 zDHcAMcbIw~i`OdgA3e~F@p<3BMq>0^>cDU>Zd~;sF@LNhK9Wzf_s~kw=7=5K&&A49i*gD7&b#!R;*U!b zF(2ATHI%v2KJtNHg^f}jz88ppe)K0O9IqO}+VIae_UBLLs7ky;P;)-LYE~7gQugs3 zH|6*HZc%mq6oyXa>B#ifsh$*tBP}K!zmqPh)>?(*J$o8i;-2aw{dPm!(5oiyx$1qb zFcgNTVqWM?)t)7x*tkCh*C)(StxX8Q*+oBWUydm3&xm}8YP|NKaw#L`4)Y>kx1 zfj+puKLO5$3zVoy9@Mdq$I8+wqH%%?>iWi`S-F+Ct~g-U5e*EYXNk-yE&max2 z^J~e|&xB%&BhRx(EBTO1C^|1sLAOSbgWA%AfVu{XL5^(0K0v$eoYzL_RO|9C$&ML!3R!|Gy7Nz4xw|M}54g3G=kc>3;amKL1IhYub;C z{BfXf7QHd*$`Q-xaV%%z@GKMg-@ZV!u*<~z-yZVQr$OlYnEmA06Xb85La-z|0|q~r z$>Wkkv8GK1T$k>bCvFNuppuShj+f-$>TtZXVBCm$A|HPohMaY2u$lHruFJi@=bS@D z)vTi2qThF63(oon)m2(l3B_Bd6ucd5s7xv$x7j-x4(E)OCh*%U(HA!2>&jsc|sXR52>2 zrwMhRe=Rpqf;+LFS`$p2wf4%TiBs`#N+51FtEHT5>V!=X{V=-pN%4!x_82k67js*0 zDz>_54MSq8(k{0xb`z8EoIB3N!A*?E{hokR1s>?VxSz(|c|4}3yJ5o4H=4nZ$K%1? zshDAqiweb-_;`|dbhA|^`>6f$Wc!GJ^2WE!JH~zQo8hU3T=?k|jqlbnL(EFzY~>51 zaih(kU(Wh%fI(44e_KSIBF@KtL~(D<2WGGz9D6mfI6K${iR9~e>E{-|+d@p);TTwV zI8ofGwJRo?(WfW!ZSkHhyeqFoV_9ZhC4e&k2Wq~p{?b`#$-XA`3w6m`3{yl64?NF| zLiF4zN~5D5NN>Yke}zaTd!Q#8u8+ip%^AwJ2u}=X${cbcTN#z+iMy;fDrKxvHV&tU z@A?Q-9KTv=;p~Ac=7wXR!!UnMlCnPD6)W3>B0k7Z8OQqnc3bXo8w^*x zA3D=#BLD*jR#X;mCr^_*%VP=gMFU?uk;63&v)wysD*vGG{048h8Qsv_*lmwHkBFZz zw8UyZ2k3rw$Jf`z@Yv;yvzab1J~zpvBz7iD^8f9-mtMVZ{A95imJ^>=wBFLV$+vNM zDYR&B_{`|Fxfw=x(-I#)r^t9b=b{zJ!&(qsoIjad#W$SY)!0}ZxYz}gQ>Z!ab+)+w zNf)HIpg!b=Z^b$Wt{AYBy0?~%l|y^j_mAUzqeE}y1Ti+#dCq4PjZ<3EU*IEmRb4mx zDwdaj}q<^g37_q*2|mCC`Mn3738XD#pIi`-w_ zo#%r^S2k!&lD#n7z#AVwTEJkeFE(xP!Sk-(ICYx3R`dSFF&5r>Y<#7O8HQ7fVCj8p zn9?rw-^r!;Hojw8*9 z$NQe9Jh<(S@8_dowSBp=;gAOw&W}dZIt5CL9R7_q(dgdixRO7`3lG{vqyEm@is=h4 zm_6oQdHcPxbqe$I26|aNuO!NLaUSRxg%+l@L^I*d-E}1DOsOLpICbLAH6oNcAS*wf*w z63~4*>=y+hLC;wEuw^<%_ym$KM$RvJ?gre=cdMZhoy1gt~>cu{VdsBEqV=cy@@jkP)%Mohys8HK(Bm z`HdfDUQw1C`eIsB;#qT!8;P^i&{`7)k7KQn#NGPx;bHJ`>W_7d-xOl7{B$y>Xb`g&Ydyk&$`08T|HW@u6?s;tm^av3LcsW<_)X#@*~?UT zUrAZnk@wvME$;VguUJ~Tq8d3VrOz}4snN#P<$JP;@rBA(C^{ zb=4LrFGjj!Ume!x!JCxr%yWT^|FJ!aGV>s3BL&Ru4X!Ekvpmse9(OdQ?-gBgWY&kr zz;#%4@t)`Nr3bO2hE2up0X`V-NG;X@n0p&2=1({bg?40O?HX>#LN6eN4s|BdtFcCU@M z8kxa=@Y`BATX!t}`P>#?k28lDJSe`~#uf9(0Zcs6 zK$$w;(ZuErpFK(0^~M!#iED4@8>TF_p|9~Z_LX~PE1$2^Z;LpP zC2?z%O#$w(oDqwZlY5jpO+CH)wV0*U{ex}5S@VVF7KB8w&*4zA^yIV}e@(RSm*J5wg!&>Yu<<7Aw zcNTYoM9;<3aiT3TKVb>taR+Mr5{Fr1LzM6$Z{>SR48Cvl7yfqC#vz8sdap*jHJpxi zJEG9fbGH&bU>a7mjDmsZGR+WuZ!8=Zg@>PKpkYs6__pE>BEiZ8!y>S;-@p8n4vpU$ z4~jCwi2`adopUtqFxCtfcI4C5yk*q%4)N=Mw5XXku()>@JKTE1xyQOs#oHWQ=?6qD zp#80t)|*}NcE1**=WCRmH(XJctffbQkFuk$8)v=L_8hc830dlfwY*QK9@(Q@Z0-*G z%H$z>KTs04xx@c4HEA2x5=YEEFqe6LT#`_hc}AM#8HS?i4dSZ*`(Hf& zpZXO#?~QBan<4BFeL9@2>>`KCCVa1N z9wbMspP`)4oS5GY)TujYC{x&*{8>mG$V?+?xY`{<)2Xpmd6>jTcf3iA!|Il%viQ6^ zI;2p4?~}Pa!81H)HZ{;PCP}|Q542(KI#AtO8b0>GHU7?|*|xHczbDr3C)Xg~OkU{9 z{Z~GJ&o6zstARHzP|L!1Z!1~3iVr?p@|?`9Du-8_h9S&*zMme8sdb4rs2B%_9mmBs zo$09gh`bxqU1DWxKh!u%51No%QGbv>?yRAvZrpOQv|#{!%e9!PGhY-o2|!E(YQ@|5 zh%Jl#$b*QbM)`eZ6?@f={2WiVSgmP5t&GRyuD&>sgJ&bXaWgmurbsop+BFC(h-LrZ zIB#nE(fG|ZGc-R+Ei5YsY4p$rjc?Oypw)EM^4w(Nvgt7tXRU6Y--RT>&u&|W<%UixSgDw3sux9mB}esOAoNTS8_Dxz5dzp2r9oUr!a54N~Z?nm}2?i zj2l+Zpm$ZX&GH0&sH;%tVQ1_Txu~KCf+tb`_IjH9w9A7t6Ka|{hswv?J@wF|hWR9W zS!JXb(1QQ14<^#Hvp0rRqo&;P?y{`D4^}>*$Ci_h%&$8QPR0C;vVV$U+?Bu2rnY3^ zO;MX3+>^q{DZ4F2Ck^!jt*BjgbGvXMw|9dc^{Il^i2`EFUy+~tyEscMZXbYI*U3ZI z^%AXlo~Kr&?pCEMN|wU8H_y-Vs+%?aI(j1MB|SKvu7=ZVPjr72OWaAON&O(c7vx_3 zZ=98ZpN((-FvGF4)I|E}F5hgm#jy9BDYXw!uQ^)d?0o966osk|+%<^He|^wKsPPM3 z5%HKj{g1k8;Bk7SUZwZ(quT1(C-m_=5s$j+C)uZ)8}bg)r+e9Td1s*;&Tb=zmkJe| z>bm31Dss*2^JP5u3H#gx?XqAD3kb^8ahzl=2)6$P>~1j70?&hd^Va>->*A=Ph?uA$*VG7G-~v( zZqKSIUybuxne-*u0p*N<6^Y679B;(_KP?7J2t4=%ldJgZYiShVhSY1xt?+X`l2G#RV z#j{_mb-Vr5RyrZBx%mI5zhoR=DBj#AH@SK|4x4QdzD0p}T_v8MQ#R*9^bzPlJvSLB z+U9efLGI#`>UG4A`#z{oZk>MQX(Pv7p0FUV+_WSFb-BxUMV@2B^Qk7D2RIv_^snBR zZ}vCi$RXw!^pN`eY4OtSfgJ|d<2m^luC8fngKCA;t!+6(ofqYdf@1!g*Va=#`+C8W zXLa1c`*L8cCw{E|t6R8Rb|2x1-gB5|au>)@C(d&ihoN!Po@Qg5M$$0bp7m=EeS7*_a57+Yv*@FE3B!% z{fnIO^)7Qn@ycL`p7Gc?W|f# zE&2;INEk2SH!#Feizu;OGqraUSZnKi+`qdr+8^@~?1D+h9xaxD?Uwk`&JcSCWrL~@;6O$;h{!t2bxzNMKR zbTR9}eAKNNkG!IbnsZIkk;>=TyBZBKTmNZSy4>$kv@kCfeW_pZE3TqaR6iMsb*Wz( z;ijCanE0PQVav#s%D&aizBw75FrPVzJDykSzL(-PN^Gk#&;u+^Iv~Qr@$N!qc47J4A2pYJ7J7)m1AN`tF>6AK@L^ z?TkoIqel&MTK$FBMEwI%*!zZ>c+anhKh0-iS^WgKI35$5$j|C*pFn+t%_8#_b>vV}HWNoW@6rg^x}6_H9Jxxph%y6U?l>k)Bl|5MkcSA3zY zI+umdJU_3DU4`z=9T?v%9xjVrMT4igIM9xstg`zC%Jp=;=(XFrh}Aj23Z&GvGUp8i^BZiQ81Qc5CB)96i8v_bfsPN3cuz02?Ai;`Xmu-m{o zXZl_dn@7)zJ&cvN5Eu}TxMTFSzkfm)Zl$i(HF_dHy(r$W|6Tb!9uMR1h-0klH+*M( zGUlmBWS=ypW&%<&o{7GkqfBT;KeMyw-5Ek`Pz7mC0paH>@A^w{HIXzyGVB z_w^_dZDwR)#1Cp|Ug#{BlpjC`^3pr%c9)k1DLD6=I%)SB%arC@Ve*HXHeajB$h6h` z9q~Bb|GOA*bIE_td)~ej&aPSL&F?YGd>||)&V}U9=2W{WKK98(7e0IMyDZierbD0k zGosrCVNU-4GyZq2s-F|n8>PVeJH2vRoE3leCt+iG9P0ExE4-E^V(b^@9K&E{Hbwc=x`I!}r~n#7f3Fo%v^HlWQW2b@cp4#AF)W64w4&RKGzl<}dd|NAB6o zPExxd_n{cZK7RII@^P~6i$;@(U)V>zrjyr2Y$mlS?zjUl3f3{3V zeLgq){as}1rsCq?-}CmZ=#!j`Ieacso{F4aNjS;>Zh6OhqF>!aEaYc#@Y!{7y=?*( z^0RpU@RHbIL!D;cBb7g#6Jy<}JI?qo|9M)N*l>={x>~t-N^A}%_T(}(?Q5P82RWk} zR74*KaadfuNF9$ItmP^xV%*Pgbh!|R*5(I9NnsHB^PLTRvR|x?CibtC?_mETu_wy| zrh5}GvCCc&9qod9>4})#Jzd1*xS-57k$MP2;QZSS_4fYX9_s%;&%fV#%U%Il$bQ3o zYH>j7|2cs5uj1f&=%`%kaT*@Hn{=yglZr~PsS&2|5mWeY@_)hbEnc4o9=u*yH%dfZ9 zJug(&&Nuk8g^9;Rtro01_-{DdL=h+JaCXbTtJ{*jBA=YF8n@yQ=11+{b;Jc9}f0X!2UV483 zL!a^88Tw5wAAA~_d}qh&pOe>Ycf*0tUkB`z%l!OJ(rJ6)55Jn&m07%cpGg z;b#%K!%uGiJs)rRTr1E@zUey$di*zs4baGuy=P$w&fVT$#7;~%CB2lmfuQ5EbnDm{k^zXM4gyQ>~Tii6~E5$eq){AEbNSMtw{|e zK3B0&gg$5N1Nc2Xvv-QyG8RAi-}=%bS5)0Wp21`OjgxXjXX2iQ9^f2!+X7LsH+SYK z{P)zGFMidgW~M83R^yfm?TP@{XVMS1!*-Fz*~MSKfU&>NiWg(t;liA+d+?=5FLK7T z<*Y;QQGb553+@i1UeFh7v2&$6-n;*M58ij#Cy%&fp&sL0c(cCR_~`+h;k&lhrm5;x z_w;|Y);o)G`M&3Fd}lm&th*rBmTkZZK974?C<`N3a8|}VJZgp9e>@wr7~262GGynA z^Zz?nhm1mGNR>G-=HF{$X)B*rq^~z)t7B>+vvbl=#@G&?peG-$OZm@>&G%eOIl5Xh zbQre>HnnBjf<)9~o!PPR53wXG0h;QJ@5qNDd?PiJ7~hGfOGUOyJvP=tL1z0z_gL!W z@p)EQu2|{MnJd5F^3p;vxDh?Um|K2kq>A3(BTYK(2})h@E(jU?=2Y)9YMkrR^> zk;C3O@nI#o)GGluYBO#P%0!)LdV17noST)3Gk(-nYDCR^j{=d$Jx>*Cg_(ZN5ns3; zuE~Cr4Fuz8BNOgTx5V^6!_>=lX=37&tH-^L^rg2tT2$3c{XRyc2!Wh4HHC zxcp9w`Bk@xjC3z(W-y1Jxi8uif4k5w9i*rO7{*vl?$KG*UMR#K#?W22 zmU5MC56u^C z6Fo7gF+Cubm5DLqUD2{D|J!>TN!h{~vv#vD{?J((aF_JAr|^*uHBTWxYulZy`E=56W|PI6b@rj{a$vC3UxsP0%-h`Eg6_)W!Dk&k;r!eJ@aI*@Y$HbIM=aQARXxI{r3*8TOn2^ z)l5S#=F&j}on))Vj5E)$&3MS#Gn4-FoynQqS+?nvhz9HjJG<4B)oM_KM~Ah=z7HaR zv!V%%?O6TOqA7PiZf*Iw?ARvq zYv+nRjL)fl&E$A}?#emO>~^fLOrPQk|8?}7n&2UST=PKO-hbyC;~KP6hni%eIdgK% zuoepTpQ6;k-$9rtuhPxW<=4aj4zYZ2Q(bw9WqZTQ@7 z!Wa3oS~d>xIby~o*{K2J%+F<&-(ER=*les|eja#cr3}zyP|twcQp?k2?3L92d@;mu zKRM`rG8$Fm`?%Rm>QN_k8*}Wl<-O&hchvD}z!^?>W7+Krd*Y^?llXiSo37BiuQg{! zL(YnV!CG|gK<^3rEn-j`;?5ZV$Gzr>cH<*aneR)@3DF|wd^jGiWln1nAm*+QhAw-U ztbKl>WDB)cCebJ8Y=}q<@x^QML6WPciF$Lnlj5#zg2iSLJ%jrl>e76$e=2JBaD|aA zHLmlU$r16+&>h8Gcm1DK!rS=V}ZV>DR)`Het6`^xs(IzP*u@&VsB&9%V%l=tXYVj)d^NS| zrA2V!*DW4CkzH=hLkoU?>lH`k_S&;y$=|cjc#AZxkpVsC=cYTdP2R?Z&?027p=I*M19pc3qP5Ym+W7p8l)b;GuG-I zD=byJe?5gv#>cvFhU!zl5I=ZUwJ=v-AIZgH# zuv}Kmod-w8{K}ro^6sTf?C04wTCrD_olF0(m+{`SLZ*48;yTZpeTP&zJUAI1jB}k3 z4_Wm}B5K#+%>TQI?39>*6TIUbYIl&8yg3KrS>5-iimbVuy&m&$aQ!>tZV@rR{9J4< z91>4^&cv%y_N2}8gw?B1tRe5lb?r*Akr@2mbF}C+JzMBflcXVWKK2b~iJ&giu#8-f zlt%bIfiN*4@X z$@i+zKtB2829*PAvkHR+B)a}nxExPR^+NL zkDP)XIx3j-PFUU^Px>AYOnGM;|V2CKtbFUKX$`Z|WTR)2de!Z|)$4yvl& z_GO&;J$ic|$(K2qIM1Km`?y5*&rZic=IXg=C^9CdnA4{F#(jZwm zClTEk=hQyqZDSq?lSL%=I6xj z&eX=RXU)(@ ztd`7Ev3VEtcs{j1{Zt*tT%2S)vxkjVlb$TYefC^y{kp0idW$fh&r65ZQ=j#nhxhD% zjj}(;l~Xg}!t-CZ{yF*9E*<6kou$b;WwSRa|J{jW-ek+gUz6a=d$2*3SZU>$NN-Z+ zYHusKs&WFpF>g#y=_^g%Q?HlrX<@e}@+0SRBX3gYc5+48e(?-yQ_&aO`GxrHPVa*q z)cW3cUDW4Z&x7^HpA|>NgnIO>xeWipdSiY8$_c~zlGu#IZ7?YM4@d)gh=!7gvn`g z==@y8c2^GsJ|{nPwYQkVxzI%sh51EE;!_(}==6@kGprDP5w0kj9gFs!mqmv!p3upN z!7uY`@?ZlmY{>mrUo_q|QC%9Ag`BJG>qnnZ3r-$DBlb!+4xLif;isVTE<2gKUadW0 z7dG(>Z`zismX)tZlfN$IdE#*-MtrB#r5 zhpDwf{L+~!_r*$bD4slx!qX8)Mf+!NSlBTN9%h9i>XHlfsUl%-wpCncJQbz)BGF>U zR-u&+c)TJC+fEgTSIcdYy(1d!4;>IKiTQ6uZ6Z6}(<1z$4Q}m=LEFg6^4owZSW!lP z$BxG`a}Y6UE&s(8gm0d&c1h1fBIDfM>WG-PZvvrTM@8goGW%*BXh`G{lr}D5|btmZKO9n z^OfCsZy9{nAH8z<`KFDN(JOrs-;lG-=L6(HQ!gyxuK#)aPI9J`8wU5Juj@=5+1K0| z--tWfRaRN%|8c_VHqr3cz7#cUIpVcX6!uNOBK+ss;d8?%+}L+mwDlwh(;^CGGYiFY z;`w{`iiYB|PCPW2fH}isaM^f)h$QB-9{bGHSLwoQ0kK=eXReIfA+~y(;l;R_*j{yl z9OO10uU!7k8wV<`R9mJcBc5@d82(|mUW z7U!y?rewo~ar=;$p>{9L#Ae3RwVIDwt#S%3G0w$dBh`=GH{RpdjS9M`QyR>~kk_1v z`P5az9tGnu^Unppx3UiRRxepsFMo1MUbr8K%Iv$dKW&w6hl22)x#IMkEct#%5UTL5 zysX5?2lQD87jf_ppCZlY`(cKLedVap^6)wzq=#^huQiaz;<$I?Tw`{&u5`WPg4*L* zOMGf1mmQsg&&JWP^Qt1hRCPqa^eFg{n-rOcA;~fZ!NdEB4^PKnQF1hU`EjCR&{(9|Mj-BNTe+VY z@|`vR#cvF1lc)CnMXW31Y&W)2Nz9eC7+t`=231Oma|{3T_S$s(s+tzB;?RPs> zpSp9ggmIqJd7*k>Mlu?6HuApx4As#*8qthxjPnFFoA~0B{Q7#wUTQ>rdQvc-`<-m0 zUO!7sW1dg{#^2@SoIvFL75aTf&6!xxd+P>{Qx|6r;c$0J6WFZi^rSE#Tz|RK5+MfT^@0&EA-`0D>`;0QsYiv zS4I;Lp6|k(yt|RyFxe5Q5m6ZJT3J4LVvDyQ$RB_BR4lDG85PST(Ra#WF}KVDU*<%i z$(0=T;N}?Z7mcX*)?#Ltv3T^5n900vN~3e8SXU_;?;qY!%x8>2T*(al)Vvhoug4*I z)W7-p?$Yh*>=%BBR2MrzNT*i>pFu)o8(N-5Ikn>vE=YV z`GYZ!;J?S>S)vSC5Qt{X)s?GGm-dtW(BUfmM|5mt^WUt~hzHXP86j_PC3jo$w#Jbz(MeS4z)Jh-* ze)1YIcZC^!RHEVNXeBZW$6&`+#&&+Gve?HIPDN2@P<@orecl)(N6bLehwH?ERp!`z z^WXej6AQSzOBBMUa{^?OB%mlM_n@FaE#uoKT75xov}LnyhMFe zre*I)>~85wb>neAdb@LHF+D-87V3|he71M9Q?2_3pgzB+()2;}V;oo~cd#`wrD6Q-e*c=%3NC(BtE=!JAY1`Rq6 zml^Rc=to@Wm79H}nWGaP6h~oq^EPr`cRL*K5rwoxHKg-7E7Wh#ulqg}6Ot|d@)vP- zaK8As!wk2`kDhzMO(@UDVBLCtUh$`u^4q59N_^wqsk4hKo~0&o5d9dAO%%hMPehpd z|HS!Tq1wH@4W={BZhc#o=ysTmft$IfNNQWMyx%f(xkPMI*bjC53(kj`dt>$IP#b@4k-vKg-?JC2GTYa?q@6vPK1R&R8?wud2x4gQ2L&{$#+bP4di` zP=v4!F%4THd#(${^g_-VdS=LB)KWXyn0uLi}#<|~%4kgXTroe0ycUV8#m+aHdCO(n7&b%LLr}5;9UFLjX`B63C1Toc& z^YD^2YVVo;=*b+iPd`<)=n;Ugd~Va*Oa;UY) zn%VPGL-lA}Fzgt&k(DZ_QDGrSVt#o1{DCZrqjoE2o_W3};`qM$ACmaUNln2SDn8Vs*u*O}QH*kZ( z+T*nE1o^RG3dZ$_#;0b6a+Re$8gGum$)UPZ@9kt%-xP&i_iD(W7kDO{M`K{E8)8n_ zc!Vj@sF0H*LT$}p(1iW?m9E0p&5S%eYQ(MYpjbb%K=+}<<5G{PYcD5M-TH5w*LU5m z2K2GPRK|H}Zr75ky0K`$I4@k;qC|IGD26O%Jr?jpJsai;UEcN1GYi#q^oMQ1vwD4I zmKy)nAHNve$oJvux!eF4^6Lxe>wS}af+NfoZ6gM$&VA@b$XpSd*FlZ09gIxoid`4$ ztMfiG5A%-8{#HTl&0a&pT+!pkGdcEqC=Ri|zBu=yYS}IIdXU(}tlf&$(^# zRym8hm)|ZDW3z6BtX-8{G-KB1UFXZ<8`Du_$KBQAWLZeee;*5KdOr-67Q~)CH;qAN z*QwGwaViW0i09}rMs_uJfXQ!S`z!U6DOGInx>hvKA8sZq>si7wDH_KPe-%BtS>R@m z802j^Ae>Ui<1qK-f!BS+X_pB+&(!B!aZHJtJsI7a&g2}kiRf!g5AI|C)*A=L?^fFk zvVkq*e4xKxNsBG?0?T7AeL_Ea>K=q8uz%S?QH;)BFqWKi7OhZ^6LWf$@tkiNuZ{{1 zKrKEScC}MCQ9J!G&#-dcP(6J;5FeN;R!-Dab-Aag%$dfJl=|weDEdA#SKR1UK|Sss zf*Q;fb;MH{F(nkfjNz`17o=lg7F@;FDT`cO0x z7UXTw-=T1|xb8%LJ!9_tYN*KgVTXP?=PebC8*D>01@f)qlu+C7;J?4b&y^ zfmqKoJmW%3wb#%f%>ELGu6fnfgkM2OV_nf>=R0}&I(h%h72UU7lf%^zd|@6iy;>r# z9STKT=HXCHf!uL6>_4oX#(SOol^u>f++Vo2Uo1EE4@XVTKV!dV%0-Ex7|Pn_y`pu{I?5C;n5Osa^@?-Gkv4!k^-5DUSKWm0Y zR(s+I8^%1peh+!IsU7A%iAMJMMl%26WE6(Spk?Kc!XwlYwIw&{?$|9*Bp09`>iUs$Qkv zF3)hb)d$%jGYGTT>)ot(MQXDL=4`-SfR#1nyZd(dFqt{r@3jcHN6zJk7#OWPB03$V_wgR?baR)9Fdr+NvZvn8Y9BFp zj178pB2TB@IAQwB8M~OP8OH204CAc5J5-(X!5eLO@8k_?qT00##8sZ#A&_HBnnJ0hQg}{P6$TBrSe%6HI2WQK7TKP$b!C|<>Jlw|8 zPF`m`KlGpvuVN}K?}wv-F@5?n>hD+ccH6tNWlY^$feesw*q$c%ZymEXo#Ek>4HZwUop;r{<&3JMDyJ(_(Oa z7w@}hdjxUL9A2+j?AU38j_fN-JXVQWmnNf$Moa#TRw!pCBlSBydM=F?5$)|Ti@VzM zC;E$3UYwb*_e_7WRzyGH{OSMMr+j(0Tm3cJ2HhBEn}f;fzD72v$T)ZT-dFXajzpEj zIHdbjQGG3apvO60Eu%})!;!g{vF#tcLwZvOSi^Jm^=HWX{+Q?pk;oOVH zqm{OytjvAp*MY>VSF9nA*9^y!ZsZi0RFKuGgd&f>-=gj(QSn9~dWEpxtouS3jC=WX^cI*wiC}5-BC>V z;*N-s)TJC7DYTB%WqbZjYAByn~R(+PLz`Ub1I>YTYwejPBV| zdK?YLMdpg_uC-)&P6%qU??@HjMIUV_EL(E-RQ6cB;OwX}^RS1-Me!ve9Oniwx70o? znjE6uz!2v1yL-juePOWXIq&3_&psmLKP*j{??#c{JrE21=~wH#R($^Di#ltyh%j9t zUN!cH6Ju31Yq7AOM%^>&3q32HC%kL9;71vE;YymYxbB4U--uy-5+i24ut#cGEL=8{ zlM-r+_lER8vak{f->vCa$oG1gu~5Qnkj}s5{k-l%Gs*#LyO0C&sj;Y><3Vp|Ee_{& z5v|Fq*0%l^|NO(3mV73*$YpIjLl-O4n#8JJcYZPPZff2opJV0eknX+sgKRNBK5!-F;6!b>8vXvdh8Y3uLZ-Fbw$jN zbwYP*2--7OPCt#J{l)ZRZol=a3J zOL1{z7)p7bweQD@eBP)1I2+f`9VPY-4}hK%J*+cFibHLEaeF>FK1)W3A!c3(yBv#E zV~2}qn7=E+HkRaAt!TrVPr8bz)GcaCHPt2I&fLl}JIlHVYdQR~`AMO_-j^!!(1EMgq z!N2&87PgzD{?4&zJ%@AS1$|_k%XqvU%JUiYMg+{Cgp1Xv3!PISN=MPV(}carpxNT3 z7d6|$>1%f0TZ|7TW|i-3%7YQ20=)sog^@pXx2vce#9lj!KCrDDiYUK8R7{OS`=39Q zy5#0QS%VF6-y~IQZNwR%{u6!&CGzKe%4Ob>hZfb6#3|uCjJk7@qL+8m5g? zUeyZ2MSi~N(ILvBDIv&b-}WDWyenHz7E%7L8WXZahEsVdBq~f zXrtnM%N?D`{Y<-eK+z0$!7pO3t35uie7Wa@0$p;SH@#F^GjIImf$r#6Rg9Qwi>FPf zNA$6YNW5z9%9{FdsKd=MT~oOk$;nXUcMLiT^knH9}tO} zXaB`-RCs7Dl8Yz9a0hXrdKJaAO7upbM%>8Dy~=gglb(Hf_l*u!PB!v}I)k-`m9BDp zLI8F%hnF}!C|$QJQu^TxZ=Q(rG52{{lCj-%rU;kU%=mrE~FMFSIvx>$W zjDwN4FAjk^vBsV)LvZ^vdAK_d8oM&zzGq*5Zt7=agJ1OMVLsoysHtY+(=hbojyq~_ zH%$k?lnNXwb#&GUS4g~pBgwa3n}ChW6KGx!L3BD`laiVtaQHie-f@6GR- zCp5d-h2taR{H)Gd&6qi1XvLYHVcsdt^h%*P%Fk|B-6D;xFYn*#+;6s8sj-RnLsoq) zo(NA(c7Gq%ttzZ_ZIR~_11Su|6Y3XT;tcSSk%egX-5yPrQLoRov*=^z4#WH?7(H91iLM&~ zNB#}}8|Pb@dBx=gws^Fb^PlBUif(VQ!ALXK{|o(xX4%-GVI{u5o0b{peWupB1!o|4 zD{G3j2H=V|4rM_dHQ^@$@WGFBhP)A)Sq%c=r?d#~y03$ys-} z$sVfy7fr&oFdXI?Hkwiq`iH|%`w#aHRVriasZiWG5QokOerl4>2E(~?9Jcu1*R;+I zK=;wqq^-Y0lQX~<3yotjuf3Bd|F9=6lN)0|yj2vG&6$!RF`VVkhKBUBBVLlTubBnL=k|ER zqCac7xTc!p;?p>bV(AYE$p(Yah=!Ne!ZC?G=q2zm%Sp|(Y zQ^#l<dxfX z*dKL3!GLJif(^ZQdDozuQ8+csb%-Z!=5@@t z_e^idmc&IUT{WHB1fXCHbBO;$O%7*t6F4iIJSR$%HJ$zrI&s)MVxguBJwu%;^SyB0 zqFENi+5T^OlbtHj6n;km6=uDQc=c$J^ys^+zDFOQyjjMa19 z=FoEsMKbT`*=ITvUlU4h9nbay19Vy&hJ>%|m8^#0e(!MDaqd+2tvN=rKC$dW{@UkB zC~iw_Q6us<9nE2So?cfboKrm=K%aK@r>x0eRIkgu0eutr{UHn2YvwoiMF8ve8sVpm zDtLOKZ3oV{TCP<-Or_4!LEzsF8<%V@kMWY@#J~7FlJu8R`qmIrk@SIG>gOWw$?`CnJqbCTGV@T-T3`b zZ&%g>EfX=e?s4!8sy$YWoRmN4nWJ7M_4Jt?*kGrYg0Sei~v0M^gF+GxdBLu#wmB=_GwLv$GHg)4O;(7Mfb zO>Z6gv6%k5hqb@5v)CnxyPITU;iergGP1M5GS+fkQzDJ5j@TlB*whC;&y3wGcq9L@ z7K4*VYKE_(??VI5E+&O*hHUi5T7G@lutl2DPdSTLwGhrbG=rQu=g*_Rs`Y8jwNC-~ zxQu!!J})&B3+aurg5In%tD!&d$C0c#moICM-J!uy`MKnu?TJCIAsE(>{E^W>SeH;- zoy=X&w@J|3LXXZI?&axmG5$>`<}q)NU|(Kf7KSvQ=X-_pjOSU}F^)X1*0bP9Pl=A{ z#8=;)1s#u2{8s7h*dPhRJ%aJIoZMAI7oOb!_Ff6-{i73RwVsX}u?g@Rvq@7^dZYHC z1RQE>UK~U2Ptu+Q)YN&W=!H=yq;UfMJbc7ZUw7&{QY)kTLUGu~3)fjQ=e$^;8O^@+ zrt!aX(LQGii}hyO!Yh_IiO8cxn?~5smq3e0uQH5!tg%J6NaAfgJ{b=<=7oyT*U59Itjg+0-dZ6;XOa2hIc2b9$Px@NyOXCTa;QaBur z{yXP?**mu0hJ680mw+(V1(ti*Oj7G)SqO%kCZuUQopU$Q4%ofI6vC*jH z6ui7hZJGP2nwmrWk-n7w2HjlErFd>Kyosk@dst&zB>)ZCFEqdUL{pjNzFj!knVM~SX}>&<}G)HLq1S9sab8@2na;n z>sVZ|=>P+lAZjgW;j1$Qk~&+%`LlKz*65u?zi-YqKg|q*qhBa2cyA^TPD6!9p*YJp z-)c7>)95$ajy2)FBMUI{c@T_v{xfFG#+6#sNMrA|Au}3zR=y~(rY6Z^OZ??Ne7r>+ z7`{6L4ct-wg?g|*?`zWPyKqkwi7h@F&9B;1=)23^>&{BbENcfeZ5oYNH>-;*Jv$6q zM=y-|QKHgrTi6G44;xz`EZrT@w;&SHhYyK(#`#!VihB@wOj{#ru;cIKv)%%AZ)~Yih_9(u13M=5vx3Q*!Bh&fa$Ulew7QCJZnAc>iwC z!2mP*pQLdnlf434IZH95ZpP`wOL2tv&+F&(e73&6zQO&w+l6#BGI6Kf##3p6uf^IiR{QE zt2N>e@2th%#FtiCBBER!;6rV_l~)TySwH&LrG%kdt-hL{AEr^~{@*yCeRP=WwA9|8 zLJV8PgQDNB=?TvK@M1xPQQf+>m|0PaT~ogp@BQJ4S?2WF{BEuB-sXofe8&sAr)zE= z@k8HMS{y6O(-d^}N1sdd-u`k*bM?4C43<%IzU2o^wM79qI)ihw`t>nuP9WZLuG`~% zSICt?n3ocZxXvTd`*<*Fut)CQi26O{As947i_{iL#Quh|H`h|vX(6-|=$ky1n1oHM zG0!m+ucFw)Vm*?$H&3~)g>Hv6aO)5N>wWy}HZFqMDqqy?Kn=a`i5UIK3w?+|Pw;Vp zQb>NEPbAhf7=(IDs5@Fe67{}R!;|9)#ZF>2wjQz*Sv?(aG-)O>A1)UuL*1cM96~Sc-kP49T#@4cZ=5|QpDg~-+7=Ia zr(Zq)v1siXYcyO!uVJ&%Mh5q7;QlZc55_+;?sAGc4?VTS9hqw;CHvv!IC>Q3C2A^c z^usG+2tQU>r`gunANi|dQRnRu&8VaPI6ReFPv);QHX8zvFp&Nr@paH}7wpW+j&#h8$_m@tPP++B!sp0)(Z)PgFTN(^(|4Ai;jg~R_JS6>|! z<<`D!A+}-{c6VShGZ(gkfr)f?cc+DjilUe(Sm+T9P*IuL`x#p}b_aGJyT$rl=Y7|= z*6ZhAdo4#C?q@%H-*H8DH2n93+pfc~CQoME&; zk72gBG9VfiHm5a9w^JJ`F&f`)+*AMBWrg2+>9x0dyYRnYjZ}Izzb&(q58|mUSuYUZ zYS?NjvmTF*{Zog^Easf9*_~OaGKn=^v4L(}_DuTN)7N8eRn^^tvrtCeCl`auYJ-;a zVW~?rea?r6N1 z2T>m~4*lL&!$W!tTzeKrzdmC;U@vI60d=Sj4M+SY>VsNQcXy^OD&|JQlo~jjLW$q{ z5CwaFpP>;;aK$$ozbfc)c6k-PRYYPG-@9?!*W!yN9HaSsJ6BuH+#(oz8&XGIvlK6E z12Dd34Emm!i+6Uu$Y>pfWa<|;8%A%1eG$;me=I$O`fNrKSefsG$=da^5O|*4joRtz z%@ywOYMKDI%at{)f70K+4>h7sb<@;z^2hhn@i;eSy2hmi@1S7DXL__cbIHkL9%rlwiMy+;TbUnAsK(*!Ml-{(__W3;%qdE8a-N8sb%*q{l z#yR)aDs}k+KX~_Mt*0(kxBl#ht&H;svr3vt)QR24IsVs{jsIinige_^t)6W= zsjR`X`qQ-^nkMyQ;K;oFm}gzATTVO+@4-P$n;|2d9*@jRJ-fC-_P|KA5D9o=+zNf! zyZ&nvwbxcR#j?C$yl)qWm96WewgG*Uh!?G1Rs+uF%u5;brQTI>(9sW@qaxvO<`;8d zKP=i64&AbEnpqwEai&)&jBOfW9&>;T)O6m+y(5vw+U5k zdLEA@hVFmtXZOF#bj<^&Vmy062cD~Sdrhe0oxmCHp>x{XW2PZ*Up#W!*ELmtaDp4} zxD~6ksy#KlG3aqTYTd4f)n* zD0Sz%EDo!8OblR;oZ7`<_tYD{2cm-70SWsJG>vZtqu&_zgvYhfnA`}(k>zpFKOUy> z=X`K!<9O_OI!m)NJ`zuut8}^?q8UrA+(71>mm}wBR{e;?!$}FaQ#VyJX+Q+t?B;hi zU#NLkDGXl@#$iI+1+w-a?~flH z>5~-_sM%`ckA?5p`(C<66Itqqx=tbRHfeypS9~yQLJ+`OStBGS}KyXI{Oy+es`^IA}fI z2VomM6z->6X^S5Pz;_^ZjEg2|JMHp=>6%FVS~^PGWSI}f@8sMuXpGi&0{tTBiEuru zgLY|=7k(cM#-RAl>Mq7!*y$1o`%pVgpCS)*Vx2JgP7CDpaf3w%UwGsb10L>z)eF4w z{G>!Fed4BRJP|`$jvdrd?0nQf_hp+o zS~3TlQ&dye!ruy#xq+|ft$RUE=!|jk$ogrfGo}XP?fsn57h3B==#dxEB@WUrO82_N z6_<0U)p>l0Zf;d~xOJyT`TZ@r6MWxxAEWnZRjIS;LcShjf`jF{&ELo`8ykaT=PHTj zZ+uZ~8iQWVn~3!f{n2fD3`%?V5Ummeu`VnI2Tj#thxKICBY`9f+J7<5U6N+>vBLoblHMnw%t83=LvzyA8#hzSQR#K|W{Z7PtmFp)vK= zy~~dyYk(&?@$N{iSgM*bJPuo~+5Zve`n~t-9@Mo!(h%Zo^M~ku1eqg)&VH#K`ZS*fuu?YhR2OHpjeib_#uJ zyxm1(&iJ&d7}%_yD~9vT(~OK^PLn0-{|LZ|2{D-GktcrLWF9`8+VZpZ35Sp50@J;2tf8JWRXPFgNI1#`7cDL@(AbKA#HxBD@L09d8GYl`%S7OO$UH4pSm5+-< zrN<3~H#Mu($750VYIo7L+zozHh*euLR-7JB9@%rwcTRbV%GZf;S{Z}%Mhiq|`lN)| z#b9vbY_XDir;}L>ycg~hp2pNk>regJwPhlXdD^p9)I5*5E9SflKsEY{bqIeWCNchJ zVtL-4tRzR0k2$YLG}h?q$n712@U1~K4i+2B{E}euW9U`k)>pb&g~EJmH1cN-llNPP zpy&kSYiq+q;sr)QSGrHDM?57XD-sQi4n<`-+dDigvmCC?7W z(maX#4uao-Ey(Li|My%EM0H%CO6(GgtU9)T#5v%?D%}QpBRtno!_&QuZu<^%G+?dg zdgqHaje5mbv*Iz{EJm00mlY}k;!$CFSywQYTEyhxj{5pbx8S8S#@~;_zGltDmMt#m zY8{7sqXFUrwHEJ?>*Vm%Qska>L%A#Uo>XDt1GVqMe#Ri$Yl#?hz!L+AgFUR>D)PPA z^YMv6?}t(tbfrJv%Qr5D6@*)}y2Ue5s@6&^OK{U1)){_I7 zPnxxkMso9(a_pf1Ts{|te&2h@zqq$&o`}Np&4f1YC%&3F;Kg*lV#Z1wx#o?bU+AH(#Hj4DWAM0v%^z|0HeRT6OSHhrk;FgP8|iinbJUAu zotyev+njusnOozLdNWP;O|gPYd_4BWe9$G&a)x_kJi_ZV5}}`+vFdFc+A4j-N}kUK z%vXD~nJj)&Q)SLea%6PDqO#r%YocP&pvPj-f%Q(ihV&7$-69OKcz2Y<;Nxu}lIbz= zI-2_M^KJ=)3qI&Ph92nEzlyWWNe$}6U`u)pnR19Z)dB9wI*p{$8$V>4MPupLHnO1? zIfK`um~rg>r4Hm>$wmd^o@dcOqjI1 z6@t9;k?_cKl|Ma$kx&wWy?qAAGcf^}w=NvdTa*aDeXQSCQd_$?L*3HN6M;=bG2%^g zM9~-3>umrG$T2memt2UiJ9cz&Qn@ycK}X`M|F=#Vb0kbRm|QJoEcIj>SJVAIYfh=u z1WY;iQ2V5b1+Esc7tuRQXL7{~Vi9Kt7pjYRcV|?dOWclMM{(x2GhUK=J|}FX$o`8M z<2dr0tlY&-&e_LQV*X}7U(DO*Mz0I{TkTmd1{io?WY<`XZ+bu+iu8mDdppS+FNz5@ zz2QuL;7P}~Vz|E#-ZIV)t*XnRKE6o*5)HSe4P}+HzBo*dv9i@zPU}j)<9g9}n%qs+ zWG^8lB?@iZ4wMi0ERNleglFn7IdhF4-jYk-(0quzTkMM!Tf=cg=_Va2ym9M7C|Zqb zAX}7s!kxaEj_DUf!=dh|{vr?;>+~0>;9b8o0Qb!sYN{&^SXS(hw>y7mCfBpa81{&^ z+@c@IcnA6#aMsm31$7U3;I4E<$yl|j!J=r+jAs84XVnlZ-K-rJC}sZa)%2A%tK1yD z7m~ZAyQWR)Y5|)g@z~gBqpl5SSVrs%9ZoP3KSG_cmUveueLpd~rVGsKGvD)?CN3Aa zVE+=%%c?~Qkwv_5<2b~$TPD_$hklNI#Y*qCi@M~Zo+YmG#e}yqiIgASsK?yH;#3`J$e!B+&N}ZeYA%O2@FmtS8snRFk^{VaVe=>oZM^!( z!#TeAIVuXX+61*$e7MWrAQKPkNzuptMdqUtD zY9Mo|$@!ox2=i(j7isLdH6B46+hVmCJk*IZq5w2mkWR@VdyHnBN37VdA!;2>KKWso zK@VIwVvkKeJ{V#+6Hn%OVCDr^#F{ozc~_3c&qaU6`NW!Gy5xNp_&PZers)^7*)Ply z%6f3UbE(#4s0FHB;92o$t8P_=71FoItiaeH*`Tkn|NfNa}Y-4 z=N`(5!!naO;?oNHM|2}TaM~L2Yoi;rTgX@HTqthcYx_}Z_p zEZ9q5$SP6jJ-5GX)4>Oe-bCPaY7c2jtlH|JaCG|BTDB(6$8Ia}2eO_#Ks|v0=Y!Fz z|2L6$*%hmKU&gIHDn6{C|H#t-Oj;fwrhRfibyWabkM6FEUu%c_2mTnc4Vo_-Y|*wI zdpaGTYmBGc6X)!MNe=BW)Y=2TYq??g$THK<5m9i8|1-{y|7oTBqT{(Sojj%$`?WVe znPURycXj?Q(e@o@0TcELhOGHZ*N3z3lw$7NdhJAEhBLPO#ajEuNRiRn1?&2-Hoxg9 z{EF$HUPM21msDZKI2)^p^J%kDOj+%Q`)6ZuZtg*G_<}no`o!X_`(+`Tdg4c&SU7!o zD~1j8!s|Wc6-xu@`klUw%-s# z=kBs1&>J@k=^62NXK6pq3m2Uu(DzhxxipGrQ~|wrr`DCT8oHD3Pfp9gsxtM4E8YwY zM*Y9vh<`j?kbOK5;>tPEBisq4*8{LUeuHRV(*du&15kNdfAQjmEu1^j(`tkMuvK$g z>WuosUhl4X^1%*%d}q#lIioq(-vf_1_v(Ds!}I}t(xW&08E0?TAKJC2EHK@gJWb6S z?Vw5)#A37O**IUTnPq`iZ>gC-pg_0ScsAOyKfJ1AClR~R8B2(1H+?)#)a&Ykfry9y zA%AgGN6qaMaTxs9B2iecZ|fi$A89I+)=ds&Rd`z@e&hy zMr&KwvOwP61cXgpr=93#fez&2{dJ>2=hk;N&R=CuepnaLdlz-KPmnJbZY}}_xZuGQ zV%Sy(iO}ONXnT{KedZNnl`EEc#UZ)V7SVI58!r8%N1MG)G%j>UYu3x@2d{}bdJp_F zBo@1Sy%TSidm`<83_3(rlTNG?*E*8ZSEs)G9`8kc^=MS4XNRRNb<6ukqt&oxa>XJ~ z1o2GPIM;qfU<2dG(Xv*ilU{@%T`#lxLU0iUEJ=q_FUWvQx z!y6rDeZJwl7;>8Plp}!{*tUvn|C(n-??BE&tH{HdcI2f7VD!EU(R?raeViq~?SET5 z8E8XYXkvrPvcx?*JM`J@3nfI+ZG7pDORm&|KBPKqbt(dyLR(L3yfl%Px&v_HP>3U z`bU2|ElO=X(2-o=xr6VB{5u|K#`#@K!*@cf@kEgaeXnZ$5?lItk~0{Ex~D725_%%I zoQ}lAJD-HEgF8l~Mc}sCZBedqMGekF3!asVx{X}$nK+w_^(RFY`YttLPd2y1C2_7g zy;j46aCqZOQQY4NSBPo(wzZmU@9BWd%jE7FHt4J?|xBk%yq66LBm{dmi7cCyiUU!=yX+jnfQu=a&&^eEH9FW5fC=(*VZVgV?rz^Xd_d z^L57AAbLYddvgnV5V041t(&e{t`&MS&KsP!>)anY{pWmMTzp37O`fTmc!sD?A9db3 zXROpR&W#(0tG+JmG4p)>(N)v|{X0&@;!xH|VKv)(Zdan0C^qXiTMy(Qm*YreF_h=j_&Joudcw)ohC{(?+McA(LK#d2HDE8SX zcGyt&=}-h#IW83${;pU#Bpl1y&J`1xb4C?}qEn6eVmKjeH80T60 z5>WMS&BN!%Ti`e2+}8A!cFl_a?&tCsp}JP*skgv;@O#^pI2E&W}BVS zzJxV+=L@=C)W52uA(p%PN8OQD^n7HmV|rv=(Vl(O4%1>0l-faTZB3uGdolQWW{4R5 z)tz`5_A>`q2%~uJ=YOKnv8scZ{L%v#U0733^b^@XSm$b^P%|Y|EZ}|)ei4bC=lw)Y z)?qPa5pdc$Q%p&8#WUhmR#qP?uK#kz^0H98dN5g(aSpi1HU!Qm<3txfCqz|cz7f7l zj0|z49y0O7PG805<@VS%F%TK&d&w;(ws8N4eUl-s^3xb=6tiZrLYkZ|XJhJSe>4bN zDIcfX;JT47+D?p+dNy&F%y2{F%GT;d&H254&HAHGF=$w*N@kqxU5H0|W2{mb=ktv7 z-zGk$SBDpRXZwW6kUJRC-~*9n~yRxrn#nL0-Ij^5yNhH=Kd+*kK(p)-yg zii5$)G~Lg>^iNk&kEq@zUCRm=>^wq`Hm+RFmt5V)-(2k3LA@#)ViHWKh__P zE<0uWIBTraGp8TAQrdEEex`tU$HYduZSLXp(U|#1oJ&qtsO~e)HyG!RIXqry2m$M&_p56x6ce+<@2uiVIE6=;V|8G>IwY19)rza({#(J zQ`F3z{U!6YI^&TZ%o(GpkGx&iH{SyX?Wl)yaG!3<-}I?roJWL|=)QB$dw=3AHm6wE zIout`pF}W6%+om$d-pPqSjL#my7PCO;X#b)jl@#jU%TkpmqA>}(KaHdh`Mvc1RJ|9 z6!C$aaTCL8c=D;ZHp31h-Pz+lZ6Xf{Yh-Yy*l=u;{IT2$Cp`jiZ{=25sbm&rjP%EX zcqx0eCEmc+2M6x$mS1~0;Oi3?eA(b2&UOjH$BWbdi1Vw6_UZ`50<(x`{-*BocIa}56$WxY8wGwYxxdZ{*A8$F{_OOa%GOTW(jLXT`YE#uhE{*cg3l3v1s#auXb~R8)mW>ed$1{ zHgUN-e2CjRXLVm&zcVqhthM!vK5J_+ujpkRjrP~7>LT`d;4RPRX%RJa*L_&$evQQY zm(_Il0_d~(HUi)0e$W;Z12dlUQ@7Ezb(>E)qkny3gLVh#<^(vwZc_-gS3c^-m^q?= z{_>IL5yJhXJu3GJ!ryJ~i$RID==$$|&Ke@ac|L4B&tB5~d2)>FEZi9qKyK|GIeOAe z6o2r;4vz~m(tZ|p-toqkv8A$_xh*oP(^t~#v#9gR8#WK8{t@T>nlb7Ky#=l@&ZWJi zs&QotOdw{jda9pl?P$iFaXz)}jH&dp!X(D|MJIn#&vfRTjB{2}lBvxzC+hQaR(OA@ zX~-C7`XJF0?dv8}<9p8dJva_WejPIX!v6pK5_%QfzGUjVh+cT3>AlFU@y;D>lo#-v{IRbJ0RH|dlA@8jTr*2LYQ!D2Az1oDKSIe8)!9AQ%uqy<*u{xc< z-hn*SVECsxiHXE|)$0+2e{{Em-C`T8oe+q$kYUns4Kc~AQwm$9$#&%I1W_-b%G5)$ zR_=7nU*?C0zV~E>dIma7^hUy%2Xa`A*_hMH8386EWXl{E;y5h-h;wnVmwL_-dbGK* z?#_Imn$0+$W1N>SSgN`+iZQQ7T+k8|)qF=Q^0wnKcGVEoi+CsaGS01=&rl7##{JAV zZ&@3zGU@M(EY7gv1}#wy=Uyt{Y{fo)i)u&;YuiKA%Q~!6ZSf^vawO|P|C=gLFE_}u z|IVEv`z$M(biNZcc& zbDe3ZGuV&%hX2U>L#83>xEI=Gf0P@W%!Hv0y{qSk%K9H|(PGc!KjJ*%%{;aHQDP$) zXLWED^(w}BSTXtj*4tFQ80R9!Ibeya>gOygtY(~t_6%2f1UX?m<6QS%y2|S$aa4oZ zJB{9?>eI#<56O|S$SqMV-%Fij6UKbUb=7nB5WW<1mU{A=Dt?kHs+y6faJs%)j&sAS zvKUM-?4*9)+Z{`-V&L_Bi27f@(LOh#5nyAkZrX;pV(PK3_{&zkZn6j7uudr+@1^e2 z*aHK3Zp^dxQOjQL81^Fqsa>qpEvJkwu2PnjkaIAR8IS#_)v zb>$C)b5Sbcz>huKX#VL`{RsVMl~sNS1-tv(WYLNq@xolhrD94$qBX z=5?bD8mSjD-!Njn(Q?IM)e*1;XI}Sof3V7Mk`o3EOuN-uUo z_`rDV=&?#Qr?xX3$ z-P~~DL=1dRHc}6(>yEC|IK%p@vwF-9Vnx`a8#QXM`YQ9i;&IW)Z9G=}w3`Q1yQ1jV zK2<&I6}@;qM8c=e47G=WJ2tY<{OkEh^_V_9mo|svnzxa<7SFNC{lgIDx6|}^s3ZC@ z&en$lbdMI=!`~_xed`Psr6b9)Y8Zs%o_g_BGn+gJdgo|*$o|J?V2?V0XUZITWzAF^ zol4ytp98W(;1rBx@3nr*r*g)n$;f}^iJ`l{%E)e(nAV^Axfk4J{E?|}Rs9*~JDJlep-sox4%8|>rqGSRd->1$_8I#Ae#3n5Y6()UnmZM`MsvHZ^Ic_`_>MeKdj>3ausm+TK>> zoV3ja?Kj5!n{5;ZJT2FzEpbQ5qDZtqc1PQ9J^Q}l5r{6nsBO59US`B0pL2Yo)t_aa z?@uh8bwAzmXRN7D1!MVS@+D8&p%r`1vA5cZsNpu`Z3N)#@Jvzj`z-8s^+#O2PvWiB zbaYN3{igjQgiSJh$wXMLVXj$wo4i^|tjiz=xc023 zxlC=JHgo@s^Qov(^^(mNXrM|&&0l8fI}gp#Z3*$uCQnpf+VQNu6_2&ib4;I+tLUFc z50cjI+I8%`7;=UccW0;e%v>k*AO@-K@`u`ji%w8cFRszx`npaIyc5}@yV9hu?hxzW ztT@iCCQsA7f50Bv58~XCqjhyTf4G(qgQdyKbj8f^4*raWPySZjLybF*1V!Wbu!Fj@ zNyJ2);hc2;Y288M46ihaLapgnbqDF6-nVZga&BMK1`VL#K3&sK@xxj$Gvl zB|7^EzF%uYh||;QdZanv{+=KhUAm!rKFJP?c9VnmqoJs@#u{qQx~6rTEvgKfg_vf( z2x`1hq%D{R-10^p|2rbtbP9@yp+Q&!`TW&H%=zhokL$b0k8do{k^SHI!=8%L1{2Y0 znJpat+Kb_bCSWbG0{=T7+`aFny3Gh@EMxz<;jzi;HLUkvku#Oy`C2tEkoxnS$v(QW zyktYE52g_hmb$8@E>A`LPig}CIhpDV9tBcom34ZquP$Ob@pZn`RX)E&H&Ww^i^s{8 zuC+s#bHp13E#jyNc1-tbuNQ8(vFF_Dq3%^3FD%_dKlG3)B9$J{2gzS}v8%D@yulL( zG|?EE*G0_tqffL)6z1jk7q6)+6=)v`>xlm1(S0`*-lYcd!M37@g$rgq35DU*>SD+v zN2F5EC3@m(U6m{JK{EXEZwTR>S+gaofk%#j@8{TB5uDgpV`2< zC7p z)NmIz^qPt&->H~qxYg`iXU@?!E{d+;`zVMwp52-am44})Ct-2LN$55 zBkr$YJy_L5d-I(SHc~&N>C90&1M;D&=O^H9ofKVGy&(7!XV_$Cu5J}EEosER{gr-1 zcQC*g16svnS@Xxb5%df0ynyw~*=nMk{(WlB!K<4$7mgjh(A6>)@^o);@Q^3=6~|!o zyfNZdCcU=XGxuoZD5@{@gkwrH?EE9ebT3crxe$ekUsJ@fZ5}xHEE1pmQ^dPr?oj1N zz~-Z`xKqm&=|96zw_=RA{n-f?A42d!+ef_V=7eS^f-otft?1B#XI($`kjGXPCto{4 zTj7JvE^~CZnmgi*uO}u4Oi|y-vB&!ga_=>Pn)LIw$Rai798A35;y?4}=Bw|iJHK#3969pwZqw8SCmgY<1+|(_ zK2Z)5Sr#7b=E-0E%+ zaR>+%6}7$a=yMFz)fS4mjl9q_i5R5JHKNI2FJ#u@y3Y>b$n{S09da`ZMa~XSq@Rz% zlIewF8t0*!>+F|#Y!;ryZfKDZ0pClhVg|WCJ4?gR_>+%lU&#gaKe9(!+e!GiyWsL; za>7^45I5SA3$F=)>xizxvd|TuUvt)|Wa)<3Qfrrd!u^f%)oxMlI2r7U9={)Ho*1)F zzQY;c?^D-=et9;gZrEtJ0^euwezSD=V?W2vdZcblEZaxqi;_qF+SpGzF+KptROI@#5;bTNB&%EEnd+arF76<7uS}>n8@qGzmGCg;8wW0QG zho!=MffvTGemowUBSJZ!eagAOpr9i0rO*q*se88O{z=j82R*wF^K5s$C5oy2ew*_b z)BR6{!!+hW1r^o1^Q`yqK9AMN*67T%qo!VJKdAq*p@4Q{CH-L0EDl0mEw76Jw|mVHHom z;FjHmF*z*TT9X6lHAZ}6k9LHh?pAkK@sN0j#xC)QuuK-6c6)PwvhP=Axrk-`dYLtQ zseZFq&Ari%GcV))2ZXl1H%=PI(J#A9oF3?nf#tE7R_B38Pw~d$ZQTE<6~gTWYu^a+ z->1}+sbk1j7!iw|?nbh#FK6PMBV^5PBs=AK;~wk!Q;%!Qw$#@hJtvwP`)|cG?$Z%! z-mNuG3w5jqBKAk1*s4&>{D-`!J7MVitVBpY-#a3NTH$BJjK1_uI2VLF4kL9hruw4S z!ysf&?SXvie~x5+KIMB?v#O(c=TJNTfA7IjJ}=bf)W3SVhp~0GRtN8MM7nPx|;MD zIUvdylSV(O+niJ;Vz+oB^jIAIr0$Ccyibi*Fjp-4CbDbL1KlqUkKfjm-vfPk&c~to zfacQRvk%{2YPZhoBCCh_BAFT{bF=!%&l$d$@FEt&%LdAaWBI!zP}@16m-J8bL0{rm zS3PYaji`TqZ)G$retZ?%FMGkcMil3s*M&aH8)I8W;HTv}v7h_oGPM#a%XXS|#9pqp z3rBQ4e_ZV8i`~pE4ZgXW)x8joJ}W){i1T6pm+H&0tjm=|Z0cmA_Fx}iSPFI0%*s`> zzBtnFm;L{ePP&9UzIZ-`nvL)8>&9*-UYK?I{q9Dh(H7z`$@OkM`4|Ap}5`92eK}CKx=ns-0i)fVqa_T z`7FfSdc)I@IMsgh%}x~&GwJy!Z{k7ZYjwsxC#*k1&f|9*wOLaqtjVH2hT{#DcV~KI zkw@0N%21t#IninEa|8EJx+~Cnu|w!#X)8+LyDr1dMUnCu_X+ z#a`Y+jRUqxyF}vf&DcXYoGHik_lH^A1Z2NnAkSat{`*OM=H5hkuuT9?@=Sa2G)P{m zO#MS*ygSygl|do?80JoGnZ7;bqk()D9jVdnl`gt9=6)t;W8k=Q&8=CUFy|SiYrPlS zmJs7)7z^V@E6ggl4Zt|JKlO4CEqbf&^1unbt`jd>I#PK^p3wYXm;;U-c5<}55tzm)ai=puJ}9+#%=0N&5ZA*1n>S= z7lGc~gZe9rn-gR5fw(f)A;?%|u&$+%mc%*VKlfGT=St~Ujt9T7( z+^A<&UTcDaCd9>2`);2cpmd=|>#R%UV*hHXltj{xdlhw=Mpsk3sI|P+hJCOm_vCtO zKN#|?^Pj88rmy|5=_@sgo9&S6a>#AuJyL(x8hMUbM`tAgt=}z?;zs~_uS&qxrSs*b zE`cc4B%sRYNNIV2-t?LAxa4OhzjP$VnHc?gwfH_h_r@<`+m;*u)HEb_-oS(Bp3xB$ zzjwz!5945zveqmv#us0<{>h{7v*W!wmvi>fcj=4q&v@mxgAZm>TeTu+n*ML%D4J~e zSI<+UZ<0gJ+l%xap4>)X*q54Nuc$9~*HAy?NGSSIKf&$RYo(P7pT!mW>MpyYJS9%; z#_=R1+esym{GciOk`VQKhf=A~4>kBR2X0@bBvvQaWng02&O8TpjYuMw6AJh&;=9xD`$kvg=na0p0d*VPjFehxKdgGivre*8q4UFx zLwt62m!&D|ru$2%tI+6>d}k1VjREZarf!uZh#gR7QcpE|wXC`{5bcPu56@mA``jZ} zmpr4EJyPV=Wcqhg2jG6I(Xs~l)cNH3x;G6K{jGWD4otxQjM^AJlXFQk#x46K!gjl% zCUan`5!q&rZM|Xq<4^sK9v45VKXjr$#UpAjxJ^}@s`9;~?oh9bGxQHvcp+_j62eE# z*0<{AkA|NZ!%w~SWz)hDTss+$QjGMUiOo*`orJ-2DwHq2)ER!8gfA0sDV1W$Ww=Xk zjuuChB68~YpQVOC!vdw7fj?|@^v|uaPMK`yhh009aH7{DrOkK7b`5$ryp@bfRKC_`HN zqhpIC$ke;Cf1y8o`7Q+6=w*mo0QCGFha2vc2L=Sfq?FpoSJugEp968afSl`ZOQr4j zAT$r7#&!QBIi9%Yj%|rK>^NLrGxUc^HR=?F+lbl3TQ1u4uh#u{P16cDbWCKd4(-Lm zGB;G2!M*omt=T_aJ&{BmqW{e|s@MFY_B3-w?-$h7S!AbtT#ng=-kC}r8|v})X_YM_W|23+-#5SR z3aKIIYXhIl;^y;Zjemkr$e2|5Wg+YQWRIVp={9z^__Em>@mbs_g(;eyKRIi2O~%^q z+feJED>CW#{diBNS@C?%(f&WZuRBw|sRvm*|409}UaF50_rVuuxgQ3lN{5SwFsFhJr{7mY1(I0_(GQZ%6{8$)( zmmQLDEO@JY%bD}(rb!qemdcMa1F^6k*ZY#>k;j2pS&MomDS`6dsvs<^O%2S>-tr-J z4=Rj!&NL?~#X1COZIa-)EJ6CahQhBue`dg9nVd@AgE@5|TdbE2eZ#Tak>7Ls7MT-E z{a8bTw}I3~O2QfOPGmRmA^s{E?bc~DYW8ENd`U*a+a)-~ z8R&!q$uMk|YG%~Zjk*_q>IDA!XFR42rRGfqHL`vjmaUdVV>o}8eJiY`=bKP;rAEz+ zRrREv{f}4tT}(!w60JTaA%ka&SL||8iM3!XKQr)5gh+eG`8A`V{*t zmMeY`A00zY=`-tPd}=f{W^!GrK$g{r!BM_1d#WFn^S=|bpim!guvVTU4k8&sZy9(=CzySA4f+os?V@3_+MgJkmn>f%gFLe?w`x$zM_@vM_@$-!B6 z3TKYv#WQDkl=SBRV-Q6TQ^Qm_<^a7c7V?ZrTp^oIqHa?*zvsGKX;Q(OmuKDX;N7yJ zj$TZq%!{fCxrM#n>kp`X^jE2T#GG#T7kU@IIV0A0&%J7kd}L0^*UBw>bI0SF5D-cbI2b_N0xmO zmbovKy$7VBo)7)&?=F=;JW}BqnS{n=S@P@4`Peg$`?lQ%nZI`)Zm!_@Q@&N2ZJmqv zTj>9Jmbi(ryqC!QaPZUI#Sd=8s@f3W>%v< zTkm8nU6CRCFt@q4hMGv@+@K=i}L%E_=| z{Nmc=XLUura0eD~|Cf!dkc&TW#7?doReCAscUglVu9fWj($HuHs&L)3)lK=VV+JDl zZ$F>8Ebr7@j6$9phs-X>(0OS%Tbbu!`*ZSLWGekQc&?h9mCKd+==qzTM3!f%Av_Pg zeo#kr);a0ZYA#NHrS{i=3vxpfddPmHX6)rlQVvQ%$Q$<02Vax*W0G<98GR@w-jYs? z{Z{6y-FM%SJ$i7@GWXu^aYwdNC*ZT5y1x6a$sT=(E7?h{d+HUVFoOMW`m1Ia$wjq- z5mAFV%+y>tgZ*Te4Em(*T`mLXx#Lq@G8Sx(mtksRBNwK?%At`=vZV&^{S+*ISBm%* z&e)#wU%cY~i*sQ{C&i9&Zp-ueeY^Qe&iOJF|0E}Ub*7SD`3}}HRtvKelw~cB!kTC4 z)tipWgZhR4(dK=SK3crIYUlROPzQyROQV*{e~;^XJ9L*2>OpndFsI zFLZxHW%2u^|2gyfUa6%xzDvhG{>-dN)fBh*G>qfA?a`m|R!}On33%R~_$cEK&qrmh zH`~3EQRC;KKflkChEL_@+H=vG&#rRLeOc*S3hem2x=t>azl>6dwdSnz?G3rjJQ?~= z)WNg6Du??e;q_DMqTD(!&v}u*ex4eq7f;F;3ed`^VZ^h3(iBV`!Mn6J8gQpx*PjtBf5f2wyWr}W1$o-ypd zAWL~wUWBJL=?6A;t}?Pb4_j(+Z*TThG_yA%o9k&qW+>{)Yv9TC^~Yw)CgT+t%e7L{ zPkB5t1Fg9}Q@f+$)^Raj@#l21YNqU4m4=60JDJs0%%W0phwC0m)s&7!^P%PXqWC6N zgXUos*DF0j z2Zg+wHaH)Yb!xh!(|z7YuTIJB^=@>-ibdu9ae^w6=586 zgKAG zDNFv64{noZaG4&6ZFA*mBj#80=p~xBPG&R;Lr@p?$A)K1!>iPpG^F=j%bl`>Jwu0# zMEo9kQtsO7hApg3zGXa>cUeb2@lM9X;csO7d?(Cao{abVBc(m(XlnyqeqLwNT)+EuIjZt|c3)XVpSj^Utoi-@OUspZhl-HS9ChXd zsbuZX!{&zEOK-O+CA~Ld6W7+YGL_KFtKr0T$M6&->2)T2x&D61OX<`w19@D}-*2gu z@Z1=~{J&J1D!1Iy(4Twe((LYvc62IcGq0;vtA(;JVLnzdf7V6RQX(tO!|3Ko&=*ul zPu(2UZOJq00Wnv9r67QHhe^*fvXP##ZO#2qc1Vst$=ZdVuYYcbEM`5uhVM~fWVY09 zh{fJp^mMjaDIdg8QzeRC6-zT^>Vgocek8!|<$Wx6XG#xAZ^rI+u<<wmm`6(?KZu+{#E*M%wSB~l+e3pTM=$C4ly@xE5CE{VBCy; zC@ZCMxYnPtFJ7di?>aH7iP|S#%-F}*TX-+#O;g}2h8~j@{{QKv>`NrgH6^e&zF1-t> zqt$SfK0T`pPQ2gkmQB<*cvz0J+IgYN3&#ugd`qRscQ0?En6jq^FFUo^I zV{&QSb;YdGMnrO5I!ddo-Le{LuD@U1q7;^7B8KZtFEf<>7_02Bor<&V*+-hySGhZSK8|Qt!lEL^Fo!!_}3?DRXeA z7vtILg}myYf`zR0tiPAaJ-qvx4dBllQYiCwFsJC6ggJ3Ja&-MTtl+zur(+IT5{Wa1 zsT;6`dX>hZxY;)m$NV#;39xS zZt`w5Z=$HkzxF$rgnvp0D3e)JcgG;WbCY%aW zD(a@ejPcw!d6qKm|bZHRc?{e0;a<%Nd*B?>L6DAyAFU#29?)g0)x^DZWJNuRoW+vd^p%*f0g&XQ- z(R=ZDOJ(8#XDnDlUtj|>WlMoGdU_|JWmb&RyN4_F)&JCuU)j2?e)RNQ;##QzJ~l${ z9b1Mf%!{fgCF#>Hm;a~t<+s9GA3W_i<}$Wl%m?djyo*qqbzhA;E%op1@^FCfrt#xy z`txTtU>ny)haM|;0#*ZDZ=Zis`I(Z5MO+WMP@oj#E=2<4*=gM>B{@DFmVDp4^qi|K zeYFsuxL4=CaaVemEg&9(nzy~jDXvxLqY?M&J@1~%=Q(qUnM^{%Aq|z3VRO(xorF7E zzsYY$ld;*9wceEL@)PsxX8gA^yX)mQ5epUH@z>`2rS1lCyX>=d%G)h1n}<-hjhf*X z@?;dTx2wXaBbS*if3Nbxhlla-8^2EaJoUlh9O_xQ@0C@YyfFI*y^Om*lX1lI{WXI9 z^Zl)r+)gf-5<;)fN)wck&0PR~w=&b^%H^4^NTYVd|L*5C@B8XsjnBnV#(CG91^U6h zW$3^-8*E&xAOCkbO!Ur9O@}jP3Jo&xL1ZIdq3iJLQE5tKv~U_pY=}r%vg8;%V!) zRJt7`&w4cPl&uq$;7u-g!#r(Hy=}^H>d#Dm|7Txx_i;1*DbrlUG0sa%R_M)Um!Uu7 zJWg4wzjve@6ZyWMN>9T(==8QaD+Z1fjRi*UU=f0so=^_m`eIL!BY@Bw4}iIp1= z#`XRJL%nvuYMfvUi$Y!~{YGWtJJ+fzWy(E=rD)FmR(fT(k~uUTv-_})uCrP>vuz=A z8Qa32DawYF1sMA8zMbl%G(0p94ORU7V~yh3d@gpGF%Qh{s4VE0f+s`xex0eO>|*_~ znfqa~Qc0Q2nd)}tY-`56m$rSwk*%Q~c+baD8yJL|#0{RBdRgvP`Qvb<1jO7ck|i;pxrb8&7VB5mKMpXq-=F&Gy*n0RANO9K`#AmndU?p_nfb0m4}DPN28`$0q;*66 zz=o?4%osX-{jQv7mx+~J@7aArDIC5OCHzc9J*{$~VLDp#&WdigNm-w`5IH<=PqXLm zYqJ0a!};z+`YX5Q%|ilXTQSW-xjJVKy7GK@w4tB!p=UC#^Shl1HCEdEA6IV~7ghUx z533j;h$v!UE27vf%FJ1ciDF>WoilVdC?+C`g&l~kSP1IOIcHE&LB;OG?!eAx-QWM4 zAJ6^jeE7_b%${rZwfEX7jAAiyB72S3`trh;=zf^`>S%c=aO%T}#X4-MhTei&*Oa%^Qj^ zFP%yE&Dh31W$e^_y3K>jq0jR?L%&e>;J`g%x_po0b9IY;oJ8S&dGBPhF5B=BVtDq3 zDW~iFtF~b_zq7i<19eAdZonVLZPmh7x~?Br;X7aBAlKDp|H*+Kf1cv~LQXPc-_6%Q zoqR@ieVvIs#`etcJ@TIE3*gSX>}l9C`FgK;XvCaw+9yfAVLS&bm@8B(on)s~vv8j| z=fQ+w@;mkok9c>7Z|^O)v5&_w?tR#;w2*6zqBq&z6#P5gOny(U;zZ`vB5Qql|3ejY zUgTk}e* z2rKod-!f#aRA-kzj=51c)#|P^!p;{bThiT$UBJn%TufCnb+}+ z)K%DRMj3ljU6cH-_L)v)YZAX3LO~3(v*g}*LQMIkIxNEzR3eWE=F^{ zro*zU^3{`>*lf-F&i{y<(sKc}F+X&*TqhSkn2W~$#rf%6dCrIol<~XJuXV6|dSW_G z5eGOzzuk&DNf^uT>52NIPAjy?ww*RXKRCS z_!9M4zI~FEUjy-UToPJLI4>Q`4@6iob%s0dlN5=8P`5}#$MDtCtIq*AMh<*EX_*vE zUgaa=O)n0vmrhnvhd(U|?)3|$zI}b+YERw!l)AFlSU&_@Cg*M3Yx%tBjRF5ZKh1i6 zvvh&;Hsfd&=i2n6*WXYMbH-VYt7^5q6Y=c16GV?(2*^0xM~afkiIoBVV+!-3e_ zI{MOn3zpNl(>C!&3KTX@@*FW7Qw+!}kVnYPe1lOsk@!XP9`gL_LDVxzg2uX;JjW`K zco%gDzt)y}-t|Z3xJ0CzeUy%IN5Cg90juXfk#1_KQ$qfj&-6-(o=*_TWvy%ZLJA+| ziXW@V*&g>niazf|uYn{Sx>rM9IN1r)B9oEVqLrL8!wsg?;%;C1L;if)8~ZqC{l9r* z#D(fN}oQGf;Q))k;({&hrM2(anikf<(S%T4s0M;^<6_l8^cT5ogUN$Zc*x!>J@Gw=`?>SS$jUwL2-=ziQP)Q{JmCgB zOhnbhw(_w(uAD(6qF0Yb@`E4FsM?!=PoL|`QR5sjb|I+SK7$p1s8;9g?)$>Mu zz4f~I-Z>~_oM%UV)Gcp(3`OsW6T1J@^{%{tXvVob_=;}qz$36?oFlL7*PV;n`oHgc z?d2xXbTw{%s?$Ce*Fkw8qytdKZ>6L+6e7=0Rz0Qz1yBA-x zv5ukc?{n%KF;@&tdndo)+^Wy8G#IQuFFzh00|oPj@0LUIlOa)f#TwgZ(MEadg)ppr zmWuH^mdI{R)M&(7;>pGgd2dI5diIhV(++6rk*PD*dePT-d{eoy=S&&L>|oi)kF?b7EwJ9=-$AyT1`$2K2}HG8V_ zH$2;H*WC|ah{KGtFs4?Cd%*!za?bnJzFx_O_ocYW{2bx;M7Q9^KJ;Up$1D+bLA}=F z6whbkqD{Ik{g+}G&tzHK`ML$E^HIVW_TT5PYx5@^dl=iz>XEv{hw-T3^MqYpbSlm) z`tkJ_j2r3dEa2V)bA|1WpYpJ%SS+yR9eV1P9Ni)oL}UJ*cE=%zbaZWKrTyi!c$9fO_Msw&&SQ6w>Y(p8a0vkE}DXCf%GA* z{ZCr4Vj{YaO2o(Q?tOiGkXMI2+jvE)aU?z(zAtQqG;L1nt2 zdn?Fw<$LeGQDp>Z&ZA;iPo*=kth@Av&`c@o-?w$LfvKReX&5Uv63G-Bb77 zh5M{L!@J%$)y-=ZhXp*h*PQfp#>8Fvu;yR&;;Gz-dJi8)@$(HXmnZwhP@|i@vv5S7 zLSElQVyb$X`LcQ&{XrI`Vo-3de6T188j;%d%NEI_t^BaCf_mM->2kY3YJji?Hs2B~ z7tV3VlLG3v&T*6r^<7a;PVa|Tqhz_S6HGam4UFzDkD<5M%L?jT)o3T*dpsE*ha^DK z){_^1pMcQ~xu3q`y0mT~cL1qzVf-dnn%3VAsTqlA($P_}do~8O4dRd*_E^drU=LgF zw*24xZ20w{?$MQKY-gM+a!pIV@7#;Jet|B5pHVqud*u5PU33L!Kz!b06{Sm?ngBgMZ_Jsb`$S!bt$g-t-e0$k zI&;fer`0;$O6Rm94jq{*3MU)r(wD@c8)JL%+ecZQ&V7`z{QcfHB6NWP4L}?~@^h;Hv2Qi9}_bcTa)DS!WhPq_)Gv!To-q?GKIu&_o z@;O5f_;ZJ`z+Elx?dOVm+#PUeHB)YD?Sx_6*Ql8@To(6F$FOqh?Vs!}k1d^y`u(ZV zRKKx&?#%>b)n*-%{ZyJ!JPrdiiHH|ANu4D-Y9c41+4eEg?y+N0yB@U^X783R)|`aB z5!K`Tlz#N-eYm&5IA`>1S>ma;24=c0CftAz%DX*0(hi!4ixl_!&lLKYzRZj3|#{KYRu=Q+`RK_t|4V@6%s)2c$C!?!V`AhuVCKH0Xsr0w%{Hz;1yQx@a1f z>#E1uP4BSo)L?Rc80YWL+m{T@%z@b>V$uKFm5j_=jY0!*nGXEYy=gI*T4Jobww}@{ zjnd%6IA1usNtZ$lM$H%&FPf{nAtzx!pSxW3)v3o&1BuVV^wGMVtd-933@`lAQ`eZh zj(FA;vT;k@j}7G7GgthJt*>jml`-cT?qd8yZbQw*h7M^68CNOqJjioCn%|2H6|!|u z4B~hvzWF4}j+GI3b%}V__(HkJBn0D($#=EdE!X3YKoj!YmziynkKLw*F!{O}w##Kl zFHb}~PQ)GEeEGGb8|K{U-5Qf;2;#gf6@Xm78WuvAbMQmQwv5 zH0p9#_ntcrOaF`W=FTNU24vFvA{BvKT9g!e&q3MiR7Au*)qQoQ-vYn0p=pP7RgA$} z#(8CGj&9l)@*)_|Z@;5;t~SY-!FaZ*^kI@WDdfhAjH4fWPs`p|o5%WAoJEp;i0OK?$3&av^r zPu9=lYt5JKoZJ!Kl0NdQljNZ}F5KgzXHAx$Y@>EW>sblty3$^bY(ftR@@(w}^^{8* zPC+jF#FA%*?CTxSzJmLwPcKMQ_#AgR3GpS%r0?^mVHLGm_KEAI0aw_AAF5v0J)s}{ zUpsonG0yAzbT6rSdp5Z>e1280&q_&y7i}34;&FhGDVj#kz1` zNxt0eek7W|OvS9}>*O76LSfdOoWt+S`@nN~IY{h-IFO}3Pd@@PSf8>OOcL|KUwcPFE47krt#Mtqzc>mjv?OM-)j9hfjsUcJ6~*$&faEam1OriMV20AC&+A>d0`4SH!{#-w7m29;!7RBrn z<$GCj{2%H|eV})w;aqu;lAe+Sh|l~?mS1EC5vNIk*OV}MQm!8!J5!_Vrk9+z$s5hx zlJFyMs%&TDi8j=B3qLbLPJHc#*FqwuMfa8K4t9aPS0X;&ZzT^2a73Un_ho9-mao*G zfq(6ivA)J7>BTF08T2J*{&lYOyzLC~{ZqIHfi%`***1 zAGytgNYo@I^CWPlJiJ9Hb_^lM$Ys22niWLzqfSF)&Z!h$tPs8xJjntN;} zN_F(k*s)7G@oolm@3{9Ak}OTic0{|#RJi$$lKS8Bz)~N2ntUym)(wfl4SIt9-}79T ze)Qg+YD6;51qq_gr-cevnD=gZCFxpH)7yt}_IqZdd;gbvmaIKo1T&q0bn2C|PkjGX zzQp{xj_0;z%ggd&?ru(CY&#|%kn5) zWlBaX9noYP{Vo^HkQ&UR*9-f&8}<80BL;e-AJ2A5%sQz_|9GrDUwxj^fqwKC0@QG1 zoX?9Hx~yXA-Z9QcYxdD?oF9y3jB{j2ZQV3}RvlV$-Z$!s{L~{IHF)>^j4zOFz0=^$ zGwgVKh1~fr=kUxAXIIaXhuCv3oM-q}e}B1jI4y8e=>n{t0Wsahr9JL zJgbpL-Q)mbkltS8Yy`EIcXMCxzggQ2&&IM3wMCCHhq%WX$eaJgU^nBeno&!BRD+&D zA2~nm^+VcCub9R>&tH7rNpra4rsLjdi?ffVp447@zk&0nMz^HkWFKVSPC~`h^U~L^ zUc^X~(8WrY+V`PmphFU3%Jxf@dhS?Ey|VC%4brO1E@+aM3_~~SZ}fG>`uFrepBo?@ zz37D77UWU9QA%;&T%eyt&fDWQQs+V+v|-;=@H<%21}EUqfa-JD%-`E}-&Uyci8D$Y z9Av*XLSjXm&ee5m~kHR ze3abu5AS)N;hL9w$g_#%yd24zp|81Y6Pbiu)@*eG>dUUr5)s7vuA=;>bby#a8PDpD zFHa<=qtrg}e@?=?7R#hHR^&)RTEcy<0WEm(Aqg1N`Rv+?ECY5Dge z>WAN_*VU1E@~0*t^#9>`K4&i%KH|N~IP1Gu$ZO}PQ!|Y-CT9b=!E9ojjPvQ`uOJveNU?g=Efom@C`{9+4_D==H(c%)L&Y^zmCFnle}DYA%xuePJE;A67O`Oo)iXeEMYl-~9aBafjSk}L4{96oP|DR79dphBcn6x||j^>;Z3>C$mC*y(6 zy>fvW)8HdSR@v-jKOm~&KWba#Jkj@b4jJ=#};wg!9a{Wn@r95z2XILKis>?`}@>kv1*JD=KkjAI#?sVFY%%;TOvkHJ|p^> zQe$~?B4(YwBPQ3N*1`Tn%x&{kEO_q%i!9>IXX;BeBbci%QaAWc3(29kGt@TZUJlW@Ft8omT}5Up>pFYLPMZH5tZ1>^SLXZoQ|BFy>o-bel@;{3S>--ENo)Hr39c>=OHXW3*|q^x6{088GX z5#Aq^gL@_5*F@reVTQs4=8XV8UoB}UoL(D?!^Bu#)zK5ORz{)W8}8zjmnw7T)04D) zDpE%|DWlt~@vUhJMx>i6fk2BwXtfd`tlzu48Swf4o+V|_d(XtJ>Uw7+@ZU;OO zc{TwrYB-8(W84u#yfl2;7Ey1oD~9sUe*5#0*euf-hqd(k{?kwzX61~Y{QVX}N2yN} zR~$89A7@oh`rg0?G4JSQIUq^6!hP6*`qlIE@HP3`2Tem@dYioBgC8{G$aiu(^8dKI z*7S7vvVr+|@hs&4?_}zAbB1#Ip>n@YZrjW9_|E|v{>O`mrP zH;CmtwIe^LNs-W*UMSm`XZ*Hm1icw?NZ~!}`K(xI`!yQJjJYEdN8jot5!mg)9jJ#( zgpE@|5HT_ZQqyF*Tu6tone|vpT|kfrGh5T*t;_c4K1yuS&v+> za3$-5R&At~)M9)!I|;kCl?ZM*QAj&oz20~`ce}Qt0X-c`eNg7!GCo!y|Bo^bM_Hz zn0rStC!BjbOW2f=fWA#xGn+3Lt{;v^oEh`8m@iDVjz=BVBY6CrFLsiBFRA{Q0F2?HPxLya!W4-Uud}V=$)yYs;FC1^IC#j9JHSY;sPR zXhS~}uN2}`yM@_9)wubayOT%e3j50faA08~+L{g&ZWQ?h<%-#XGgz>V;rY1^4FG-O)rOtI>Qj{kzRy*ev9Z zSP*kyQsx1r!82-D)*zp7OH<*)C*~xc$$eqx+uwL{Tv=z|+9@~_i*sR)y)#o3zR+`{J3qS%DOZG#w%iRdNW=QcFNG)F z8D~@W_Rs$b|3=2qj4~t2A>EZHmme9VgKRh@$IaKqj^4Mc)$dBTVkc*!- z{euTe4#z?FaIv^*lpEe|i-YOe`qI$mE^w|*?fQNW(p@v^#^$viN}d6Mw2KWF1Shtmq;g~ivo56$O z<2kx=yAYfdkI}3f3j;*KJd=8g#J7(exF+m<6N{njJ>OKk74))WQOG(i-B%B}{;^n2 z{#IzD2_8nqV!9z`h|Sty%noYyFy==qyHcki78N|(XQct;55~fsxqapbCCV&faod_d zkG6#y@jZtoJQH7rq86f|w*K!I@yg4gpe!d@r12Uy1GslHm$pgz__b zeDjsCvVz`lrq%HcspCHFi(kR0ETea`{y9x=4>dj0mmUFt`@0=-+x?ARn6 zWB*m`G)Nd;NIs(_YsgdHLd0|G`mo;XnKxhP#@BRW4*$|{lMqR7pWmD__7aMPU%%q8 zlX>av@Jm8h`e24?xz}L*T1Xxj`#+w^r{;P%b2kQ;dH+ry-v}G_#b7Pxt*ytmgFbne z?Z|=I^RE~DDr4}FF+VK<>v*5H;@KX4c|1ZJ#!^>-+(=>)MrUI%nYds07;eFctCR;}vU12jiz>DsE)IP;MVa?})dY>t~J- z%vPo0dB-&5#zhHnV}O?O*m;xt?`e3EyL&-b6ti&)$T& zqQ}QH;l>1N_B7;fMf(S!*2{dPKOGNiB*(YDxrO7MlKv#i+UTvnY8lINgrH zN!H|}rq{!1#xRp-#-@IA+}s`wQAy4~)6Fw1`T@{Z=!&`Uu-)SjjG?=T?&aq>z(A$F;*{lKcC5q!eGW`iZH94Y3<_K%Z zF&6b%19#XgXk3Wt@(j0Ls}&^PcSXxsTaLIR6eh>w{!DVJU49CECd44ml05bw4Umu> zjiS2LbC}i+mOZ1+ zd7~a@>fa+43F(hK@%v8<4k?x?Yg}`u_C+ivY!4SN4RS@(PO*6Rqpjrd$q7kzv6%gH zp48`+BTm$ze(b~JQfZ7c^1Cyy6_-d$LcGvYibU+Km4fz8I4*Xn9_P7Nj%gP^C4W-n zjNYbPV`<5HBb@!9VUEJ}llp(SL5rjRls~p5;xTjD-`9@9627Z$tScH0n=ed0nv6Tl z6;kq6p-m0)agL`Vr&1^UDu{zwNGfWsc_`E+{$PC;BoB^2F+h1Qp+gX-%2Ax_2A<~rm#?Fcz}%d}+_ih?eBp5@b#aKdf4j6* zXu6d({s!V9TS|m=tkW(qCtPb-DMZeT!MYDA*fXdWGQFeGiTG*%31%>0JV&Kbb7o&x z?quuN36cS3s$V9Csi>y18u{x|7|259HBl&t3Ckv#0riwjBdW)F<>eDvldHk}J~5B=ex#{eM~$b< zpSQ=vDLjkRsBDyq4X3{--`En{(WD}1&{V;aweTF~7ytY3KkR`yR(V!C_E<0m98QH#OqFK98x^$E zh>MOIt*Akbi)7v>_S2p#Hy9>Dx1YV?Jv-qt@7@-y-)`m27{d{>>S)tTR5;2SBR;dX zB0q}yLRBgFu$1!v5G~{AJzy`p;sa#TI(bD43J& zb_va#MQBz)Oi#z%!j5N^gI(RwqdR%( zr;8P5`nq63l^Xr89u`tJQ=_|2^*D!hFV`wc)o8<59j-9b#!%m>Y7%k3aO>k%)75bQ zk%B8DGnHpKv-4)0ty>1dmV*>V9s_95?eSsM(DC30miJ&$jK5WO^d@l z-fJ!svIJXt6zpSdzjkrHa1iuIVw@X})(NAmVqm<5^Jv8*L6I4Q)eDlbeD#>rOHBOPUqIT7?RG>$>}788^{3c%UeC}gUQa4#ePHms*_l^LV#YXBxu z(=+L^5h9laLaYkIpX0S~b4U=RV0zOUeGxtl4}$L{YQu?oc(6GTRXu{x)ub&#>QS+? zC=hkpbyqy0o{SlHX#a2CX#4K8c3F`MdW`d_PL|qYO%O~R*k8LkY2NLoMkw{NKFu&u z9;TMq()Enz%N5EKybs&|AfJBmNoB_doF{K%y*KEy(#L^%WBoZBeco6wFpIgh%JpFj&BvVM@86eH?_jQZ)2yoD?qB=3bS36goXG5tODu z81g-WGuG3>yodBfp|*U-ES=z2p@Qwh5NfI)7w!^g`%|bwucob0uZfC2jX~%=AqyMw zsfAeMKW#oiapH6`94e~oF}}|)*FN0ikKBCL$?XO0;4gldJCJAlL51c9J=9i~Q6u+B zU7Mw6*(2Cdr*7a;#nZp!@v*Kru2*0AIe;42HmUe{WT3LVA_m7<8@T`QR;u<#aStm6 z*E%j#zGS^)zbP4Z54S3>oQ;56*JMaFPAKP{h(K3zPP%$LRhsvq&Jwu@`=-|w{?v)W z1M(%@I=2#xenuf{T@tnx_7(EvXsAn)s2x2*7){Ocmz+JR_f8N_{iP-k>-)lD2jR!V zaO9Hz(dUA_kToq74;#iqJ8+m_r%}VKSuA|NSqmOL=v&P_Sfka0gpnmdFzy(IKLOUl z$S*;#+7SU`S8KtPJ3-ki=r3D;xNw8{vn4g@HV!-{+)=5p{wX!0i^x~{5di0wDyYxy zK~5<#SRZOc>U${M`*J_yUv)ov%s#J8_V%KN5cf34kJE0ac0^?ZV*U=bwS885!eCAc zEFbOF91f!v8Dl1yF%7;a8@~p`><&>f}kIIMX;LdhdZ2&CH>$$nY-RT zKm4)!-EjSKg?M5BH)$9w>x@-3bMk3@EwGc-tweNa_!+Kf@F(LywgtY z(@1X|TO5p|&$nvthxuTACf{fKW?H8NUl^1HV)+pxq5VK#yrZwgqOJPewf4rUbbpvC zmmsz+HI1YF@!`}-Y-r$*`qW$3&kj@A)a7?n&%IilhY5vRDaHdf#BFTv4$=-$xg$?6 z761C^X*E6FF(!(b`Kx}~Z@wzD-9YUjvpL$#ut+q%&HT`3wYJ&daHP)UyzapLP@TUhz)OCbl&adz1yCS(8LO53>|Y zJF2MV%y~eDAP&8&LR!xR^z7y+{--Or@lHH)?na3*aluH)Va#*pi7!3}qn(o8$M2Sl z+f?)hd>etb_I-`~ zbmE|#5OmnXS~GgP7%WpOl3Iu6CU)XU_aH1JUfduiQyG#^FKNa@IG%qLCHYlW%Qe`Eg}+3T&=jJjC4 zTHaZ2>xlyQOfPUo|F_6oyqL#Yk$j2mhP}l@%z-9iA~H9O5rwNku(wLYJPTj(DEIhs zwyjvp7Gv=8Q4?vx$q4MMh{AxtT+t~w6t!MPpw=U6p|+YjQRPxC&X4Y|(zZV70U?`sT~ZsZ;|6zJ zXMXPfx~+xW${qUaWKc?GsRHTPS`SsfPMVJZ5Y?D>mnOyBZgd*3<5bcl!s!yFolAPWU1Q z-wj4N`MYn6^(C)oA@~o6oj$LHbaZGK*15&uwXVD5!5t!vO&qMJ+e(wDW!L*7XS$yq zq%*9;?V9u1eUfBU6^SGMukUOtb+?^SMzq=wZ(5yhIS`dVK^iv-c z)f*rE{i)d;0(+ZW#Hs?Rhw6{6#gi4b6F7UE?OZL+{ktsC*1zuoFW!SQ)byj@?~W#> z%p3FGY1Gl~s6#!nJ;xSmJ&236;q1Ps*(dFh!bq&FX8t_eEg9zCZsP5SD!ga?;C?wtyv6)*;yGvcd$UC)b=eE1k+VG}PkhWh z-?B>y@OxP-F33^gnF~3)Q5E76BhIg1(Su3zR1_lBh>ecN?}R_1_ct{)KjUE@VkF%? z5sc5fIqPcCTKdHEd`=aIiOqXUug6epy+<65o*F3)x)=_xJFzIpb&)RFMPjmjEcB9t zq(Ii*4~czm_~9enYZHmJ#I44kWI1#`4DTmKVoK|$qE+u;Shk5ksA1ud57Pp1sa7~1 zBsPXsiXR%X4td#b9!hHlV(3age6vv~Of~Tcz2Q_X&h@TDY3)CHV8t?Gp{;6buSo9j zLsdc@;-Dmc9y?WFY9nVH$_R|#3_uGrN)`p`ZgmuU=h4@hs ziuboT-_bdWx#Ov^Fqrkm@;GsFO*NXVrrx!AmYAmGc_xp-z-W`$=`S_0$+2rawot6w zT7`|z6L4zAIWagr90QxGS-_ePgJD!y*1QZL^V(}@HA9dJ{q*y4_} z4S9dOnFyzo?$j7&e5cHTT1Bs-FFsi5-9~Z2ioOAU)#Kb^#0>4te;&B9f_l#F-)a`0 zbH~xvoL>~*(ClByys?qkPT!5%&`K3fYExkU!9+B_8;NjY7m-mtMSo&|Q+QXN-e50Y zV{dBqI2kSC)#7YbFsfMB4X!y)Y|v2+i`_}k*IzBVIr8sqlmvtBd&OGxm+v*3{L$nS z;)1sHS^YzA^oe)GZT`$5>Ev^)t`c((tMIN?0=_uZktRG>VIlKI!n_93HrBUwG;ugN zrjew7I|#RrbC0Wuv9uy85LT0jxlOJmji#nw4VNgytKW(ByK}BIFampY_rzAz9B?xX zgXQ#c@nA<^7`LSM{)*k=^H?9W-K=Jx;2_GcywFa|-s9Ic#fc3b*cGILs$h$tz2Zji zKKd^CT4LjHcVy8^qlb|*hLdAv*Tfg9?9Vm_md8<>wtAdP@&;=s8hT=IZYnyhx}VhxLvWG&kC&HTyy>dSb-`)h)!Rcah}(()Y?}uxQJ?cR!xk<`_q@ zFf5eXLgfBgCyH|x1S5Sa`;p*mu`6?|Qk#S!PFuuVu_~XK zvA-qnSu^gOIy@77oK%QkNj`MdU-8OX6-JuTH@1O+6rfh&M@T%{4l|aV3xn__D-PNB zjHG^!fmky&7PoS0N%o`s5y`oWndJ*{KRw{$S4JY+;<_kAlV3L{9QFOqiDT(sc6nYX z_RTyc&am^r#rwfHa(=&fj{CwJ^VNu|3=eSbbxF)j?d-FR=MfdIuYu6EhZ_#= zU|sG1M)0{qk0I+I^u5~&c4mHPFw+-x1Gd@Re#jSNWwV{G@U6>P zNNJj2H{T7aWvo+I-4Jek_C<5i7i-mnY_f*OVv2qBIKK$_t@+j56NlJGcbd3bv*o2b zsyHV)*=LVtCUf=bdD8gabZLr2krl`|UZHGOLsD8A08 zcV7+aYMq!X3a80Qp!UM+E33sP3)T2rnS?$id&SD*#Hpr|_de`|cxR>x*UoXL&-J!g zHC%;$z>w>YJ3X96N?1Q?ovnct)M4`Z9GP3YDj&b`@`3e-p2=@ zhzol7BGQYwV*g1|``Qct7DOR1<$!qVmnU8ypifG0f%tNy7w{wuO&)1PeJjpW977TD zv{V#Bys`gZFv{NO#A{j93;o0S=$2h#%iSKRHBXHP{nJImg>D#)hCvlFO?&-1*y<}Wd3SpW)J$79aCXJYOTU;H~3ixw3n z;$g8pYyHMd~w-*Pk6izL&Sw*an5@$SjUHA zYOB*?dlPS5C4N2f)Oqn#11~Hc6^wBSxO$tD%@GIO}kE_k1+QK8qts5?+xedKdQ&sY==tYX5fh-d7KYhbkayq z-7$L*IjF{d8j*QJWSrmZ%F@2u%UP?VjKOP(YhNi6 zmp2W94`&JUOUlF#zXGu$hP~m}YvSMmJj3LQ#ecXaM(+1V-VxRn^GiibH(wO^#zNU~ zhxm9QHFLDlIB+mqJaE~A`V&#a_cFx!Q66yjh(OfWg`&e$Peg0NU@>BY=;G&vcSA!l za?(MuDY^YG-UP#c{AqFDdQWQasNv#rPwaTY9frAT+^PI1c0J*Wg9XHrHvAH&u604@ zHELX+_(nW=m7YsuR2bf9r`TscJ;aG?m)kE^oclvR&u7)+Y#hJmcp2mTlX1S}wDq{_ zGk1)&CO5#dg=WbCcO;ck!>yZ#cE?5)UNO#f?eA#EyG7zC>y5Q0b;Ps(%{3V3+`?93 zKDi-Xh+C%2A0T$Vq{itP$!MEBQB)?Y=-bR1<9d+zVO0=*bfq@SpV^{$vmlhOOvIc0 z%fyK1ft=G3n^}@4_PawbhDdsvoZ2hCAzt3EI3Bw#3dBX{{Bfa#^Mk%y#TsjTF`RSs zN-)gF-x2Zdb$OL z;$_!0q9wgPTa(9ms_k(xo}6=s*1?=jJQHs(r=QwBa)u5VNj^(BD?FseyWt(_$?F35 zb!zlo(M?KBa0NRTJgzd5O6f6VG0zVPeI_eC$d|YnTRqPHP2z3#*7wAmt^bcBTJJgY z2IIWB+s5N&>{)7@PQkr?R@&!F**h@K7EU{~qgm(oVVpgK&S@`@H`OkdxYMl<+Apj_ z^Ij9TUv4O798hyFBpDM9w-sg9a`(j~)V|(dToFdk6xJK*(c{E+Z-|BGaJT)Xw|MYq zAS^jAzdj^cEIATL&Oid1d(Wf)S0GLtjfYj-0x|BPKSrHnf8BJJm{;zLj!R>aSLP-T z`R#>|#1J?Bu@N2hxjWAuFV3ZlxYFMPABb~Wtm!Up;d?ZzM@~%Cc+pzV3pNdPjc0Lg zTIwv-W)4}y+EjgdnAC(Gf1Nt}A@%V>We&Lp4!a$z^(ogcI4IV$uKUe6hriokbChwO zGMIh0Rl{T3_PHaJac+F=t>zTx$X6L>?+=mMz5^n$`8oMsgO+Oze}}<}bJD%X_i48h zlWFsceaiMSt-#r$&lGa$4PR(C4Pp(izIe1b7CQqw zizj<{W2*`IOrb{Nn6{n>52QZbj&IsYjupII%=4ps*h*+$&SCC-2ARcl4q z3wM+=&Zad2ZD#Iu$34dR;HqUB%QzLzFwT08?X|8QhyyUrWBf;Gr#=hAi0Bl2rsAht zdbd0_u z_q&SOR-W{Wrbph_C1Uy;cbpg)49(p4;?_&9=(v*nmF@$jtK3OBFjs{L%Mb9NKTl)oLvL z5XK&`)wns@y2;+utc}59a~G}sFi&`|j6%EBL$ppx;x=C+ux{iat<6*q6cAf{Sg}aE z>4pbtmWCo|zP?zN>H%qD2)3@9EB-Nc#~#iUw<$k~ohn>#gWTEglZHuU?oQNMj zfuzvRgpxV*eWSh7%WpFge>o6GCLNHL7P><9oBC7Jmx)I%(W9Z&v}$oS$Y`%z!Z>?w z|=*$zKtbz^(+~ajyh_#lH+}Ld@`}iL`^UD#iI|?Pt!hI6JHsKfEJujP2Hj?o=A)< zEfL-IiZr!M1F`2dbwviA*X*HgNi(Meyv=&3S#T==cMIcjaM(-DrkDPB_#h6a^D8xb z`;yZ|Y+u{9RAWoMxEEtNJKwxP(|D{Wf_Fr*_e|9swDLd<`xMiWvo+QR9?O&#|1PZ{SIenB>P9|1$gxpvoNo5I~; z7|1x!JhRAV(*Ww2JtZ#sWWCMr&T5R~4x!!B{WiuT=SK&V*z=yWsbWqp;I50yy4yAt z{2K$36A}EY%0~S*0LjFW7EP+B==UN3y{EC){%EQ=PJhwpL&Tq>S}ImkKWg%$I5-EI zE0zuLgKv2(^~)M4ChYXaB=QyZ`TVwdJ&v^*IU)%eC4j#4B98^6$2d7Y(=v@%jq)8J_$SvpP7T_8Zpm4W~&-gJwWE zQH9kZ>m{M?G(1iULhgtPX+Y{!90&|R3zKKku--GM$>vE8s++Xzy(a?NI#i2u#)$xB z5aZmMaUQXuQgMUlc^%L5j+ktP#ZGtZ7yRE+S%Jss!Q15YT-|FSN%q;G7?)ruCxc;Azo z@xi>NW@HzhANEv7yX?_^s_BN-rXi@EA0xV-<9_RQ`V1BS6WgDkiB#ekKl?dL-N?t- zKpo8P_w%IA9jD;fw?M3We_IN*nvAnY{4r(z52>Q|RP1T$iNgE^l2vPJTkW4%EzZ*C zIm*ARd2Vea|2D3ca?@kxWO4&u*>6+069aT8p;wxVx8f+Vh?sNa#m$XU94w2#<9o!P z?_?^r&kBQ0PzrWk->5i8&7x`K46L?1qPR%E8%OdhmPK4p49^I{-~1%NAwcwUnCY0cahPNU!n6$`N@1*l|4pCL=AB+j9f3)Rx+D4F@P+C(&aokDk0I1?AHM z)*IJ|Eq7Nc8@KVp(9&4+Jla(mwbdKZ&g6v@H&piN=LvI76viq3Dt53JfJG$QUMf`_ zvUbPhaAE}R(~p-IxZ&^NP--RQY2~r5IQ=~sn;(aZUv4^KBIh@z)BcE#n`U4S@1(d} zPLhYsRD`V$!pM&K(#vQEES(#Oa@7N=)N~R8TKS{T_L}l6O9%Q_d!TpcrBdTD({TFu zglcg%b6KS{tL+Ir;-YJfOqG?l+%b?iQu~F+6rG5Rz9nzacV4(6p^FL&WO6%igebg; z8JJz-e!=k!MR&h2n7ObYe6n2el)ZLBc`{Zm->%5LtU~SH^eJ)DDDpk1(Z`+BMut}u z_gn(eu!?&kQ{E^7r2rHW=bxvlty~iqfYjsUAzw08c2EVtyki37PaTx|90D-v|D)z2aHV6CFm+-;9#nNp>a21EI9;=158J-_A4ueeLz` zeI@IYftS+@Cc6wJ$+K?I%LOLyozG*VFK1CJzUfa68GDV6f3=|qbwB#`>`kT06yS)^ zM?bM}x8mtWD`;paL1z2+{V#EmYbzwS5NUATk>orFGbax^;}Zc1GTw6?SL#(k1yKkTR>A(}d= z=t}NgvZegK;Av62Y}A}!OON(O(TH*@qqdr!bons!WsP-=$~O3uE^Ka-tYdU~4lq0O zVRN(LMu)1s>D@8lh`c5mT|%BdyEiae#WRc&44_pS8u3>H&gk?6ckry@?i=G`REB!R z)QOliTM}usd7&Gv27X|tS*np>;6~-B?cX1;*=Y1YH;S7dMz79oGiow-rPE%agFgli+FQ79;DwSNR5m0)&+!Lhxy@Qt4%iDr&C$0qnOYUBiaGZ~ z;S?cSRc�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

kWvFC71ll?Ly?-^}tyowcztLx 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 z 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

~Sqxjt>KDoZ<% zg&u7@aAasFR{J;;gI9TyKW1vu*gYOa;yx zCu#6RO$E+-N6qBpRw!^D_-He)4p876+R~O+-&EkdYLPu(K^}L1G0g9Ln6IcKeLAgw zwA#uCJ)jw0T2C{w;bSLSG^{thn!pYIm^7^ai?hy*3TffKIvgcVY)dI%ALbOHN5MKbPRgZ_-PwNR@upJ;wp^wjE9x^wXLY;6j!&__K29;P8j2 z9OsHtWxu2$hIdd)8mho|E!p(kTjV+Hfo4gaS>QOjzo&abeDBLl;yGH8f0B-u1}htu zfed<6K?lgc)mw`VNWXv-oueqRrL6h3=dg?NnBv+jVp&0n*yI<2ovx;= z_e=%O7KcOGG%W?rM!y7`ZLGlgmF*k0R$YPf?%dW~#X@mzbQnF6_tR0}?0R|~Uqrbg ze{r*p-p=Qcp0NQ>^-a9rDyN2ZX8x%|w6-nk`bS9q<7)6a%nrwHACuI~U!zeI>LX|+NZZmWdzw5qt0!`4 zLW^SLDv=M-yaFj><5R?jxZuv4_tN`oj}WQt2J>#sm@e+4_8WOs>vUiTuje5wi?E%g z&dyLS;p{MP%rDVkFWzNCP##KJvngz)1;eX-{!mky!-g!OzHJRy}Ct8`R!}Ti<11% zbt0s?qAJ`XKK8)SBq_?i9QSAjb^gg~l9fgYa>&zg!@Odts_;4GVY#C7@$XWwcL5fz zcSrJiRi?8vA7$%2aow&Pd)o6JW*?z^`NF~M;GJB&r8D-)>?tgJ)^)r(;18{@sMeJKk(viRqil2P>l?OV`%|AFtk4Su%X%^Ql81P*$rq^` zG+4FrJ?g<7MGrkK*1s$VZ^&;vJaZL$QIbu)tsrdpe2_KydIeMUgJ9psmBmyhBZ39u zvO@sVdX-38_&_*R9cPDL$Kksf3vjqcrOLc)u(^3KHU{Kn`*seZkh_5 zEf+~F;;+X7{acp~pID2N3Y_(aE@dZG{ugJ<4lkwfX&+!rb2OJs!lm7n@3543@4RLa zl1BVn+^8Wx-2UgJd8i`YnG?F#-H;ORm6HaK_^57WQpms6rx#@`( z-P$r+n`gLfO@7O|y;<7C0;sw8!~OjT_N&<=7=H=GltdY;b-Ra-lSARAyO;HzaHHXO z&R=fN_UlOv>lf{O+0qA>8rCiS!kPNma}DdGg$XQY1w9ApZ=7>7l~w(SZdm*CYiwsD z16tzw0g+z1hM*1

bBvuozz}a`vcPTLJaKmf<`yBl7;ko1$ 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 z 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 ~*?7koRkhhuj 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 Date: Tue, 9 Apr 2019 08:45:21 +0200 Subject: [PATCH 032/215] Solving issue #5267 : "ProcEvent int() operator should be const" --- rtengine/procevents.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/procevents.h b/rtengine/procevents.h index 95144aec0..bb6a30038 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -532,7 +532,7 @@ public: ProcEvent(): code_(0) {} ProcEvent(ProcEventCode code): code_(code) {} explicit ProcEvent(int code): code_(code) {} - operator int() { return code_; } + operator int() const { return code_; } private: int code_; From bb58e65ffca32d89368ae914316d18fb4f3f4288 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 10 Apr 2019 13:31:21 +0200 Subject: [PATCH 033/215] Revision of Lens/Geometry and CA labels Closes #5132 --- rtdata/languages/Catala | 15 +++++++-------- rtdata/languages/Chinese (Simplified) | 3 +-- rtdata/languages/Czech | 3 +-- rtdata/languages/Deutsch | 3 +-- rtdata/languages/English (UK) | 3 +-- rtdata/languages/English (US) | 3 +-- rtdata/languages/Espanol | 9 ++++----- rtdata/languages/Francais | 5 ++--- rtdata/languages/Italiano | 9 ++++----- rtdata/languages/Japanese | 9 ++++----- rtdata/languages/Magyar | 5 ++--- rtdata/languages/Nederlands | 9 ++++----- rtdata/languages/Polish | 9 ++++----- rtdata/languages/Portugues | 3 +-- rtdata/languages/Portugues (Brasil) | 3 +-- rtdata/languages/Russian | 9 ++++----- rtdata/languages/Serbian (Cyrilic Characters) | 3 +-- rtdata/languages/Swedish | 9 ++++----- rtdata/languages/default | 3 +-- rtgui/preferences.cc | 14 +++++++------- rtgui/rawcacorrection.cc | 2 +- 21 files changed, 56 insertions(+), 75 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 87af9a19a..38d8c7588 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -207,7 +207,6 @@ HISTORY_MSG_32;Deconvolució: Ablaniment HISTORY_MSG_33;Deconvolució: Iteracions HISTORY_MSG_34;Correcció distorsió LCP HISTORY_MSG_35;Correcció vorafosc LCP -HISTORY_MSG_36;Correcció A.C. LCP HISTORY_MSG_37;Nivells automàtics HISTORY_MSG_38;Mètode de balanç de blancs HISTORY_MSG_39;Temperatura de color @@ -288,11 +287,8 @@ HISTORY_MSG_113;Protecció de tons vermell i pell HISTORY_MSG_114;Iteracions DCB HISTORY_MSG_115;Iteracions fals color HISTORY_MSG_116;DCB ampliat -HISTORY_MSG_117;Correcció CA vermell -HISTORY_MSG_118;Correcció CA blau HISTORY_MSG_119;Línia dessoroll HISTORY_MSG_120;Llindar equil. verd -HISTORY_MSG_121;Raw auto CA HISTORY_MSG_122;Auto marc fosc HISTORY_MSG_123;Fitxer de camp fosc HISTORY_MSG_124;Correc. expo. linear @@ -425,7 +421,7 @@ MAIN_TOOLTIP_TOGGLE;Alterna vista abans/després.\nDrecera: Majús-B NAVIGATOR_XY_FULL;Amplada = %1, Altura = %2 NAVIGATOR_XY_NA;x = n/a, y = n/a PARTIALPASTE_BASICGROUP;Ajustos bàsics -PARTIALPASTE_CACORRECTION;Correcció A. C.(Aberració Cromàtica) +PARTIALPASTE_CACORRECTION;Correcció d'aberració cromàtica PARTIALPASTE_CHANNELMIXER;Barrejador de canals PARTIALPASTE_COARSETRANS;Rotació 90 graus/ inversió PARTIALPASTE_COLORGROUP;Ajustos de color @@ -625,13 +621,12 @@ TOOLBAR_TOOLTIP_HAND;Eina mà.\nDrecera: h TOOLBAR_TOOLTIP_STRAIGHTEN;Dreçar / rotació fina.\nDrecera: s\n\nIndica la vertical o horitzontal dibuixant una línia de guia sobre la previsualització de la imatge. L'angle de rotació es mostrarà junt a la guia. El centre de rotació és el centre geomètric de la imatge. TOOLBAR_TOOLTIP_WB;Afina balanç de blancs.\nDrecera: w TP_CACORRECTION_BLUE;Blau -TP_CACORRECTION_LABEL;Correcció A. C. (Aberració Cromàtica) +TP_CACORRECTION_LABEL;Correcció d'aberració cromàtica TP_CACORRECTION_RED;Vermell TP_CHMIXER_BLUE;Canal blau TP_CHMIXER_GREEN;Canal verd TP_CHMIXER_LABEL;Barrejador de canals TP_CHMIXER_RED;Canal vermell -TP_CHROMATABERR_LABEL;Aberració cromàtica TP_COARSETRAF_TOOLTIP_HFLIP;Inversió horitzontal TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotació esquerra.\nDrecera: [ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotació dreta.\nDrecera: ] @@ -777,7 +772,7 @@ TP_PREPROCESS_NO_FOUND;No trobat TP_RAWCACORR_AUTO;Auto correcció TP_RAWCACORR_CABLUE;Blau TP_RAWCACORR_CARED;Vermell -TP_RAWEXPOS_BLACKS;Nivells negres +TP_RAWCACORR_LABEL;Correcció d'aberració cromàtica TP_RAWEXPOS_LINEAR;Punt blanc: factor de correcció linear TP_RAWEXPOS_TWOGREEN;Dos verds junts TP_RAW_DCBENHANCE;Aplica pas de millora DCB @@ -988,6 +983,10 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_CHRO;Show/Hide chromaticity histogram. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. +!HISTORY_MSG_36;Lens Correction - CA +!HISTORY_MSG_117;Raw CA correction - Red +!HISTORY_MSG_118;Raw CA correction - Blue +!HISTORY_MSG_121;Raw CA Correction - Auto !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_174;CIECAM02 diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index d791a72d3..df3093b9d 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1604,7 +1604,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_CHROMATABERR_LABEL;Chromatic Aberration !TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_ALGO;Algorithm !TP_COLORAPP_ALGO_ALL;All @@ -1904,7 +1903,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_RAWEXPOS_BLACKS;Black Levels +!TP_RAWCACORR_LABEL;Chromatic Aberration Correction !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 0ab5a61c8..ff8293acb 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -1390,7 +1390,6 @@ TP_CHMIXER_BLUE;Modrý kanál TP_CHMIXER_GREEN;Zelený kanál TP_CHMIXER_LABEL;Míchání kanálů TP_CHMIXER_RED;Červený kanál -TP_CHROMATABERR_LABEL;Chromatická aberace TP_COARSETRAF_TOOLTIP_HFLIP;Překlopit horizontálně. TP_COARSETRAF_TOOLTIP_ROTLEFT;Otočit doleva.\n\nZkratky:\n[ - režim více karet editoru,\nAlt-[- režim jedné karty editoru. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Otočit doprava.\n\nZkratky:\n] - režim více karet editoru,\nAlt-]- režim jedné karty editoru. @@ -1824,7 +1823,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Toto nastavení je dostupné po zatržení volby "Au TP_RAWCACORR_AVOIDCOLORSHIFT;Zabránit posunu barev TP_RAWCACORR_CABLUE;Modrá TP_RAWCACORR_CARED;Červená -TP_RAWEXPOS_BLACKS;Úrovně černé +TP_RAWCACORR_LABEL;Korekce chromatické aberace TP_RAWEXPOS_BLACK_0;Zelená 1 (řídící) TP_RAWEXPOS_BLACK_1;Červená TP_RAWEXPOS_BLACK_2;Modrá diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index e4eebfb77..db136f330 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1447,7 +1447,6 @@ TP_CHMIXER_BLUE;Blau-Kanal TP_CHMIXER_GREEN;Grün-Kanal TP_CHMIXER_LABEL;RGB-Kanalmixer TP_CHMIXER_RED;Rot-Kanal -TP_CHROMATABERR_LABEL;Chromatische Aberration TP_COARSETRAF_TOOLTIP_HFLIP;Horizontal spiegeln. TP_COARSETRAF_TOOLTIP_ROTLEFT;Nach links drehen.\nTaste: [ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Nach rechts drehen.\nTaste: ] @@ -1887,7 +1886,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Diese Einstellung ist verfügbar, wenn "Autokorrektu TP_RAWCACORR_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden TP_RAWCACORR_CABLUE;Blau TP_RAWCACORR_CARED;Rot -TP_RAWEXPOS_BLACKS;Schattenkompression +TP_RAWCACORR_LABEL;Chromatische Aberration TP_RAWEXPOS_BLACK_0;Grün 1 (Master) TP_RAWEXPOS_BLACK_1;Rot TP_RAWEXPOS_BLACK_2;Blau diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 1b7b6847d..ac4b15e3d 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -1426,7 +1426,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_CHMIXER_GREEN;Green channel !TP_CHMIXER_LABEL;Channel Mixer !TP_CHMIXER_RED;Red channel -!TP_CHROMATABERR_LABEL;Chromatic Aberration !TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally. !TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nShortcuts:\n[ - Multiple Editor Tabs Mode,\nAlt-[ - Single Editor Tab Mode. !TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right.\n\nShortcuts:\n] - Multiple Editor Tabs Mode,\nAlt-] - Single Editor Tab Mode. @@ -1823,7 +1822,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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_CABLUE;Blue !TP_RAWCACORR_CARED;Red -!TP_RAWEXPOS_BLACKS;Black Levels +!TP_RAWCACORR_LABEL;Chromatic Aberration Correction !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 1bfeb0df7..10ad1f740 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -1370,7 +1370,6 @@ !TP_CHMIXER_GREEN;Green channel !TP_CHMIXER_LABEL;Channel Mixer !TP_CHMIXER_RED;Red channel -!TP_CHROMATABERR_LABEL;Chromatic Aberration !TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally. !TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nShortcuts:\n[ - Multiple Editor Tabs Mode,\nAlt-[ - Single Editor Tab Mode. !TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right.\n\nShortcuts:\n] - Multiple Editor Tabs Mode,\nAlt-] - Single Editor Tab Mode. @@ -1810,7 +1809,7 @@ !TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red -!TP_RAWEXPOS_BLACKS;Black Levels +!TP_RAWCACORR_LABEL;Chromatic Aberration Correction !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red !TP_RAWEXPOS_BLACK_2;Blue diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index e0d3972bf..9ffbb0323 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -341,9 +341,9 @@ HISTORY_MSG_30;Deconvolución - Radio HISTORY_MSG_31;Deconvolución - Cantidad HISTORY_MSG_32;Deconvolución - Amortiguación HISTORY_MSG_33;Deconvolución - Iteraciones -HISTORY_MSG_34;LCP - Corrección de distorsión -HISTORY_MSG_35;LCP - Corrección de Viñeta -HISTORY_MSG_36;LCP - Corrección Aberr.Crom. +HISTORY_MSG_34;Corrección de distorsión +HISTORY_MSG_35;Corrección de Viñeta +HISTORY_MSG_36;Corrección Aberr.Crom. HISTORY_MSG_37;Niveles automáticos HISTORY_MSG_38;Método de Balance de Blancos HISTORY_MSG_39;Temperatura de color @@ -1415,7 +1415,6 @@ TP_CHMIXER_BLUE;Canal Azul TP_CHMIXER_GREEN;Canal Verde TP_CHMIXER_LABEL;Mezclador de canales TP_CHMIXER_RED;Canal Rojo -TP_CHROMATABERR_LABEL;Aberración cromática (AC) TP_COARSETRAF_TOOLTIP_HFLIP;Voltear horizontalmente.\nTecla de Atajo: '[' TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotar a la izquierda.\nTecla de Atajo: ']' TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotar a la derecha @@ -1849,7 +1848,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Esta configuración está disponible si se marca "Co TP_RAWCACORR_AVOIDCOLORSHIFT;Evitar el cambio de color TP_RAWCACORR_CABLUE;Azul TP_RAWCACORR_CARED;Rojo -TP_RAWEXPOS_BLACKS;Niveles de negro +TP_RAWCACORR_LABEL;Corrección de aberraciones cromáticas TP_RAWEXPOS_BLACK_0;Verde 1 (principal) TP_RAWEXPOS_BLACK_1;Rojo TP_RAWEXPOS_BLACK_2;Azul diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index c2c3bead1..36ffa2afa 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -1349,7 +1349,7 @@ TP_BWMIX_TCMODE_STANDARD;N&B Standard TP_BWMIX_TCMODE_WEIGHTEDSTD;N&B Standard Pondéré TP_BWMIX_VAL;L TP_CACORRECTION_BLUE;Bleu -TP_CACORRECTION_LABEL;Aberration chromatique +TP_CACORRECTION_LABEL;Aberration Chromatique TP_CACORRECTION_RED;Rouge TP_CBDL_AFT;Après Noir-et-Blanc TP_CBDL_BEF;Avant Noir-et-Blanc @@ -1359,7 +1359,6 @@ TP_CHMIXER_BLUE;Bleu TP_CHMIXER_GREEN;Vert TP_CHMIXER_LABEL;Mixage des canaux TP_CHMIXER_RED;Rouge -TP_CHROMATABERR_LABEL;Aberration Chromatique TP_COARSETRAF_TOOLTIP_HFLIP;Symétriser / axe vertical TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotation vers la gauche\nRaccourci: [\n\nRaccourci en mode Éditeur unique: Alt-[ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotation vers la droite\nRaccourci: ]\n\nRaccourci en mode Éditeur unique: Alt-] @@ -1793,7 +1792,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Ce réglage est disponible si "Correction-auto" est TP_RAWCACORR_AVOIDCOLORSHIFT;Éviter les dérives couleurs TP_RAWCACORR_CABLUE;Bleu TP_RAWCACORR_CARED;Rouge -TP_RAWEXPOS_BLACKS;Niveaux de noir +TP_RAWCACORR_LABEL;Aberration Chromatique TP_RAWEXPOS_BLACK_0;Vert 1 (maître) TP_RAWEXPOS_BLACK_1;Rouge TP_RAWEXPOS_BLACK_2;Bleu diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index c65c1ef6f..cece7e78b 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -234,9 +234,9 @@ HISTORY_MSG_30;RLD - Raggio HISTORY_MSG_31;RLD - Quantità HISTORY_MSG_32;RLD - Smorzamento HISTORY_MSG_33;RLD - Iterazioni -HISTORY_MSG_34;LCP - Correzione Distorsione -HISTORY_MSG_35;LCP - Correzione Vignettatura -HISTORY_MSG_36;LCP - Correzione AC +HISTORY_MSG_34;Correzione Distorsione +HISTORY_MSG_35;Correzione Vignettatura +HISTORY_MSG_36;Correzione AC HISTORY_MSG_37;Livelli Automatici HISTORY_MSG_38;WB - Metodo HISTORY_MSG_39;WB - Temperatura @@ -835,7 +835,6 @@ TP_CHMIXER_BLUE;Canale Blu TP_CHMIXER_GREEN;Canale Verde TP_CHMIXER_LABEL;Miscelatore Canali TP_CHMIXER_RED;Canale Rosso -TP_CHROMATABERR_LABEL;Aberrazione Cromatica TP_COARSETRAF_TOOLTIP_HFLIP;Rifletti orizzontalmente. TP_COARSETRAF_TOOLTIP_ROTLEFT;Ruota a sinistra.\nScorciatoie:\n[ - Modalità a Scheda Multipla,\nAlt-[ - Modalità a Scheda Singola. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Ruota a destra.\nScorciatoie:\n] - Modalità a Scheda Multipla,\nAlt-] - Modalità a Scheda Singola. @@ -1092,7 +1091,7 @@ TP_PREPROCESS_NO_FOUND;Nessuno presente TP_RAWCACORR_AUTO;Autocorrezione TP_RAWCACORR_CABLUE;Blu TP_RAWCACORR_CARED;Rosso -TP_RAWEXPOS_BLACKS;Livelli del nero +TP_RAWCACORR_LABEL;Correzione AC TP_RAWEXPOS_LINEAR;Punto del Bianco - Correzione TP_RAWEXPOS_TWOGREEN;Valori del verde uniti TP_RAW_DCBENHANCE;Miglioramento DCB diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index d06635394..2e5e103bf 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -314,9 +314,9 @@ HISTORY_MSG_30;デコンボリューション 半径 HISTORY_MSG_31;デコンボリューション 適用量 HISTORY_MSG_32;デコンボリューション 減衰 HISTORY_MSG_33;デコンボリューション 繰返し -HISTORY_MSG_34;LCP 歪曲収差補正 -HISTORY_MSG_35;LCP 周辺光量補正 -HISTORY_MSG_36;LCP 色収差補正 +HISTORY_MSG_34;歪曲収差補正 +HISTORY_MSG_35;周辺光量補正 +HISTORY_MSG_36;色収差補正 HISTORY_MSG_37;オートレベル HISTORY_MSG_38;ホワイトバランス モード HISTORY_MSG_39;色温度 @@ -1400,7 +1400,6 @@ TP_CHMIXER_BLUE;ブルー TP_CHMIXER_GREEN;グリーン TP_CHMIXER_LABEL;チャンネルミキサー TP_CHMIXER_RED;レッドチャンネル -TP_CHROMATABERR_LABEL;色収差 TP_COARSETRAF_TOOLTIP_HFLIP;左右反転 TP_COARSETRAF_TOOLTIP_ROTLEFT;90度左回転\nショートカット: [\n\nシングル・エディタ・タブのショートカット: Alt-[ TP_COARSETRAF_TOOLTIP_ROTRIGHT;90度右回転\nショートカット: ]\n\nシングル・エディタ・タブのショートカット: Alt-] @@ -1840,7 +1839,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;”自動補正”が有効になっている場合 TP_RAWCACORR_AVOIDCOLORSHIFT;色ずれを回避 TP_RAWCACORR_CABLUE;ブルー TP_RAWCACORR_CARED;レッド -TP_RAWEXPOS_BLACKS;黒レベル +TP_RAWCACORR_LABEL;色収差補正 TP_RAWEXPOS_BLACK_0;グリーン1(先頭) TP_RAWEXPOS_BLACK_1;レッド TP_RAWEXPOS_BLACK_2;ブルー diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 95b6d311d..692c02c83 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -601,7 +601,6 @@ TP_CHMIXER_BLUE;Kék TP_CHMIXER_GREEN;Zöld TP_CHMIXER_LABEL;Színkeverő TP_CHMIXER_RED;Piros -TP_CHROMATABERR_LABEL;Színihiba (kromatikus aberráció) TP_COARSETRAF_TOOLTIP_HFLIP;Vizszintes tükrözés TP_COARSETRAF_TOOLTIP_ROTLEFT;Forgatás balra TP_COARSETRAF_TOOLTIP_ROTRIGHT;Forgatás jobbra @@ -706,10 +705,10 @@ TP_PREPROCESS_GREENEQUIL;Zöldegyensúly TP_PREPROCESS_LABEL;Előfeldolgozás TP_PREPROCESS_LINEDENOISE;Sorzaj-szűrő TP_PREPROCESS_NO_FOUND;Nincs elérhető -TP_RAWCACORR_AUTO;Színihiba (kromatikus aberráció) automatikus helyesbítése +TP_RAWCACORR_AUTO;Automatikus helyesbítése TP_RAWCACORR_CABLUE;Kék TP_RAWCACORR_CARED;Vörös -TP_RAWEXPOS_BLACKS;Feketeszintek +TP_RAWCACORR_LABEL;Kromatikus aberráció TP_RAWEXPOS_LINEAR;Fehérszint: lineáris korrelációs faktor TP_RAWEXPOS_TWOGREEN;Zöldek együtt TP_RAW_DCBENHANCE;DCB helyesbítő lépés alkalmazása diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 46d273d77..3ac4d8d6c 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -278,9 +278,9 @@ HISTORY_MSG_30;RL-verscherping - Straal HISTORY_MSG_31;RL-verscherping - Hoeveelheid HISTORY_MSG_32;RL-verscherping - Demping HISTORY_MSG_33;RL-verscherping - Herhaling -HISTORY_MSG_34;LCP Lensvervorming correctie -HISTORY_MSG_35;LCP Vignettering correctie -HISTORY_MSG_36;LCP CA correctie +HISTORY_MSG_34;Lensvervorming correctie +HISTORY_MSG_35;Vignettering correctie +HISTORY_MSG_36;CA correctie HISTORY_MSG_37;Automatische Niveaus HISTORY_MSG_38;Witbalans Methode HISTORY_MSG_39;Kleurtemperatuur @@ -1162,7 +1162,6 @@ TP_CHMIXER_BLUE;Blauw TP_CHMIXER_GREEN;Groen TP_CHMIXER_LABEL;Kleurkanaal mixer TP_CHMIXER_RED;Rood -TP_CHROMATABERR_LABEL;Chromatische aberratie TP_COARSETRAF_TOOLTIP_HFLIP;Horizontaal spiegelen TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nSneltoets:\n[ - Multi-tab Mode,\nAlt-[ - Enkel-tab Mode. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right.\n\nSneltoets:\n] - Multi-tab Mode,\nAlt-] - Enkel-tab Mode. @@ -1530,7 +1529,7 @@ TP_PRSHARPENING_TOOLTIP;Verscherp na verkleinen. Werkt alleen als verkleinen act TP_RAWCACORR_AUTO;Automatische CA-correctie TP_RAWCACORR_CABLUE;Blauw TP_RAWCACORR_CARED;Rood -TP_RAWEXPOS_BLACKS;Zwartniveaus +TP_RAWCACORR_LABEL;Corrigeer chromatische aberratie TP_RAWEXPOS_BLACK_0;Groen 1 (leidend) TP_RAWEXPOS_BLACK_1;Rood TP_RAWEXPOS_BLACK_2;Blauw diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index e0b5b7685..75453e6e7 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -238,9 +238,9 @@ 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_34;Korekcja dystorsji +HISTORY_MSG_35;Korekcja winietowania +HISTORY_MSG_36;Korekcja aberacji HISTORY_MSG_37;Automatyczna ekspozycja HISTORY_MSG_38;Metoda balansu bieli HISTORY_MSG_39;BB - Temperatura @@ -885,7 +885,6 @@ TP_CHMIXER_BLUE;Niebieski TP_CHMIXER_GREEN;Zielony TP_CHMIXER_LABEL;Mieszacz kanałów TP_CHMIXER_RED;Czerwony -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. @@ -1202,7 +1201,7 @@ TP_PREPROCESS_NO_FOUND;Nic nie znaleziono TP_RAWCACORR_AUTO;Autokorekcja TP_RAWCACORR_CABLUE;Niebieski TP_RAWCACORR_CARED;Czerwony -TP_RAWEXPOS_BLACKS;Poziomy czerni +TP_RAWCACORR_LABEL;Korekcja aberracji chromatycznej TP_RAWEXPOS_BLACK_0;Zielony 1 (główny) TP_RAWEXPOS_BLACK_1;Czerwony TP_RAWEXPOS_BLACK_2;Niebieski diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 5c9ad041d..57b2758a7 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -1359,7 +1359,6 @@ TP_CHMIXER_BLUE;Canal azul TP_CHMIXER_GREEN;Canal verde TP_CHMIXER_LABEL;Misturador de canais TP_CHMIXER_RED;Canal vermelho -TP_CHROMATABERR_LABEL;Aberração cromática TP_COARSETRAF_TOOLTIP_HFLIP;Espelhar horizontalmente. TP_COARSETRAF_TOOLTIP_ROTLEFT;Rodar para a esquerda.\n\nAtalhos:\n[ - Modo de editor em várias abas,\nAlt-[ - Modo de editor numa só aba. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rodar para a direita.\n\nAtalhos:\n] - Modo de editor em várias abas,\nAlt-] - Modo de editor numa só aba. @@ -1793,7 +1792,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;Esta funcionalidade está disponível se a opção " TP_RAWCACORR_AVOIDCOLORSHIFT;Evitar mudança de cor TP_RAWCACORR_CABLUE;Azul TP_RAWCACORR_CARED;Vermelho -TP_RAWEXPOS_BLACKS;Níveis de preto +TP_RAWCACORR_LABEL;Correção de aberração cromática TP_RAWEXPOS_BLACK_0;Verde 1 (guia) TP_RAWEXPOS_BLACK_1;Vermelho TP_RAWEXPOS_BLACK_2;Azul diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 725bfe873..8e6dbd45d 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -1357,7 +1357,6 @@ TP_CHMIXER_BLUE;Canal azul TP_CHMIXER_GREEN;Canal verde TP_CHMIXER_LABEL;Misturador de canais TP_CHMIXER_RED;Canal vermelho -TP_CHROMATABERR_LABEL;Aberração Cromática TP_COARSETRAF_TOOLTIP_HFLIP;Girar horizontalmente. TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotacione à esquerda.\n\nAtalhos:\n[ - Modo de Guias do Editor Múltiplo,\nAlt-[ - Modo de Guia do Editor Único. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotacione à direita.\n\nAtalhos:\n] - Modo de Guias do Editor Múltiplo,\nAlt-] - Modo de Guia do Editor Único. @@ -1787,7 +1786,7 @@ TP_RAWCACORR_AUTOIT;Interações TP_RAWCACORR_AVOIDCOLORSHIFT;Evitar mudança de cor TP_RAWCACORR_CABLUE;Azul TP_RAWCACORR_CARED;Vermelho -TP_RAWEXPOS_BLACKS;Níveis de Preto +TP_RAWCACORR_LABEL;Correção de Aberração Cromática TP_RAWEXPOS_BLACK_0;Verde 1 (guia) TP_RAWEXPOS_BLACK_1;Vermelho TP_RAWEXPOS_BLACK_2;Azul diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 6632580d8..62c3d797d 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -269,9 +269,9 @@ HISTORY_MSG_30;Деконволюция: Радиус HISTORY_MSG_31;Деконволюция: Значение HISTORY_MSG_32;Деконволюция: Ослабление HISTORY_MSG_33;Деконволюция: Повторы -HISTORY_MSG_34;ПКО: коррекция искажения -HISTORY_MSG_35;ПКО: коррекция виньетирования -HISTORY_MSG_36;ПКО: коррекция ХА +HISTORY_MSG_34;коррекция искажения +HISTORY_MSG_35;коррекция виньетирования +HISTORY_MSG_36;коррекция ХА HISTORY_MSG_37;Автоматические уровни HISTORY_MSG_38;Метод определения баланса белого HISTORY_MSG_39;Баланс белого: температура @@ -984,7 +984,6 @@ TP_CHMIXER_BLUE;Синий TP_CHMIXER_GREEN;Зелёный TP_CHMIXER_LABEL;Цветовые каналы TP_CHMIXER_RED;Красный -TP_CHROMATABERR_LABEL;Хроматические аберрации TP_COARSETRAF_TOOLTIP_HFLIP;Горизонтальное зеркальное отражение TP_COARSETRAF_TOOLTIP_ROTLEFT;Повернуть влево\n\nГорячие клавиши:\n[ - режим множественных редакторов,\nAlt-[ - режим одного редактора TP_COARSETRAF_TOOLTIP_ROTRIGHT;Повернуть вправо\n\nГорячие клавиши:\n] - режим множественных редакторов,\nAlt-] - режим одного редактора @@ -1266,7 +1265,7 @@ TP_RAWCACORR_AUTOIT;Подходов TP_RAWCACORR_AVOIDCOLORSHIFT;Избегать сдвига цветов TP_RAWCACORR_CABLUE;Синий TP_RAWCACORR_CARED;Красный -TP_RAWEXPOS_BLACKS;Уровни черного +TP_RAWCACORR_LABEL;Хроматические аберрации TP_RAWEXPOS_BLACK_0;Зелёный 1 (ведущий) TP_RAWEXPOS_BLACK_1;Красный TP_RAWEXPOS_BLACK_2;Синий diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 4224ef46a..066169b04 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -799,7 +799,6 @@ TP_CHMIXER_BLUE;Плава TP_CHMIXER_GREEN;Зелена TP_CHMIXER_LABEL;Мешање канала TP_CHMIXER_RED;Црвена -TP_CHROMATABERR_LABEL;Хроматске аберације TP_COARSETRAF_TOOLTIP_HFLIP;Изврће слику хоризонтално TP_COARSETRAF_TOOLTIP_ROTLEFT;Окреће слику улево TP_COARSETRAF_TOOLTIP_ROTRIGHT;Окреће слику удесно @@ -1048,7 +1047,7 @@ TP_PREPROCESS_NO_FOUND;Није пронађено TP_RAWCACORR_AUTO;Исправи хроматске аберације TP_RAWCACORR_CABLUE;Плава TP_RAWCACORR_CARED;Црвена -TP_RAWEXPOS_BLACKS;Ниво црне +TP_RAWCACORR_LABEL;Хроматске аберације TP_RAWEXPOS_LINEAR;Линеарни фактор корекције TP_RAWEXPOS_TWOGREEN;Обе зелене TP_RAW_DCBENHANCE;Примени ДЦБ побољшање diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 73826351f..aa6fcb340 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -248,9 +248,9 @@ HISTORY_MSG_30;RLD - Radie HISTORY_MSG_31;RLD - Mängd HISTORY_MSG_32;RLD - Dämpning HISTORY_MSG_33;RLD - Upprepningar -HISTORY_MSG_34;LCP distorsionskorrigering -HISTORY_MSG_35;LCP vinjetteringskorrigering -HISTORY_MSG_36;LCP Kromatiska aberattioner +HISTORY_MSG_34;Distorsionskorrigering +HISTORY_MSG_35;Vinjetteringskorrigering +HISTORY_MSG_36;Kromatiska aberattioner HISTORY_MSG_37;Autonivåer HISTORY_MSG_38;Vitbalansmetod HISTORY_MSG_39;VB - Färgtemperatur @@ -1054,7 +1054,6 @@ TP_CHMIXER_BLUE;Blå kanal TP_CHMIXER_GREEN;Grön kanal TP_CHMIXER_LABEL;Kanalmixer TP_CHMIXER_RED;Röd kanal -TP_CHROMATABERR_LABEL;Kromatiska abberationer TP_COARSETRAF_TOOLTIP_HFLIP;Vänd horisontellt TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotera åt vänster.\nKortkommando: [ TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotera åt höger.\nKortkommando: ] @@ -1397,7 +1396,7 @@ TP_PRSHARPENING_TOOLTIP;Skärper bilden efter att den storleksförändrats. Fung TP_RAWCACORR_AUTO;Reducera automatiskt kromatiska abberationer TP_RAWCACORR_CABLUE;Blå TP_RAWCACORR_CARED;Röd -TP_RAWEXPOS_BLACKS;Svartpunktsnivåer +TP_RAWCACORR_LABEL;Reducera kromatiska abberationer TP_RAWEXPOS_BLACK_0;Grön 1 (ledare) TP_RAWEXPOS_BLACK_1;Röd TP_RAWEXPOS_BLACK_2;Blå diff --git a/rtdata/languages/default b/rtdata/languages/default index c63052363..91535be42 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1369,7 +1369,6 @@ TP_CHMIXER_BLUE;Blue channel TP_CHMIXER_GREEN;Green channel TP_CHMIXER_LABEL;Channel Mixer TP_CHMIXER_RED;Red channel -TP_CHROMATABERR_LABEL;Chromatic Aberration TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally. TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left.\n\nShortcuts:\n[ - Multiple Editor Tabs Mode,\nAlt-[ - Single Editor Tab Mode. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right.\n\nShortcuts:\n] - Multiple Editor Tabs Mode,\nAlt-] - Single Editor Tab Mode. @@ -1809,7 +1808,7 @@ TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is ch TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift TP_RAWCACORR_CABLUE;Blue TP_RAWCACORR_CARED;Red -TP_RAWEXPOS_BLACKS;Black Levels +TP_RAWCACORR_LABEL;Chromatic Aberration Correction TP_RAWEXPOS_BLACK_0;Green 1 (lead) TP_RAWEXPOS_BLACK_1;Red TP_RAWEXPOS_BLACK_2;Blue diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 8463e86ce..cc517d4e0 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -398,7 +398,7 @@ Gtk::Widget* Preferences::getBatchProcPanel () appendBehavList (mi, M ("TP_WAVELET_EDGEDETECTTHR2"), ADDSET_WA_EDGEDETECTTHR2, true); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_RAW_SENSOR_BAYER_LABEL")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_RAW_SENSOR_BAYER_LABEL")); appendBehavList (mi, M ("TP_RAW_FALSECOLOR"), ADDSET_BAYER_FALSE_COLOR_SUPPRESSION, false); appendBehavList (mi, M ("TP_RAW_DCBITERATIONS") + ", " + M("TP_RAW_LMMSEITERATIONS"), ADDSET_BAYER_ITER, false); appendBehavList (mi, M ("TP_RAW_DUALDEMOSAICCONTRAST"), ADDSET_BAYER_DUALDEMOZCONTRAST, false); @@ -407,28 +407,28 @@ Gtk::Widget* Preferences::getBatchProcPanel () appendBehavList (mi, M ("TP_RAW_PIXELSHIFTEPERISO"), ADDSET_BAYER_PS_EPERISO, false); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_RAW_SENSOR_XTRANS_LABEL")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_RAW_SENSOR_XTRANS_LABEL")); appendBehavList (mi, M ("TP_RAW_FALSECOLOR"), ADDSET_XTRANS_FALSE_COLOR_SUPPRESSION, false); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_PREPROCESS_LABEL")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_PREPROCESS_LABEL")); appendBehavList (mi, M ("TP_PREPROCESS_GREENEQUIL"), ADDSET_PREPROCESS_GREENEQUIL, false); appendBehavList (mi, M ("TP_PREPROCESS_LINEDENOISE"), ADDSET_PREPROCESS_LINEDENOISE, true); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_EXPOS_WHITEPOINT_LABEL")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_EXPOS_WHITEPOINT_LABEL")); appendBehavList (mi, M ("TP_RAWEXPOS_LINEAR"), ADDSET_RAWEXPOS_LINEAR, false); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_RAWEXPOS_BLACKS")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_EXPOS_BLACKPOINT_LABEL")); appendBehavList (mi, M ("TP_RAWEXPOS_RGB"), ADDSET_RAWEXPOS_BLACKS, false); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_FLATFIELD_LABEL")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_FLATFIELD_LABEL")); appendBehavList (mi, M ("TP_FLATFIELD_CLIPCONTROL"), ADDSET_RAWFFCLIPCONTROL, true); mi = behModel->append (); - mi->set_value (behavColumns.label, M ("TP_CHROMATABERR_LABEL")); + mi->set_value (behavColumns.label, M("MAIN_TAB_RAW") + " - " + M("TP_RAWCACORR_LABEL")); appendBehavList (mi, M ("TP_RAWCACORR_CARED") + ", " + M ("TP_RAWCACORR_CABLUE"), ADDSET_RAWCACORR, true); behTreeView->expand_all (); diff --git a/rtgui/rawcacorrection.cc b/rtgui/rawcacorrection.cc index 06780559d..a6b624562 100644 --- a/rtgui/rawcacorrection.cc +++ b/rtgui/rawcacorrection.cc @@ -28,7 +28,7 @@ using namespace rtengine; using namespace rtengine::procparams; -RAWCACorr::RAWCACorr () : FoldableToolPanel(this, "rawcacorrection", M("TP_CHROMATABERR_LABEL")) +RAWCACorr::RAWCACorr () : FoldableToolPanel(this, "rawcacorrection", M("TP_RAWCACORR_LABEL")) { auto m = ProcEventMapper::getInstance(); EvPreProcessCAAutoiterations = m->newEvent(DARKFRAME, "HISTORY_MSG_RAWCACORR_AUTOIT"); From f4c6ba1f887c72145cae9f24b662e7a07eb88525 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 10 Apr 2019 14:39:54 +0200 Subject: [PATCH 034/215] Preparing for release 5.6-rc1 --- RELEASE_NOTES.txt | 21 ++-- rtdata/images/svg/splash.svg | 189 +++++++++++++++++++++-------------- 2 files changed, 126 insertions(+), 84 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 248d27f36..aa67398a1 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,17 +1,10 @@ -RAWTHERAPEE 5.5-dev RELEASE NOTES +RAWTHERAPEE 5.6-rc1 RELEASE NOTES -This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them. +This is RawTherapee 5.6 Release Candidate 1, released on 2019-04-10. This is not the final release yet. Start by reading the "Getting Started" article on RawPedia: http://rawpedia.rawtherapee.com/ -While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that: -- Development versions only had limited testing, so there may be bugs unknown to us. -- You should report these bugs so that they get fixed for the next stable release. See - www.rawpedia.rawtherapee.com/How_to_write_useful_bug_reports -- The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version. -- Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of. - NEWS RELEVANT TO PHOTOGRAPHERS @@ -27,12 +20,20 @@ In order to use RawTherapee efficiently you should know that: - There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page! New features since 5.5: -TODO. +- HiDPI support, for a smooth and sharp user interface regardless of screen size. Scaling in RawTherapee depends on font size, DPI and display scaling. No scaling occurs when the font size is set to 9pt, DPI is set to 96 (or 72 for macOS) and scaling is set to 1 (100%). +- Ability to move tools to a new Favorites tab, http://rawpedia.rawtherapee.com/Favorites_Tab +- "Unclipped" processing profile, to make it easy to save an image while preserving data across the whole tonal range, http://rawpedia.rawtherapee.com/Unclipped +- User-adjustable tiles-per-thread settings in Preferences > Performance, for users who want to perform performance benchmarks to find optimal values for their system. The default value of 2 tiles-per-thread performs best overall. +- Hundreds of speed optimizations, bug fixes, and overall improvements. NEWS RELEVANT TO PACKAGE MAINTAINERS +New since 5.5: +- Requires librsvg >=2.40. +- GTK+ versions 3.24.2 - 3.24.6 have an issue where combobox menu scroll-arrows are missing when the combobox list does not fit vertically on the screen. As a result, users would not be able to scroll in the following comboboxes: Processing Profiles, Film Simulation, and the camera and lens profiles in Profiled Lens Correction. + In general: - To get the source code, either clone from git or use the tarball from http://rawtherapee.com/shared/source/ . Do not use the auto-generated GitHub release tarballs. - Requires GTK+ version >=3.16, though >=3.22.24 is recommended. diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 0578fac27..2024fcd57 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -16,7 +16,7 @@ version="1.1" id="svg783" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="rt-splash.svg" + sodipodi:docname="splash.svg" inkscape:export-filename="/tmp/splash.png" inkscape:export-xdpi="96" inkscape:export-ydpi="96" @@ -479,8 +479,8 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.3815029" - inkscape:cx="209.44539" + inkscape:zoom="2.3526012" + inkscape:cx="276" inkscape:cy="173" inkscape:document-units="px" inkscape:current-layer="layer1" @@ -574,14 +574,31 @@ RawTherapee splash screen - 2019-03-11 + 2019-04-10 Maciej Dworak www.rawtherapee.com + + + + + + + + + - - - - - - - - - - - - - - - @@ -903,20 +865,6 @@ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:80px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold'" id="path660" /> - - - - . 5 + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px">. 6 Raw + + + + + + + + + + + + + + + + + + + + + + + + + From e1c8f3a86de695e6b8cfa691977e6e98553d8966 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 10 Apr 2019 15:02:07 +0200 Subject: [PATCH 035/215] Bumped version in AppData file --- com.rawtherapee.RawTherapee.appdata.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index 0dace6772..9b5f6d1d6 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -35,6 +35,7 @@ https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594 rawtherapee.desktop + From f237a9a0b647b31a03ee5efe5a3590106473c811 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 11 Apr 2019 12:00:26 +0200 Subject: [PATCH 036/215] Reduced repetition of "perform" in release notes --- RELEASE_NOTES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index aa67398a1..c585019d0 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -23,7 +23,7 @@ New features since 5.5: - HiDPI support, for a smooth and sharp user interface regardless of screen size. Scaling in RawTherapee depends on font size, DPI and display scaling. No scaling occurs when the font size is set to 9pt, DPI is set to 96 (or 72 for macOS) and scaling is set to 1 (100%). - Ability to move tools to a new Favorites tab, http://rawpedia.rawtherapee.com/Favorites_Tab - "Unclipped" processing profile, to make it easy to save an image while preserving data across the whole tonal range, http://rawpedia.rawtherapee.com/Unclipped -- User-adjustable tiles-per-thread settings in Preferences > Performance, for users who want to perform performance benchmarks to find optimal values for their system. The default value of 2 tiles-per-thread performs best overall. +- User-adjustable tiles-per-thread settings in Preferences > Performance, for users who want to find optimal values for their system. The default value of 2 tiles-per-thread performs best overall. - Hundreds of speed optimizations, bug fixes, and overall improvements. From d01d99481d1f630cbb91cfe50a607e03effa8e51 Mon Sep 17 00:00:00 2001 From: Hombre57 Date: Thu, 11 Apr 2019 22:23:07 +0200 Subject: [PATCH 037/215] Suppress baseDPI and baseHiDPI hardcoded values Should fix the issue reported here : https://discuss.pixls.us/t/test-rawtherapee-5-6-rc1/12073/13 --- rtgui/cursormanager.cc | 2 +- rtgui/editwindow.cc | 10 +++++----- rtgui/rtscalable.cc | 2 +- rtgui/rtscalable.h | 8 ++++---- rtgui/rtwindow.cc | 8 ++++---- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index 9a28eb061..3181d288e 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -56,7 +56,7 @@ void CursorManager::init (Glib::RefPtr mainWindow) Glib::RefPtr rotate = RTImage::createPixbufFromFile("rotate-aroundnode-hicontrast.png"); Glib::RefPtr wait = RTImage::createPixbufFromFile("gears.png"); // Currently unused, create *-hicontrast once used. - double s = RTScalable::getTweakedDPI() / 96.; // RTScalable::getDPI() might be preferable, however it imply a lot of work to support this option + double s = RTScalable::getTweakedDPI() / RTScalable::baseDPI; // RTScalable::getDPI() might be preferable, however it imply a lot of work to support this option cAdd = add ? Gdk::Cursor::create(display, add, (int)(8.*s), (int)(8.*s)) : Gdk::Cursor::create(display, Gdk::PLUS); cAddPicker = colPickAdd ? Gdk::Cursor::create(display, colPickAdd, (int)(4.*s), (int)(21.*s)) : Gdk::Cursor::create(display, Gdk::PLUS); diff --git a/rtgui/editwindow.cc b/rtgui/editwindow.cc index 8ba829b26..ec7201f84 100644 --- a/rtgui/editwindow.cc +++ b/rtgui/editwindow.cc @@ -51,7 +51,7 @@ EditWindow* EditWindow::getInstance(RTWindow* p, bool restore) return &instance_.editWnd; } -EditWindow::EditWindow (RTWindow* p) : resolution(96.), parent(p) , isFullscreen(false), isClosed(true) +EditWindow::EditWindow (RTWindow* p) : resolution(RTScalable::baseDPI), parent(p) , isFullscreen(false), isClosed(true) { updateResolution(); @@ -128,7 +128,7 @@ bool EditWindow::updateResolution() double res = get_screen()->get_resolution(); if (scale == 2) { // from Windows' behavior : if scale==2, resolution = 192. (Gtk shows 96 dpi !?), there's no higher value - res = 192.; + res = RTScalable::baseHiDPI; } bool retVal = res != resolution; resolution = res; @@ -141,11 +141,11 @@ void EditWindow::setAppIcon() bool downsize = false; // findIconAbsolutePath won't be able to select the image based on resolution with the // storage of the images, we're doing the selection here - if (resolution == 96.) { + if (resolution == RTScalable::baseDPI) { fName = "rawtherapee-logo-24.png"; } else { fName = "rawtherapee-logo-48.png"; - if (resolution < 192.) { + if (resolution < RTScalable::baseHiDPI) { downsize = true; } } @@ -155,7 +155,7 @@ void EditWindow::setAppIcon() return; } if (downsize) { - int size = int((48. * resolution) / 192.); + int size = int((48. * resolution) / RTScalable::baseHiDPI); pixbuf->scale_simple(size, size, Gdk::InterpType::INTERP_BILINEAR); } diff --git a/rtgui/rtscalable.cc b/rtgui/rtscalable.cc index 7aa3c82c8..e497e3f08 100644 --- a/rtgui/rtscalable.cc +++ b/rtgui/rtscalable.cc @@ -225,7 +225,7 @@ Cairo::RefPtr RTScalable::loadImage(const Glib::ustring &fn RsvgDimensionData dim; rsvg_handle_get_dimensions(handle, &dim); - double r = dpi / 96.; + double r = dpi / baseDPI; Cairo::RefPtr surf = Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, (int)(dim.width * r + 0.499), (int)(dim.height * r + 0.499)); Cairo::RefPtr c = Cairo::Context::create(surf); c->set_source_rgba (0., 0., 0., 0.); diff --git a/rtgui/rtscalable.h b/rtgui/rtscalable.h index c3ff19e60..a182dd2e0 100644 --- a/rtgui/rtscalable.h +++ b/rtgui/rtscalable.h @@ -40,11 +40,11 @@ protected: public: #ifdef __APPLE__ - static constexpr double baseDPI = 72; - static constexpr double baseHiDPI = 144; + static constexpr double baseDPI = 72.; + static constexpr double baseHiDPI = 144.; #else - static constexpr double baseDPI = 96; - static constexpr double baseHiDPI = 192; + static constexpr double baseDPI = 96.; + static constexpr double baseHiDPI = 192.; #endif static void init(Gtk::Window *window); diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 0d9017fbd..ce1d5151a 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -109,7 +109,7 @@ RTWindow::RTWindow () #if defined(__APPLE__) // This will force screen resolution regarding font, but I don't think it's compliant with Gtk guidelines... // Do not confuse with screen scaling, where everything is scaled up ! - screen->set_resolution (96.); + screen->set_resolution (RTScalable::baseDPI); #endif Glib::RefPtr regex = Glib::Regex::create (THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS); @@ -184,15 +184,15 @@ RTWindow::RTWindow () int resolution = (int)style->get_screen()->get_resolution(); if (isPix) { // HOMBRE: guessing here... - // if resolution is lower than 192ppi, we're supposing that it's already expressed in a scale==1 scenario + // if resolution is lower than baseHiDPI, we're supposing that it's already expressed in a scale==1 scenario if (resolution >= int(RTScalable::baseHiDPI)) { // converting the resolution to a scale==1 scenario resolution /= 2; } // 1pt = 1/72in @ 96 ppi // HOMBRE: If the font unit is px, is it already scaled up to match the resolution ? - // px >inch >pt >"scaled pt" - pt = (int)(double(fontSize) / RTScalable::baseDPI * 72. * (RTScalable::baseHiDPI / resolution) + 0.49); + // px >inch >pt >"scaled pt" + pt = (int)(double(fontSize) / RTScalable::baseDPI * 72. * (RTScalable::baseDPI / resolution) + 0.49); } else { pt = fontSize / Pango::SCALE; } From 53e50ba0992af8f94040e34e9527c7c3a24a7097 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Fri, 12 Apr 2019 14:04:05 +0200 Subject: [PATCH 038/215] Theme: Smaller buttons and spacing --- rtdata/themes/size.css | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/rtdata/themes/size.css b/rtdata/themes/size.css index 86d2eaea5..f333ceeb0 100644 --- a/rtdata/themes/size.css +++ b/rtdata/themes/size.css @@ -297,7 +297,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #MyExpander image { min-width: 1.333333333333333333em; min-height: 0; - margin: -0.083333333333333333em 0.19em; + margin: -0.083333333333333333em 0.125em; } #MyExpander .drawingarea:not(.slider) { @@ -456,7 +456,7 @@ button, #BeforeAfterContainer button { min-height: 1.666666666666666666em; min-width: 1.666666666666666666em;/*x*/ - margin: 0.19em; + margin: 0.125em; border-radius: 0.2em; border-width: 0.083333333333333333em; } @@ -482,7 +482,7 @@ combobox entry.combo + button.combo { } #WB-Size-Helper { min-width: 3.5em; - margin: 0.19em; + margin: 0.125em; } combobox arrow { @@ -570,7 +570,7 @@ colorchooser colorswatch#add-color-button:first-child { button.font label{ min-height: 0; min-width: 0; - margin: 0 0.19em; + margin: 0 0.125em; } /* Save, Cancel, OK ... buttons */ @@ -603,9 +603,9 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #RightNotebook > stack > scrolledwindow:last-child button.image-button, /* Fast Export */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - min-height: 2.5em; - min-width: 2.5em; - margin: 0 0.19em; + min-height: 2.333333333333333333em; + min-width: 2.333333333333333333em; + margin: 0 0.125em; } #ToolBarPanelFileBrowser > button:first-child, #EditorTopPanel > button:first-child, @@ -625,12 +625,12 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter button */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - margin: 0.19em; + margin: 0.125em; } #EditorTopPanel button.narrowbutton { min-width: 0.833333333333333333em; - padding: 0 0.166666666666666666em; + padding: 0 0.13em; } /* Image close button */ @@ -647,21 +647,21 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 1.333333333333333333em; + min-height: 0; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin: 0.083333333333333333em 0 -0.166666666666666666em; + margin: 0 0 -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.19em; - min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; + margin: -0.166666666666666666em; + min-width: 0; + min-height: 0; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { min-height: 0; - min-width: 1.333333333333333333em; + min-width: 1.166666666666666666em; padding: 0; margin: 0 0.25em; border: none; @@ -686,7 +686,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #MyExpander .image-combo button.Left { border-top-right-radius: 0; border-bottom-right-radius: 0; - min-width: 2.5em; + min-width: 2.333333333333333333em; margin-right: 0; } #MyExpander .image-combo button.Left { @@ -820,7 +820,7 @@ button.text-button { checkbutton, radiobutton { padding: 0.083333333333333333em 0; - margin: 0.19em; + margin: 0.125em; min-height: 1.666666666666666666em;/*x*/ } @@ -852,7 +852,7 @@ frame > checkbutton check{ #PartialPaste checkbutton { padding: 0; - margin: 0.19em 0 0 0.583333333333333333em; + margin: 0.125em 0 0 0.583333333333333333em; } #PartialPaste checkbutton:not(#PartialPasteHeader) { margin: 0 0 0 1.166666666666666666em; @@ -864,7 +864,7 @@ frame > checkbutton check{ #MyExpander entry, entry, spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0 0.333333333333333333em; min-height: 1.666666666666666666em;/*x*/ min-width: 0; @@ -894,7 +894,7 @@ spinbutton { } #MyExpander spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0; min-height: 1.333333333333333333em; min-width: 0; From 4db265b00fca6d6ecbcb7a02ae25cfe85722f866 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Fri, 12 Apr 2019 14:05:05 +0200 Subject: [PATCH 039/215] Theme: Smaller buttons and spacing --- rtdata/themes/RawTherapee-GTK3-20_.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index 32efbb41f..45dec6e39 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -1225,11 +1225,12 @@ dialog frame > label:not(.dummy) { border-top-width: 0.083333333333333333em; } #Navigator { - padding-top: 0.75em; + padding-top: 0.25em; padding-bottom: 0.25em; } #Navigator label { padding: 0; + margin: 0.083333333333333333em 0; } /*** PartialPaste ******************************************************************************/ From 573176b52fb1f41148eece7e9c61d6892d1e39b2 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Fri, 12 Apr 2019 14:06:12 +0200 Subject: [PATCH 040/215] Theme: Smaller buttons and spacing --- rtdata/themes/TooWaBlue-GTK3-20_.css | 52 +++++++++++++--------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index a3214b45c..e1938617f 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.05 + Version 3.06 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -163,7 +163,7 @@ undershoot { label { padding: 0.083333333333333333em 0; - margin: 0.19em; + margin: 0.125em; min-height: 1.333333333333333333em; } @@ -1341,7 +1341,7 @@ button, #BeforeAfterContainer button { min-height: 1.666666666666666666em; min-width: 1.666666666666666666em;/*x*/ - margin: 0.19em; + margin: 0.125em; border-radius: 0.2em; border: 0.083333333333333333em solid @bg-button-border; background-color: transparent; @@ -1414,7 +1414,7 @@ combobox entry.combo + button.combo { } #WB-Size-Helper { min-width: 3.5em; - margin: 0.19em; + margin: 0.125em; } combobox arrow { @@ -1536,9 +1536,9 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #RightNotebook > stack > scrolledwindow:last-child button.image-button, /* Fast Export */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - min-height: 2.5em; - min-width: 2.5em; - margin: 0 0.19em; + min-height: 2.333333333333333333em; + min-width: 2.333333333333333333em; + margin: 0 0.125em; } #ToolBarPanelFileBrowser > button:first-child, #EditorTopPanel > button:first-child, @@ -1558,39 +1558,35 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { #MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter button */ #MetaPanelNotebook scrolledwindow + grid > button, #MetaPanelNotebook scrolledwindow + grid + grid > button { - margin: 0.19em; + margin: 0.125em; } #EditorTopPanel button.narrowbutton { - min-width: 0.833333333333333333em; - padding: 0 0.166666666666666666em; + min-width: 0; + padding: 0 0.13em; } /* Image close button */ #MainNotebook > header tab #CloseButton { - padding: 0; - margin: 0.333333333333333333em 0 0.416666666666666666em 0.19em; - min-width: 1.5em; + padding: 0.166666666666666666em; + margin: 0.333333333333333333em 0 0.5em 0.19em; + min-width: 0; min-height: 0; } -#MainNotebook > header tab #CloseButton image{ - min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; -} /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 1.333333333333333333em; + min-height: 0; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin: 0.083333333333333333em 0 -0.166666666666666666em; + margin-top: 0.12em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.19em; - min-width: 1.333333333333333333em; - min-height: 1.333333333333333333em; + margin: -0.12em; + min-width: 0; + min-height: 0; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { min-height: 0; @@ -1806,7 +1802,7 @@ popover button.text-button:active { checkbutton, radiobutton { padding: 0.083333333333333333em 0; - margin: 0.19em; + margin: 0.125em; min-height: 1.666666666666666666em;/*x*/ } @@ -1847,10 +1843,10 @@ frame > checkbutton check{ #PartialPaste checkbutton { padding: 0; - margin: 0.19em 0 0 0.583333333333333333em; + margin: 0 0 0 0.583333333333333333em; } #PartialPaste checkbutton:not(#PartialPasteHeader) { - margin: 0 0 0 1.166666666666666666em; + margin: 0 0 0 1.125em; } /*** end ***************************************************************************************/ @@ -1859,7 +1855,7 @@ frame > checkbutton check{ #MyExpander entry, entry, spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0 0.333333333333333333em; min-height: 1.666666666666666666em;/*x*/ min-width: 0; @@ -1891,7 +1887,7 @@ spinbutton { } #MyExpander spinbutton { - margin: 0.19em; + margin: 0.125em; padding: 0; min-height: 1.333333333333333333em; min-width: 0; @@ -1996,7 +1992,7 @@ entry:focus > selection { /* Curves **************************************************************************************/ .curve-mainbox { - margin: 0.19em; + margin: 0.125em; border: 0.083333333333333333em solid @border-color; } .curve-mainbox .curve-curvebox { From 5338d68482167f027ab190e5cbbd2960a677b789 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Fri, 12 Apr 2019 19:40:29 +0200 Subject: [PATCH 041/215] Theme: Smaller buttons and spacing (label fix) --- rtdata/themes/TooWaBlue-GTK3-20_.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index e1938617f..f0852d310 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -163,7 +163,7 @@ undershoot { label { padding: 0.083333333333333333em 0; - margin: 0.125em; + margin: 0.125em 0.166666666666666666em; min-height: 1.333333333333333333em; } From 11d93cd24bf4364615d726df6759504f294fe5cf Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 13 Apr 2019 20:40:53 +0200 Subject: [PATCH 042/215] Curve fix in TWB-theme --- rtdata/themes/TooWaBlue-GTK3-20_.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index f0852d310..4b26ce11c 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -1992,7 +1992,7 @@ entry:focus > selection { /* Curves **************************************************************************************/ .curve-mainbox { - margin: 0.125em; + margin: 0.19em; border: 0.083333333333333333em solid @border-color; } .curve-mainbox .curve-curvebox { From 031613abe5861a1a1ae5cddcca512f71e5fb60d5 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 14 Apr 2019 09:44:21 +0200 Subject: [PATCH 043/215] Fix for Auto - Reset button height --- rtdata/themes/TooWaBlue-GTK3-20_.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 4b26ce11c..3ed352c74 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -1900,12 +1900,12 @@ spinbutton { } /* Needed for Reset & and Auto button height*/ #MyExpander button + label + spinbutton { - margin-top: 0.333333333333333333em; - margin-bottom: 0.333333333333333333em; + margin-top: 0.25em; + margin-bottom: 0.25em; } #MyExpander checkbutton + label + spinbutton { - margin-top: 0.416666666666666666em; - margin-bottom: 0.416666666666666666em; + margin-top: 0.333333333333333333em; + margin-bottom: 0.333333333333333333em; } /**/ From ace5a011369f60928f8c975155dd93c19a911d9f Mon Sep 17 00:00:00 2001 From: Hombre57 Date: Sun, 14 Apr 2019 11:10:01 +0200 Subject: [PATCH 044/215] Setting 12pt as base font size for MacOS (see issue #5282) --- rtgui/rtscalable.h | 2 ++ rtgui/rtwindow.cc | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/rtgui/rtscalable.h b/rtgui/rtscalable.h index a182dd2e0..e6180eaa1 100644 --- a/rtgui/rtscalable.h +++ b/rtgui/rtscalable.h @@ -42,9 +42,11 @@ public: #ifdef __APPLE__ static constexpr double baseDPI = 72.; static constexpr double baseHiDPI = 144.; + static constexpr int baseFontSize = 12; #else static constexpr double baseDPI = 96.; static constexpr double baseHiDPI = 192.; + static constexpr int baseFontSize = 9; #endif static void init(Gtk::Window *window); diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index ce1d5151a..4e5c6f753 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -170,7 +170,7 @@ RTWindow::RTWindow () css = Glib::ustring::compose ("* { font-family: %1; font-size: %2pt}", options.fontFamily, options.fontSize * (int)initialGdkScale); #endif //GTK318 - fontScale = options.fontSize / 9.f; + fontScale = options.fontSize / (float)RTScalable::baseFontSize; if (options.rtSettings.verbose) { printf("\"Non-Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", options.fontSize, (int)initialGdkScale, fontScale); } @@ -192,12 +192,12 @@ RTWindow::RTWindow () // 1pt = 1/72in @ 96 ppi // HOMBRE: If the font unit is px, is it already scaled up to match the resolution ? // px >inch >pt >"scaled pt" - pt = (int)(double(fontSize) / RTScalable::baseDPI * 72. * (RTScalable::baseDPI / resolution) + 0.49); + pt = (int)(double(fontSize) / RTScalable::baseDPI * 72. * (96. / (double)resolution) + 0.49); } else { pt = fontSize / Pango::SCALE; } - fontScale = (float)pt / 9.f; - if ((int)initialGdkScale > 1 || pt != 9) { + fontScale = (float)pt / (float)RTScalable::baseFontSize; + if ((int)initialGdkScale > 1 || pt != RTScalable::baseFontSize) { css = Glib::ustring::compose ("* { font-size: %1pt}", pt * (int)initialGdkScale); if (options.rtSettings.verbose) { printf("\"Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", pt, (int)initialGdkScale, fontScale); From 89e63639be155bb22ee4b4bf0bbe9ec4f0565424 Mon Sep 17 00:00:00 2001 From: Hombre57 Date: Sun, 14 Apr 2019 16:58:11 +0200 Subject: [PATCH 045/215] Making pseudo-HiDPI tweaks optional, disabled by default (see issue #5276) --- rtdata/languages/Francais | 1 + rtdata/languages/default | 1 + rtgui/main.cc | 18 ++++++++++-------- rtgui/options.cc | 6 ++++++ rtgui/options.h | 1 + rtgui/preferences.cc | 8 ++++++++ rtgui/preferences.h | 2 ++ rtgui/rtscalable.cc | 6 ++++++ rtgui/rtwindow.cc | 16 ++++++---------- 9 files changed, 41 insertions(+), 18 deletions(-) diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 36ffa2afa..2036a2ce3 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -1036,6 +1036,7 @@ PREFERENCES_APPEARANCE_COLORPICKERFONT;Police des ancres de vérification couleu PREFERENCES_APPEARANCE_CROPMASKCOLOR;Couleur du masque de recadrage PREFERENCES_APPEARANCE_MAINFONT;Police principale PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Couleur du cadre dans le Navigateur +PREFERENCES_APPEARANCE_PSEUDOHIDPI;Mode pseudo-HiDPI PREFERENCES_APPEARANCE_THEME;Thème PREFERENCES_APPLNEXTSTARTUP;appliqué au prochain lancement PREFERENCES_AUTOMONPROFILE;Utiliser automatiquement le profil de l'écran principal diff --git a/rtdata/languages/default b/rtdata/languages/default index 91535be42..81b4eeaa4 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1039,6 +1039,7 @@ 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_PSEUDOHIDPI;Pseudo-HiDPI mode PREFERENCES_APPEARANCE_THEME;Theme PREFERENCES_APPLNEXTSTARTUP;restart required PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile diff --git a/rtgui/main.cc b/rtgui/main.cc index 322081b69..5cfe93718 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -375,14 +375,6 @@ int main (int argc, char **argv) Glib::init(); // called by Gtk::Main, but this may be important for thread handling, so we call it ourselves now Gio::init (); - // Reading/updating GDK_SCALE early if it exists - const gchar *gscale = g_getenv("GDK_SCALE"); - if (gscale && gscale[0] == '2') { - initialGdkScale = 2; - } - // HOMBRE: On Windows, if resolution is set to 200%, Gtk internal variables are SCALE=2 and DPI=96 - g_setenv("GDK_SCALE", "1", true); - #ifdef WIN32 if (GetFileType (GetStdHandle (STD_OUTPUT_HANDLE)) == 0x0003) { // started from msys2 console => do not buffer stdout @@ -536,6 +528,16 @@ int main (int argc, char **argv) int ret = 0; + if (options.pseudoHiDPISupport) { + // Reading/updating GDK_SCALE early if it exists + const gchar *gscale = g_getenv("GDK_SCALE"); + if (gscale && gscale[0] == '2') { + initialGdkScale = 2; + } + // HOMBRE: On Windows, if resolution is set to 200%, Gtk internal variables are SCALE=2 and DPI=96 + g_setenv("GDK_SCALE", "1", true); + } + gdk_threads_set_lock_functions (G_CALLBACK (myGdkLockEnter), (G_CALLBACK (myGdkLockLeave))); gdk_threads_init(); gtk_init (&argc, &argv); // use the "--g-fatal-warnings" command line flag to make warnings fatal diff --git a/rtgui/options.cc b/rtgui/options.cc index 0df70a4fd..4ba6ee5fc 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -345,6 +345,7 @@ void Options::setDefaults() fontSize = 10; CPFontFamily = "default"; CPFontSize = 8; + pseudoHiDPISupport = false; lastScale = 5; lastShowAllExif = false; panAccelFactor = 5; @@ -1252,6 +1253,10 @@ void Options::readFromFile(Glib::ustring fname) CPFontSize = keyFile.get_integer("GUI", "CPFontSize"); } + if (keyFile.has_key("GUI", "ScaledIcons")) { + pseudoHiDPISupport = keyFile.get_boolean("GUI", "PseudoHiDPISupport"); + } + if (keyFile.has_key("GUI", "LastPreviewScale")) { lastScale = keyFile.get_integer("GUI", "LastPreviewScale"); } @@ -2062,6 +2067,7 @@ void Options::saveToFile(Glib::ustring fname) keyFile.set_integer("GUI", "FontSize", fontSize); keyFile.set_string("GUI", "CPFontFamily", CPFontFamily); keyFile.set_integer("GUI", "CPFontSize", CPFontSize); + keyFile.set_boolean("GUI", "PseudoHiDPISupport", pseudoHiDPISupport); keyFile.set_integer("GUI", "LastPreviewScale", lastScale); keyFile.set_boolean("GUI", "LastShowAllExif", lastShowAllExif); keyFile.set_integer("GUI", "PanAccelFactor", panAccelFactor); diff --git a/rtgui/options.h b/rtgui/options.h index c06d9df30..304a1e220 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -212,6 +212,7 @@ public: int fontSize; // RT's main font size (units: pt) Glib::ustring CPFontFamily; // ColorPicker font family int CPFontSize; // ColorPicker font size (units: pt) + bool pseudoHiDPISupport; bool fbOnlyRaw; bool fbShowDateTime; bool fbShowBasicExif; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index cc517d4e0..42cb9a607 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1048,6 +1048,9 @@ Gtk::Widget* Preferences::getGeneralPanel () navGuideColorCB = Gtk::manage(new Gtk::ColorButton()); navGuideColorCB->set_use_alpha(true); + pseudoHiDPI = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_APPEARANCE_PSEUDOHIDPI") + Glib::ustring (" (") + M ("PREFERENCES_APPLNEXTSTARTUP") + ")")); + setExpandAlignProperties(pseudoHiDPI, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + Gtk::VSeparator *vSep = Gtk::manage(new Gtk::VSeparator()); appearanceGrid->attach(*themeLbl, 0, 0, 1, 1); @@ -1062,6 +1065,7 @@ Gtk::Widget* Preferences::getGeneralPanel () appearanceGrid->attach(*colorPickerFontFB, 1, 2, 1, 1); appearanceGrid->attach(*navGuideColorLbl, 3, 2, 1, 1); appearanceGrid->attach(*navGuideColorCB, 4, 2, 1, 1); + appearanceGrid->attach(*pseudoHiDPI, 0, 3, 5, 1); appearanceFrame->add(*appearanceGrid); vbGeneral->attach_next_to(*appearanceFrame, *flang, Gtk::POS_BOTTOM, 2, 1); @@ -1642,6 +1646,8 @@ void Preferences::storePreferences () moptions.CPFontSize = cpfd.get_size() / Pango::SCALE; } + moptions.pseudoHiDPISupport = pseudoHiDPI->get_active(); + #ifdef WIN32 moptions.gimpDir = gimpDir->get_filename (); moptions.psDir = psDir->get_filename (); @@ -1906,6 +1912,8 @@ void Preferences::fillPreferences () colorPickerFontFB->set_font_name (Glib::ustring::compose ("%1 %2", options.CPFontFamily, options.CPFontSize)); } + pseudoHiDPI->set_active(options.pseudoHiDPISupport); + showDateTime->set_active (moptions.fbShowDateTime); showBasicExif->set_active (moptions.fbShowBasicExif); showExpComp->set_active (moptions.fbShowExpComp); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 6f434c477..4f92e9e22 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -145,6 +145,8 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener Gtk::FontButton* colorPickerFontFB; Gtk::ColorButton* cropMaskColorCB; Gtk::ColorButton* navGuideColorCB; + Gtk::CheckButton* pseudoHiDPI; + Gtk::SpinButton* maxRecentFolders; Gtk::SpinButton* maxThumbHeightSB; diff --git a/rtgui/rtscalable.cc b/rtgui/rtscalable.cc index e497e3f08..aaa10bd21 100644 --- a/rtgui/rtscalable.cc +++ b/rtgui/rtscalable.cc @@ -36,6 +36,12 @@ Gtk::TextDirection RTScalable::direction = Gtk::TextDirection::TEXT_DIR_NONE; void RTScalable::setDPInScale (const double newDPI, const int newScale) { + if (!options.pseudoHiDPISupport) { + scale = 1; + dpi = baseDPI; + return; + } + if (scale != newScale || (scale == 1 && dpi != newDPI)) { // reload all images scale = newScale; diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 4e5c6f753..3d7f01e84 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -106,12 +106,6 @@ RTWindow::RTWindow () Gtk::Settings::get_for_screen (screen)->property_gtk_theme_name() = "Adwaita"; Gtk::Settings::get_for_screen (screen)->property_gtk_application_prefer_dark_theme() = true; -#if defined(__APPLE__) - // This will force screen resolution regarding font, but I don't think it's compliant with Gtk guidelines... - // Do not confuse with screen scaling, where everything is scaled up ! - screen->set_resolution (RTScalable::baseDPI); -#endif - Glib::RefPtr regex = Glib::Regex::create (THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS); Glib::ustring filename; Glib::MatchInfo mInfo; @@ -170,7 +164,9 @@ RTWindow::RTWindow () css = Glib::ustring::compose ("* { font-family: %1; font-size: %2pt}", options.fontFamily, options.fontSize * (int)initialGdkScale); #endif //GTK318 - fontScale = options.fontSize / (float)RTScalable::baseFontSize; + if (options.pseudoHiDPISupport) { + fontScale = options.fontSize / (float)RTScalable::baseFontSize; + } if (options.rtSettings.verbose) { printf("\"Non-Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", options.fontSize, (int)initialGdkScale, fontScale); } @@ -196,15 +192,15 @@ RTWindow::RTWindow () } else { pt = fontSize / Pango::SCALE; } - fontScale = (float)pt / (float)RTScalable::baseFontSize; + if (options.pseudoHiDPISupport) { + fontScale = (float)pt / (float)RTScalable::baseFontSize; + } if ((int)initialGdkScale > 1 || pt != RTScalable::baseFontSize) { css = Glib::ustring::compose ("* { font-size: %1pt}", pt * (int)initialGdkScale); if (options.rtSettings.verbose) { printf("\"Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", pt, (int)initialGdkScale, fontScale); } } - } else { - fontScale = 1.f; } } if (!css.empty()) { From feb122553e5ddfa81b8054ee6cc62c5e7e02d73a Mon Sep 17 00:00:00 2001 From: Hombre57 Date: Sun, 14 Apr 2019 17:19:48 +0200 Subject: [PATCH 046/215] Minor bugfix --- rtgui/options.cc | 2 +- rtgui/preferences.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 4ba6ee5fc..8f601b764 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -1253,7 +1253,7 @@ void Options::readFromFile(Glib::ustring fname) CPFontSize = keyFile.get_integer("GUI", "CPFontSize"); } - if (keyFile.has_key("GUI", "ScaledIcons")) { + if (keyFile.has_key("GUI", "PseudoHiDPISupport")) { pseudoHiDPISupport = keyFile.get_boolean("GUI", "PseudoHiDPISupport"); } diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 42cb9a607..b37fc537a 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1056,7 +1056,7 @@ Gtk::Widget* Preferences::getGeneralPanel () appearanceGrid->attach(*themeLbl, 0, 0, 1, 1); appearanceGrid->attach(*themeCBT, 1, 0, 1, 1); appearanceGrid->attach(*themeRestartLbl, 2, 0, 2, 1); - appearanceGrid->attach(*vSep, 2, 1, 1, 3); + appearanceGrid->attach(*vSep, 2, 1, 1, 2); appearanceGrid->attach(*mainFontLbl, 0, 1, 1, 1); appearanceGrid->attach(*mainFontFB, 1, 1, 1, 1); appearanceGrid->attach(*cropMaskColorLbl, 3, 1, 1, 1); From 2e2d981dacb17e0a94bbc0cf6cac67053ac07291 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 15 Apr 2019 12:08:37 +0200 Subject: [PATCH 047/215] Excluding libatomic needed by Clang/FreeBSD, #3636 --- rtgui/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 72df9fba0..3af955be8 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -234,7 +234,8 @@ else() ) endif() -if(OPENMP_FOUND AND NOT APPLE) +# Excluding libatomic needed by Clang/FreeBSD, #3636 +if(OPENMP_FOUND AND NOT APPLE AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") set(EXTRA_LIB_RTGUI ${EXTRA_LIB_RTGUI} "atomic") endif() From f674ebbe76d0534bd633c1cbd7b4587ac454db32 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Tue, 16 Apr 2019 00:00:39 +0200 Subject: [PATCH 048/215] Update Deutsch locale --- rtdata/languages/Deutsch | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index db136f330..34c81e820 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -79,6 +79,7 @@ #78 19.01.2019 Erweiterung (TooWaBoo) RT 5.5 #79 24.02.2019 Erweiterung (TooWaBoo) RT 5.5 #80 25.03.2019 Erweiterung (TooWaBoo) RT 5.6 +#81 15.04.2019 Erweiterung (TooWaBoo) RT 5.6 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -2359,4 +2360,5 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!QUEUE_LOCATION_TITLE;Output Location +QUEUE_LOCATION_TITLE;Ausgabeverzeichnis +PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI-Modus From b3cf43025e91610b6bfdd769816c0ae76f187ac1 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 17 Apr 2019 14:31:32 +0200 Subject: [PATCH 049/215] Updates for 5.6-rc2 --- RELEASE_NOTES.txt | 6 +- com.rawtherapee.RawTherapee.appdata.xml | 1 + rtdata/images/svg/splash.svg | 158 ++++++++++++------------ 3 files changed, 83 insertions(+), 82 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index c585019d0..450bae2d6 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,6 +1,6 @@ -RAWTHERAPEE 5.6-rc1 RELEASE NOTES +RAWTHERAPEE 5.6-rc2 RELEASE NOTES -This is RawTherapee 5.6 Release Candidate 1, released on 2019-04-10. This is not the final release yet. +This is RawTherapee 5.6 Release Candidate 2, released on 2019-04-17. This is not the final release yet. Start by reading the "Getting Started" article on RawPedia: http://rawpedia.rawtherapee.com/ @@ -20,7 +20,7 @@ In order to use RawTherapee efficiently you should know that: - There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page! New features since 5.5: -- HiDPI support, for a smooth and sharp user interface regardless of screen size. Scaling in RawTherapee depends on font size, DPI and display scaling. No scaling occurs when the font size is set to 9pt, DPI is set to 96 (or 72 for macOS) and scaling is set to 1 (100%). +- Pseudo-HiDPI support, for a smooth and sharp user interface regardless of screen size. Pseudo-HiDPI mode is disabled by default, enable it in Preferences > General > Appearance. Scaling in RawTherapee depends on font size, DPI and display scaling. While scaling has been tested to work well in Windows, Linux and macOS, there are some macOS display modes which are incompatible with it, specifically those modes suffixed by "(HiDPI)" in macOS Display settings. Some versions of macOS (10.14.*) seem to not list any modes, in which case the user must just give it a try. - Ability to move tools to a new Favorites tab, http://rawpedia.rawtherapee.com/Favorites_Tab - "Unclipped" processing profile, to make it easy to save an image while preserving data across the whole tonal range, http://rawpedia.rawtherapee.com/Unclipped - User-adjustable tiles-per-thread settings in Preferences > Performance, for users who want to find optimal values for their system. The default value of 2 tiles-per-thread performs best overall. diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index 9b5f6d1d6..d7a1a4071 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -35,6 +35,7 @@ https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594 rawtherapee.desktop + diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 2024fcd57..392298cc0 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -1047,85 +1047,6 @@ x="61.72514" id="tspan611" sodipodi:role="line">Raw - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + From 4a0a6251bb1fed86bce35471989396f478d67047 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 17 Apr 2019 14:33:36 +0200 Subject: [PATCH 050/215] generateTranslationDiffs --- rtdata/languages/Catala | 1 + rtdata/languages/Chinese (Simplified) | 1 + rtdata/languages/Czech | 1 + rtdata/languages/Deutsch | 1 + rtdata/languages/English (UK) | 1 + rtdata/languages/English (US) | 1 + rtdata/languages/Espanol | 1 + rtdata/languages/Italiano | 1 + rtdata/languages/Japanese | 1 + rtdata/languages/Magyar | 1 + rtdata/languages/Nederlands | 1 + rtdata/languages/Polish | 1 + rtdata/languages/Portugues | 1 + rtdata/languages/Portugues (Brasil) | 1 + rtdata/languages/Russian | 1 + rtdata/languages/Serbian (Cyrilic Characters) | 1 + rtdata/languages/Swedish | 1 + 17 files changed, 17 insertions(+) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 38d8c7588..1a8a7ccac 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1470,6 +1470,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font !PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALL;All to 'Add' diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index df3093b9d..45d9b912a 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1495,6 +1495,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index ff8293acb..1a7cff0d4 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2296,6 +2296,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !MAIN_FRAME_PLACES_DEL;Remove !MAIN_TAB_FAVORITES;Favorites !MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CHUNKSIZES;Tiles per thread !PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic !PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index db136f330..623848843 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2359,4 +2359,5 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !QUEUE_LOCATION_TITLE;Output Location diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index ac4b15e3d..45493ac97 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -1115,6 +1115,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_ADD;Add !PREFERENCES_APPEARANCE;Appearance !PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_APPLNEXTSTARTUP;restart required !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 10ad1f740..4d510c4b5 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -1040,6 +1040,7 @@ !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font !PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_APPLNEXTSTARTUP;restart required !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 9ffbb0323..dfb4d8acc 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -2324,6 +2324,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !MAIN_FRAME_PLACES_DEL;Remove !MAIN_TAB_FAVORITES;Favorites !MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CHUNKSIZES;Tiles per thread !PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic !PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index cece7e78b..3c5a0201a 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1671,6 +1671,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 2e5e103bf..96b509789 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -2311,4 +2311,5 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !QUEUE_LOCATION_TITLE;Output Location diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 692c02c83..8c77b48a5 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1409,6 +1409,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font !PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_BEHADDALL;All to 'Add' diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 3ac4d8d6c..5cf76e569 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2129,6 +2129,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 75453e6e7..1e60f840b 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1748,6 +1748,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 57b2758a7..912687542 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -2264,6 +2264,7 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !MAIN_FRAME_PLACES_DEL;Remove +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... !PROGRESSBAR_HLREC;Highlight reconstruction... diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 8e6dbd45d..0493dfc6a 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2258,6 +2258,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !MAIN_FRAME_PLACES_DEL;Remove +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 62c3d797d..1da4584f3 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1784,6 +1784,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !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: diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 066169b04..484d4f20b 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1657,6 +1657,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font !PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Navigator guide color +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index aa6fcb340..8394d306b 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1986,6 +1986,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR;Clear From 2ffaf4baa21183f34292e1760067b4b312c6b6d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mari=C3=A1n=20Kyral?= Date: Wed, 17 Apr 2019 15:37:58 +0200 Subject: [PATCH 051/215] Update Czech translation --- rtdata/languages/Czech | 72 ++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index ff8293acb..dab8d8ad3 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -42,6 +42,7 @@ #41 2018-03-03 updated by mkyral #42 2018-04-28 updated by mkyral #43 2018-12-13 updated by mkyral +#44 2019-04-17 updated by mkyral ABOUT_TAB_BUILD;Verze ABOUT_TAB_CREDITS;Zásluhy @@ -152,6 +153,7 @@ FILEBROWSER_APPLYPROFILE;Použít FILEBROWSER_APPLYPROFILE_PARTIAL;Aplikovat - částečně FILEBROWSER_AUTODARKFRAME;Automatický tmavý snímek FILEBROWSER_AUTOFLATFIELD;Auto Flat Field +FILEBROWSER_BROWSEPATHBUTTONHINT;Klikněte pro otevření zadané cesty, obnovte složku a aplikujte klíčové slovo "find". FILEBROWSER_BROWSEPATHHINT;Vložte cestu pro procházení.\n\nKlávesové zkratky:\nCtrl-o pro přepnutí do adresního řádku.\nEnter/ Ctrl-Enter pro procházení ;\nEsc pro zrušení změn.\nShift-Esc pro zrušení přepnutí.\n\nZkratky pro cesty:\n~\t- domácí složka uživatele.\n!\t- složka s obrázky uživatele. FILEBROWSER_CACHE;Mezipaměť FILEBROWSER_CACHECLEARFROMFULL;Smazat vše včetně profilů zpracování v mezipaměti @@ -808,6 +810,7 @@ HISTORY_MSG_RAWCACORR_AUTOIT;Raw korekce CA - Iterace HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw korekce CA - Zabránit posunu barev HISTORY_MSG_RAW_BORDER;Okraj Raw HISTORY_MSG_RESIZE_ALLOWUPSCALING;Změna rozměrů - Povolit zvětšení +HISTORY_MSG_SHARPENING_BLUR;Doostření - Poloměr rozmazání HISTORY_MSG_SHARPENING_CONTRAST;Doostření - Práh kontrastu HISTORY_MSG_SH_COLORSPACE;S/S - Barevný prostor HISTORY_MSG_SOFTLIGHT_ENABLED;Měkké světlo @@ -918,6 +921,7 @@ MAIN_FRAME_FILEBROWSER;Prohlížeč souborů MAIN_FRAME_FILEBROWSER_TOOLTIP;Prohlížeč souborů.\nZkratka: Ctrl-F2 MAIN_FRAME_PLACES;Místa MAIN_FRAME_PLACES_ADD;Přidat +MAIN_FRAME_PLACES_DEL;Smazat MAIN_FRAME_QUEUE;Fronta MAIN_FRAME_QUEUE_TOOLTIP;Fronta zpracování.\nZkratka: Ctrl-F3 MAIN_FRAME_RECENT;Poslední složky @@ -946,6 +950,8 @@ MAIN_TAB_EXIF;Exif MAIN_TAB_EXPORT; Rychlý export MAIN_TAB_EXPOSURE;Expozice MAIN_TAB_EXPOSURE_TOOLTIP;Zkratka: Alt-e +MAIN_TAB_FAVORITES;Oblíbené +MAIN_TAB_FAVORITES_TOOLTIP;Zkratka: Alt-u MAIN_TAB_FILTER; Filtr MAIN_TAB_INSPECT; Prohlížení MAIN_TAB_IPTC;IPTC @@ -1093,6 +1099,12 @@ PREFERENCES_CACHECLEAR_SAFETY;Jsou smazány pouze soubory ve vyrovnávací pamě PREFERENCES_CACHEMAXENTRIES;Maximální počet záznamů v mezipaměti PREFERENCES_CACHEOPTS;Vlastnosti mezipaměti PREFERENCES_CACHETHUMBHEIGHT;Maximální výška náhledu +PREFERENCES_CHUNKSIZES;Dlaždic na vlákno +PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demozajkování +PREFERENCES_CHUNKSIZE_RAW_CA;Raw korekce CA +PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demozajkování +PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demozajkování +PREFERENCES_CHUNKSIZE_RGB;RGB zpracování PREFERENCES_CLIPPINGIND;Indikace oříznutí PREFERENCES_CLUTSCACHE;Mezipaměť HaldCLUT PREFERENCES_CLUTSCACHE_LABEL;Maximální počet přednačtených CLUTů @@ -1180,6 +1192,8 @@ PREFERENCES_PARSEDEXTADDHINT;Vymazat označenou příponu ze seznamu. PREFERENCES_PARSEDEXTDELHINT;Vymazat označenou příponu ze seznamu. PREFERENCES_PARSEDEXTDOWNHINT;Vybranou příponu posunout na seznamu níže. PREFERENCES_PARSEDEXTUPHINT;Vybranou příponu posunout na seznamu výše. +PREFERENCES_PERFORMANCE_MEASURE;Měřit +PREFERENCES_PERFORMANCE_MEASURE_HINT;Vypisovat časy zpracování v konzoli PREFERENCES_PERFORMANCE_THREADS;Vlákna PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximální počet vláken pro Redukci šumu a Úrovně vlnky (0 = Automaticky) PREFERENCES_PREVDEMO;Metoda demozajkování náhledu @@ -1254,6 +1268,11 @@ PROFILEPANEL_TOOLTIPCOPY;Kopírovat současný profil do schránky.\nCtrl-kli PROFILEPANEL_TOOLTIPLOAD;Nahrát profil ze souboru.\nCtrl-klik umožní vybrat parametry pro nahrání. PROFILEPANEL_TOOLTIPPASTE;Vložit profil ze schránky.\nCtrl-klik umožní vybrat parametry pro vložení. PROFILEPANEL_TOOLTIPSAVE;Uložit současný profil.\nCtrl-klik umožní vybrat parametry pro uložení. +PROGRESSBAR_DECODING;Dekodování... +PROGRESSBAR_GREENEQUIL;Vyrovnání zelené... +PROGRESSBAR_HLREC;Rekonstrukce světel... +PROGRESSBAR_HOTDEADPIXELFILTER;Filtr vypálených/mrtvých pixelů... +PROGRESSBAR_LINEDENOISE;Filtr linkového rušení... PROGRESSBAR_LOADING;Načítání obrázku... PROGRESSBAR_LOADINGTHUMBS;Načítání náhledů... PROGRESSBAR_LOADJPEG;Načítání JPEG... @@ -1262,6 +1281,7 @@ PROGRESSBAR_LOADTIFF;Načítání TIFF... PROGRESSBAR_NOIMAGES;Složka neobsahuje obrázky PROGRESSBAR_PROCESSING;Zpracovávaní obrázku... PROGRESSBAR_PROCESSING_PROFILESAVED;Profil zpracování uložen +PROGRESSBAR_RAWCACORR;RAW korekce chromatické aberace... PROGRESSBAR_READY;Připraven PROGRESSBAR_SAVEJPEG;Ukládání JPEG souboru... PROGRESSBAR_SAVEPNG;Ukládání PNG souboru... @@ -1279,7 +1299,8 @@ QUEUE_DESTFILENAME;Cesta a název souboru QUEUE_FORMAT_TITLE;Formát souboru QUEUE_LOCATION_FOLDER;Ulož do souboru QUEUE_LOCATION_TEMPLATE;Použít šablonu -QUEUE_LOCATION_TEMPLATE_TOOLTIP;Lze použít následující formátovací řetězce:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nTyto formátovací řetězce reprezentují různé části cesty k uložené fotografii, některé vlastnosti fotografie nebo pořadí v dávce.\n\nNapříklad pokud má zpracovávaná fotografie následující cestu:\n/home/tomas/fotky/2010-10-31/dsc0042.nef,\nmají jednotlivé formátovací řetězce tento význam:\n%d4 = home\n%d3 = tomas\n%d2 = fotky\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tomas/fotky/2010-10-31/\n%p2 = /home/tomas/fotky/\n%p3 = /home/tomas/\n%p4 = /home/\n\n%r bude nahrazeno hodnocením fotografie. Pokud není fotografie ohodnocena, bude %r nahrazeno '0'. Pokud je fotografie v koši, bude %r nahrazeno 'x'.\n\n%s1, %s2, atd. bude nahrazeno pořadím v dávce doplněném na 1 až 9 číslic. Každé spuštění zpracování fronty jej vždy nastaví na jedna a po každé zpracované fotografii se o jedna zvýší .\n\nPokud si přejete uložit výstupní obrázek vedle originálu, napište:\n%p1/%f\n\nPokud si jej ale přejete uložit do adresáře "zpracovano" ve stejném adresáři jako otevřený obrázek, napište:\n%p1/zpracovano/%f\n\nPro uložení výstupního obrázku do adresáře\n"/home/tom/fotky/zpracovano/2010-10-31", napište:\n%p2/zpracovano/%d1/%f +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Specifikujte kam se mají uložit výstupy. Lze použít umístění zdrojových souborů, pořadí, stav koše nebo pozice ve frontě.\n\nNapříklad pokud má zpracovávaná fotografie následující cestu:\n/home/tomas/fotky/2010-10-31/dsc0042.nef,\nmají jednotlivé formátovací řetězce tento význam:\n%d4 = home\n%d3 = tomas\n%d2 = fotky\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tomas/fotky/2010-10-31/\n%p2 = /home/tomas/fotky/\n%p3 = /home/tomas/\n%p4 = /home/\n\n%r bude nahrazeno hodnocením fotografie.Pokud není fotografie ohodnocena, bude %r nahrazeno '0'.Pokud je fotografie v koši, bude %r nahrazeno 'x'.\n\nPokud si přejete uložit výstupní obrázek vedle originálu, napište:\n%p1/%f\n\nPokud si jej ale přejete uložit do adresáře "converted" ve stejném adresáři jako otevřený obrázek, napište:\n%p1/converted/%f\n\nPro uložení výstupního obrázku do adresáře"/home/tom/photos/converted/2010-10-31", napište:\n%p2/converted/%d1/%f +QUEUE_LOCATION_TITLE;Výstupní umístění QUEUE_STARTSTOP_TOOLTIP;Spustit nebo zastavit zpracování obrázků ve frontě.\n\nZkratka: Ctrl+s SAMPLEFORMAT_0;Neznámý datový formát SAMPLEFORMAT_1;8-bitový neznaménkový @@ -1316,7 +1337,7 @@ THRESHOLDSELECTOR_HINT;Držte klávesu Shift pro přesun individuálních THRESHOLDSELECTOR_T;Nahoře THRESHOLDSELECTOR_TL;Nahoře vlevo THRESHOLDSELECTOR_TR;Nahoře vpravo -TOOLBAR_TOOLTIP_COLORPICKER;Uzamykatelný Průzkumník barev\n\nPokud je nástroj aktivní:\n- Přidání sondy: levý-klik.\n- Posunutí sondy: levý-klik a posunutí.\n- Smazání sondy: pravý-klik.\n- Smazání všech sond: shift+pravý-klik.\n- Návrat k nástroji posunu: pravý-klik. +TOOLBAR_TOOLTIP_COLORPICKER;Uzamykatelný Průzkumník barev\n\nPokud je nástroj aktivní:\n- Přidání sondy: levý-klik.\n- Posunutí sondy: levý-klik a posunutí.\n- Smazání sondy: pravý-klik.\n- Smazání všech sond: Ctrl+Shift+pravý-klik.\n- Návrat k nástroji posunu: pravý-klik mimo průzkumníky. TOOLBAR_TOOLTIP_CROP;Oříznutí výběru.\nZkratka: c\nVýřez posunete pomocí Shift + tažení myši TOOLBAR_TOOLTIP_HAND;Posun.\nZkratka: h TOOLBAR_TOOLTIP_STRAIGHTEN;Vyznačení roviny / rotace.\nZkratka: s\n\nZobrazení míry rotace pomocí vodící linky na náhledu snímky. Úhel rotace je zobrazen vedle vodící linky. Střed rotace je geometrický střed snímku. @@ -1533,6 +1554,7 @@ TP_CROP_GTTRIANGLE2;Zlaté trojúhelníky 2 TP_CROP_GUIDETYPE;Druh vodítek: TP_CROP_H;Výška TP_CROP_LABEL;Ořez +TP_CROP_PPI;PPI TP_CROP_RESETCROP;Obnovit TP_CROP_SELECTCROP;Vybrat TP_CROP_W;Šířka @@ -1773,10 +1795,15 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Pracuje s posuvníkem barevnosti a CC křivkou. TP_LENSGEOM_AUTOCROP;Automatický ořez TP_LENSGEOM_FILL;Automatické vyplnění TP_LENSGEOM_LABEL;Objektiv / Geometrie +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automaticky vybráno TP_LENSPROFILE_CORRECTION_LCPFILE;LCP soubor +TP_LENSPROFILE_CORRECTION_MANUAL;Ručně vybráno TP_LENSPROFILE_LABEL;Korekční profily objektivů TP_LENSPROFILE_LENS_WARNING;Varování: crop factor použitý pro profilování objektivu je větší než crop factor fotoaparátu. Výsledek může být nesprávný. +TP_LENSPROFILE_MODE_HEADER;Profil objektivu TP_LENSPROFILE_USE_CA;Chromatická aberace +TP_LENSPROFILE_USE_GEOMETRIC;Geometrické zkreslení +TP_LENSPROFILE_USE_HEADER;Opravit TP_LENSPROFILE_USE_VIGNETTING;Vinětace TP_LOCALCONTRAST_AMOUNT;Míra TP_LOCALCONTRAST_DARKNESS;Úroveň tmavé @@ -1861,7 +1888,8 @@ TP_RAW_HD_TOOLTIP;Nižší hodnoty učiní detekci vypálených/mrtvých bodů a TP_RAW_HPHD;HPHD TP_RAW_IGV;IGV TP_RAW_IMAGENUM;Dílčí snímek -TP_RAW_IMAGENUM_TOOLTIP;Některé raw snímky obsahují několik podsnímků (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nV případě, že je pro demozajkování použita jiná metoda než Pixel Shift, tato volba určí, který podsnímek se použije.\n\nPokud je použita Pixel Shift metoda demozajkování na Pixel Shift raw soubory, budou použity všechny podsnímky a tato volba určí, který snímek bude použit pro pohyblivé části. +TP_RAW_IMAGENUM_SN;Režim SN +TP_RAW_IMAGENUM_TOOLTIP;Některé raw snímky obsahují několik podsnímků (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\n\nV případě, že je pro demozajkování použita jiná metoda než Pixel Shift, tato volba určí, který podsnímek se použije.\n\nPokud je použita Pixel Shift metoda demozajkování na Pixel Shift raw soubory, budou použity všechny podsnímky a tato volba určí, který snímek bude použit pro pohyblivé části. TP_RAW_LABEL;Demozajkování TP_RAW_LMMSE;LMMSE TP_RAW_LMMSEITERATIONS;Kroky rozšíření LMMSE @@ -1901,6 +1929,8 @@ TP_RAW_SENSOR_BAYER_LABEL;Snímač s Bayerovou maskou TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Tří průchodová dává lepší výsledky (doporučeno pro fotky s nízkým ISO).\nJednoprůchodová je téměř k nerozeznání od tří průchodové pro vysoké ISO a je rychlejší.\n+rychlá vytváří méně artefaktů v plochých oblastech TP_RAW_SENSOR_XTRANS_LABEL;Senzory s X-Trans maticí TP_RAW_VNG4;VNG4 +TP_RAW_XTRANS;X-Trans +TP_RAW_XTRANSFAST;Fast X-Trans TP_RESIZE_ALLOW_UPSCALING;Povolit zvětšení TP_RESIZE_APPLIESTO;Aplikovat na: TP_RESIZE_CROPPEDAREA;Oblast ořezu @@ -2017,6 +2047,7 @@ TP_SHARPENEDGE_LABEL;Hrany TP_SHARPENEDGE_PASSES;Počet průchodů TP_SHARPENEDGE_THREE;Pouze jas TP_SHARPENING_AMOUNT;Míra +TP_SHARPENING_BLUR;Poloměr rozostření TP_SHARPENING_CONTRAST;Práh kontrastu TP_SHARPENING_EDRADIUS;Poloměr TP_SHARPENING_EDTOLERANCE;Tolerance k hranám @@ -2286,38 +2317,3 @@ ZOOMPANEL_ZOOMFITCROPSCREEN;Přizpůsobit ořez obrazovce\nZkratka: f ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit celý obrázek obrazovce\nZkratka: Alt-f ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: + ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_TAB_FAVORITES;Favorites -!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u -!PREFERENCES_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!QUEUE_LOCATION_TITLE;Output Location -!TP_CROP_PPI;PPI -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_MODE_HEADER;Lens Profile -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;Correct -!TP_RAW_IMAGENUM_SN;SN mode -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_SHARPENING_BLUR;Blur radius From de9f416e8080aa6f47618ecde622c309000bee90 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Thu, 18 Apr 2019 18:05:19 +0200 Subject: [PATCH 052/215] TWB theme - Mac-gradient-fix --- rtdata/themes/TooWaBlue-GTK3-20_.css | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 3ed352c74..78bdb10b1 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.06 + Version 3.07 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -274,13 +274,13 @@ textview:selected, treeview:selected { margin-top: 0.25em; } #RightNotebook #HistoryPanel { - margin-top: 0.333333333333333333em; + margin-top: 0.416666666666666666em; } #HistoryPanel > border { margin-top: 1.75em; } #HistoryPanel > label { - margin: 0 0 -1.5em 0; + margin: 0 0 -1.416666666666666666em 0; padding: 0 0 0 0.083333333333333333em; } @@ -325,6 +325,7 @@ fontchooser scrolledwindow, } #Navigator label { padding: 0; + margin: 0.083333333333333333em 0 0; } /*** end ***************************************************************************************/ @@ -692,7 +693,7 @@ scrollbar:not(.overlay-indicator):hover { /*** Scale**************************************************************************************/ scale { padding: 0; - min-height: 1.833333333333333333em; + min-height: 1.833333333333333333em; margin: 0 -0.333333333333333333em; } @@ -727,7 +728,7 @@ scale.color trough { } scale trough highlight { - background-color: transparent; + background-color: @accent-color2; background-image: linear-gradient(to bottom, shade (@accent-color2,1.22), shade(@accent-color2,.88)); border: 0.083333333333333333em solid shade(@bg-dark-grey,0.9); margin: 0 -0.583333333333333333em; @@ -779,7 +780,7 @@ progressbar trough { } progressbar trough progress { - background-color: transparent; + background-color: @accent-color2; border-radius: 0.416666666666666666em; border: 0.083333333333333333em solid @bg-button-border; } @@ -816,6 +817,7 @@ progressbar.vertical trough.empty { progressbar trough.empty progress { border-color: transparent; background-image: none; + background-color:transparent; box-shadow: none; } From 73b336a3f18e43e3497d699b268313012db2af60 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 18 Apr 2019 20:43:40 +0200 Subject: [PATCH 053/215] Update FTblockDN.cc Disable StopWatch --- rtengine/FTblockDN.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 12344a25b..ccffbe59c 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -42,7 +42,7 @@ #ifdef _OPENMP #include #endif -#define BENCHMARK +//#define BENCHMARK #include "StopWatch.h" #define TS 64 // Tile size From b21d6cc6dd3c19a8f33a4b2a86e66d0f220dbaf7 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 20 Apr 2019 11:08:09 +0200 Subject: [PATCH 054/215] Small button fix (TWB & RT theme) #5292 --- rtdata/themes/TooWaBlue-GTK3-20_.css | 16 +++++++++++----- rtdata/themes/size.css | 10 ++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 78bdb10b1..7b5089430 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.07 + Version 3.08 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1568,6 +1568,10 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { padding: 0 0.13em; } +#EditorTopPanel button.narrowbutton image{ + min-width: 0.833333333333333333em; +} + /* Image close button */ #MainNotebook > header tab #CloseButton { padding: 0.166666666666666666em; @@ -1578,21 +1582,23 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 0; + min-height: 1.166666666666666666em; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin-top: 0.12em; + margin-top: 0.166666666666666666em; + margin-bottom: -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.12em; + margin: -1em; + padding: 0; min-width: 0; min-height: 0; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { min-height: 0; - min-width: 1.333333333333333333em; + min-width: 1.166666666666666666em; padding: 0; margin: 0 0.25em; border: none; diff --git a/rtdata/themes/size.css b/rtdata/themes/size.css index f333ceeb0..e3a22f337 100644 --- a/rtdata/themes/size.css +++ b/rtdata/themes/size.css @@ -647,15 +647,17 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 0; + min-height: 1.166666666666666666em; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin: 0 0 -0.166666666666666666em; + margin-top: 0.166666666666666666em; + margin-bottom: -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.166666666666666666em; + margin: -1em 0; + padding: 0; min-width: 0; min-height: 0; } @@ -663,7 +665,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { min-height: 0; min-width: 1.166666666666666666em; padding: 0; - margin: 0 0.25em; + margin: 0 0.166666666666666666em; border: none; border-radius: 0; } From a948c4a22a74da1b7ce44d9cd1bc988a7c526c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mari=C3=A1n=20Kyral?= Date: Wed, 17 Apr 2019 15:37:58 +0200 Subject: [PATCH 055/215] Update Czech translation --- rtdata/languages/Czech | 73 ++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 1a7cff0d4..3ac2273c0 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -42,6 +42,7 @@ #41 2018-03-03 updated by mkyral #42 2018-04-28 updated by mkyral #43 2018-12-13 updated by mkyral +#44 2019-04-17 updated by mkyral ABOUT_TAB_BUILD;Verze ABOUT_TAB_CREDITS;Zásluhy @@ -152,6 +153,7 @@ FILEBROWSER_APPLYPROFILE;Použít FILEBROWSER_APPLYPROFILE_PARTIAL;Aplikovat - částečně FILEBROWSER_AUTODARKFRAME;Automatický tmavý snímek FILEBROWSER_AUTOFLATFIELD;Auto Flat Field +FILEBROWSER_BROWSEPATHBUTTONHINT;Klikněte pro otevření zadané cesty, obnovte složku a aplikujte klíčové slovo "find". FILEBROWSER_BROWSEPATHHINT;Vložte cestu pro procházení.\n\nKlávesové zkratky:\nCtrl-o pro přepnutí do adresního řádku.\nEnter/ Ctrl-Enter pro procházení ;\nEsc pro zrušení změn.\nShift-Esc pro zrušení přepnutí.\n\nZkratky pro cesty:\n~\t- domácí složka uživatele.\n!\t- složka s obrázky uživatele. FILEBROWSER_CACHE;Mezipaměť FILEBROWSER_CACHECLEARFROMFULL;Smazat vše včetně profilů zpracování v mezipaměti @@ -808,6 +810,7 @@ HISTORY_MSG_RAWCACORR_AUTOIT;Raw korekce CA - Iterace HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw korekce CA - Zabránit posunu barev HISTORY_MSG_RAW_BORDER;Okraj Raw HISTORY_MSG_RESIZE_ALLOWUPSCALING;Změna rozměrů - Povolit zvětšení +HISTORY_MSG_SHARPENING_BLUR;Doostření - Poloměr rozmazání HISTORY_MSG_SHARPENING_CONTRAST;Doostření - Práh kontrastu HISTORY_MSG_SH_COLORSPACE;S/S - Barevný prostor HISTORY_MSG_SOFTLIGHT_ENABLED;Měkké světlo @@ -918,6 +921,7 @@ MAIN_FRAME_FILEBROWSER;Prohlížeč souborů MAIN_FRAME_FILEBROWSER_TOOLTIP;Prohlížeč souborů.\nZkratka: Ctrl-F2 MAIN_FRAME_PLACES;Místa MAIN_FRAME_PLACES_ADD;Přidat +MAIN_FRAME_PLACES_DEL;Smazat MAIN_FRAME_QUEUE;Fronta MAIN_FRAME_QUEUE_TOOLTIP;Fronta zpracování.\nZkratka: Ctrl-F3 MAIN_FRAME_RECENT;Poslední složky @@ -946,6 +950,8 @@ MAIN_TAB_EXIF;Exif MAIN_TAB_EXPORT; Rychlý export MAIN_TAB_EXPOSURE;Expozice MAIN_TAB_EXPOSURE_TOOLTIP;Zkratka: Alt-e +MAIN_TAB_FAVORITES;Oblíbené +MAIN_TAB_FAVORITES_TOOLTIP;Zkratka: Alt-u MAIN_TAB_FILTER; Filtr MAIN_TAB_INSPECT; Prohlížení MAIN_TAB_IPTC;IPTC @@ -1093,6 +1099,12 @@ PREFERENCES_CACHECLEAR_SAFETY;Jsou smazány pouze soubory ve vyrovnávací pamě PREFERENCES_CACHEMAXENTRIES;Maximální počet záznamů v mezipaměti PREFERENCES_CACHEOPTS;Vlastnosti mezipaměti PREFERENCES_CACHETHUMBHEIGHT;Maximální výška náhledu +PREFERENCES_CHUNKSIZES;Dlaždic na vlákno +PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demozajkování +PREFERENCES_CHUNKSIZE_RAW_CA;Raw korekce CA +PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demozajkování +PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demozajkování +PREFERENCES_CHUNKSIZE_RGB;RGB zpracování PREFERENCES_CLIPPINGIND;Indikace oříznutí PREFERENCES_CLUTSCACHE;Mezipaměť HaldCLUT PREFERENCES_CLUTSCACHE_LABEL;Maximální počet přednačtených CLUTů @@ -1180,6 +1192,8 @@ PREFERENCES_PARSEDEXTADDHINT;Vymazat označenou příponu ze seznamu. PREFERENCES_PARSEDEXTDELHINT;Vymazat označenou příponu ze seznamu. PREFERENCES_PARSEDEXTDOWNHINT;Vybranou příponu posunout na seznamu níže. PREFERENCES_PARSEDEXTUPHINT;Vybranou příponu posunout na seznamu výše. +PREFERENCES_PERFORMANCE_MEASURE;Měřit +PREFERENCES_PERFORMANCE_MEASURE_HINT;Vypisovat časy zpracování v konzoli PREFERENCES_PERFORMANCE_THREADS;Vlákna PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximální počet vláken pro Redukci šumu a Úrovně vlnky (0 = Automaticky) PREFERENCES_PREVDEMO;Metoda demozajkování náhledu @@ -1254,6 +1268,11 @@ PROFILEPANEL_TOOLTIPCOPY;Kopírovat současný profil do schránky.\nCtrl-kli PROFILEPANEL_TOOLTIPLOAD;Nahrát profil ze souboru.\nCtrl-klik umožní vybrat parametry pro nahrání. PROFILEPANEL_TOOLTIPPASTE;Vložit profil ze schránky.\nCtrl-klik umožní vybrat parametry pro vložení. PROFILEPANEL_TOOLTIPSAVE;Uložit současný profil.\nCtrl-klik umožní vybrat parametry pro uložení. +PROGRESSBAR_DECODING;Dekodování... +PROGRESSBAR_GREENEQUIL;Vyrovnání zelené... +PROGRESSBAR_HLREC;Rekonstrukce světel... +PROGRESSBAR_HOTDEADPIXELFILTER;Filtr vypálených/mrtvých pixelů... +PROGRESSBAR_LINEDENOISE;Filtr linkového rušení... PROGRESSBAR_LOADING;Načítání obrázku... PROGRESSBAR_LOADINGTHUMBS;Načítání náhledů... PROGRESSBAR_LOADJPEG;Načítání JPEG... @@ -1262,6 +1281,7 @@ PROGRESSBAR_LOADTIFF;Načítání TIFF... PROGRESSBAR_NOIMAGES;Složka neobsahuje obrázky PROGRESSBAR_PROCESSING;Zpracovávaní obrázku... PROGRESSBAR_PROCESSING_PROFILESAVED;Profil zpracování uložen +PROGRESSBAR_RAWCACORR;RAW korekce chromatické aberace... PROGRESSBAR_READY;Připraven PROGRESSBAR_SAVEJPEG;Ukládání JPEG souboru... PROGRESSBAR_SAVEPNG;Ukládání PNG souboru... @@ -1279,7 +1299,8 @@ QUEUE_DESTFILENAME;Cesta a název souboru QUEUE_FORMAT_TITLE;Formát souboru QUEUE_LOCATION_FOLDER;Ulož do souboru QUEUE_LOCATION_TEMPLATE;Použít šablonu -QUEUE_LOCATION_TEMPLATE_TOOLTIP;Lze použít následující formátovací řetězce:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nTyto formátovací řetězce reprezentují různé části cesty k uložené fotografii, některé vlastnosti fotografie nebo pořadí v dávce.\n\nNapříklad pokud má zpracovávaná fotografie následující cestu:\n/home/tomas/fotky/2010-10-31/dsc0042.nef,\nmají jednotlivé formátovací řetězce tento význam:\n%d4 = home\n%d3 = tomas\n%d2 = fotky\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tomas/fotky/2010-10-31/\n%p2 = /home/tomas/fotky/\n%p3 = /home/tomas/\n%p4 = /home/\n\n%r bude nahrazeno hodnocením fotografie. Pokud není fotografie ohodnocena, bude %r nahrazeno '0'. Pokud je fotografie v koši, bude %r nahrazeno 'x'.\n\n%s1, %s2, atd. bude nahrazeno pořadím v dávce doplněném na 1 až 9 číslic. Každé spuštění zpracování fronty jej vždy nastaví na jedna a po každé zpracované fotografii se o jedna zvýší .\n\nPokud si přejete uložit výstupní obrázek vedle originálu, napište:\n%p1/%f\n\nPokud si jej ale přejete uložit do adresáře "zpracovano" ve stejném adresáři jako otevřený obrázek, napište:\n%p1/zpracovano/%f\n\nPro uložení výstupního obrázku do adresáře\n"/home/tom/fotky/zpracovano/2010-10-31", napište:\n%p2/zpracovano/%d1/%f +QUEUE_LOCATION_TEMPLATE_TOOLTIP;Specifikujte kam se mají uložit výstupy. Lze použít umístění zdrojových souborů, pořadí, stav koše nebo pozice ve frontě.\n\nNapříklad pokud má zpracovávaná fotografie následující cestu:\n/home/tomas/fotky/2010-10-31/dsc0042.nef,\nmají jednotlivé formátovací řetězce tento význam:\n%d4 = home\n%d3 = tomas\n%d2 = fotky\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tomas/fotky/2010-10-31/\n%p2 = /home/tomas/fotky/\n%p3 = /home/tomas/\n%p4 = /home/\n\n%r bude nahrazeno hodnocením fotografie.Pokud není fotografie ohodnocena, bude %r nahrazeno '0'.Pokud je fotografie v koši, bude %r nahrazeno 'x'.\n\nPokud si přejete uložit výstupní obrázek vedle originálu, napište:\n%p1/%f\n\nPokud si jej ale přejete uložit do adresáře "converted" ve stejném adresáři jako otevřený obrázek, napište:\n%p1/converted/%f\n\nPro uložení výstupního obrázku do adresáře"/home/tom/photos/converted/2010-10-31", napište:\n%p2/converted/%d1/%f +QUEUE_LOCATION_TITLE;Výstupní umístění QUEUE_STARTSTOP_TOOLTIP;Spustit nebo zastavit zpracování obrázků ve frontě.\n\nZkratka: Ctrl+s SAMPLEFORMAT_0;Neznámý datový formát SAMPLEFORMAT_1;8-bitový neznaménkový @@ -1316,7 +1337,7 @@ THRESHOLDSELECTOR_HINT;Držte klávesu Shift pro přesun individuálních THRESHOLDSELECTOR_T;Nahoře THRESHOLDSELECTOR_TL;Nahoře vlevo THRESHOLDSELECTOR_TR;Nahoře vpravo -TOOLBAR_TOOLTIP_COLORPICKER;Uzamykatelný Průzkumník barev\n\nPokud je nástroj aktivní:\n- Přidání sondy: levý-klik.\n- Posunutí sondy: levý-klik a posunutí.\n- Smazání sondy: pravý-klik.\n- Smazání všech sond: shift+pravý-klik.\n- Návrat k nástroji posunu: pravý-klik. +TOOLBAR_TOOLTIP_COLORPICKER;Uzamykatelný Průzkumník barev\n\nPokud je nástroj aktivní:\n- Přidání sondy: levý-klik.\n- Posunutí sondy: levý-klik a posunutí.\n- Smazání sondy: pravý-klik.\n- Smazání všech sond: Ctrl+Shift+pravý-klik.\n- Návrat k nástroji posunu: pravý-klik mimo průzkumníky. TOOLBAR_TOOLTIP_CROP;Oříznutí výběru.\nZkratka: c\nVýřez posunete pomocí Shift + tažení myši TOOLBAR_TOOLTIP_HAND;Posun.\nZkratka: h TOOLBAR_TOOLTIP_STRAIGHTEN;Vyznačení roviny / rotace.\nZkratka: s\n\nZobrazení míry rotace pomocí vodící linky na náhledu snímky. Úhel rotace je zobrazen vedle vodící linky. Střed rotace je geometrický střed snímku. @@ -1533,6 +1554,7 @@ TP_CROP_GTTRIANGLE2;Zlaté trojúhelníky 2 TP_CROP_GUIDETYPE;Druh vodítek: TP_CROP_H;Výška TP_CROP_LABEL;Ořez +TP_CROP_PPI;PPI TP_CROP_RESETCROP;Obnovit TP_CROP_SELECTCROP;Vybrat TP_CROP_W;Šířka @@ -1773,10 +1795,15 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Pracuje s posuvníkem barevnosti a CC křivkou. TP_LENSGEOM_AUTOCROP;Automatický ořez TP_LENSGEOM_FILL;Automatické vyplnění TP_LENSGEOM_LABEL;Objektiv / Geometrie +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automaticky vybráno TP_LENSPROFILE_CORRECTION_LCPFILE;LCP soubor +TP_LENSPROFILE_CORRECTION_MANUAL;Ručně vybráno TP_LENSPROFILE_LABEL;Korekční profily objektivů TP_LENSPROFILE_LENS_WARNING;Varování: crop factor použitý pro profilování objektivu je větší než crop factor fotoaparátu. Výsledek může být nesprávný. +TP_LENSPROFILE_MODE_HEADER;Profil objektivu TP_LENSPROFILE_USE_CA;Chromatická aberace +TP_LENSPROFILE_USE_GEOMETRIC;Geometrické zkreslení +TP_LENSPROFILE_USE_HEADER;Opravit TP_LENSPROFILE_USE_VIGNETTING;Vinětace TP_LOCALCONTRAST_AMOUNT;Míra TP_LOCALCONTRAST_DARKNESS;Úroveň tmavé @@ -1861,7 +1888,8 @@ TP_RAW_HD_TOOLTIP;Nižší hodnoty učiní detekci vypálených/mrtvých bodů a TP_RAW_HPHD;HPHD TP_RAW_IGV;IGV TP_RAW_IMAGENUM;Dílčí snímek -TP_RAW_IMAGENUM_TOOLTIP;Některé raw snímky obsahují několik podsnímků (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nV případě, že je pro demozajkování použita jiná metoda než Pixel Shift, tato volba určí, který podsnímek se použije.\n\nPokud je použita Pixel Shift metoda demozajkování na Pixel Shift raw soubory, budou použity všechny podsnímky a tato volba určí, který snímek bude použit pro pohyblivé části. +TP_RAW_IMAGENUM_SN;Režim SN +TP_RAW_IMAGENUM_TOOLTIP;Některé raw snímky obsahují několik podsnímků (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\n\nV případě, že je pro demozajkování použita jiná metoda než Pixel Shift, tato volba určí, který podsnímek se použije.\n\nPokud je použita Pixel Shift metoda demozajkování na Pixel Shift raw soubory, budou použity všechny podsnímky a tato volba určí, který snímek bude použit pro pohyblivé části. TP_RAW_LABEL;Demozajkování TP_RAW_LMMSE;LMMSE TP_RAW_LMMSEITERATIONS;Kroky rozšíření LMMSE @@ -1901,6 +1929,8 @@ TP_RAW_SENSOR_BAYER_LABEL;Snímač s Bayerovou maskou TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Tří průchodová dává lepší výsledky (doporučeno pro fotky s nízkým ISO).\nJednoprůchodová je téměř k nerozeznání od tří průchodové pro vysoké ISO a je rychlejší.\n+rychlá vytváří méně artefaktů v plochých oblastech TP_RAW_SENSOR_XTRANS_LABEL;Senzory s X-Trans maticí TP_RAW_VNG4;VNG4 +TP_RAW_XTRANS;X-Trans +TP_RAW_XTRANSFAST;Fast X-Trans TP_RESIZE_ALLOW_UPSCALING;Povolit zvětšení TP_RESIZE_APPLIESTO;Aplikovat na: TP_RESIZE_CROPPEDAREA;Oblast ořezu @@ -2017,6 +2047,7 @@ TP_SHARPENEDGE_LABEL;Hrany TP_SHARPENEDGE_PASSES;Počet průchodů TP_SHARPENEDGE_THREE;Pouze jas TP_SHARPENING_AMOUNT;Míra +TP_SHARPENING_BLUR;Poloměr rozostření TP_SHARPENING_CONTRAST;Práh kontrastu TP_SHARPENING_EDRADIUS;Poloměr TP_SHARPENING_EDTOLERANCE;Tolerance k hranám @@ -2287,38 +2318,4 @@ 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. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius -!MAIN_FRAME_PLACES_DEL;Remove -!MAIN_TAB_FAVORITES;Favorites -!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u -!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode -!PREFERENCES_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing -!PREFERENCES_PERFORMANCE_MEASURE;Measure -!PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!PROGRESSBAR_DECODING;Decoding... -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!QUEUE_LOCATION_TITLE;Output Location -!TP_CROP_PPI;PPI -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected -!TP_LENSPROFILE_MODE_HEADER;Lens Profile -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion -!TP_LENSPROFILE_USE_HEADER;Correct -!TP_RAW_IMAGENUM_SN;SN mode -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans -!TP_SHARPENING_BLUR;Blur radius +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode \ No newline at end of file From 1eed354813c017e5e67a53db7aadec5ec9d0b3a9 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Tue, 16 Apr 2019 00:00:39 +0200 Subject: [PATCH 056/215] Update Deutsch locale --- rtdata/languages/Deutsch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 623848843..34c81e820 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -79,6 +79,7 @@ #78 19.01.2019 Erweiterung (TooWaBoo) RT 5.5 #79 24.02.2019 Erweiterung (TooWaBoo) RT 5.5 #80 25.03.2019 Erweiterung (TooWaBoo) RT 5.6 +#81 15.04.2019 Erweiterung (TooWaBoo) RT 5.6 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -2359,5 +2360,5 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode -!QUEUE_LOCATION_TITLE;Output Location +QUEUE_LOCATION_TITLE;Ausgabeverzeichnis +PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI-Modus From 541084eb0615853214c50f02172ce63f85945317 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Thu, 18 Apr 2019 18:05:19 +0200 Subject: [PATCH 057/215] TWB theme - Mac-gradient-fix --- rtdata/themes/TooWaBlue-GTK3-20_.css | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 3ed352c74..78bdb10b1 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.06 + Version 3.07 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -274,13 +274,13 @@ textview:selected, treeview:selected { margin-top: 0.25em; } #RightNotebook #HistoryPanel { - margin-top: 0.333333333333333333em; + margin-top: 0.416666666666666666em; } #HistoryPanel > border { margin-top: 1.75em; } #HistoryPanel > label { - margin: 0 0 -1.5em 0; + margin: 0 0 -1.416666666666666666em 0; padding: 0 0 0 0.083333333333333333em; } @@ -325,6 +325,7 @@ fontchooser scrolledwindow, } #Navigator label { padding: 0; + margin: 0.083333333333333333em 0 0; } /*** end ***************************************************************************************/ @@ -692,7 +693,7 @@ scrollbar:not(.overlay-indicator):hover { /*** Scale**************************************************************************************/ scale { padding: 0; - min-height: 1.833333333333333333em; + min-height: 1.833333333333333333em; margin: 0 -0.333333333333333333em; } @@ -727,7 +728,7 @@ scale.color trough { } scale trough highlight { - background-color: transparent; + background-color: @accent-color2; background-image: linear-gradient(to bottom, shade (@accent-color2,1.22), shade(@accent-color2,.88)); border: 0.083333333333333333em solid shade(@bg-dark-grey,0.9); margin: 0 -0.583333333333333333em; @@ -779,7 +780,7 @@ progressbar trough { } progressbar trough progress { - background-color: transparent; + background-color: @accent-color2; border-radius: 0.416666666666666666em; border: 0.083333333333333333em solid @bg-button-border; } @@ -816,6 +817,7 @@ progressbar.vertical trough.empty { progressbar trough.empty progress { border-color: transparent; background-image: none; + background-color:transparent; box-shadow: none; } From de28109b83f317c5e8555ef5210315139b31e9fe Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 20 Apr 2019 11:08:09 +0200 Subject: [PATCH 058/215] Small button fix (TWB & RT theme) #5292 --- rtdata/themes/TooWaBlue-GTK3-20_.css | 16 +++++++++++----- rtdata/themes/size.css | 10 ++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 78bdb10b1..7b5089430 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.07 + Version 3.08 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1568,6 +1568,10 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { padding: 0 0.13em; } +#EditorTopPanel button.narrowbutton image{ + min-width: 0.833333333333333333em; +} + /* Image close button */ #MainNotebook > header tab #CloseButton { padding: 0.166666666666666666em; @@ -1578,21 +1582,23 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 0; + min-height: 1.166666666666666666em; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin-top: 0.12em; + margin-top: 0.166666666666666666em; + margin-bottom: -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.12em; + margin: -1em; + padding: 0; min-width: 0; min-height: 0; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { min-height: 0; - min-width: 1.333333333333333333em; + min-width: 1.166666666666666666em; padding: 0; margin: 0 0.25em; border: none; diff --git a/rtdata/themes/size.css b/rtdata/themes/size.css index f333ceeb0..e3a22f337 100644 --- a/rtdata/themes/size.css +++ b/rtdata/themes/size.css @@ -647,15 +647,17 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { /* Filter buttons*/ #ToolBarPanelFileBrowser .smallbuttonbox { - min-height: 0; + min-height: 1.166666666666666666em; padding: 0; margin: 0; } #ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { - margin: 0 0 -0.166666666666666666em; + margin-top: 0.166666666666666666em; + margin-bottom: -0.166666666666666666em; } #ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { - margin: -0.166666666666666666em; + margin: -1em 0; + padding: 0; min-width: 0; min-height: 0; } @@ -663,7 +665,7 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { min-height: 0; min-width: 1.166666666666666666em; padding: 0; - margin: 0 0.25em; + margin: 0 0.166666666666666666em; border: none; border-radius: 0; } From ec059cb38d8b599c4ef851a193675a02dbff5885 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 20 Apr 2019 19:55:51 +0200 Subject: [PATCH 059/215] generateTranslationDiffs --- rtdata/languages/Czech | 6 +++++- rtdata/languages/Deutsch | 8 ++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 3ac2273c0..5b714bc36 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2318,4 +2318,8 @@ ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit celý obrázek obrazovce\nZkratka: Alt< ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: + ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - -!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode \ No newline at end of file +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 34c81e820..2398c1bb6 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -1119,6 +1119,7 @@ PREFERENCES_APPEARANCE_COLORPICKERFONT;Schriftart Farbwähler PREFERENCES_APPEARANCE_CROPMASKCOLOR;Farbe/Transparenz für Schnittmaske PREFERENCES_APPEARANCE_MAINFONT;Schriftart: PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Farbe der Navigationshilfe +PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI-Modus PREFERENCES_APPEARANCE_THEME;Oberflächendesign PREFERENCES_APPLNEXTSTARTUP;erfordert Neustart PREFERENCES_AUTOMONPROFILE;Automatisch das für den aktuellen Monitor festgelegte Profil verwenden @@ -1338,6 +1339,7 @@ QUEUE_FORMAT_TITLE;Dateiformat QUEUE_LOCATION_FOLDER;In dieses Verzeichnis speichern QUEUE_LOCATION_TEMPLATE;Dynamisches Verzeichnis verwenden QUEUE_LOCATION_TEMPLATE_TOOLTIP;Die folgenden Variablen können verwendet werden:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nDiese Variablen beinhalten bestimmte Teile des Verzeichnispfades, in welchem sich das Bild befindet, oder Attribute des Bildes.\n\nWenn zum Beispiel /home/tom/photos/2010-10-31/dsc0042.nef geöffnet wurde, dann haben die Variablen den folgenden Inhalt:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31\n%p2 = /home/tom/photos\n%p3 = /home/tom\n%p4 = /home\n\nWenn Sie die Ausgabedatei in dasselbe Verzeichnis wie das Originalbild speichern wollen, dann wählen Sie:\n%p1/%f\n\nWenn Sie die Ausgabedatei in ein Unterverzeichnis mit dem Namen "converted" schreiben wollen, dann wählen Sie:\n%p1/converted/%f\n\nWenn Sie die Ausgabedatei im Verzeichnispfad "/home/tom/photos/converted" speichern wollen, dort jedoch in einem mit dem Namen des Ursprungsverzeichnisses betitelten Unterverzeichnis, dann wählen Sie:\n%p2/converted/%d1/%f\n\nDie Variable %r enthält die Bewertung des Bildes. +QUEUE_LOCATION_TITLE;Ausgabeverzeichnis QUEUE_STARTSTOP_TOOLTIP;Startet / Stoppt die Verarbeitung\nder Warteschlange.\n\nTaste: Strg + s SAMPLEFORMAT_0;Unbekanntes Datenformat SAMPLEFORMAT_1;8 Bit ohne Vorzeichen @@ -2356,9 +2358,3 @@ 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. -!!!!!!!!!!!!!!!!!!!!!!!!! - -QUEUE_LOCATION_TITLE;Ausgabeverzeichnis -PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI-Modus From 5a4ed7317a1f9f45d0009a2f4085757927029ecf Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 20 Apr 2019 21:56:55 +0200 Subject: [PATCH 060/215] Preparing for release 5.6 --- RELEASE_NOTES.txt | 4 +- com.rawtherapee.RawTherapee.appdata.xml | 1 + rtdata/images/svg/splash.svg | 85 +------------------------ 3 files changed, 6 insertions(+), 84 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 450bae2d6..7a13d7cbb 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,6 +1,6 @@ -RAWTHERAPEE 5.6-rc2 RELEASE NOTES +RAWTHERAPEE 5.6 RELEASE NOTES -This is RawTherapee 5.6 Release Candidate 2, released on 2019-04-17. This is not the final release yet. +This is RawTherapee 5.6, released on 2019-04-20. Start by reading the "Getting Started" article on RawPedia: http://rawpedia.rawtherapee.com/ diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index d7a1a4071..32cfe30c7 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -35,6 +35,7 @@ https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594 rawtherapee.desktop + diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 392298cc0..c5f7c9708 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -479,9 +479,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.3526012" - inkscape:cx="276" - inkscape:cy="173" + inkscape:zoom="0.93979686" + inkscape:cx="-60.77221" + inkscape:cy="136.48859" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -1061,84 +1061,5 @@ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px" id="path1156" /> - - - - - - - - - - - - - - - - - - - - - From 1dfa49233961cfdb32d098efeca1bda09b394059 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 20 Apr 2019 22:36:11 +0200 Subject: [PATCH 061/215] Changes for merging release 5.6 back into dev --- RELEASE_NOTES.txt | 25 +++++++-------- rtdata/images/svg/splash.svg | 61 ++++++++++++++++++++++++++++++++++-- 2 files changed, 70 insertions(+), 16 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 7a13d7cbb..17cf14fd6 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,10 +1,17 @@ -RAWTHERAPEE 5.6 RELEASE NOTES +RAWTHERAPEE 5.6-dev RELEASE NOTES -This is RawTherapee 5.6, released on 2019-04-20. +This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them. Start by reading the "Getting Started" article on RawPedia: http://rawpedia.rawtherapee.com/ +While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that: +- Development versions only had limited testing, so there may be bugs unknown to us. +- You should report these bugs so that they get fixed for the next stable release. See + www.rawpedia.rawtherapee.com/How_to_write_useful_bug_reports +- The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version. +- Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of. + NEWS RELEVANT TO PHOTOGRAPHERS @@ -19,24 +26,16 @@ In order to use RawTherapee efficiently you should know that: - All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to a meaningful axis (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning. - There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page! -New features since 5.5: -- Pseudo-HiDPI support, for a smooth and sharp user interface regardless of screen size. Pseudo-HiDPI mode is disabled by default, enable it in Preferences > General > Appearance. Scaling in RawTherapee depends on font size, DPI and display scaling. While scaling has been tested to work well in Windows, Linux and macOS, there are some macOS display modes which are incompatible with it, specifically those modes suffixed by "(HiDPI)" in macOS Display settings. Some versions of macOS (10.14.*) seem to not list any modes, in which case the user must just give it a try. -- Ability to move tools to a new Favorites tab, http://rawpedia.rawtherapee.com/Favorites_Tab -- "Unclipped" processing profile, to make it easy to save an image while preserving data across the whole tonal range, http://rawpedia.rawtherapee.com/Unclipped -- User-adjustable tiles-per-thread settings in Preferences > Performance, for users who want to find optimal values for their system. The default value of 2 tiles-per-thread performs best overall. -- Hundreds of speed optimizations, bug fixes, and overall improvements. +New features since 5.6: +TODO. NEWS RELEVANT TO PACKAGE MAINTAINERS -New since 5.5: -- Requires librsvg >=2.40. -- GTK+ versions 3.24.2 - 3.24.6 have an issue where combobox menu scroll-arrows are missing when the combobox list does not fit vertically on the screen. As a result, users would not be able to scroll in the following comboboxes: Processing Profiles, Film Simulation, and the camera and lens profiles in Profiled Lens Correction. - In general: - To get the source code, either clone from git or use the tarball from http://rawtherapee.com/shared/source/ . Do not use the auto-generated GitHub release tarballs. -- Requires GTK+ version >=3.16, though >=3.22.24 is recommended. +- Requires GTK+ version >=3.16, though >=3.22.24 is recommended. GTK+ versions 3.24.2 - 3.24.6 have an issue with missing combobox menu arrows and are to be avoided. - RawTherapee 5 requires GCC-4.9 or higher, or Clang. - Do not use -ffast-math, it will not make RawTherapee faster but will introduce artifacts. - Use -O3, it will make RawTherapee faster with no known side-effects. diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index c5f7c9708..2e46f0e6d 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -480,8 +480,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.93979686" - inkscape:cx="-60.77221" - inkscape:cy="136.48859" + inkscape:cx="-66.836581" + inkscape:cy="136.82017" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -574,7 +574,7 @@ RawTherapee splash screen - 2019-04-10 + 2019-02-27 Maciej Dworak @@ -1061,5 +1061,60 @@ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px" id="path1156" /> + + + + + + + + + + + + + + + From 6e364e4c80416189ec8e1ef478497d13de14140f Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 22 Apr 2019 21:18:44 +0200 Subject: [PATCH 062/215] First doubleclick on an image after starting rt does not open the image. Patch provided by @Pandagrapher, fixes #5294 --- rtgui/thumbbrowserbase.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 334f00e51..fd7032931 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -788,7 +788,7 @@ bool ThumbBrowserBase::Internal::on_key_press_event (GdkEventKey* event) bool ThumbBrowserBase::Internal::on_button_press_event (GdkEventButton* event) { // Gtk signals automatically acquire the GUI (i.e. this method is enclosed by gdk_thread_enter and gdk_thread_leave) - grab_focus (); + //grab_focus (); parent->eventTime = event->time; From 26f29a5e811dffdae296f63aea9740b7cc3c80dc Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 23 Apr 2019 18:53:04 +0200 Subject: [PATCH 063/215] Added ColorMatrix for HUAWEI DLI-L22 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index f4efe6fc9..0a356f704 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -2556,6 +2556,11 @@ Camera constants: "raw_crop": [ 64, 108, 11608, 8708 ] }, + { + "make_model": [ "HUAWEI DLI-L22" ], + "dcraw_matrix": [ 6984, -812, -975, -4792, 13481, 1381, -1056, 2355, 4873 ] // ColorMatrix1 (D65, wrong order) from Adobe DNG Converter 11.2.1 + }, + // Dummy test entry to test the parser and show the format with all entries active { "make_model": "DummyMake DummyModel", From e48089daaa37ade0450b913a3f51d5dc2c50b790 Mon Sep 17 00:00:00 2001 From: scx Date: Tue, 23 Apr 2019 20:34:51 +0200 Subject: [PATCH 064/215] AppData file: Fix releases Closes #5303 --- com.rawtherapee.RawTherapee.appdata.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index 32cfe30c7..e4fb460c2 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -36,8 +36,8 @@ rawtherapee.desktop - - + + From 01894609ce10453e420e78fa075ef10399e7f0c2 Mon Sep 17 00:00:00 2001 From: scx Date: Tue, 23 Apr 2019 20:52:14 +0200 Subject: [PATCH 065/215] AppData file: Add OARS info --- com.rawtherapee.RawTherapee.appdata.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index e4fb460c2..a53ccbf06 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -26,6 +26,7 @@ pp3 graphics + CC-BY-SA-4.0 GPL-3.0+ https://github.com/Beep6581/RawTherapee/issues/new From d8482d8e00ab7ffd2f4119a3557547c806331e08 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 24 Apr 2019 16:34:46 +0200 Subject: [PATCH 066/215] Bumped year in licence file --- LICENSE.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE.txt b/LICENSE.txt index 7fb1c6515..0aa0df7c8 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ RawTherapee - A powerful, cross-platform raw image processing program. Copyright (C) 2004-2012 Gabor Horvath - Copyright (C) 2010-2018 RawTherapee development team. + Copyright (C) 2010-2019 RawTherapee development team. RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by From 3289835ca1076b513ba8369c3f98886b5a27ee30 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 24 Apr 2019 16:36:29 +0200 Subject: [PATCH 067/215] Bumped minimum CMake version to 3.5, closes #5302 --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f48ac6f4..f13231586 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,8 @@ +cmake_minimum_required(VERSION 3.5) + +# Compiler id for Apple Clang if(APPLE) - cmake_minimum_required(VERSION 3.3) cmake_policy(SET CMP0025 NEW) -else() - cmake_minimum_required(VERSION 2.8.8) endif() # Must stay before the project() command: From bd2ee13e7bcded7ecb8dc599d3c0c3488362dcd9 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 25 Apr 2019 21:09:35 +0200 Subject: [PATCH 068/215] revert commit 6e364e4, fixes #5308 --- rtgui/thumbbrowserbase.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index fd7032931..334f00e51 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -788,7 +788,7 @@ bool ThumbBrowserBase::Internal::on_key_press_event (GdkEventKey* event) bool ThumbBrowserBase::Internal::on_button_press_event (GdkEventButton* event) { // Gtk signals automatically acquire the GUI (i.e. this method is enclosed by gdk_thread_enter and gdk_thread_leave) - //grab_focus (); + grab_focus (); parent->eventTime = event->time; From a2e2ace1c879aeafc581227602ebeada7625326d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 28 Apr 2019 17:15:00 +0200 Subject: [PATCH 069/215] Added colormatrix for samsung SM-N960F #5311 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 0a356f704..2492eec28 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -2561,6 +2561,11 @@ Camera constants: "dcraw_matrix": [ 6984, -812, -975, -4792, 13481, 1381, -1056, 2355, 4873 ] // ColorMatrix1 (D65, wrong order) from Adobe DNG Converter 11.2.1 }, + { + "make_model": [ "samsung SM-N960F" ], + "dcraw_matrix": [ 6632, -622, -1104, -5659, 14819, 773, -1846, 4465, 4967 ] // ColorMatrix1 from Adobe DNG Converter 11.1 + }, + // Dummy test entry to test the parser and show the format with all entries active { "make_model": "DummyMake DummyModel", From de3d667ed7982736ae2648b4418ae9f1b6086c2b Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 13 May 2019 15:15:37 +0200 Subject: [PATCH 070/215] review adjuster class: reduce memory allocations/deallocations, also small speedup for adjuster creation --- rtgui/adjuster.cc | 293 +++++++++++++++++---------------------- rtgui/adjuster.h | 41 +++--- rtgui/dirpyrequalizer.cc | 2 +- rtgui/wavelet.cc | 4 +- 4 files changed, 151 insertions(+), 189 deletions(-) diff --git a/rtgui/adjuster.cc b/rtgui/adjuster.cc index 46aa3952b..f2ea3f0b4 100644 --- a/rtgui/adjuster.cc +++ b/rtgui/adjuster.cc @@ -27,81 +27,80 @@ #define MIN_RESET_BUTTON_HEIGHT 17 -static double one2one(double val) +namespace { +double one2one(double val) { return val; } +} + +Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1, Gtk::Image *imgIcon2, double2double_fun slider2value_, double2double_fun value2slider_) : + adjustmentName(std::move(vlabel)), + grid(nullptr), + label(nullptr), + imageIcon1(imgIcon1), + automatic(nullptr), + adjusterListener(nullptr), + editedCheckBox(nullptr), + afterReset(false), + blocked(false), + addMode(false), + eventPending(false), + vMin(vmin), + vMax(vmax), + vStep(vstep), + logBase(0), + logPivot(0), + logAnchorMiddle(false), + value2slider(value2slider_ ? value2slider_ : one2one), + slider2value(slider2value_ ? slider2value_ : one2one), + delay(options.adjusterMinDelay) -Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1, Gtk::Image *imgIcon2, double2double_fun slider2value_, double2double_fun value2slider_) { - set_hexpand(true); set_vexpand(false); - label = nullptr; - adjusterListener = nullptr; - afterReset = false; - blocked = false; - automatic = nullptr; - eventPending = false; - grid = NULL; - imageIcon1 = imgIcon1; - - logBase = 0; - logPivot = 0; - logAnchorMiddle = false; if (imageIcon1) { setExpandAlignProperties(imageIcon1, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); } - imageIcon2 = imgIcon2; - - if (imageIcon2) { - setExpandAlignProperties(imageIcon2, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + if (imgIcon2) { + setExpandAlignProperties(imgIcon2, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); } - slider2value = slider2value_ ? slider2value_ : one2one; - value2slider = value2slider_ ? value2slider_ : one2one; - vMin = vmin; - vMax = vmax; - vStep = vstep; - addMode = false; - - delay = options.adjusterMinDelay; - set_column_spacing(0); set_column_homogeneous(false); set_row_spacing(0); set_row_homogeneous(false); - editedCheckBox = nullptr; - - if (!vlabel.empty()) { - adjustmentName = vlabel; - label = Gtk::manage (new Gtk::Label (adjustmentName)); + if (!adjustmentName.empty()) { + label = Gtk::manage(new Gtk::Label(adjustmentName)); setExpandAlignProperties(label, true, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); } - reset = Gtk::manage (new Gtk::Button ()); - reset->add (*Gtk::manage (new RTImage ("undo-small.png", "redo-small.png"))); + reset = Gtk::manage(new Gtk::Button()); + + reset->add(*Gtk::manage(new RTImage("undo-small.png", "redo-small.png"))); setExpandAlignProperties(reset, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - reset->set_relief (Gtk::RELIEF_NONE); - reset->set_tooltip_markup (M("ADJUSTER_RESET_TO_DEFAULT")); + reset->set_relief(Gtk::RELIEF_NONE); + reset->set_tooltip_markup(M("ADJUSTER_RESET_TO_DEFAULT")); reset->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); reset->set_can_focus(false); - spin = Gtk::manage (new MySpinButton ()); + spin = Gtk::manage(new MySpinButton()); + setExpandAlignProperties(spin, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); spin->set_input_purpose(Gtk::INPUT_PURPOSE_DIGITS); - reset->set_size_request (-1, spin->get_height() > MIN_RESET_BUTTON_HEIGHT ? spin->get_height() : MIN_RESET_BUTTON_HEIGHT); - - slider = Gtk::manage (new MyHScale ()); + reset->set_size_request(-1, spin->get_height() > MIN_RESET_BUTTON_HEIGHT ? spin->get_height() : MIN_RESET_BUTTON_HEIGHT); + slider = Gtk::manage(new MyHScale()); setExpandAlignProperties(slider, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - slider->set_draw_value (false); + slider->set_draw_value(false); //slider->set_has_origin(false); // ------------------ This will remove the colored part on the left of the slider's knob - if (vlabel.empty()) { + setLimits(vmin, vmax, vstep, vdefault); + + if (adjustmentName.empty()) { // No label, everything goes in a single row attach_next_to(*slider, Gtk::POS_LEFT, 1, 1); @@ -109,9 +108,9 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep attach_next_to(*imageIcon1, *slider, Gtk::POS_LEFT, 1, 1); } - if (imageIcon2) { - attach_next_to(*imageIcon2, *slider, Gtk::POS_RIGHT, 1, 1); - attach_next_to(*spin, *imageIcon2, Gtk::POS_RIGHT, 1, 1); + if (imgIcon2) { + attach_next_to(*imgIcon2, *slider, Gtk::POS_RIGHT, 1, 1); + attach_next_to(*spin, *imgIcon2, Gtk::POS_RIGHT, 1, 1); } else { attach_next_to(*spin, *slider, Gtk::POS_RIGHT, 1, 1); } @@ -129,9 +128,9 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep grid->attach_next_to(*imageIcon1, *slider, Gtk::POS_LEFT, 1, 1); } - if (imageIcon2) { - grid->attach_next_to(*imageIcon2, Gtk::POS_RIGHT, 1, 1); - grid->attach_next_to(*reset, *imageIcon2, Gtk::POS_RIGHT, 1, 1); + if (imgIcon2) { + grid->attach_next_to(*imgIcon2, Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*reset, *imgIcon2, Gtk::POS_RIGHT, 1, 1); } else { grid->attach_next_to(*reset, *slider, Gtk::POS_RIGHT, 1, 1); } @@ -139,37 +138,31 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep attach_next_to(*grid, *label, Gtk::POS_BOTTOM, 2, 1); } - setLimits (vmin, vmax, vstep, vdefault); - - defaultVal = shapeValue (vdefault); - ctorDefaultVal = shapeValue (vdefault); + defaultVal = ctorDefaultVal = shapeValue(vdefault); editedState = defEditedState = Irrelevant; - autoState = Irrelevant; sliderChange = slider->signal_value_changed().connect( sigc::mem_fun(*this, &Adjuster::sliderChanged) ); - spinChange = spin->signal_value_changed().connect ( sigc::mem_fun(*this, &Adjuster::spinChanged), true); + spinChange = spin->signal_value_changed().connect( sigc::mem_fun(*this, &Adjuster::spinChanged), true); reset->signal_button_release_event().connect_notify( sigc::mem_fun(*this, &Adjuster::resetPressed) ); - show_all (); + show_all(); } Adjuster::~Adjuster () { - sliderChange.block (true); - spinChange.block (true); - delayConnection.block (true); + sliderChange.block(true); + spinChange.block(true); + delayConnection.block(true); adjusterListener = nullptr; - if (automatic) { - delete automatic; - } + delete automatic; } void Adjuster::addAutoButton (Glib::ustring tooltip) { if (!automatic) { - automatic = new Gtk::CheckButton (); + automatic = new Gtk::CheckButton(); //automatic->add (*Gtk::manage (new RTImage ("gears.png"))); automatic->set_tooltip_markup(tooltip.length() ? Glib::ustring::compose("%1\n\n%2", M("GENERAL_AUTO"), tooltip) : M("GENERAL_AUTO")); setExpandAlignProperties(automatic, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); @@ -185,15 +178,6 @@ void Adjuster::addAutoButton (Glib::ustring tooltip) } } -void Adjuster::delAutoButton () -{ - if (automatic) { - removeIfThere(grid, automatic); - delete automatic; - automatic = nullptr; - } -} - void Adjuster::throwOnButtonRelease(bool throwOnBRelease) { @@ -221,7 +205,7 @@ void Adjuster::throwOnButtonRelease(bool throwOnBRelease) void Adjuster::setDefault (double def) { - defaultVal = shapeValue (def); + defaultVal = shapeValue(def); } void Adjuster::setDefaultEditedState (EditedState eState) @@ -258,7 +242,7 @@ void Adjuster::sliderReleased (GdkEventButton* event) if ((event != nullptr) && (event->button == 1)) { if (delayConnection.connected()) { - delayConnection.disconnect (); + delayConnection.disconnect(); } notifyListener(); @@ -270,7 +254,7 @@ void Adjuster::spinReleased (GdkEventButton* event) if ((event != nullptr) && delay == 0) { if (delayConnection.connected()) { - delayConnection.disconnect (); + delayConnection.disconnect(); } notifyListener(); @@ -283,12 +267,11 @@ void Adjuster::resetValue (bool toInitial) editedState = defEditedState; if (editedCheckBox) { - editedChange.block (true); - editedCheckBox->set_active (defEditedState == Edited); - editedChange.block (false); + editedChange.block(true); + editedCheckBox->set_active(defEditedState == Edited); + editedChange.block(false); } - refreshLabelStyle (); } afterReset = true; @@ -317,32 +300,35 @@ void Adjuster::resetPressed (GdkEventButton* event) } } -double Adjuster::shapeValue (double a) +double Adjuster::shapeValue (double a) const { - double val = round(a * pow(double(10), digits)) / pow(double(10), digits); + const double pow10 = pow(10.0, digits); + const double val = round(a * pow10) / pow10; return val == -0.0 ? 0.0 : val; } void Adjuster::setLimits (double vmin, double vmax, double vstep, double vdefault) { + sliderChange.block(true); + spinChange.block(true); - sliderChange.block (true); - spinChange.block (true); + double pow10 = vstep; + for (digits = 0; fabs(pow10 - floor(pow10)) > 0.000000000001; digits++, pow10 *= 10.0); - for (digits = 0; fabs(vstep * pow(double(10), digits) - floor(vstep * pow(double(10), digits))) > 0.000000000001; digits++); - - spin->set_digits (digits); - spin->set_increments (vstep, 2.0 * vstep); - spin->set_range (vmin, vmax); + const double shapeVal = shapeValue(vdefault); + spin->set_digits(digits); + spin->set_increments(vstep, 2.0 * vstep); + spin->set_range(vmin, vmax); spin->updateSize(); - spin->set_value (shapeValue(vdefault)); - slider->set_digits (digits); - slider->set_increments (vstep, 2.0 * vstep); - slider->set_range (addMode ? vmin : value2slider(vmin), addMode ? vmax : value2slider(vmax)); - setSliderValue(addMode ? shapeValue(vdefault) : value2slider(shapeValue(vdefault))); - //defaultVal = shapeValue (vdefault); - sliderChange.block (false); - spinChange.block (false); + spin->set_value(shapeVal); + + slider->set_digits(digits); + slider->set_increments(vstep, 2.0 * vstep); + slider->set_range(addMode ? vmin : value2slider(vmin), addMode ? vmax : value2slider(vmax)); + setSliderValue(addMode ? shapeVal : value2slider(shapeVal)); + + sliderChange.block(false); + spinChange.block(false); } void Adjuster::setAddMode(bool addM) @@ -369,39 +355,36 @@ void Adjuster::setAddMode(bool addM) void Adjuster::spinChanged () { - if (delayConnection.connected()) { - delayConnection.disconnect (); + delayConnection.disconnect(); } - sliderChange.block (true); - setSliderValue(addMode ? spin->get_value () : value2slider(spin->get_value ())); - sliderChange.block (false); + sliderChange.block(true); + setSliderValue(addMode ? spin->get_value() : value2slider(spin->get_value())); + sliderChange.block(false); if (delay == 0) { if (adjusterListener && !blocked) { if (!buttonReleaseSlider.connected() || afterReset) { eventPending = false; - adjusterListener->adjusterChanged (this, spin->get_value ()); + adjusterListener->adjusterChanged(this, spin->get_value()); } else { eventPending = true; } } } else { eventPending = true; - delayConnection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &Adjuster::notifyListener), delay); + delayConnection = Glib::signal_timeout().connect(sigc::mem_fun(*this, &Adjuster::notifyListener), delay); } if (editedState == UnEdited) { editedState = Edited; if (editedCheckBox) { - editedChange.block (true); - editedCheckBox->set_active (true); - editedChange.block (false); + editedChange.block(true); + editedCheckBox->set_active(true); + editedChange.block(false); } - - refreshLabelStyle (); } afterReset = false; @@ -411,38 +394,36 @@ void Adjuster::sliderChanged () { if (delayConnection.connected()) { - delayConnection.disconnect (); + delayConnection.disconnect(); } - spinChange.block (true); - double v = shapeValue(getSliderValue()); - spin->set_value (addMode ? v : slider2value(v)); - spinChange.block (false); + spinChange.block(true); + const double v = shapeValue(getSliderValue()); + spin->set_value(addMode ? v : slider2value(v)); + spinChange.block(false); if (delay == 0 || afterReset) { if (adjusterListener && !blocked) { if (!buttonReleaseSlider.connected() || afterReset) { eventPending = false; - adjusterListener->adjusterChanged (this, spin->get_value ()); + adjusterListener->adjusterChanged(this, spin->get_value()); } else { eventPending = true; } } } else { eventPending = true; - delayConnection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &Adjuster::notifyListener), delay); + delayConnection = Glib::signal_timeout().connect(sigc::mem_fun(*this, &Adjuster::notifyListener), delay); } if (!afterReset && editedState == UnEdited) { editedState = Edited; if (editedCheckBox) { - editedChange.block (true); - editedCheckBox->set_active (true); - editedChange.block (false); + editedChange.block(true); + editedCheckBox->set_active(true); + editedChange.block(false); } - - refreshLabelStyle (); } afterReset = false; @@ -450,20 +431,19 @@ void Adjuster::sliderChanged () void Adjuster::setValue (double a) { - - spinChange.block (true); - sliderChange.block (true); - spin->set_value (shapeValue (a)); - setSliderValue(addMode ? shapeValue(a) : value2slider(shapeValue (a))); - sliderChange.block (false); - spinChange.block (false); + spinChange.block(true); + sliderChange.block(true); + spin->set_value(shapeValue(a)); + setSliderValue(addMode ? shapeValue(a) : value2slider(shapeValue(a))); + sliderChange.block(false); + spinChange.block(false); afterReset = false; } void Adjuster::setAutoValue (bool a) { if (automatic) { - bool oldVal = autoChange.block(true); + const bool oldVal = autoChange.block(true); automatic->set_active(a); autoChange.block(oldVal); @@ -488,7 +468,7 @@ bool Adjuster::notifyListener () { if (eventPending && adjusterListener != nullptr && !blocked) { - adjusterListener->adjusterChanged (this, spin->get_value ()); + adjusterListener->adjusterChanged(this, spin->get_value()); } eventPending = false; @@ -509,12 +489,12 @@ bool Adjuster::notifyListenerAutoToggled () void Adjuster::setEnabled (bool enabled) { - bool autoVal = automatic && !editedCheckBox ? automatic->get_active() : true; - spin->set_sensitive (enabled && autoVal); - slider->set_sensitive (enabled && autoVal); + const bool autoVal = automatic && !editedCheckBox ? automatic->get_active() : true; + spin->set_sensitive(enabled && autoVal); + slider->set_sensitive(enabled && autoVal); if (automatic) { - automatic->set_sensitive (enabled); + automatic->set_sensitive(enabled); } } @@ -523,13 +503,12 @@ void Adjuster::setEditedState (EditedState eState) if (editedState != eState) { if (editedCheckBox) { - editedChange.block (true); - editedCheckBox->set_active (eState == Edited); - editedChange.block (false); + editedChange.block(true); + editedCheckBox->set_active(eState == Edited); + editedChange.block(false); } editedState = eState; - refreshLabelStyle (); } } @@ -537,7 +516,7 @@ EditedState Adjuster::getEditedState () { if (editedState != Irrelevant && editedCheckBox) { - editedState = editedCheckBox->get_active () ? Edited : UnEdited; + editedState = editedCheckBox->get_active() ? Edited : UnEdited; } return editedState; @@ -551,7 +530,7 @@ void Adjuster::showEditedCB () } if (!editedCheckBox) { - editedCheckBox = Gtk::manage(new Gtk::CheckButton (adjustmentName)); + editedCheckBox = Gtk::manage(new Gtk::CheckButton(adjustmentName)); editedCheckBox->set_vexpand(false); if (grid) { @@ -576,50 +555,38 @@ void Adjuster::showEditedCB () } } -void Adjuster::refreshLabelStyle () -{ - - /* Glib::RefPtr style = label->get_style_context (); - Pango::FontDescription fd = style->get_font (); - fd.set_weight (editedState==Edited ? Pango::WEIGHT_BOLD : Pango::WEIGHT_NORMAL); - style->set_font (fd); - label->set_style (style); - label->queue_draw ();*/ -} - void Adjuster::editedToggled () { if (adjusterListener && !blocked) { - adjusterListener->adjusterChanged (this, spin->get_value ()); + adjusterListener->adjusterChanged(this, spin->get_value()); } eventPending = false; } -void Adjuster::trimValue (double &val) +void Adjuster::trimValue (double &val) const { val = rtengine::LIM(val, vMin, vMax); } -void Adjuster::trimValue (int &val) +void Adjuster::trimValue (int &val) const { - val = rtengine::LIM(val, static_cast(vMin), static_cast(vMax)); + val = rtengine::LIM(val, vMin, vMax); } -void Adjuster::trimValue (float &val) +void Adjuster::trimValue (float &val) const { - val = rtengine::LIM(val, static_cast(vMin), static_cast(vMax)); + val = rtengine::LIM(val, vMin, vMax); } - -inline double Adjuster::getSliderValue() +inline double Adjuster::getSliderValue() const { double val = slider->get_value(); if (logBase) { @@ -683,15 +650,15 @@ inline void Adjuster::setSliderValue(double val) void Adjuster::setLogScale(double base, double pivot, bool anchorMiddle) { - spinChange.block (true); - sliderChange.block (true); + spinChange.block(true); + sliderChange.block(true); - double cur = getSliderValue(); + const double cur = getSliderValue(); logBase = base; logPivot = pivot; logAnchorMiddle = anchorMiddle; setSliderValue(cur); - sliderChange.block (false); - spinChange.block (false); + sliderChange.block(false); + spinChange.block(false); } diff --git a/rtgui/adjuster.h b/rtgui/adjuster.h index 169bd7d12..2f3b10b18 100644 --- a/rtgui/adjuster.h +++ b/rtgui/adjuster.h @@ -43,7 +43,6 @@ protected: Gtk::Grid* grid; Gtk::Label* label; Gtk::Image *imageIcon1; - Gtk::Image *imageIcon2; MyHScale* slider; MySpinButton* spin; Gtk::Button* reset; @@ -60,7 +59,6 @@ protected: double ctorDefaultVal; // default value at construction time EditedState editedState; EditedState defEditedState; - EditedState autoState; int digits; Gtk::CheckButton* editedCheckBox; bool afterReset; @@ -75,28 +73,25 @@ protected: double logPivot; bool logAnchorMiddle; - double shapeValue (double a); - void refreshLabelStyle (); + double shapeValue (double a) const; double2double_fun value2slider, slider2value; - double getSliderValue(); + double getSliderValue() const; void setSliderValue(double val); public: int delay; - Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1 = nullptr, Gtk::Image *imgIcon2 = nullptr, double2double_fun slider2value = nullptr, double2double_fun value2slider = nullptr); + Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1 = nullptr, Gtk::Image *imgIcon2 = nullptr, double2double_fun slider2value_ = nullptr, double2double_fun value2slider_ = nullptr); ~Adjuster () override; // Add an "Automatic" checkbox next to the reset button. void addAutoButton(Glib::ustring tooltip = ""); - // Remove the "Automatic" checkbox next to the reset button. - void delAutoButton(); // Send back the value of og the Auto checkbox bool getAutoValue () { - return automatic != nullptr ? automatic->get_active () : false; + return automatic ? automatic->get_active() : false; } void setAutoValue (bool a); bool notifyListenerAutoToggled (); @@ -107,7 +102,7 @@ public: automatic->set_inconsistent(i); } } - bool getAutoInconsistent () + bool getAutoInconsistent () const { return automatic ? automatic->get_inconsistent() : true /* we have to return something */; } @@ -118,27 +113,27 @@ public: } // return the value trimmed to the limits at construction time - double getValue () + double getValue () const { - return shapeValue(spin->get_value ()); + return shapeValue(spin->get_value()); } // return the value trimmed to the limits at construction time - int getIntValue () + int getIntValue () const { - return spin->get_value_as_int (); + return spin->get_value_as_int(); } // return the value trimmed to the limits at construction time, // method only used by the history manager, so decoration is added if addMode=true - Glib::ustring getTextValue () + Glib::ustring getTextValue () const { if (addMode) { - return Glib::ustring::compose("%1", spin->get_text ()); + return Glib::ustring::compose("%1", spin->get_text()); } else { - return spin->get_text (); + return spin->get_text(); } } - void setLabel (Glib::ustring lbl) + void setLabel (const Glib::ustring &lbl) { label->set_label(lbl); } @@ -165,7 +160,7 @@ public: } void setAddMode(bool addM); - bool getAddMode() + bool getAddMode() const { return addMode; }; @@ -177,11 +172,11 @@ public: void resetValue (bool toInitial); void resetPressed (GdkEventButton* event); void editedToggled (); - void trimValue (double &val); - void trimValue (float &val); - void trimValue (int &val); + void trimValue (double &val) const; + void trimValue (float &val) const; + void trimValue (int &val) const; - void setLogScale(double base, double pivot, bool anchorMiddle=false); + void setLogScale(double base, double pivot, bool anchorMiddle = false); }; #endif diff --git a/rtgui/dirpyrequalizer.cc b/rtgui/dirpyrequalizer.cc index b63243465..5f557c0f1 100644 --- a/rtgui/dirpyrequalizer.cc +++ b/rtgui/dirpyrequalizer.cc @@ -99,7 +99,7 @@ DirPyrEqualizer::DirPyrEqualizer () : FoldableToolPanel(this, "dirpyrequalizer", ss += Glib::ustring::compose(" (%1)", M("TP_DIRPYREQUALIZER_LUMACOARSEST")); } - multiplier[i] = Gtk::manage ( new Adjuster (ss, 0, 4, 0.01, 1.0) ); + multiplier[i] = Gtk::manage(new Adjuster(std::move(ss), 0, 4, 0.01, 1.0)); multiplier[i]->setAdjusterListener(this); pack_start(*multiplier[i]); } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index b9cf792db..942608414 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -290,7 +290,7 @@ Wavelet::Wavelet() : ss = Glib::ustring::compose( "%1", (i + 1)); } - correction[i] = Gtk::manage ( new Adjuster (ss, -100, 350, 1, 0) ); + correction[i] = Gtk::manage(new Adjuster(std::move(ss), -100, 350, 1, 0)); correction[i]->setAdjusterListener(this); levBox->pack_start(*correction[i]); } @@ -398,7 +398,7 @@ Wavelet::Wavelet() : ss = Glib::ustring::compose( "%1", (i + 1)); } - correctionch[i] = Gtk::manage ( new Adjuster (ss, -100, 100, 1, 0) ); + correctionch[i] = Gtk::manage(new Adjuster(std::move(ss), -100, 100, 1, 0)); correctionch[i]->setAdjusterListener(this); chBox->pack_start(*correctionch[i]); } From 1be40beafad4e791536c5c994589899904d5d5ba Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 13 May 2019 22:54:00 +0200 Subject: [PATCH 071/215] Scan clut folder: use std::set instead of std::set --- rtgui/filmsimulation.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index 30ae09f9a..915e3a6d3 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -8,6 +8,8 @@ #include "../rtengine/clutstore.h" #include "../rtengine/procparams.h" +#define BENCHMARK +#include "../rtengine/StopWatch.h" using namespace rtengine; using namespace rtengine::procparams; @@ -305,6 +307,7 @@ ClutComboBox::ClutModel::ClutModel(const Glib::ustring &path) int ClutComboBox::ClutModel::parseDir(const Glib::ustring& path) { + BENCHFUNMICRO if (path.empty() || !Glib::file_test(path, Glib::FILE_TEST_IS_DIR)) { return 0; } @@ -364,7 +367,7 @@ int ClutComboBox::ClutModel::parseDir(const Glib::ustring& path) } // Fill menu structure with CLUT files - std::set entries; + std::set entries; unsigned long fileCount = 0; From ea2e9dd27434aefd629b8abc5d18ffe88e0e0752 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 13 May 2019 23:04:14 +0200 Subject: [PATCH 072/215] Scan clut folder: check for .png first because most of cluts are png --- rtgui/filmsimulation.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index 915e3a6d3..3c0c1de23 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -396,7 +396,7 @@ int ClutComboBox::ClutModel::parseDir(const Glib::ustring& path) HaldCLUT::splitClutFilename (entry, name, extension, profileName); extension = extension.casefold(); - if (extension.compare("tif") != 0 && extension.compare("png") != 0) { + if (extension != "png" && extension != "tif") { continue; } From 141e9f632fb7a7c61faebd4e623ff05cf2fda4bf Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 13 May 2019 23:12:40 +0200 Subject: [PATCH 073/215] Scan clut folder: Don't check for unused profile --- rtengine/clutstore.cc | 25 ++++++++++++++----------- rtengine/clutstore.h | 3 ++- rtgui/filmsimulation.cc | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/rtengine/clutstore.cc b/rtengine/clutstore.cc index 9ee976907..10b7a2c38 100644 --- a/rtengine/clutstore.cc +++ b/rtengine/clutstore.cc @@ -270,7 +270,8 @@ void rtengine::HaldCLUT::splitClutFilename( const Glib::ustring& filename, Glib::ustring& name, Glib::ustring& extension, - Glib::ustring& profile_name + Glib::ustring& profile_name, + bool checkProfile ) { Glib::ustring basename = Glib::path_get_basename(filename); @@ -284,17 +285,19 @@ void rtengine::HaldCLUT::splitClutFilename( name = basename; } - profile_name = "sRGB"; + if (checkProfile) { + profile_name = "sRGB"; - if (!name.empty()) { - for (const auto& working_profile : rtengine::ICCStore::getInstance()->getWorkingProfiles()) { - if ( - !working_profile.empty() // This isn't strictly needed, but an empty wp name should be skipped anyway - && std::search(name.rbegin(), name.rend(), working_profile.rbegin(), working_profile.rend()) == name.rbegin() - ) { - profile_name = working_profile; - name.erase(name.size() - working_profile.size()); - break; + if (!name.empty()) { + for (const auto& working_profile : rtengine::ICCStore::getInstance()->getWorkingProfiles()) { + if ( + !working_profile.empty() // This isn't strictly needed, but an empty wp name should be skipped anyway + && std::search(name.rbegin(), name.rend(), working_profile.rbegin(), working_profile.rend()) == name.rbegin() + ) { + profile_name = working_profile; + name.erase(name.size() - working_profile.size()); + break; + } } } } diff --git a/rtengine/clutstore.h b/rtengine/clutstore.h index a43526f78..cd94bc18b 100644 --- a/rtengine/clutstore.h +++ b/rtengine/clutstore.h @@ -39,7 +39,8 @@ public: const Glib::ustring& filename, Glib::ustring& name, Glib::ustring& extension, - Glib::ustring& profile_name + Glib::ustring& profile_name, + bool checkProfile = true ); private: diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index 3c0c1de23..dd29f1313 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -393,7 +393,7 @@ int ClutComboBox::ClutModel::parseDir(const Glib::ustring& path) Glib::ustring name; Glib::ustring extension; Glib::ustring profileName; - HaldCLUT::splitClutFilename (entry, name, extension, profileName); + HaldCLUT::splitClutFilename (entry, name, extension, profileName, false); extension = extension.casefold(); if (extension != "png" && extension != "tif") { From 357cf3a89efd8d6cfeb18c67aaa5a7b284fb4632 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 14 May 2019 00:23:10 +0200 Subject: [PATCH 074/215] Reduce memory allocations/deallocations and string copies when loading language files --- rtgui/multilangmgr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/multilangmgr.cc b/rtgui/multilangmgr.cc index 8d2985436..298f5d2dd 100644 --- a/rtgui/multilangmgr.cc +++ b/rtgui/multilangmgr.cc @@ -179,7 +179,7 @@ void MultiLangMgr::load(const Glib::ustring &language, const std::vector Date: Tue, 14 May 2019 13:01:58 +0200 Subject: [PATCH 075/215] Remove StopWatch --- rtgui/filmsimulation.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index dd29f1313..aee06f310 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -8,8 +8,6 @@ #include "../rtengine/clutstore.h" #include "../rtengine/procparams.h" -#define BENCHMARK -#include "../rtengine/StopWatch.h" using namespace rtengine; using namespace rtengine::procparams; @@ -307,7 +305,6 @@ ClutComboBox::ClutModel::ClutModel(const Glib::ustring &path) int ClutComboBox::ClutModel::parseDir(const Glib::ustring& path) { - BENCHFUNMICRO if (path.empty() || !Glib::file_test(path, Glib::FILE_TEST_IS_DIR)) { return 0; } From caeb171e0e9ad671ed69e619291a02299452ca99 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 14 May 2019 22:08:02 +0200 Subject: [PATCH 076/215] Applied changes suggested by @Floessie, #5320 --- rtgui/adjuster.cc | 120 +++++++++++++++++++++++++++++++++++----------- rtgui/adjuster.h | 78 ++++++------------------------ 2 files changed, 106 insertions(+), 92 deletions(-) diff --git a/rtgui/adjuster.cc b/rtgui/adjuster.cc index f2ea3f0b4..0d2c2961f 100644 --- a/rtgui/adjuster.cc +++ b/rtgui/adjuster.cc @@ -25,16 +25,30 @@ #include "guiutils.h" #include "rtimage.h" -#define MIN_RESET_BUTTON_HEIGHT 17 namespace { + +constexpr int MIN_RESET_BUTTON_HEIGHT = 17; + double one2one(double val) { return val; } } -Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1, Gtk::Image *imgIcon2, double2double_fun slider2value_, double2double_fun value2slider_) : +Adjuster::Adjuster ( + Glib::ustring vlabel, + double vmin, + double vmax, + double vstep, + double vdefault, + Gtk::Image *imgIcon1, + Gtk::Image *imgIcon2, + double2double_fun slider2value, + double2double_fun value2slider) + + : + adjustmentName(std::move(vlabel)), grid(nullptr), label(nullptr), @@ -52,8 +66,8 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep logBase(0), logPivot(0), logAnchorMiddle(false), - value2slider(value2slider_ ? value2slider_ : one2one), - slider2value(slider2value_ ? slider2value_ : one2one), + value2slider(value2slider ? value2slider : &one2one), + slider2value(slider2value ? slider2value : &one2one), delay(options.adjusterMinDelay) { @@ -156,13 +170,12 @@ Adjuster::~Adjuster () delayConnection.block(true); adjusterListener = nullptr; - delete automatic; } -void Adjuster::addAutoButton (Glib::ustring tooltip) +void Adjuster::addAutoButton (const Glib::ustring &tooltip) { if (!automatic) { - automatic = new Gtk::CheckButton(); + automatic = Gtk::manage(new Gtk::CheckButton()); //automatic->add (*Gtk::manage (new RTImage ("gears.png"))); automatic->set_tooltip_markup(tooltip.length() ? Glib::ustring::compose("%1\n\n%2", M("GENERAL_AUTO"), tooltip) : M("GENERAL_AUTO")); setExpandAlignProperties(automatic, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); @@ -302,8 +315,8 @@ void Adjuster::resetPressed (GdkEventButton* event) double Adjuster::shapeValue (double a) const { - const double pow10 = pow(10.0, digits); - const double val = round(a * pow10) / pow10; + const double pow10 = std::pow(10.0, digits); + const double val = std::round(a * pow10) / pow10; return val == -0.0 ? 0.0 : val; } @@ -313,7 +326,7 @@ void Adjuster::setLimits (double vmin, double vmax, double vstep, double vdefaul spinChange.block(true); double pow10 = vstep; - for (digits = 0; fabs(pow10 - floor(pow10)) > 0.000000000001; digits++, pow10 *= 10.0); + for (digits = 0; std::fabs(pow10 - floor(pow10)) > 0.000000000001; digits++, pow10 *= 10.0); const double shapeVal = shapeValue(vdefault); spin->set_digits(digits); @@ -557,7 +570,6 @@ void Adjuster::showEditedCB () void Adjuster::editedToggled () { - if (adjusterListener && !blocked) { adjusterListener->adjusterChanged(this, spin->get_value()); } @@ -567,26 +579,20 @@ void Adjuster::editedToggled () void Adjuster::trimValue (double &val) const { - val = rtengine::LIM(val, vMin, vMax); - } void Adjuster::trimValue (int &val) const { - val = rtengine::LIM(val, vMin, vMax); - } void Adjuster::trimValue (float &val) const { - val = rtengine::LIM(val, vMin, vMax); - } -inline double Adjuster::getSliderValue() const +double Adjuster::getSliderValue() const { double val = slider->get_value(); if (logBase) { @@ -596,29 +602,28 @@ inline double Adjuster::getSliderValue() const if (val >= mmid) { double range = vMax - mmid; double x = (val - mmid) / range; - val = logPivot + (pow(logBase, x) - 1.0) / (logBase - 1.0) * (vMax - logPivot); + val = logPivot + (std::pow(logBase, x) - 1.0) / (logBase - 1.0) * (vMax - logPivot); } else { double range = mmid - vMin; double x = (mmid - val) / range; - val = logPivot - (pow(logBase, x) - 1.0) / (logBase - 1.0) * (logPivot - vMin); + val = logPivot - (std::pow(logBase, x) - 1.0) / (logBase - 1.0) * (logPivot - vMin); } } else { if (val >= logPivot) { double range = vMax - logPivot; double x = (val - logPivot) / range; - val = logPivot + (pow(logBase, x) - 1.0) / (logBase - 1.0) * range; + val = logPivot + (std::pow(logBase, x) - 1.0) / (logBase - 1.0) * range; } else { double range = logPivot - vMin; double x = (logPivot - val) / range; - val = logPivot - (pow(logBase, x) - 1.0) / (logBase - 1.0) * range; + val = logPivot - (std::pow(logBase, x) - 1.0) / (logBase - 1.0) * range; } } } return val; } - -inline void Adjuster::setSliderValue(double val) +void Adjuster::setSliderValue(double val) { if (logBase) { if (logAnchorMiddle) { @@ -626,28 +631,27 @@ inline void Adjuster::setSliderValue(double val) if (val >= logPivot) { double range = vMax - logPivot; double x = (val - logPivot) / range; - val = (vMin + mid) + log(x * (logBase - 1.0) + 1.0) / log(logBase) * mid; + val = (vMin + mid) + std::log(x * (logBase - 1.0) + 1.0) / std::log(logBase) * mid; } else { double range = logPivot - vMin; double x = (logPivot - val) / range; - val = (vMin + mid) - log(x * (logBase - 1.0) + 1.0) / log(logBase) * mid; + val = (vMin + mid) - std::log(x * (logBase - 1.0) + 1.0) / std::log(logBase) * mid; } } else { if (val >= logPivot) { double range = vMax - logPivot; double x = (val - logPivot) / range; - val = logPivot + log(x * (logBase - 1.0) + 1.0) / log(logBase) * range; + val = logPivot + std::log(x * (logBase - 1.0) + 1.0) / std::log(logBase) * range; } else { double range = logPivot - vMin; double x = (logPivot - val) / range; - val = logPivot - log(x * (logBase - 1.0) + 1.0) / log(logBase) * range; + val = logPivot - std::log(x * (logBase - 1.0) + 1.0) / std::log(logBase) * range; } } } slider->set_value(val); } - void Adjuster::setLogScale(double base, double pivot, bool anchorMiddle) { spinChange.block(true); @@ -662,3 +666,61 @@ void Adjuster::setLogScale(double base, double pivot, bool anchorMiddle) sliderChange.block(false); spinChange.block(false); } + +bool Adjuster::getAutoValue() const +{ + return automatic ? automatic->get_active() : false; +} + +void Adjuster::setAutoInconsistent(bool i) +{ + if (automatic) { + automatic->set_inconsistent(i); + } +} + +bool Adjuster::getAutoInconsistent() const +{ + return automatic ? automatic->get_inconsistent() : true /* we have to return something */; +} + +void Adjuster::setAdjusterListener (AdjusterListener* alistener) +{ + adjusterListener = alistener; +} + +double Adjuster::getValue() const +{ + return shapeValue(spin->get_value()); +} + +int Adjuster::getIntValue() const +{ + return spin->get_value_as_int(); +} + +Glib::ustring Adjuster::getTextValue() const +{ + if (addMode) { + return Glib::ustring::compose("%1", spin->get_text()); + } else { + return spin->get_text(); + } +} + +void Adjuster::setLabel(const Glib::ustring &lbl) +{ + label->set_label(lbl); +} + +bool Adjuster::block(bool isBlocked) +{ + bool oldValue = blocked; + blocked = isBlocked; + return oldValue; +} + +bool Adjuster::getAddMode() const +{ + return addMode; +} diff --git a/rtgui/adjuster.h b/rtgui/adjuster.h index 2f3b10b18..f57129bf1 100644 --- a/rtgui/adjuster.h +++ b/rtgui/adjuster.h @@ -83,87 +83,40 @@ public: int delay; - Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1 = nullptr, Gtk::Image *imgIcon2 = nullptr, double2double_fun slider2value_ = nullptr, double2double_fun value2slider_ = nullptr); + Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1 = nullptr, Gtk::Image *imgIcon2 = nullptr, double2double_fun slider2value = nullptr, double2double_fun value2slider = nullptr); ~Adjuster () override; // Add an "Automatic" checkbox next to the reset button. - void addAutoButton(Glib::ustring tooltip = ""); + void addAutoButton(const Glib::ustring &tooltip = ""); // Send back the value of og the Auto checkbox - bool getAutoValue () - { - return automatic ? automatic->get_active() : false; - } - void setAutoValue (bool a); - bool notifyListenerAutoToggled (); - void autoToggled (); - void setAutoInconsistent (bool i) - { - if (automatic) { - automatic->set_inconsistent(i); - } - } - bool getAutoInconsistent () const - { - return automatic ? automatic->get_inconsistent() : true /* we have to return something */; - } - - void setAdjusterListener (AdjusterListener* alistener) - { - adjusterListener = alistener; - } - + bool getAutoValue() const; + void setAutoValue(bool a); + bool notifyListenerAutoToggled(); + void autoToggled(); + void setAutoInconsistent(bool i); + bool getAutoInconsistent() const; + void setAdjusterListener(AdjusterListener* alistener); // return the value trimmed to the limits at construction time - double getValue () const - { - return shapeValue(spin->get_value()); - } + double getValue() const; // return the value trimmed to the limits at construction time - int getIntValue () const - { - return spin->get_value_as_int(); - } + int getIntValue() const; // return the value trimmed to the limits at construction time, // method only used by the history manager, so decoration is added if addMode=true - Glib::ustring getTextValue () const - { - if (addMode) { - return Glib::ustring::compose("%1", spin->get_text()); - } else { - return spin->get_text(); - } - } - - void setLabel (const Glib::ustring &lbl) - { - label->set_label(lbl); - } + Glib::ustring getTextValue() const; + void setLabel (const Glib::ustring &lbl); void setValue (double a); void setLimits (double vmin, double vmax, double vstep, double vdefault); void setEnabled (bool enabled); void setDefault (double def); // will let the adjuster throw it's "changed" signal when the mouse button is released. Can work altogether with the delay value. void throwOnButtonRelease(bool throwOnBRelease = true); - void setNbDisplayedChars (int nbr) - { - spin->set_width_chars(nbr); - spin->set_max_width_chars(nbr); - } void setEditedState (EditedState eState); EditedState getEditedState (); void setDefaultEditedState (EditedState eState); void showEditedCB (); - bool block(bool isBlocked) - { - bool oldValue = blocked; - blocked = isBlocked; - return oldValue; - } - + bool block(bool isBlocked); void setAddMode(bool addM); - bool getAddMode() const - { - return addMode; - }; + bool getAddMode() const; void spinChanged (); void sliderChanged (); bool notifyListener (); @@ -175,7 +128,6 @@ public: void trimValue (double &val) const; void trimValue (float &val) const; void trimValue (int &val) const; - void setLogScale(double base, double pivot, bool anchorMiddle = false); }; From efe9ff5ae3bfcf720a47d3741d5a5e7bdf944ddc Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 14 May 2019 22:53:22 +0200 Subject: [PATCH 077/215] Don't show 1:1 icon on raw tools when using demosaic for < 1:1 view == as in pp3 --- rtgui/bayerpreprocess.cc | 2 +- rtgui/bayerprocess.cc | 2 +- rtgui/bayerrawexposure.cc | 2 +- rtgui/preprocess.cc | 2 +- rtgui/xtransprocess.cc | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rtgui/bayerpreprocess.cc b/rtgui/bayerpreprocess.cc index 44be0d047..35f36e83e 100644 --- a/rtgui/bayerpreprocess.cc +++ b/rtgui/bayerpreprocess.cc @@ -28,7 +28,7 @@ using namespace rtengine; using namespace rtengine::procparams; -BayerPreProcess::BayerPreProcess() : FoldableToolPanel(this, "bayerpreprocess", M("TP_PREPROCESS_LABEL"), true) +BayerPreProcess::BayerPreProcess() : FoldableToolPanel(this, "bayerpreprocess", M("TP_PREPROCESS_LABEL"), options.prevdemo != PD_Sidecar) { auto m = ProcEventMapper::getInstance(); EvLineDenoiseDirection = m->newEvent(DARKFRAME, "HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION"); diff --git a/rtgui/bayerprocess.cc b/rtgui/bayerprocess.cc index a681023a6..6f38f4c43 100644 --- a/rtgui/bayerprocess.cc +++ b/rtgui/bayerprocess.cc @@ -28,7 +28,7 @@ using namespace rtengine; using namespace rtengine::procparams; -BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RAW_LABEL"), true) +BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RAW_LABEL"), options.prevdemo != PD_Sidecar) { auto m = ProcEventMapper::getInstance(); diff --git a/rtgui/bayerrawexposure.cc b/rtgui/bayerrawexposure.cc index 86cd9794b..73c96bcf1 100644 --- a/rtgui/bayerrawexposure.cc +++ b/rtgui/bayerrawexposure.cc @@ -26,7 +26,7 @@ using namespace rtengine; using namespace rtengine::procparams; -BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposure", M("TP_EXPOS_BLACKPOINT_LABEL"), true) +BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposure", M("TP_EXPOS_BLACKPOINT_LABEL"), options.prevdemo != PD_Sidecar) { PexBlack1 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_1"), -2048, 2048, 0.1, 0)); //black level PexBlack1->setAdjusterListener (this); diff --git a/rtgui/preprocess.cc b/rtgui/preprocess.cc index 65646dea3..92cd06bc1 100644 --- a/rtgui/preprocess.cc +++ b/rtgui/preprocess.cc @@ -28,7 +28,7 @@ using namespace rtengine; using namespace rtengine::procparams; -PreProcess::PreProcess () : FoldableToolPanel(this, "preprocess", M("TP_PREPROCESS_LABEL"), true) +PreProcess::PreProcess () : FoldableToolPanel(this, "preprocess", M("TP_PREPROCESS_LABEL"), options.prevdemo != PD_Sidecar) { Gtk::HBox* hotdeadPixel = Gtk::manage( new Gtk::HBox () ); diff --git a/rtgui/xtransprocess.cc b/rtgui/xtransprocess.cc index e98394735..115fa3868 100644 --- a/rtgui/xtransprocess.cc +++ b/rtgui/xtransprocess.cc @@ -27,7 +27,7 @@ using namespace rtengine; using namespace rtengine::procparams; -XTransProcess::XTransProcess () : FoldableToolPanel(this, "xtransprocess", M("TP_RAW_LABEL"), true) +XTransProcess::XTransProcess () : FoldableToolPanel(this, "xtransprocess", M("TP_RAW_LABEL"), options.prevdemo != PD_Sidecar) { auto m = ProcEventMapper::getInstance(); EvDemosaicBorder = m->newEvent(DEMOSAIC, "HISTORY_MSG_RAW_BORDER"); From 00b007f47ac4e52a86466e5492fa5ef988189bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 16 May 2019 10:28:13 +0200 Subject: [PATCH 078/215] Fix compiler warning for non-SSE2 builds --- rtengine/improcfun.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index d215833d3..6ce7175d1 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -2518,13 +2518,13 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer } } } else { - float tmpr[4] ALIGNED16; - float tmpg[4] ALIGNED16; - float tmpb[4] ALIGNED16; - for (int i = istart, ti = 0; i < tH; i++, ti++) { int j = jstart, tj = 0; #ifdef __SSE2__ + float tmpr[4] ALIGNED16; + float tmpg[4] ALIGNED16; + float tmpb[4] ALIGNED16; + for (; j < tW - 3; j+=4, tj+=4) { //brightness/contrast STVF(tmpr[0], tonecurve(LVF(rtemp[ti * TS + tj]))); From 351f8f4e12919bb26ec9ad3fc226fd5d79c57ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 16 May 2019 10:33:07 +0200 Subject: [PATCH 079/215] Fix indentation --- rtengine/improcfun.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 6ce7175d1..f63313126 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -2521,9 +2521,9 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer for (int i = istart, ti = 0; i < tH; i++, ti++) { int j = jstart, tj = 0; #ifdef __SSE2__ - float tmpr[4] ALIGNED16; - float tmpg[4] ALIGNED16; - float tmpb[4] ALIGNED16; + float tmpr[4] ALIGNED16; + float tmpg[4] ALIGNED16; + float tmpb[4] ALIGNED16; for (; j < tW - 3; j+=4, tj+=4) { //brightness/contrast From bd548ce060f6a70bdd19801c1ccbe51be405f531 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Thu, 16 May 2019 12:39:08 -0700 Subject: [PATCH 080/215] Mac: define CMAKE_AR / RANLIB only if undefined. --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f13231586..128551b02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -358,8 +358,12 @@ if(WITH_LTO) string(REGEX REPLACE ".* ([0-9.]+)\n.*" "\\1" BINUTILS_VERSION_DETECTED "${BINUTILS_VERSION_DETECTED}") if("${BINUTILS_VERSION_DETECTED}" VERSION_LESS "${BINUTILS_VERSION_MININUM}") if(APPLE) - set(CMAKE_AR "/opt/local/bin/ar") - set(CMAKE_RANLIB "/opt/local/bin/ranlib") + if(!CMAKE_AR) + set(CMAKE_AR "/opt/local/bin/ar") + endif() + if(!CMAKE_RANLIB) + set(CMAKE_RANLIB "/opt/local/bin/ranlib") + endif() else() set(CMAKE_AR "/usr/bin/gcc-ar") set(CMAKE_RANLIB "/usr/bin/gcc-ranlib") From 105517c56112aa2170c2b9903640ad2aaf870891 Mon Sep 17 00:00:00 2001 From: lewiatan Date: Fri, 16 Feb 2018 22:02:00 +0100 Subject: [PATCH 081/215] support rating tag from EXIF/XMP --- rtengine/imagedata.cc | 17 ++++++++++++++++- rtengine/imagedata.h | 5 ++++- rtengine/rtengine.h | 2 ++ rtexif/rtexif.cc | 6 ++++++ rtgui/cacheimagedata.cc | 2 +- rtgui/cacheimagedata.h | 2 ++ rtgui/thumbnail.cc | 1 + rtgui/thumbnail.h | 5 ++++- 8 files changed, 36 insertions(+), 4 deletions(-) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index 4e38c612a..a84d6423c 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -71,7 +71,7 @@ FramesMetaData* FramesMetaData::fromFile (const Glib::ustring& fname, std::uniqu FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* rootDir, rtexif::TagDirectory* firstRootDir) : frameRootDir(frameRootDir_), iptc(nullptr), time(), timeStamp(), iso_speed(0), aperture(0.), focal_len(0.), focal_len35mm(0.), focus_dist(0.f), - shutter(0.), expcomp(0.), make("Unknown"), model("Unknown"), orientation("Unknown"), lens("Unknown"), + shutter(0.), expcomp(0.), make("Unknown"), model("Unknown"), orientation("Unknown"), rating(0), lens("Unknown"), sampleFormat(IIOSF_UNKNOWN), isPixelShift(false), isHDR(false) { memset (&time, 0, sizeof(time)); @@ -97,6 +97,7 @@ FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* serial.clear(); orientation.clear(); lens.clear(); + rating = 0; tag = newFrameRootDir->findTag("Make"); if (!tag) { @@ -187,6 +188,11 @@ FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* orientation = tag->valueToString (); } + tag = newFrameRootDir->findTagUpward("Rating"); + if (tag) { + rating = tag->toInt(); + } + tag = newFrameRootDir->findTagUpward("MakerNote"); rtexif::TagDirectory* mnote = nullptr; if (tag) { @@ -876,6 +882,11 @@ std::string FrameData::getOrientation () const return orientation; } +int FrameData::getRating () const +{ + return rating; +} + void FramesData::setDCRawFrameCount (unsigned int frameCount) @@ -1168,6 +1179,10 @@ std::string FramesData::getOrientation(unsigned int frame) const } ); } +int FramesData::getRating (unsigned int frame) const +{ + return frames.empty() || frame >= frames.size() ? 0 : frames.at(frame)->getRating (); +} //------inherited functions--------------// diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index c6889e653..b65049e2d 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -49,6 +49,7 @@ protected: std::string make, model, serial; std::string orientation; std::string lens; + int rating; IIOSampleFormat sampleFormat; // each frame has the knowledge of "being an" @@ -84,6 +85,7 @@ public: std::string getLens () const; std::string getSerialNumber () const; std::string getOrientation () const; + int getRating () const; }; class FramesData : public FramesMetaData { @@ -125,7 +127,8 @@ public: std::string getModel (unsigned int frame = 0) const override; std::string getLens (unsigned int frame = 0) const override; std::string getSerialNumber (unsigned int frame = 0) const; - std::string getOrientation (unsigned int frame = 0) const override; + std::string getOrientation (unsigned int frame = 0) const; + int getRating (unsigned int frame = 0) const override; }; diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 6264d43ae..8df6e9ef5 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -133,6 +133,8 @@ public: virtual std::string getLens (unsigned int frame = 0) const = 0; /** @return the orientation of the image */ virtual std::string getOrientation (unsigned int frame = 0) const = 0; + /** @return the rating of the image */ + virtual int getRating (unsigned int frame = 0) const = 0; /** @return true if the file is a PixelShift shot (Pentax and Sony bodies) */ virtual bool getPixelShift () const = 0; diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index 571fd4e6b..312cbd1c7 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -3037,6 +3037,12 @@ void ExifManager::parse (bool isRaw, bool skipIgnored) } } + if (!root->getTag ("Rating")) { + Tag *t = new Tag (root, root->getAttrib("Rating")); + t->initInt (0, LONG); + root->addTag (t); + } + // --- detecting image root IFD based on SubFileType, or if not provided, on PhotometricInterpretation bool frameRootDetected = false; diff --git a/rtgui/cacheimagedata.cc b/rtgui/cacheimagedata.cc index 35aeb6c91..1c4ac83ea 100644 --- a/rtgui/cacheimagedata.cc +++ b/rtgui/cacheimagedata.cc @@ -27,7 +27,7 @@ CacheImageData::CacheImageData () : md5(""), supported(false), format(FT_Invalid), rankOld(-1), inTrashOld(false), recentlySaved(false), timeValid(false), year(0), month(0), day(0), hour(0), min(0), sec(0), exifValid(false), frameCount(1), - fnumber(0.0), shutter(0.0), focalLen(0.0), focalLen35mm(0.0), focusDist(0.f), iso(0), isHDR (false), + fnumber(0.0), shutter(0.0), focalLen(0.0), focalLen35mm(0.0), focusDist(0.f), iso(0), rating(0), isHDR (false), isPixelShift (false), sensortype(rtengine::ST_NONE), sampleFormat(rtengine::IIOSF_UNKNOWN), redAWBMul(-1.0), greenAWBMul(-1.0), blueAWBMul(-1.0), rotate(0), thumbImgType(0) { diff --git a/rtgui/cacheimagedata.h b/rtgui/cacheimagedata.h index d3aea803b..9de9d186f 100644 --- a/rtgui/cacheimagedata.h +++ b/rtgui/cacheimagedata.h @@ -54,6 +54,7 @@ public: double focalLen, focalLen35mm; float focusDist; unsigned iso; + int rating; bool isHDR; bool isPixelShift; int sensortype; @@ -108,6 +109,7 @@ public: std::string getModel (unsigned int frame = 0) const override { return camModel; } std::string getLens (unsigned int frame = 0) const override { return lens; } std::string getOrientation (unsigned int frame = 0) const override { return ""; } // TODO + int getRating (unsigned int frame = 0) const override { return rating; } // FIXME-piotr : missing rating bool getPixelShift () const override { return isPixelShift; } bool getHDR (unsigned int frame = 0) const override { return isHDR; } std::string getImageType (unsigned int frame) const override { return isPixelShift ? "PS" : isHDR ? "HDR" : "STD"; } diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 757708002..e0509f457 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -813,6 +813,7 @@ int Thumbnail::infoFromImage (const Glib::ustring& fname, std::unique_ptrgetLens(); cfs.camMake = idata->getMake(); cfs.camModel = idata->getModel(); + cfs.rating = idata->getRating(); if (idata->getOrientation() == "Rotate 90 CW") { deg = 90; diff --git a/rtgui/thumbnail.h b/rtgui/thumbnail.h index 0bcdd470a..2c0cba2b0 100644 --- a/rtgui/thumbnail.h +++ b/rtgui/thumbnail.h @@ -164,7 +164,10 @@ public: return cfs.md5; } - int getRank () const; + int getRank () const + { + return cfs.rating; + } void setRank (int rank); int getColorLabel () const; From 7512093c205090608c316cd3e866af9feaa0ce66 Mon Sep 17 00:00:00 2001 From: lewiatan Date: Sat, 17 Feb 2018 22:08:25 +0100 Subject: [PATCH 082/215] support rating tag from EXIF/XMP- fixes --- rtgui/cacheimagedata.cc | 5 +++++ rtgui/thumbnail.h | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rtgui/cacheimagedata.cc b/rtgui/cacheimagedata.cc index 1c4ac83ea..47318990d 100644 --- a/rtgui/cacheimagedata.cc +++ b/rtgui/cacheimagedata.cc @@ -66,6 +66,10 @@ int CacheImageData::load (const Glib::ustring& fname) rankOld = keyFile.get_integer ("General", "Rank"); } + if (keyFile.has_key ("General", "Rating")) { + rating = keyFile.get_integer ("General", "Rating"); + } + if (keyFile.has_key ("General", "InTrash")) { inTrashOld = keyFile.get_boolean ("General", "InTrash"); } @@ -227,6 +231,7 @@ int CacheImageData::save (const Glib::ustring& fname) keyFile.set_boolean ("General", "Supported", supported); keyFile.set_integer ("General", "Format", format); keyFile.set_boolean ("General", "RecentlySaved", recentlySaved); + keyFile.set_integer ("General", "Rating", rating); // remove the old implementation of Rank and InTrash from cache if (keyFile.has_key ("General", "Rank")) { diff --git a/rtgui/thumbnail.h b/rtgui/thumbnail.h index 2c0cba2b0..75b1ecdd5 100644 --- a/rtgui/thumbnail.h +++ b/rtgui/thumbnail.h @@ -168,7 +168,13 @@ public: { return cfs.rating; } - void setRank (int rank); + void setRank (int rank) + { + if (cfs.rating != rank) { + cfs.rating = rank; + } + pparamsValid = true; // FIXME-piotr Is this the right way to refresh the cache? Probably not since pparams and cache should be 2 different things + } int getColorLabel () const; void setColorLabel (int colorlabel); From 159e1784f4bae7e65122cfdf288afc4842f61651 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 18 May 2019 18:44:06 +0200 Subject: [PATCH 083/215] Memory leak in RefreshMapper, fixes #5323 --- rtgui/eventmapper.cc | 23 +++++++++++++++-------- rtgui/eventmapper.h | 2 ++ rtgui/history.cc | 35 +++++++++++++++-------------------- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/rtgui/eventmapper.cc b/rtgui/eventmapper.cc index de5258413..81160c58e 100644 --- a/rtgui/eventmapper.cc +++ b/rtgui/eventmapper.cc @@ -19,12 +19,13 @@ */ #include "eventmapper.h" +#include "multilangmgr.h" ProcEventMapper::ProcEventMapper() { for (int event = 0; event < rtengine::NUMOFEVENTS; ++event) { - history_msgs_[event] = "HISTORY_MSG_" + std::to_string(event + 1); + history_msgs_[event] = M("HISTORY_MSG_" + std::to_string(event + 1)); } } @@ -38,16 +39,22 @@ ProcEventMapper *ProcEventMapper::getInstance() rtengine::ProcEvent ProcEventMapper::newEvent(int action, const std::string &history_msg) { - rtengine::ProcEvent event = rtengine::RefreshMapper::getInstance()->newEvent(); - rtengine::RefreshMapper::getInstance()->mapEvent(event, action); + std::string eventkey = std::to_string(action) + history_msg; + const auto ret = events_.find(eventkey); + if (ret == events_.end()) { + rtengine::ProcEvent event = rtengine::RefreshMapper::getInstance()->newEvent(); + rtengine::RefreshMapper::getInstance()->mapEvent(event, action); + events_.emplace(std::move(eventkey), event); + if (history_msg.empty()) { + history_msgs_[event] = M("HISTORY_MSG_" + std::to_string(event + 1)); + } else { + history_msgs_[event] = M(history_msg); + } - if (history_msg.empty()) { - history_msgs_[event] = "HISTORY_MSG_" + std::to_string(event + 1); + return event; } else { - history_msgs_[event] = history_msg; + return ret->second; } - - return event; } diff --git a/rtgui/eventmapper.h b/rtgui/eventmapper.h index 87ccc1d9b..f977b0ff4 100644 --- a/rtgui/eventmapper.h +++ b/rtgui/eventmapper.h @@ -20,6 +20,7 @@ #pragma once #include +#include #include #include "../rtengine/refreshmap.h" @@ -34,4 +35,5 @@ private: ProcEventMapper(); std::unordered_map history_msgs_; + std::map events_; }; diff --git a/rtgui/history.cc b/rtgui/history.cc index 4d435c460..ec5e006bc 100644 --- a/rtgui/history.cc +++ b/rtgui/history.cc @@ -225,15 +225,14 @@ void History::procParamsChanged( return; } - selchangehist.block (true); - selchangebm.block (true); + selchangehist.block(true); + selchangebm.block(true); if (ev == EvPhotoLoaded) { - initHistory (); + initHistory(); } // construct formatted list content - Glib::ustring text = M(ProcEventMapper::getInstance()->getHistoryMsg(ev)); Glib::RefPtr selection = hTreeView->get_selection(); Gtk::TreeModel::iterator iter = selection->get_selected(); @@ -243,12 +242,12 @@ void History::procParamsChanged( ++iter; while (iter) { - iter = historyModel->erase (iter); + iter = historyModel->erase(iter); } } // lookup the last remaining item in the list - int size = historyModel->children().size (); + const int size = historyModel->children().size(); Gtk::TreeModel::Row row; if (size > 0) { @@ -258,47 +257,43 @@ void History::procParamsChanged( // if there is no last item or its chev!=ev, create a new one if (size == 0 || !row || row[historyColumns.chev] != ev || ev == EvProfileChanged) { Gtk::TreeModel::Row newrow = *(historyModel->append()); - newrow[historyColumns.text] = text; + newrow[historyColumns.text] = ProcEventMapper::getInstance()->getHistoryMsg(ev); newrow[historyColumns.value] = g_markup_escape_text(descr.c_str(), -1); newrow[historyColumns.chev] = ev; newrow[historyColumns.params] = *params; newrow[historyColumns.paramsEdited] = paramsEdited ? *paramsEdited : defParamsEdited; if (ev != EvBookmarkSelected) { - selection->select (newrow); + selection->select(newrow); } if (blistener && row && !blistenerLock) { - blistener->historyBeforeLineChanged (row[historyColumns.params]); + blistener->historyBeforeLineChanged(row[historyColumns.params]); } else if (blistener && size == 0 && !blistenerLock) { - blistener->historyBeforeLineChanged (newrow[historyColumns.params]); + blistener->historyBeforeLineChanged(newrow[historyColumns.params]); } - } - // else just update it - else { - row[historyColumns.text] = text; + } else { // else just update it row[historyColumns.value] = g_markup_escape_text(descr.c_str(), -1); - row[historyColumns.chev] = ev; row[historyColumns.params] = *params; row[historyColumns.paramsEdited] = paramsEdited ? *paramsEdited : defParamsEdited; if (ev != EvBookmarkSelected) { - selection->select (row); + selection->select(row); } } if (ev != EvBookmarkSelected) { - bTreeView->get_selection()->unselect_all (); + bTreeView->get_selection()->unselect_all(); } if (!selection->get_selected_rows().empty()) { std::vector selp = selection->get_selected_rows(); - hTreeView->scroll_to_row (*selp.begin()); + hTreeView->scroll_to_row(*selp.begin()); } - selchangehist.block (false); - selchangebm.block (false); + selchangehist.block(false); + selchangebm.block(false); } void History::clearParamChanges () From 820024972aaf9e3dc92e385bd13da2039a1a826a Mon Sep 17 00:00:00 2001 From: Eric Jiang Date: Thu, 16 May 2019 17:09:46 -0700 Subject: [PATCH 084/215] Use rating from EXIF/XMP where available --- rtengine/imagedata.cc | 10 +++++++++- rtengine/imagedata.h | 2 +- rtengine/procparams.cc | 5 ++++- rtgui/thumbnail.cc | 11 +++++++++-- rtgui/thumbnail.h | 13 ++----------- 5 files changed, 25 insertions(+), 16 deletions(-) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index a84d6423c..b9720ec8a 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -188,10 +188,18 @@ FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* orientation = tag->valueToString (); } + // Look for Rating metadata in the following order: + // 1. EXIF + // 2. XMP + // 3. pp3 sidecar file tag = newFrameRootDir->findTagUpward("Rating"); - if (tag) { + if (tag && tag->toInt() != 0) { rating = tag->toInt(); } + char sXMPRating[64]; + if (newFrameRootDir->getXMPTagValue("xmp:Rating", sXMPRating)) { + rating = atoi(sXMPRating); + } tag = newFrameRootDir->findTagUpward("MakerNote"); rtexif::TagDirectory* mnote = nullptr; diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index b65049e2d..097a5cc80 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -48,8 +48,8 @@ protected: double expcomp; std::string make, model, serial; std::string orientation; - std::string lens; int rating; + std::string lens; IIOSampleFormat sampleFormat; // each frame has the knowledge of "being an" diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 6d914bb27..f492e5900 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2832,7 +2832,10 @@ void ProcParams::setDefaults() exif.clear(); iptc.clear(); - rank = 0; + // -1 means that there's no pp3 data with rank yet. In this case, the + // embedded Rating metadata should take precedence. -1 should never be + // written to pp3 on disk. + rank = -1; colorlabel = 0; inTrash = false; diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index e0509f457..39f4ca093 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -1006,15 +1006,22 @@ void Thumbnail::setFileName (const Glib::ustring &fn) int Thumbnail::getRank () const { - return pparams->rank; + // prefer the user-set rank over the embedded Rating + // pparams->rank == -1 means that there is no saved rank yet, so we should + // next look for the embedded Rating metadata. + if (pparams->rank != -1) { + return pparams->rank; + } else { + return cfs.rating; + } } void Thumbnail::setRank (int rank) { if (pparams->rank != rank) { pparams->rank = rank; - pparamsValid = true; } + pparamsValid = true; } int Thumbnail::getColorLabel () const diff --git a/rtgui/thumbnail.h b/rtgui/thumbnail.h index 75b1ecdd5..0bcdd470a 100644 --- a/rtgui/thumbnail.h +++ b/rtgui/thumbnail.h @@ -164,17 +164,8 @@ public: return cfs.md5; } - int getRank () const - { - return cfs.rating; - } - void setRank (int rank) - { - if (cfs.rating != rank) { - cfs.rating = rank; - } - pparamsValid = true; // FIXME-piotr Is this the right way to refresh the cache? Probably not since pparams and cache should be 2 different things - } + int getRank () const; + void setRank (int rank); int getColorLabel () const; void setColorLabel (int colorlabel); From a25655cafdd5f96cb11c4f0012ff2304095c0192 Mon Sep 17 00:00:00 2001 From: Eric Jiang Date: Thu, 16 May 2019 19:37:27 -0700 Subject: [PATCH 085/215] Check that metadata rating is between 0 and 5 Does not handle Rating=-1 meaning Rejected yet. --- rtengine/imagedata.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index b9720ec8a..26fe80f03 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -200,6 +200,16 @@ FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* if (newFrameRootDir->getXMPTagValue("xmp:Rating", sXMPRating)) { rating = atoi(sXMPRating); } + // guard against out-of-range values + if (rating > 5) { + rating = 5; + } + // Currently, Rating=-1 is not supported. A value of -1 should mean + // "Rejected" according to the specification. Maybe in the future, Rating=-1 + // sets InTrash=true? + if (rating < 0) { + rating = 0; + } tag = newFrameRootDir->findTagUpward("MakerNote"); rtexif::TagDirectory* mnote = nullptr; From 40aa7d2034900c23bef68f22d37555cb03cb481a Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 19 May 2019 13:20:34 +0200 Subject: [PATCH 086/215] Fix memory leak in preferences dialog --- rtgui/preferences.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index b37fc537a..b7d10c8de 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1450,7 +1450,7 @@ Gtk::Widget* Preferences::getSoundsPanel () swSounds = Gtk::manage(new Gtk::ScrolledWindow()); swSounds->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::VBox* vbSounds = new Gtk::VBox (); + Gtk::VBox* vbSounds = Gtk::manage(new Gtk::VBox ()); ckbSndEnable = Gtk::manage ( new Gtk::CheckButton (M ("GENERAL_ENABLE"))); sndEnableConn = ckbSndEnable->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::sndEnableToggled)); From 6958d46e70c5eebd518ea2dfcb9976ee33d3423f Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 19 May 2019 16:06:54 +0200 Subject: [PATCH 087/215] Don't preprocess and demosaic again when using coarse rotation or flip, fixes #5327 --- rtengine/refreshmap.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 7a5214d75..d741b1744 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -83,9 +83,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = { RGBCURVE, // EvSHSHTonalW, RGBCURVE, // EvSHLContrast, RETINEX, // EvSHRadius, - ALL, // EvCTRotate, - ALL, // EvCTHFlip, - ALL, // EvCTVFlip, + ALLNORAW, // EvCTRotate, + ALLNORAW, // EvCTHFlip, + ALLNORAW, // EvCTVFlip, TRANSFORM, // EvROTDegree, TRANSFORM, // EvTransAutoFill, TRANSFORM, // EvDISTAmount, From 18d977502d4a51058c190908d2d01a9e81a96a8d Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 19 May 2019 18:12:46 +0200 Subject: [PATCH 088/215] Improve Tone-mapping iterates --- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 4 ++-- rtengine/ipwavelet.cc | 2 +- rtengine/simpleprocess.cc | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 62f6dad7c..f235d8d29 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -877,7 +877,7 @@ void Crop::update(int todo) parent->ipf.labColorCorrectionRegions(labnCrop); if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { - parent->ipf.EPDToneMap(labnCrop, 5, skip); + parent->ipf.EPDToneMap(labnCrop, 0, skip); } //parent->ipf.EPDToneMap(labnCrop, 5, 1); //Go with much fewer than normal iterates for fast redisplay. @@ -1024,7 +1024,7 @@ void Crop::update(int todo) float d, dj, yb; // not used after this block parent->ipf.ciecam_02float(cieCrop, float (adap), 1, 2, labnCrop, ¶ms, parent->customColCurve1, parent->customColCurve2, parent->customColCurve3, - dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 5, skip, execsharp, d, dj, yb, 1, parent->sharpMask); + dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 0, skip, execsharp, d, dj, yb, 1, parent->sharpMask); } else { // CIECAM is disabled, we free up its image buffer to save some space if (cieCrop) { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index ec047f853..01f9892bf 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -778,7 +778,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.labColorCorrectionRegions(nprevl); if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!params->colorappearance.enabled)) { - ipf.EPDToneMap(nprevl, 5, scale); + ipf.EPDToneMap(nprevl, 0, scale); } // for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled @@ -922,7 +922,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) CAMBrightCurveJ.dirty = true; CAMBrightCurveQ.dirty = true; - ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, scale, execsharp, d, dj, yb, 1); + ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0 , scale, execsharp, d, dj, yb, 1); if ((params->colorappearance.autodegree || params->colorappearance.autodegreeout) && acListener && params->colorappearance.enabled) { acListener->autoCamChanged(100.* (double)d, 100.* (double)dj); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index d3595b42c..e6e84bc50 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1668,7 +1668,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //tone mapping if(cp.tonemap && cp.contmet == 2 && cp.resena) { //iterate = 5 - EPDToneMapResid(WavCoeffs_L0, 5, skip, cp, W_L, H_L, max0, min0); + EPDToneMapResid(WavCoeffs_L0, 0, skip, cp, W_L, H_L, max0, min0); } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index ff2b234a3..8b9bee738 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1066,7 +1066,7 @@ private: ipf.chromiLuminanceCurve (nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { - ipf.EPDToneMap (labView, 5, 1); + ipf.EPDToneMap (labView, 0, 1); } @@ -1177,7 +1177,7 @@ private: float CAMMean = NAN; float d, dj, yb; - ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); + ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0, 1, true, d, dj, yb, 1); } delete cieView; From dfd9bdf9772a0b6f3e1ae7740af20559313023ff Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 20 May 2019 00:21:48 +0200 Subject: [PATCH 089/215] Fix some leaks in editorpanel, fixes #5328 --- rtgui/editorpanel.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index a58e28bef..c59561903 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -484,7 +484,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) histogramPanel = nullptr; profilep = Gtk::manage (new ProfilePanel ()); - ppframe = new Gtk::Frame (); + ppframe = Gtk::manage(new Gtk::Frame()); ppframe->set_name ("ProfilePanel"); ppframe->add (*profilep); ppframe->set_label (M ("PROFILEPANEL_LABEL")); @@ -627,7 +627,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) vboxright->pack2 (*vsubboxright, true, true); // Save buttons - Gtk::Grid *iops = new Gtk::Grid (); + Gtk::Grid *iops = Gtk::manage(new Gtk::Grid()); iops->set_name ("IopsPanel"); iops->set_orientation (Gtk::ORIENTATION_HORIZONTAL); iops->set_row_spacing (2); @@ -661,7 +661,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) progressLabel->set_fraction (0.0); // tbRightPanel_1 - tbRightPanel_1 = new Gtk::ToggleButton (); + tbRightPanel_1 = Gtk::manage(new Gtk::ToggleButton()); iRightPanel_1_Show = new RTImage ("panel-to-left.png"); iRightPanel_1_Hide = new RTImage ("panel-to-right.png"); tbRightPanel_1->set_relief (Gtk::RELIEF_NONE); @@ -671,7 +671,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) setExpandAlignProperties (tbRightPanel_1, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); // ShowHideSidePanels - tbShowHideSidePanels = new Gtk::ToggleButton (); + tbShowHideSidePanels = Gtk::manage(new Gtk::ToggleButton()); iShowHideSidePanels = new RTImage ("crossed-arrows-out.png"); iShowHideSidePanels_exit = new RTImage ("crossed-arrows-in.png"); tbShowHideSidePanels->set_relief (Gtk::RELIEF_NONE); @@ -883,7 +883,6 @@ EditorPanel::~EditorPanel () delete tpc; - delete ppframe; delete leftsubbox; delete leftbox; delete vsubboxright; From b2936d185de9e672e434edf5476d02422457309d Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 21 May 2019 16:24:14 +0200 Subject: [PATCH 090/215] Keyboard shortcut should reveal tool's current tab (original or favorites), fixes #5333 --- rtgui/toolpanelcoord.cc | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index dce59dbce..a595b1b1c 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -955,22 +955,38 @@ void ToolPanelCoordinator::toolSelected (ToolMode tool) { GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected + auto checkFavorite = [this](FoldableToolPanel* tool) { + for (auto fav : favorites) { + if (fav == tool) { + return true; + } + } + return false; + }; + switch (tool) { - case TMCropSelect: - crop->setExpanded (true); - toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*transformPanelSW)); + case TMCropSelect: { + crop->setExpanded(true); + toolPanelNotebook->set_current_page(toolPanelNotebook->page_num(checkFavorite(crop) ? *favoritePanelSW : *transformPanelSW)); break; + } - case TMSpotWB: - whitebalance->setExpanded (true); - toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*colorPanelSW)); + case TMSpotWB: { + whitebalance->setExpanded(true); + toolPanelNotebook->set_current_page(toolPanelNotebook->page_num(checkFavorite(whitebalance) ? *favoritePanelSW : *colorPanelSW)); break; + } - case TMStraighten: - lensgeom->setExpanded (true); - rotate->setExpanded (true); - toolPanelNotebook->set_current_page (toolPanelNotebook->page_num (*transformPanelSW)); + case TMStraighten: { + rotate->setExpanded(true); + bool isFavorite = checkFavorite(rotate); + if (!isFavorite) { + isFavorite = checkFavorite(lensgeom); + lensgeom->setExpanded(true); + } + toolPanelNotebook->set_current_page(toolPanelNotebook->page_num(isFavorite ? *favoritePanelSW : *transformPanelSW)); break; + } default: break; From e207276c93fe642465f0886f1fc21220450722e9 Mon Sep 17 00:00:00 2001 From: "J. Muller" Date: Wed, 22 May 2019 13:48:47 +0200 Subject: [PATCH 091/215] Correct typo : redimensionnement --- rtdata/languages/Francais | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 2036a2ce3..4c2fb8d9b 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -101,7 +101,7 @@ EXPORT_PIPELINE;Pipeline de Traitement EXPORT_PUTTOQUEUEFAST;Mettre dans la file de traitement\npour Export Rapide EXPORT_RAW_DMETHOD;Méthode de dématriçage EXPORT_USE_FAST_PIPELINE;Dédié\n(traitement complet sur une image rédimmentionnée) -EXPORT_USE_FAST_PIPELINE_TIP;Utilise un pipeline de traitement dédié pour les images en Export Rapide, qui priviliégie la vitesse sur la qualité. Le redimentionnement des images est fait dès que possible, au lieu d'être fait à la fin comme dans le pipeline normal. L'accélération peut être significative, mais soyez prêt à voir des artéfacts et une dégradation générale de la qualité de sortie. +EXPORT_USE_FAST_PIPELINE_TIP;Utilise un pipeline de traitement dédié pour les images en Export Rapide, qui privilégie la vitesse sur la qualité. Le redimensionnement des images est fait dès que possible, au lieu d'être fait à la fin comme dans le pipeline normal. L'accélération peut être significative, mais soyez prêt à voir des artéfacts et une dégradation générale de la qualité de sortie. EXPORT_USE_NORMAL_PIPELINE;Standard\n(ignore des étapes, redimentionne à la fin) EXTPROGTARGET_1;raw EXTPROGTARGET_2;file de traitement @@ -1017,7 +1017,7 @@ PARTIALPASTE_RAW_FALSECOLOR;Nbr d'itération des fausses couleurs PARTIALPASTE_RAW_IMAGENUM;Sub-image PARTIALPASTE_RAW_LMMSEITERATIONS;Niveau d'amélioration LMMSE PARTIALPASTE_RAW_PIXELSHIFT;PixelShift -PARTIALPASTE_RESIZE;Redimentionnement +PARTIALPASTE_RESIZE;Redimensionnement PARTIALPASTE_RETINEX;Retinex PARTIALPASTE_RGBCURVES;Courbes RVB PARTIALPASTE_ROTATION;Rotation @@ -1786,7 +1786,7 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Verticale TP_PREPROCESS_NO_FOUND;Aucun trouvé TP_PREPROCESS_PDAFLINESFILTER;Filtre de ligne PDAF TP_PRSHARPENING_LABEL;Netteté post-redimensionnement -TP_PRSHARPENING_TOOLTIP;Augmente la netteté de l'image après le redimentionnement. Ne fonctionne que si la méthode de redimensionnement "Lanczos" est utilisé. Il est impossible de prévisualiser les effets de cet outil. Cf. RawPedia pour les instructions d'utilisation. +TP_PRSHARPENING_TOOLTIP;Augmente la netteté de l'image après le redimensionnement. Ne fonctionne que si la méthode de redimensionnement "Lanczos" est utilisée. Il est impossible de prévisualiser les effets de cet outil. Cf. RawPedia pour les instructions d'utilisation. TP_RAWCACORR_AUTO;Correction automatique TP_RAWCACORR_AUTOIT;Itérations TP_RAWCACORR_AUTOIT_TOOLTIP;Ce réglage est disponible si "Correction-auto" est activé.\nCorrection-auto est conservatif, signifiant qu'il ne corrige souvent pas toute l'aberration chromatique.\nPour corriger l'aberration restante, vous pouvez uttiliser jusqu'à cinq itérations de de la correction automatique de l'aberration chromatique.\nChaque itération réduira l'aberration restante de l'itération précédente avec un prix d'un temps de traitement plus long. From 853b198b1eb4f2cbc5721d2d709207f6382dfa8e Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 24 May 2019 16:46:51 +0200 Subject: [PATCH 092/215] Clarify what is being deleted in Trash, fixes #5337 The message shown when deleting items in trash was ambiguous. --- rtdata/languages/Catala | 7 +++---- rtdata/languages/Chinese (Simplified) | 7 +++---- rtdata/languages/Czech | 7 +++---- rtdata/languages/Deutsch | 7 +++---- rtdata/languages/English (UK) | 7 +++---- rtdata/languages/English (US) | 7 +++---- rtdata/languages/Espanol | 7 +++---- rtdata/languages/Francais | 7 +++---- rtdata/languages/Italiano | 7 +++---- rtdata/languages/Japanese | 7 +++---- rtdata/languages/Magyar | 7 +++---- rtdata/languages/Nederlands | 7 +++---- rtdata/languages/Polish | 7 +++---- rtdata/languages/Portugues | 7 +++---- rtdata/languages/Portugues (Brasil) | 7 +++---- rtdata/languages/Russian | 7 +++---- rtdata/languages/Serbian (Cyrilic Characters) | 7 +++---- rtdata/languages/Swedish | 7 +++---- rtdata/languages/default | 9 +++++---- rtgui/filebrowser.cc | 4 ++-- rtgui/filebrowser.h | 2 +- rtgui/filecatalog.cc | 13 +++++++++---- rtgui/filecatalog.h | 2 +- 23 files changed, 72 insertions(+), 84 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 1a8a7ccac..7814d80dd 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -83,11 +83,10 @@ FILEBROWSER_CLEARPROFILE;Neteja FILEBROWSER_COPYPROFILE;Copia FILEBROWSER_CURRENT_NAME;Nom actual: FILEBROWSER_DARKFRAME;Marc fosc -FILEBROWSER_DELETEDLGLABEL;Confirmació d'esborrar fitxer -FILEBROWSER_DELETEDLGMSG;Segur que voleu esborrar els %1 fitxers? -FILEBROWSER_DELETEDLGMSGINCLPROC;Segur que voleu suprimir els fitxers %1 seleccionats incloent la versió processada a la cua? +FILEBROWSER_DELETEDIALOG_HEADER;Confirmació d'esborrar fitxer +FILEBROWSER_DELETEDIALOG_SELECTED;Segur que voleu esborrar els %1 fitxers? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Segur que voleu suprimir els fitxers %1 seleccionats incloent la versió processada a la cua? FILEBROWSER_EMPTYTRASH;Buida paperera -FILEBROWSER_EMPTYTRASHHINT;Buida permanentment la paperera FILEBROWSER_EXTPROGMENU;Obre amb FILEBROWSER_FLATFIELD;Camp pla FILEBROWSER_MOVETODARKFDIR;Canvia al directori de camps foscos diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 45d9b912a..17601d763 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -95,11 +95,10 @@ FILEBROWSER_CLEARPROFILE;清空配置 FILEBROWSER_COPYPROFILE;复制配置 FILEBROWSER_CURRENT_NAME;当前名称: FILEBROWSER_DARKFRAME;暗场 -FILEBROWSER_DELETEDLGLABEL;确认删除 -FILEBROWSER_DELETEDLGMSG;确定删除所选的%1个文件? -FILEBROWSER_DELETEDLGMSGINCLPROC;你确认要删除选择的 %1 文件 包括 一个处理队列中的版本? +FILEBROWSER_DELETEDIALOG_HEADER;确认删除 +FILEBROWSER_DELETEDIALOG_SELECTED;确定删除所选的%1个文件? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;你确认要删除选择的 %1 文件 包括 一个处理队列中的版本? FILEBROWSER_EMPTYTRASH;清空垃圾箱 -FILEBROWSER_EMPTYTRASHHINT;永久清空垃圾箱 FILEBROWSER_EXTPROGMENU;调用程序... FILEBROWSER_FLATFIELD;平场 FILEBROWSER_MOVETODARKFDIR;移动到暗场路径 diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 3ac2273c0..862e4ecd2 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -163,11 +163,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Barevný štítek.\n\nPoužijte výběr ze seznam FILEBROWSER_COPYPROFILE;Kopírovat FILEBROWSER_CURRENT_NAME;Současné jméno: FILEBROWSER_DARKFRAME;Tmavý snímek -FILEBROWSER_DELETEDLGLABEL;Potvrzení smazání souboru -FILEBROWSER_DELETEDLGMSG;Jste si jisti, že chcete vymazat %1 vybraných souborů? -FILEBROWSER_DELETEDLGMSGINCLPROC;Jste si jisti, že chcete vymazat %1 vybraných souborů včetně výstupů dávkového zpracování? +FILEBROWSER_DELETEDIALOG_HEADER;Potvrzení smazání souboru +FILEBROWSER_DELETEDIALOG_SELECTED;Jste si jisti, že chcete vymazat %1 vybraných souborů? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Jste si jisti, že chcete vymazat %1 vybraných souborů včetně výstupů dávkového zpracování? FILEBROWSER_EMPTYTRASH;Vysypat koš -FILEBROWSER_EMPTYTRASHHINT;Trvale smazat soubory z koše, FILEBROWSER_EXTPROGMENU;Otevřít pomocí FILEBROWSER_FLATFIELD;Flat Field FILEBROWSER_MOVETODARKFDIR;Přesunout do složky tmavých snímků diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 2398c1bb6..9e2217fb2 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -200,11 +200,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Farbmarkierung\n\nTaste: Strg + FILEBROWSER_COPYPROFILE;Profil kopieren FILEBROWSER_CURRENT_NAME;Aktueller Name: FILEBROWSER_DARKFRAME;Dunkelbild -FILEBROWSER_DELETEDLGLABEL;Dateien löschen -FILEBROWSER_DELETEDLGMSG;Möchten Sie wirklich %1 Datei(en) unwiderruflich löschen? -FILEBROWSER_DELETEDLGMSGINCLPROC;Möchten Sie wirklich %1 Datei(en) unwiderruflich löschen, mit allen aus der Stapelverarbeitung resultierenden zugehörigen Ausgabedateien? +FILEBROWSER_DELETEDIALOG_HEADER;Dateien löschen +FILEBROWSER_DELETEDIALOG_SELECTED;Möchten Sie wirklich %1 Datei(en) unwiderruflich löschen? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Möchten Sie wirklich %1 Datei(en) unwiderruflich löschen, mit allen aus der Stapelverarbeitung resultierenden zugehörigen Ausgabedateien? FILEBROWSER_EMPTYTRASH;Papierkorb leeren -FILEBROWSER_EMPTYTRASHHINT;Dateien endgültig aus Papierkorb löschen FILEBROWSER_EXTPROGMENU;Öffnen mit FILEBROWSER_FLATFIELD;Weißbild FILEBROWSER_MOVETODARKFDIR;In Dunkelbild-Verzeichnis verschieben diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 45493ac97..282098f87 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -239,11 +239,10 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !FILEBROWSER_COPYPROFILE;Copy !FILEBROWSER_CURRENT_NAME;Current name: !FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGLABEL;File delete confirmation -!FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? +!FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? !FILEBROWSER_EMPTYTRASH;Empty trash -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files from trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_FLATFIELD;Flat-Field !FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 4d510c4b5..0791f37fa 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -122,11 +122,10 @@ !FILEBROWSER_COPYPROFILE;Copy !FILEBROWSER_CURRENT_NAME;Current name: !FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDLGLABEL;File delete confirmation -!FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -!FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? +!FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? !FILEBROWSER_EMPTYTRASH;Empty trash -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files from trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_FLATFIELD;Flat-Field !FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index dfb4d8acc..fac1b9d3f 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -179,11 +179,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Etiquetar con color\n\nUse menú desplegable o at FILEBROWSER_COPYPROFILE;Copiar perfil FILEBROWSER_CURRENT_NAME;Nombre actual: FILEBROWSER_DARKFRAME;Toma Negra -FILEBROWSER_DELETEDLGLABEL;Confirmación de borrar archivos -FILEBROWSER_DELETEDLGMSG;¿Seguro que quiere borrar los %1 archivos seleccionados? -FILEBROWSER_DELETEDLGMSGINCLPROC;¿Seguro que quiere borrar los %1 archivos seleccionados incluyendo la versión procesada en la cola? +FILEBROWSER_DELETEDIALOG_HEADER;Confirmación de borrar archivos +FILEBROWSER_DELETEDIALOG_SELECTED;¿Seguro que quiere borrar los %1 archivos seleccionados? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;¿Seguro que quiere borrar los %1 archivos seleccionados incluyendo la versión procesada en la cola? FILEBROWSER_EMPTYTRASH;Vaciar papelera -FILEBROWSER_EMPTYTRASHHINT;Borrar definitivamente los archivos en la papelera FILEBROWSER_EXTPROGMENU;Abrir con FILEBROWSER_FLATFIELD;Campo plano FILEBROWSER_MOVETODARKFDIR;Mover a carpeta de Tomas Negras diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 4c2fb8d9b..abca556ff 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -118,11 +118,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Label couleur\n\nUtilisez le menu déroulant ou l FILEBROWSER_COPYPROFILE;Copier le profil FILEBROWSER_CURRENT_NAME;Nom courant: FILEBROWSER_DARKFRAME;Trame Noire -FILEBROWSER_DELETEDLGLABEL;Confirmation de la suppression de fichier -FILEBROWSER_DELETEDLGMSG;Êtes-vous sûr de vouloir supprimer les %1 fichiers selectionnés? -FILEBROWSER_DELETEDLGMSGINCLPROC;Êtes-vous sûr de vouloir supprimer les %1 fichiers sélectionnés, INCLUANT une version déjà traitée? +FILEBROWSER_DELETEDIALOG_HEADER;Confirmation de la suppression de fichier +FILEBROWSER_DELETEDIALOG_SELECTED;Êtes-vous sûr de vouloir supprimer les %1 fichiers selectionnés? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Êtes-vous sûr de vouloir supprimer les %1 fichiers sélectionnés, INCLUANT une version déjà traitée? FILEBROWSER_EMPTYTRASH;Vider la corbeille -FILEBROWSER_EMPTYTRASHHINT;Supprime définitivement les fichiers de la corbeille FILEBROWSER_EXTPROGMENU;Ouvrir avec FILEBROWSER_FLATFIELD;Champ Uniforme FILEBROWSER_MOVETODARKFDIR;Déplacer dans le dossier d'images de Trame Noire diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 3c5a0201a..20d5f44ed 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -91,11 +91,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Etichetta colore.\n\nUsa il menù o le scorciatoi FILEBROWSER_COPYPROFILE;Copia FILEBROWSER_CURRENT_NAME;Nome corrente: FILEBROWSER_DARKFRAME;Dark Frame -FILEBROWSER_DELETEDLGLABEL;Conferma eliminazione del file -FILEBROWSER_DELETEDLGMSG;Vuoi eliminare i %1 file selezionati? -FILEBROWSER_DELETEDLGMSGINCLPROC;Vuoi eliminare i %1 file inclusa la versione sviluppata nella coda? +FILEBROWSER_DELETEDIALOG_HEADER;Conferma eliminazione del file +FILEBROWSER_DELETEDIALOG_SELECTED;Vuoi eliminare i %1 file selezionati? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Vuoi eliminare i %1 file inclusa la versione sviluppata nella coda? FILEBROWSER_EMPTYTRASH;Svuota cestino -FILEBROWSER_EMPTYTRASHHINT;Elimina definitivamente i file dal cestino. FILEBROWSER_EXTPROGMENU;Apri con FILEBROWSER_FLATFIELD;Flat Field FILEBROWSER_MOVETODARKFDIR;Sposta nella cartella dei Dark Frame diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 96b509789..87e04d951 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -152,11 +152,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;カラー・ラベル\n\nドロップダウン・ FILEBROWSER_COPYPROFILE;プロファイルをコピー FILEBROWSER_CURRENT_NAME;現在の名前: FILEBROWSER_DARKFRAME;ダークフレーム -FILEBROWSER_DELETEDLGLABEL;ファイル削除確認 -FILEBROWSER_DELETEDLGMSG;選択済みのファイル %1 を削除してもいいですか? -FILEBROWSER_DELETEDLGMSGINCLPROC;バッチ処理に組み込まれている選択済みのファイル %1 を削除してもいいですか? +FILEBROWSER_DELETEDIALOG_HEADER;ファイル削除確認 +FILEBROWSER_DELETEDIALOG_SELECTED;選択済みのファイル %1 を削除してもいいですか? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;バッチ処理に組み込まれている選択済みのファイル %1 を削除してもいいですか? FILEBROWSER_EMPTYTRASH;ゴミ箱を空にする -FILEBROWSER_EMPTYTRASHHINT;ゴミ箱のファイルを完全に削除する FILEBROWSER_EXTPROGMENU;..で開く FILEBROWSER_FLATFIELD;フラットフィールド FILEBROWSER_MOVETODARKFDIR;ダークフレーム・ディレクトリに移動 diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 8c77b48a5..ac0527d42 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -81,11 +81,10 @@ FILEBROWSER_CLEARPROFILE;Feldolgozási paraméter törlése FILEBROWSER_COPYPROFILE;Feldolgozási paraméterek másolása FILEBROWSER_CURRENT_NAME;Aktuális név: FILEBROWSER_DARKFRAME;Referencia feketekép (dark frame) -FILEBROWSER_DELETEDLGLABEL;Állománytörlés megerősítése -FILEBROWSER_DELETEDLGMSG;Biztosan törölni kívánja a kijelölt %1 képet? -FILEBROWSER_DELETEDLGMSGINCLPROC;Biztos vagy benne, hogy törölni szeredné a kiválasztott %1 állományt, beleértve a feldolgozási sorba helyezett változatát IS? +FILEBROWSER_DELETEDIALOG_HEADER;Állománytörlés megerősítése +FILEBROWSER_DELETEDIALOG_SELECTED;Biztosan törölni kívánja a kijelölt %1 képet? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Biztos vagy benne, hogy törölni szeredné a kiválasztott %1 állományt, beleértve a feldolgozási sorba helyezett változatát IS? FILEBROWSER_EMPTYTRASH;Kuka ürítése -FILEBROWSER_EMPTYTRASHHINT;A kukában lévő képek végleges, állományrendszerből történő eltávolítása. FILEBROWSER_FLATFIELD;Flat Field FILEBROWSER_MOVETODARKFDIR;Mozgatás a 'dark frame' könyvtárba FILEBROWSER_MOVETOFLATFIELDDIR;Flat Fields könyvtárba mozgatás diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 5cf76e569..a67bcdbd4 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -122,11 +122,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Kleur label\n\nGebruik keuzemenu of nSneltoets:\n FILEBROWSER_COPYPROFILE;Kopieer profiel FILEBROWSER_CURRENT_NAME;Huidige naam: FILEBROWSER_DARKFRAME;Donkerframe -FILEBROWSER_DELETEDLGLABEL;Bevestiging bestand verwijderen -FILEBROWSER_DELETEDLGMSG;Weet u zeker dat u de geselecteerde %1 bestanden wilt verwijderen? -FILEBROWSER_DELETEDLGMSGINCLPROC;Weet u zeker dat u de %1 geselecteerde bestanden wilt verwijderen *inclusief* de versies van de verwerkingsrij? +FILEBROWSER_DELETEDIALOG_HEADER;Bevestiging bestand verwijderen +FILEBROWSER_DELETEDIALOG_SELECTED;Weet u zeker dat u de geselecteerde %1 bestanden wilt verwijderen? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Weet u zeker dat u de %1 geselecteerde bestanden wilt verwijderen *inclusief* de versies van de verwerkingsrij? FILEBROWSER_EMPTYTRASH;Leeg prullenbak -FILEBROWSER_EMPTYTRASHHINT;Verwijder bestanden in prullenbak voorgoed FILEBROWSER_EXTPROGMENU;Open met FILEBROWSER_FLATFIELD;Vlakveld FILEBROWSER_MOVETODARKFDIR;Verplaats naar map met donkerframes diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 1e60f840b..4a98dc2c1 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -95,11 +95,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Kolorowe etykiety\n\nUżyj za pomocą rozwijanej FILEBROWSER_COPYPROFILE;Kopiuj profil FILEBROWSER_CURRENT_NAME;Obecna nazwa: FILEBROWSER_DARKFRAME;Czarna klatka -FILEBROWSER_DELETEDLGLABEL;Potwierdzenie usunięcia pliku -FILEBROWSER_DELETEDLGMSG;Na pewno usunąć zaznaczone %1 plików? -FILEBROWSER_DELETEDLGMSGINCLPROC;Na pewno usunąć wybrany plik %1 WŁĄCZNIE z wersją utworzoną przez kolejkę przetwarzania? +FILEBROWSER_DELETEDIALOG_HEADER;Potwierdzenie usunięcia pliku +FILEBROWSER_DELETEDIALOG_SELECTED;Na pewno usunąć zaznaczone %1 plików? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Na pewno usunąć wybrany plik %1 WŁĄCZNIE z wersją utworzoną przez kolejkę przetwarzania? FILEBROWSER_EMPTYTRASH;Wyczyść kosz -FILEBROWSER_EMPTYTRASHHINT;Definitywnie usuwa pliki z kosza FILEBROWSER_EXTPROGMENU;Otwórz za pomocą FILEBROWSER_FLATFIELD;Puste pole FILEBROWSER_MOVETODARKFDIR;Przenieś do katalogu zawierającego czarne klatki diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 912687542..5a0f15a65 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -119,11 +119,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Etiqueta de cor.\n\nUse o menu suspenso ou atalho FILEBROWSER_COPYPROFILE;Copiar FILEBROWSER_CURRENT_NAME;Nome atual: FILEBROWSER_DARKFRAME;Fotograma escuro -FILEBROWSER_DELETEDLGLABEL;Confirmação de eliminação de ficheiro -FILEBROWSER_DELETEDLGMSG;Tem a certeza que quer eliminar os %1 ficheiros selecionados? -FILEBROWSER_DELETEDLGMSGINCLPROC;Tem a certeza que quer eliminar os %1 ficheiros selecionados incluindo uma versão processada na fila? +FILEBROWSER_DELETEDIALOG_HEADER;Confirmação de eliminação de ficheiro +FILEBROWSER_DELETEDIALOG_SELECTED;Tem a certeza que quer eliminar os %1 ficheiros selecionados? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Tem a certeza que quer eliminar os %1 ficheiros selecionados incluindo uma versão processada na fila? FILEBROWSER_EMPTYTRASH;Esvaziar o caixote do lixo -FILEBROWSER_EMPTYTRASHHINT;Eliminar permanentemente os ficheiros do caixote do lixo. FILEBROWSER_EXTPROGMENU;Abrir com FILEBROWSER_FLATFIELD;Campo plano FILEBROWSER_MOVETODARKFDIR;Mover para a pasta de fotogramas escuros diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 0493dfc6a..34e783df7 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -119,11 +119,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Etiqueta de cor.\n\nUse o menu suspenso ou atalho FILEBROWSER_COPYPROFILE;Copiar perfil FILEBROWSER_CURRENT_NAME;Nome atual: FILEBROWSER_DARKFRAME;Quadro escuro -FILEBROWSER_DELETEDLGLABEL;Confirmação de exclusão de arquivo -FILEBROWSER_DELETEDLGMSG;Tens certeza de que desejas excluir os %1 arquivos selecionados? -FILEBROWSER_DELETEDLGMSGINCLPROC;Tens certeza de que desejas excluir os %1 arquivos selecionados incluindo uma versão processada em fila? +FILEBROWSER_DELETEDIALOG_HEADER;Confirmação de exclusão de arquivo +FILEBROWSER_DELETEDIALOG_SELECTED;Tens certeza de que desejas excluir os %1 arquivos selecionados? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Tens certeza de que desejas excluir os %1 arquivos selecionados incluindo uma versão processada em fila? FILEBROWSER_EMPTYTRASH;Esvaziar lixeira -FILEBROWSER_EMPTYTRASHHINT;Excluir permanentemente os arquivos da lixeira. FILEBROWSER_EXTPROGMENU;Abrir com FILEBROWSER_FLATFIELD;Flat-Field FILEBROWSER_MOVETODARKFDIR;Mover para o diretório de quadros escuros diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 1da4584f3..57e3307e3 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -112,11 +112,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Color label\n\nUse dropdown menu or Shortcuts:\n< FILEBROWSER_COPYPROFILE;Скопировать профиль FILEBROWSER_CURRENT_NAME;Текущее имя: FILEBROWSER_DARKFRAME;Темновой кадр -FILEBROWSER_DELETEDLGLABEL;Подтверждение удаления файла -FILEBROWSER_DELETEDLGMSG;Вы уверены, что хотите удалить %1 выбранный(ых) файл(ов)? -FILEBROWSER_DELETEDLGMSGINCLPROC;Вы уверены, что хотите удалить %1 выделенных файлов, включая обработанные версии? +FILEBROWSER_DELETEDIALOG_HEADER;Подтверждение удаления файла +FILEBROWSER_DELETEDIALOG_SELECTED;Вы уверены, что хотите удалить %1 выбранный(ых) файл(ов)? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Вы уверены, что хотите удалить %1 выделенных файлов, включая обработанные версии? FILEBROWSER_EMPTYTRASH;Очистить корзину -FILEBROWSER_EMPTYTRASHHINT;Удалить файлы из корзины без возможности восстановления FILEBROWSER_EXTPROGMENU;Открыть с помощью FILEBROWSER_FLATFIELD;Плоское поле FILEBROWSER_MOVETODARKFDIR;Переместить в каталог темновых кадров diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 484d4f20b..38014aaf3 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -84,11 +84,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Натпис у боји.\n\nКористите FILEBROWSER_COPYPROFILE;Умножи профил FILEBROWSER_CURRENT_NAME;Тренутно име: FILEBROWSER_DARKFRAME;Тамни кадар -FILEBROWSER_DELETEDLGLABEL;Брисање датотеке -FILEBROWSER_DELETEDLGMSG;Да ли сигурно желите да обришете %1 датотека? -FILEBROWSER_DELETEDLGMSGINCLPROC;Да ли желите да обришете %1 изабраних датотека, укључујући и оне које су заказане? +FILEBROWSER_DELETEDIALOG_HEADER;Брисање датотеке +FILEBROWSER_DELETEDIALOG_SELECTED;Да ли сигурно желите да обришете %1 датотека? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Да ли желите да обришете %1 изабраних датотека, укључујући и оне које су заказане? FILEBROWSER_EMPTYTRASH;Избаци смеће -FILEBROWSER_EMPTYTRASHHINT;Трајно брише датотеке из смећа FILEBROWSER_EXTPROGMENU;Отвори помоћу FILEBROWSER_FLATFIELD;Равно поље FILEBROWSER_MOVETODARKFDIR;Пребаци у фасциклу са тамним кадровима diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 8394d306b..bb9ec53cb 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -93,11 +93,10 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Färgetikett\n\nAnvänd menyn eller kortkommandon FILEBROWSER_COPYPROFILE;Kopiera profil FILEBROWSER_CURRENT_NAME;Nuvarande namn: FILEBROWSER_DARKFRAME;Svartbild -FILEBROWSER_DELETEDLGLABEL;Bekräftelse vid borttag -FILEBROWSER_DELETEDLGMSG;Är du säker på att du vill ta bort de valda %1 filerna? -FILEBROWSER_DELETEDLGMSGINCLPROC;Är du säker på att du vill ta bort de valda filerna %1 OCH den behandlade versionen? +FILEBROWSER_DELETEDIALOG_HEADER;Bekräftelse vid borttag +FILEBROWSER_DELETEDIALOG_SELECTED;Är du säker på att du vill ta bort de valda %1 filerna? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Är du säker på att du vill ta bort de valda filerna %1 OCH den behandlade versionen? FILEBROWSER_EMPTYTRASH;Töm papperskorgen -FILEBROWSER_EMPTYTRASHHINT;Ta bort papperskorgens filer permanent FILEBROWSER_EXTPROGMENU;Öppna med FILEBROWSER_FLATFIELD;Plattfält FILEBROWSER_MOVETODARKFDIR;Flytta till katalogen för svartbilder diff --git a/rtdata/languages/default b/rtdata/languages/default index 81b4eeaa4..f86509ea4 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -121,11 +121,12 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\n FILEBROWSER_COPYPROFILE;Copy FILEBROWSER_CURRENT_NAME;Current name: FILEBROWSER_DARKFRAME;Dark-frame -FILEBROWSER_DELETEDLGLABEL;File delete confirmation -FILEBROWSER_DELETEDLGMSG;Are you sure you want to delete the selected %1 files? -FILEBROWSER_DELETEDLGMSGINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? +FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: +FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? FILEBROWSER_EMPTYTRASH;Empty trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete the files from trash. +FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. FILEBROWSER_EXTPROGMENU;Open with FILEBROWSER_FLATFIELD;Flat-Field FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index 7802e9987..a270e5af8 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -753,9 +753,9 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m) if (m == open) { openRequested(mselected); } else if (m == remove) { - tbl->deleteRequested (mselected, false); + tbl->deleteRequested (mselected, false, true); } else if (m == removeInclProc) { - tbl->deleteRequested (mselected, true); + tbl->deleteRequested (mselected, true, true); } else if (m == trash) { toTrashRequested (mselected); } else if (m == untrash) { diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index d579a48f4..b208a854d 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -43,7 +43,7 @@ public: virtual void openRequested(const std::vector& tbe) = 0; virtual void developRequested(const std::vector& tbe, bool fastmode) = 0; virtual void renameRequested(const std::vector& tbe) = 0; - virtual void deleteRequested(const std::vector& tbe, bool inclBatchProcessed) = 0; + virtual void deleteRequested(const std::vector& tbe, bool inclBatchProcessed, bool onlySelected) = 0; virtual void copyMoveRequested(const std::vector& tbe, bool moveRequested) = 0; virtual void selectionChanged(const std::vector& tbe) = 0; virtual void clearFromCacheRequested(const std::vector& tbe, bool leavenotrace) = 0; diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 2995a0de0..fcccaac3a 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -943,14 +943,19 @@ void FileCatalog::openRequested(const std::vector& tmb) ); } -void FileCatalog::deleteRequested(const std::vector& tbe, bool inclBatchProcessed) +void FileCatalog::deleteRequested(const std::vector& tbe, bool inclBatchProcessed, bool onlySelected) { if (tbe.empty()) { return; } - Gtk::MessageDialog msd (getToplevelWindow(this), M("FILEBROWSER_DELETEDLGLABEL"), true, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, true); - msd.set_secondary_text(Glib::ustring::compose ( inclBatchProcessed ? M("FILEBROWSER_DELETEDLGMSGINCLPROC") : M("FILEBROWSER_DELETEDLGMSG"), tbe.size()), true); + Gtk::MessageDialog msd (getToplevelWindow(this), M("FILEBROWSER_DELETEDIALOG_HEADER"), true, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, true); + if (onlySelected) { + msd.set_secondary_text(Glib::ustring::compose (inclBatchProcessed ? M("FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC") : M("FILEBROWSER_DELETEDIALOG_SELECTED"), tbe.size()), true); + } else { + msd.set_secondary_text(Glib::ustring::compose (M("FILEBROWSER_DELETEDIALOG_ALL"), tbe.size()), true); + } + if (msd.run() == Gtk::RESPONSE_YES) { for (unsigned int i = 0; i < tbe.size(); i++) { const auto fname = tbe[i]->filename; @@ -1832,7 +1837,7 @@ void FileCatalog::emptyTrash () toDel.push_back (static_cast(t[i])); } - deleteRequested (toDel, false); + deleteRequested (toDel, false, false); trashChanged(); } diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 8b5b14ed2..4c0d13e51 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -204,7 +204,7 @@ public: void filterApplied() override; void openRequested(const std::vector& tbe) override; - void deleteRequested(const std::vector& tbe, bool inclBatchProcessed) override; + void deleteRequested(const std::vector& tbe, bool inclBatchProcessed, bool onlySelected) override; void copyMoveRequested(const std::vector& tbe, bool moveRequested) override; void developRequested(const std::vector& tbe, bool fastmode) override; void renameRequested(const std::vector& tbe) override; From 683377e0399714135ce5da8d027cc38af4deef80 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 24 May 2019 16:50:23 +0200 Subject: [PATCH 093/215] generateTranslationDiffs --- rtdata/languages/Catala | 2 ++ rtdata/languages/Chinese (Simplified) | 2 ++ rtdata/languages/Czech | 8 +++++++- rtdata/languages/Deutsch | 6 ++++++ rtdata/languages/English (UK) | 4 +++- rtdata/languages/English (US) | 4 +++- rtdata/languages/Espanol | 2 ++ rtdata/languages/Francais | 2 ++ rtdata/languages/Italiano | 2 ++ rtdata/languages/Japanese | 2 ++ rtdata/languages/Magyar | 2 ++ rtdata/languages/Nederlands | 2 ++ rtdata/languages/Polish | 2 ++ rtdata/languages/Portugues | 2 ++ rtdata/languages/Portugues (Brasil) | 2 ++ rtdata/languages/Russian | 2 ++ rtdata/languages/Serbian (Cyrilic Characters) | 2 ++ rtdata/languages/Swedish | 2 ++ rtdata/languages/default | 2 +- 19 files changed, 48 insertions(+), 4 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 7814d80dd..73970424b 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -942,6 +942,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_POPUPCOLORLABEL0;Label: None !FILEBROWSER_POPUPCOLORLABEL1;Label: Red !FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 17601d763..fde2aab1b 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -957,6 +957,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. !FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 !FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 862e4ecd2..61f51cd2d 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2317,4 +2317,10 @@ ZOOMPANEL_ZOOMFITSCREEN;Přizpůsobit celý obrázek obrazovce\nZkratka: Alt< ZOOMPANEL_ZOOMIN;Přiblížit\nZkratka: + ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - -!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode \ No newline at end of file +!!!!!!!!!!!!!!!!!!!!!!!!! +! Untranslated keys follow; remove the ! prefix after an entry is translated. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 9e2217fb2..37b755287 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2357,3 +2357,9 @@ 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. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 282098f87..cda91f29a 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -239,10 +239,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !FILEBROWSER_COPYPROFILE;Copy !FILEBROWSER_CURRENT_NAME;Current name: !FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: !FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? !FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? !FILEBROWSER_EMPTYTRASH;Empty trash +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_FLATFIELD;Flat-Field !FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 0791f37fa..9affa9444 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -122,10 +122,12 @@ !FILEBROWSER_COPYPROFILE;Copy !FILEBROWSER_CURRENT_NAME;Current name: !FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: !FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? !FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? !FILEBROWSER_EMPTYTRASH;Empty trash +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_FLATFIELD;Flat-Field !FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index fac1b9d3f..b1d76b24f 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -2319,6 +2319,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !CURVEEDITOR_CATMULLROM;Flexible !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !MAIN_FRAME_PLACES_DEL;Remove !MAIN_TAB_FAVORITES;Favorites diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index abca556ff..cd3ac7394 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -2264,6 +2264,8 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !MAIN_FRAME_PLACES_DEL;Remove !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 20d5f44ed..bedba34f6 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1270,6 +1270,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !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. diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 87e04d951..0ab793099 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -2310,5 +2310,7 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !QUEUE_LOCATION_TITLE;Output Location diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index ac0527d42..d1947b893 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -870,6 +870,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) !FILEBROWSER_POPUPCOLORLABEL0;Label: None diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index a67bcdbd4..b8b30e64c 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -1979,6 +1979,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 4a98dc2c1..05f099ea6 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1392,6 +1392,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !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. diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 5a0f15a65..b59f4ffe0 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -2262,6 +2262,8 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !MAIN_FRAME_PLACES_DEL;Remove !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PROGRESSBAR_DECODING;Decoding... diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 34e783df7..da9a620df 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2254,6 +2254,8 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !MAIN_FRAME_PLACES_DEL;Remove diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 57e3307e3..c2b43033e 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1470,6 +1470,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !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_PP;Processing profiles !FILECHOOSER_FILTER_SAME;Same format as current photo diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 38014aaf3..21a34119a 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1229,6 +1229,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_POPUPCOLORLABEL0;Label: None !FILEBROWSER_POPUPCOLORLABEL1;Label: Red !FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index bb9ec53cb..14dc4069f 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1768,6 +1768,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default !GENERAL_CURRENT;Current !GENERAL_RESET;Reset diff --git a/rtdata/languages/default b/rtdata/languages/default index f86509ea4..3b96e1b17 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -121,8 +121,8 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\n FILEBROWSER_COPYPROFILE;Copy FILEBROWSER_CURRENT_NAME;Current name: FILEBROWSER_DARKFRAME;Dark-frame -FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? FILEBROWSER_EMPTYTRASH;Empty trash From 2643529d9f1a4ef630280ca7e40156b84c79b860 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 25 May 2019 17:27:24 +0200 Subject: [PATCH 094/215] Update Deutsch locale --- rtdata/languages/Deutsch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 37b755287..b0afef7e3 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -80,6 +80,7 @@ #79 24.02.2019 Erweiterung (TooWaBoo) RT 5.5 #80 25.03.2019 Erweiterung (TooWaBoo) RT 5.6 #81 15.04.2019 Erweiterung (TooWaBoo) RT 5.6 +#82 25.05.2019 Erweiterung (TooWaBoo) RT 5.6 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -2361,5 +2362,5 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +FILEBROWSER_DELETEDIALOG_ALL;Möchten Sie wirklich %1 Dateien unwiderruflich löschen? +FILEBROWSER_EMPTYTRASHHINT;Alle Dateien im Papierkorb\nunwiderruflich löschen. From 0241179244f6d7bed2e59370e37fdea31de737c5 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sun, 26 May 2019 04:30:19 +0200 Subject: [PATCH 095/215] Fixed typo "Korreturwert" --- rtdata/languages/Deutsch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index b0afef7e3..a2f33e6fe 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2344,7 +2344,7 @@ TP_WBALANCE_SOLUX47;Solux 4700K (Vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Manuell setzen TP_WBALANCE_TEMPBIAS;AWB-Temperatur-Korrektur -TP_WBALANCE_TEMPBIAS_TOOLTIP;Prozentuale Korrektur der Farbtemperatur des automatischen\nWeißabgleichs in Richtung wärmer oder kälter.\nDer Korreturwert berechnet sich aus:\nAWB-Temperatur + AWB-Temperatur * AWB-Temperatur-Korrektur +TP_WBALANCE_TEMPBIAS_TOOLTIP;Prozentuale Korrektur der Farbtemperatur des automatischen\nWeißabgleichs in Richtung wärmer oder kälter.\nDer Korrekturwert berechnet sich aus:\nAWB-Temperatur + AWB-Temperatur * AWB-Temperatur-Korrektur TP_WBALANCE_TEMPERATURE;Farbtemperatur TP_WBALANCE_TUNGSTEN;Glühlampe TP_WBALANCE_WATER1;Unterwasser 1 From 25fdf2114e43da652c782f4dc786b3516ff08293 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 1 Jun 2019 16:56:10 +0200 Subject: [PATCH 096/215] Change thumbnail cache eviction strategy --- rtgui/cachemanager.cc | 70 +++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/rtgui/cachemanager.cc b/rtgui/cachemanager.cc index d86f6c41f..d5a42e84b 100644 --- a/rtgui/cachemanager.cc +++ b/rtgui/cachemanager.cc @@ -16,18 +16,19 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include "cachemanager.h" #include #include #include +#include #include #ifdef WIN32 #include #endif +#include "cachemanager.h" #include "guiutils.h" #include "options.h" #include "procparamchangers.h" @@ -340,66 +341,63 @@ Glib::ustring CacheManager::getCacheFileName (const Glib::ustring& subDir, void CacheManager::applyCacheSizeLimitation () const { // first count files without fetching file name and timestamp. + auto cachedir = opendir(Glib::build_filename(baseDir, "data").c_str()); + if (!cachedir) { + return; + } + std::size_t numFiles = 0; - try { + while (readdir(cachedir)) { + ++numFiles; + } - const auto dirName = Glib::build_filename (baseDir, "data"); - const auto dir = Gio::File::create_for_path (dirName); - - auto enumerator = dir->enumerate_children (""); - - while (numFiles <= options.maxCacheEntries && enumerator->next_file ()) { - ++numFiles; - } - - } catch (Glib::Exception&) {} + closedir(cachedir); + numFiles -= 2; // because . and .. are counted if (numFiles <= options.maxCacheEntries) { return; } using FNameMTime = std::pair; + std::vector files; + files.reserve(numFiles); + constexpr auto md5_size = 32; + // get filenames and timestamps try { + const auto dir = Gio::File::create_for_path(Glib::build_filename(baseDir, "data")); + const auto enumerator = dir->enumerate_children("standard::name,time::modified"); - const auto dirName = Glib::build_filename (baseDir, "data"); - const auto dir = Gio::File::create_for_path (dirName); - - auto enumerator = dir->enumerate_children ("standard::name,time::modified"); - - while (auto file = enumerator->next_file ()) { - files.emplace_back (file->get_name (), file->modification_time ()); + while (const auto file = enumerator->next_file()) { + const auto name = file->get_name(); + if (name.size() >= md5_size + 5) { + files.emplace_back(name, file->modification_time()); + } } } catch (Glib::Exception&) {} - if (files.size () <= options.maxCacheEntries) { + if (files.size() <= options.maxCacheEntries) { + // limit not reached return; } - std::sort (files.begin (), files.end (), [] (const FNameMTime& lhs, const FNameMTime& rhs) + constexpr auto reserve = 0.05f; // reserve 5% free cache space + const size_t toDelete = files.size() - options.maxCacheEntries + options.maxCacheEntries * reserve; + + std::nth_element(files.begin(), files.begin() + toDelete, files.end(), [] (const FNameMTime& lhs, const FNameMTime& rhs) { return lhs.second < rhs.second; }); - auto cacheEntries = files.size (); - - for (auto entry = files.begin (); cacheEntries-- > options.maxCacheEntries; ++entry) { - + for (auto entry = files.begin(); entry < files.begin() + toDelete; ++entry) { const auto& name = entry->first; + const auto name_size = name.size() - md5_size; + const auto fname = name.substr(0, name_size - 5); + const auto md5 = name.substr(name_size - 4, md5_size); - constexpr auto md5_size = 32; - const auto name_size = name.size(); - - if (name_size < md5_size + 5) { - continue; - } - - const auto fname = name.substr (0, name_size - md5_size - 5); - const auto md5 = name.substr (name_size - md5_size - 4, md5_size); - - deleteFiles (fname, md5, true, false); + deleteFiles(fname, md5, true, false); } } From f9c44f2e4757fc8ca56c20121cb0483c09b0fa46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Mon, 3 Jun 2019 09:19:46 +0200 Subject: [PATCH 097/215] Some minor cleanups and optimizations --- rtgui/cachemanager.cc | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/rtgui/cachemanager.cc b/rtgui/cachemanager.cc index d5a42e84b..2b35e1e7a 100644 --- a/rtgui/cachemanager.cc +++ b/rtgui/cachemanager.cc @@ -20,15 +20,16 @@ #include #include -#include #include #include +#include #ifdef WIN32 #include #endif #include "cachemanager.h" + #include "guiutils.h" #include "options.h" #include "procparamchangers.h" @@ -352,7 +353,9 @@ void CacheManager::applyCacheSizeLimitation () const } closedir(cachedir); - numFiles -= 2; // because . and .. are counted + if (numFiles > 2) { + numFiles -= 2; // because . and .. are counted + } if (numFiles <= options.maxCacheEntries) { return; @@ -363,7 +366,7 @@ void CacheManager::applyCacheSizeLimitation () const std::vector files; files.reserve(numFiles); - constexpr auto md5_size = 32; + constexpr std::size_t md5_size = 32; // get filenames and timestamps try { const auto dir = Gio::File::create_for_path(Glib::build_filename(baseDir, "data")); @@ -383,15 +386,19 @@ void CacheManager::applyCacheSizeLimitation () const return; } - constexpr auto reserve = 0.05f; // reserve 5% free cache space - const size_t toDelete = files.size() - options.maxCacheEntries + options.maxCacheEntries * reserve; + const std::size_t toDelete = files.size() - options.maxCacheEntries + options.maxCacheEntries * 100 / 5; // reserve 5% free cache space - std::nth_element(files.begin(), files.begin() + toDelete, files.end(), [] (const FNameMTime& lhs, const FNameMTime& rhs) - { - return lhs.second < rhs.second; - }); + std::nth_element( + files.begin(), + files.begin() + toDelete, + files.end(), + [](const FNameMTime& lhs, const FNameMTime& rhs) -> bool + { + return lhs.second < rhs.second; + } + ); - for (auto entry = files.begin(); entry < files.begin() + toDelete; ++entry) { + for (std::vector::const_iterator entry = files.begin(), end = files.begin() + toDelete; entry != end; ++entry) { const auto& name = entry->first; const auto name_size = name.size() - md5_size; const auto fname = name.substr(0, name_size - 5); From 386ae560b1bfcf3953accb5b9200651fc7f508c8 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 3 Jun 2019 14:32:22 +0200 Subject: [PATCH 098/215] generateTranslationDiffs --- rtdata/languages/Deutsch | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index a2f33e6fe..7f562d51c 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -201,10 +201,12 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Farbmarkierung\n\nTaste: Strg + FILEBROWSER_COPYPROFILE;Profil kopieren FILEBROWSER_CURRENT_NAME;Aktueller Name: FILEBROWSER_DARKFRAME;Dunkelbild +FILEBROWSER_DELETEDIALOG_ALL;Möchten Sie wirklich %1 Dateien unwiderruflich löschen? FILEBROWSER_DELETEDIALOG_HEADER;Dateien löschen FILEBROWSER_DELETEDIALOG_SELECTED;Möchten Sie wirklich %1 Datei(en) unwiderruflich löschen? FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Möchten Sie wirklich %1 Datei(en) unwiderruflich löschen, mit allen aus der Stapelverarbeitung resultierenden zugehörigen Ausgabedateien? FILEBROWSER_EMPTYTRASH;Papierkorb leeren +FILEBROWSER_EMPTYTRASHHINT;Alle Dateien im Papierkorb\nunwiderruflich löschen. FILEBROWSER_EXTPROGMENU;Öffnen mit FILEBROWSER_FLATFIELD;Weißbild FILEBROWSER_MOVETODARKFDIR;In Dunkelbild-Verzeichnis verschieben @@ -2358,9 +2360,3 @@ 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. -!!!!!!!!!!!!!!!!!!!!!!!!! - -FILEBROWSER_DELETEDIALOG_ALL;Möchten Sie wirklich %1 Dateien unwiderruflich löschen? -FILEBROWSER_EMPTYTRASHHINT;Alle Dateien im Papierkorb\nunwiderruflich löschen. From cc60ea224807a3057ef71aedab60b4e792ba3581 Mon Sep 17 00:00:00 2001 From: "luz.paz" Date: Mon, 3 Jun 2019 17:38:50 -0400 Subject: [PATCH 099/215] Fix source comment and misc. typos Found via `codespell -q 3 -I ../rawtherapy-whitelist.txt -S ./rtdata/languages -L hist,fo,reall,bloc,alph` --- rtdata/languages/default | 2 +- rtdata/options/options.lin | 2 +- rtdata/options/options.osx | 2 +- rtdata/options/options.win | 2 +- rtengine/EdgePreservingDecomposition.cc | 2 +- rtengine/color.h | 2 +- rtengine/demosaic_algos.cc | 6 +++--- rtengine/eahd_demosaic.cc | 2 +- rtengine/improcfun.cc | 6 +++--- rtengine/ipretinex.cc | 2 +- rtengine/ipwavelet.cc | 6 +++--- rtgui/myflatcurve.cc | 2 +- rtgui/options.cc | 2 +- rtgui/toolpanelcoord.cc | 4 ++-- win.cmake | 2 +- 15 files changed, 22 insertions(+), 22 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 3b96e1b17..5ea726218 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1429,7 +1429,7 @@ TP_COLORAPP_SURROUND_AVER;Average TP_COLORAPP_SURROUND_DARK;Dark TP_COLORAPP_SURROUND_DIM;Dim TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness TP_COLORAPP_TCMODE_CHROMA;Chroma TP_COLORAPP_TCMODE_COLORF;Colorfulness diff --git a/rtdata/options/options.lin b/rtdata/options/options.lin index 91520dc0e..1d2f9faac 100644 --- a/rtdata/options/options.lin +++ b/rtdata/options/options.lin @@ -6,7 +6,7 @@ [General] # Setting MultiUser to false will use the application's installation directory as cache directory, -# which can be useful if you want to keep the application and all the cache datas in a single place, +# which can be useful if you want to keep the application and all the cache data in a single place, # an external HD for example MultiUser=true diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index 4decccb6d..11c5da4c8 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -6,7 +6,7 @@ [General] # Setting MultiUser to false will use the application's installation directory as cache directory, -# which can be useful if you want to keep the application and all the cache datas in a single place, +# which can be useful if you want to keep the application and all the cache data in a single place, # an external HD for example MultiUser=true diff --git a/rtdata/options/options.win b/rtdata/options/options.win index 40e73aacc..a4a767bf4 100644 --- a/rtdata/options/options.win +++ b/rtdata/options/options.win @@ -6,7 +6,7 @@ [General] # Setting MultiUser to false will use the application's installation directory as cache directory, -# which can be useful if you want to keep the application and all the cache datas in a single place, +# which can be useful if you want to keep the application and all the cache data in a single place, # an external HD for example MultiUser=true # Windows users should not use the system theme : some composed widget won't be usable diff --git a/rtengine/EdgePreservingDecomposition.cc b/rtengine/EdgePreservingDecomposition.cc index 6505cedab..6bda5d437 100644 --- a/rtengine/EdgePreservingDecomposition.cc +++ b/rtengine/EdgePreservingDecomposition.cc @@ -406,7 +406,7 @@ bool MultiDiagonalSymmetricMatrix::CreateIncompleteCholeskyFactorization(int Max fp = 1; for(int ii = 1; ii < m; ii++) { - fp = rtengine::min(StartRows[ii] - StartRows[ii - 1], MaxFillAbove); //Guarunteed positive since StartRows must be created in increasing order. + fp = rtengine::min(StartRows[ii] - StartRows[ii - 1], MaxFillAbove); //Guaranteed positive since StartRows must be created in increasing order. mic = mic + fp; } diff --git a/rtengine/color.h b/rtengine/color.h index e1ce1c08c..a94302e30 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -1796,7 +1796,7 @@ public: static inline double huelab_to_huehsv2 (float HH) { //hr=translate Hue Lab value (-Pi +Pi) in approximative hr (hsv values) (0 1) [red 1/6 yellow 1/6 green 1/6 cyan 1/6 blue 1/6 magenta 1/6 ] - // with multi linear correspondances (I expect there is no error !!) + // with multi linear correspondences (I expect there is no error !!) double hr = 0.0; //always put h between 0 and 1 diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index 3536f1053..dc12bc01a 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -1206,10 +1206,10 @@ void RawImageSource::igv_interpolate(int winw, int winh) } for (; col < width; col++, indx += 2) { - dest1[indx >> 1] = CLIP(rawData[row][col]); //rawData = RT datas + dest1[indx >> 1] = CLIP(rawData[row][col]); //rawData = RT data col++; if(col < width) - dest2[indx >> 1] = CLIP(rawData[row][col]); //rawData = RT datas + dest2[indx >> 1] = CLIP(rawData[row][col]); //rawData = RT data } } @@ -1561,7 +1561,7 @@ void RawImageSource::igv_interpolate(int winw, int winh) for (int row = 0; row < height - 0; row++) for (int col = 0, indx = row * width + col; col < width - 0; col++, indx++) { int c = FC(row, col); - rgb[c][indx] = CLIP(rawData[row][col]); //rawData = RT datas + rgb[c][indx] = CLIP(rawData[row][col]); //rawData = RT data } // border_interpolate2(7, rgb); diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index 4bbf37c69..1663a087d 100644 --- a/rtengine/eahd_demosaic.cc +++ b/rtengine/eahd_demosaic.cc @@ -415,7 +415,7 @@ void RawImageSource::eahd_demosaic () } } - // finish H-2th and H-1th row, homogenity value is still valailable + // finish H-2th and H-1th row, homogeneity value is still available for (int i = H - 1; i < H + 1; i++) for (int j = 0; j < W; j++) { int hc = homh[(i - 1) % 3][j]; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index f63313126..53d930e1e 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -729,7 +729,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw const float hue = params->colorappearance.colorh; const float rstprotection = 100. - params->colorappearance.rstprotection; - // extracting datas from 'params' to avoid cache flush (to be confirmed) + // extracting data from 'params' to avoid cache flush (to be confirmed) const ColorAppearanceParams::TcMode curveMode = params->colorappearance.curveMode; const bool hasColCurve1 = bool (customColCurve1); const bool t1L = hasColCurve1 && curveMode == ColorAppearanceParams::TcMode::LIGHT; @@ -1668,7 +1668,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw -//all this treatments reduce artifacts, but can lead to slighty different results +//all this treatments reduce artifacts, but can lead to slightly different results if (params->defringe.enabled) if (execsharp) { @@ -2231,7 +2231,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer const float shoulder = ((65536.0 / max (1.0f, exp_scale)) * (hlcomprthresh / 200.0)) + 0.1; const float hlrange = 65536.0 - shoulder; const bool isProPhoto = (params->icm.workingProfile == "ProPhoto"); - // extracting datas from 'params' to avoid cache flush (to be confirmed) + // extracting data from 'params' to avoid cache flush (to be confirmed) ToneCurveMode curveMode = params->toneCurve.curveMode; ToneCurveMode curveMode2 = params->toneCurve.curveMode2; bool highlight = params->toneCurve.hrenabled;//Get the value if "highlight reconstruction" is activated diff --git a/rtengine/ipretinex.cc b/rtengine/ipretinex.cc index 9d94e9326..309c7073b 100644 --- a/rtengine/ipretinex.cc +++ b/rtengine/ipretinex.cc @@ -656,7 +656,7 @@ void RawImageSource::MSR(float** luminance, float** originalLuminance, float **e float cdfactor = 32768.f / delta; maxCD = -9999999.f; minCD = 9999999.f; - // coeff for auto "transmission" with 2 sigma #95% datas + // coeff for auto "transmission" with 2 sigma #95% data float aza = 16300.f / (2.f * stddv); float azb = -aza * (mean - 2.f * stddv); float bza = 16300.f / (2.f * stddv); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index e6e84bc50..ff7aefa19 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -3004,7 +3004,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit if(useChromAndHue) { float modhue = varhue[ii][jj]; modchro = varchrom[ii * 2][jj * 2]; - // hue chroma skin with initial lab datas + // hue chroma skin with initial lab data scale = 1.f; if(skinprot > 0.f) { @@ -3216,7 +3216,7 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float LL100 = labco->L[ii * 2][jj * 2] / 327.68f; float modhue = varhue[ii][jj]; float modchro = varchrom[ii * 2][jj * 2]; - // hue chroma skin with initial lab datas + // hue chroma skin with initial lab data float scale = 1.f; if(skinprot > 0.f) { @@ -3252,7 +3252,7 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float modchro = varchrom[ii * 2][jj * 2]; if(useSkinControl) { - // hue chroma skin with initial lab datas + // hue chroma skin with initial lab data float LL100 = labco->L[ii * 2][jj * 2] / 327.68f; float modhue = varhue[ii][jj]; diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index 03ee362a2..29558a22b 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -1621,7 +1621,7 @@ void MyFlatCurve::movePoint(bool moveX, bool moveY, bool pipetteDrag) } } -// Set datas relative to cursor position +// Set data relative to cursor position void MyFlatCurve::getCursorPosition(Gdk::EventType evType, bool isHint, int evX, int evY, Gdk::ModifierType modifierKey) { int tx, ty; diff --git a/rtgui/options.cc b/rtgui/options.cc index 8f601b764..2437f5313 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -44,7 +44,7 @@ // User's settings directory, including images' profiles if used Glib::ustring Options::rtdir; -// User's cached datas' directory +// User's cached data directory Glib::ustring Options::cacheBaseDir; Options options; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index a595b1b1c..41e25387e 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -768,8 +768,8 @@ rtengine::RawImage* ToolPanelCoordinator::getFF() const rtengine::FramesMetaData *imd = ipc->getInitialImage()->getMetaData(); if (imd) { - // int iso = imd->getISOSpeed(); temporarilly removed because unused - // double shutter = imd->getShutterSpeed(); temporarilly removed because unused + // int iso = imd->getISOSpeed(); temporarily removed because unused + // double shutter = imd->getShutterSpeed(); temporarily removed because unused double aperture = imd->getFNumber(); double focallength = imd->getFocalLen(); std::string maker ( imd->getMake() ); diff --git a/win.cmake b/win.cmake index 9c292b2df..8b1caa12d 100644 --- a/win.cmake +++ b/win.cmake @@ -5,7 +5,7 @@ #set(CMAKE_BUILD_TYPE Release CACHE STRING "Between: None Debug Release RelWithDebInfo MinSizeRel.") set(CMAKE_INSTALL_PREFIX ./${CMAKE_BUILD_TYPE} CACHE PATH "Libraries installation path") -set(DATADIR . CACHE PATH "Datas installation path") +set(DATADIR . CACHE PATH "Data installation path") set(BINDIR . CACHE PATH "Binaries installation path") set(LIBDIR . CACHE PATH "Libraries installation path") set(DOCDIR ./doc CACHE PATH "Documentation installation path") From d46a043add523ee3136f2e897fb67f8be63f4cb7 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Jun 2019 14:17:38 +0200 Subject: [PATCH 100/215] basic support for Fujifilm GFX 100 --- rtengine/camconst.json | 5 +++++ rtengine/dcraw.cc | 2 ++ 2 files changed, 7 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 2492eec28..9e6ec49b6 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1245,6 +1245,11 @@ Camera constants: "ranges": { "white": 64886 } }, + { // Quality C + "make_model": "FUJIFILM GFX 100", + "raw_crop": [ 0, 2, 11664, 8734 ] + }, + { // Quality B "make_model": "FUJIFILM GFX 50S", "dcraw_matrix": [ 11756,-4754,-874,-3056,11045,2305,-381,1457,6006 ], // DNGv9.9 D65 diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index ceb40f279..68934314e 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -9279,6 +9279,8 @@ void CLASS identify() apply_tiff(); if (!strcmp(model, "X-T3")) { height = raw_height - 2; + } else if (!strcmp(model, "GFX 100")) { + load_flags = 0; } if (!load_raw) { load_raw = &CLASS unpacked_load_raw; From f18724e0166acb369f7c7f16a26bc773cc2794d3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Jun 2019 16:30:22 +0200 Subject: [PATCH 101/215] Silence some warnings --- rtengine/dcraw.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 68934314e..ae8aefa91 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -4,6 +4,9 @@ #if (__GNUC__ >= 6) #pragma GCC diagnostic ignored "-Wmisleading-indentation" #endif +#if (__GNUC__ >= 9) +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif #endif /*RT*/#include From a391e256bcf63ab3fcae4568c0525fa3496cdf29 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Jun 2019 16:30:54 +0200 Subject: [PATCH 102/215] Fix possibly uninitialized variable --- rtengine/procparams.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 6d914bb27..c24ee0049 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -3965,7 +3965,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) if (ppVersion >= 346) { assignFromKeyfile(keyFile, "SharpenMicro", "Uniformity", pedited, sharpenMicro.uniformity, pedited->sharpenMicro.uniformity); } else { - double temp; + double temp = 50.0; assignFromKeyfile(keyFile, "SharpenMicro", "Uniformity", pedited, temp, pedited->sharpenMicro.uniformity); sharpenMicro.uniformity = temp / 10; } From 3c0b0ffd331ca6d9bae8eed63723bf17a9c6e1e4 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Jun 2019 17:01:05 +0200 Subject: [PATCH 103/215] Small speedup for loading unpacked 16 bit raw files --- rtengine/dcraw.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index ae8aefa91..280b692e7 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -2507,11 +2507,19 @@ void CLASS unpacked_load_raw() while (1 << ++bits < maximum); read_shorts (raw_image, raw_width*raw_height); - for (row=0; row < raw_height; row++) - for (col=0; col < raw_width; col++) - if ((RAW(row,col) >>= load_flags) >> bits - && (unsigned) (row-top_margin) < height - && (unsigned) (col-left_margin) < width) derror(); + if (load_flags) { + for (row=0; row < raw_height; row++) + for (col=0; col < raw_width; col++) + if ((RAW(row,col) >>= load_flags) >> bits + && (unsigned) (row-top_margin) < height + && (unsigned) (col-left_margin) < width) derror(); + } else if (bits < 16) { + for (row=0; row < raw_height; row++) + for (col=0; col < raw_width; col++) + if (RAW(row,col) >> bits + && (unsigned) (row-top_margin) < height + && (unsigned) (col-left_margin) < width) derror(); + } } From df65774667f3d62cbc0698f219f743f81f910cd5 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 4 Jun 2019 17:52:39 +0200 Subject: [PATCH 104/215] Fix calculation of reserve --- rtgui/cachemanager.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/cachemanager.cc b/rtgui/cachemanager.cc index 2b35e1e7a..b270c3795 100644 --- a/rtgui/cachemanager.cc +++ b/rtgui/cachemanager.cc @@ -386,7 +386,7 @@ void CacheManager::applyCacheSizeLimitation () const return; } - const std::size_t toDelete = files.size() - options.maxCacheEntries + options.maxCacheEntries * 100 / 5; // reserve 5% free cache space + const std::size_t toDelete = files.size() - options.maxCacheEntries + options.maxCacheEntries * 5 / 100; // reserve 5% free cache space std::nth_element( files.begin(), From 6486c491f8aafcb0e17b9c06172dbdaaf6b25cfa Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 5 Jun 2019 12:55:08 +0200 Subject: [PATCH 105/215] Vibrance causes RT to freeze, fixes #5346 --- rtengine/ipvibrance.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rtengine/ipvibrance.cc b/rtengine/ipvibrance.cc index 9bb4bc087..ca938fbbe 100644 --- a/rtengine/ipvibrance.cc +++ b/rtengine/ipvibrance.cc @@ -612,6 +612,7 @@ void ImProcFunctions::vibrance (LabImage* lab) const float fyy = Color::c1By116 * Lprov + Color::c16By116; const float yy_ = (Lprov > Color::epskap) ? fyy * fyy*fyy : Lprov / Color::kappaf; + float ChprovOld = std::numeric_limits::min(); do { inGamut = true; @@ -625,10 +626,15 @@ void ImProcFunctions::vibrance (LabImage* lab) hhModified = false; } } - aprovn = Chprov * sincosval.y; bprovn = Chprov * sincosval.x; + if (Chprov == ChprovOld) { // avoid endless loop + break; + } else { + ChprovOld = Chprov; + } + float fxx = 0.002f * aprovn + fyy; float fzz = fyy - 0.005f * bprovn; float xx_ = Color::f2xyz(fxx) * Color::D50x; From dec20d09fddd4f7493831a11c9935ae1a9fb8421 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Thu, 6 Jun 2019 22:26:34 -0700 Subject: [PATCH 106/215] Mac bundle: update to libomp and `--timestamp` the code signings. --- tools/osx/macosx_bundle.sh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 1413b5d76..f3ff8d8ca 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -165,11 +165,8 @@ cp /opt/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks cp /opt/local/lib/liblensfun.2.dylib "${RESOURCES}/../Frameworks" -# Copy libiomp5 to Frameworks -cp /opt/local/lib/libomp/libiomp5.dylib "${RESOURCES}/../Frameworks" - -# Copy the libiomp5 license into the app bundle -cp "${PROJECT_SOURCE_DIR}/licenses/osx_libiomp5_LICENSE.txt" "${RESOURCES}" +# Copy libomp to Frameworks +cp /opt/local/lib/libomp.dylib "${RESOURCES}/../Frameworks" # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do @@ -207,7 +204,7 @@ plutil -convert binary1 "${CONTENTS}/Info.plist" # Sign the app CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" -codesign --deep --force -v -s "${CODESIGNID}" "${APP}" +codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${APP}" spctl -a -vvvv "${APP}" function CreateDmg { @@ -237,7 +234,7 @@ function CreateDmg { hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" # Sign disk image - codesign --deep --force -v -s "${CODESIGNID}" "${dmg_name}.dmg" + codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" # Zip disk image for redistribution zip "${dmg_name}.zip" "${dmg_name}.dmg" AboutThisBuild.txt From 3b19b9f55b18042180969ad06babf1639dc528e2 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 7 Jun 2019 16:37:59 +0200 Subject: [PATCH 107/215] Rawtherapee 5.6 crashes with.dng from PixelShift2DNG-0.9.8.67, fixes #5348 --- rtengine/rawimage.cc | 2 +- rtengine/rtthumbnail.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 18848274a..1fa1630ab 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -767,7 +767,7 @@ float** RawImage::compress_image(unsigned int frameNum, bool freeImage) this->data[row][col] = image[row * width + col][0]; } } else { - if(get_maker() == "Sigma" && dng_version) { // Hack to prevent sigma dng files from crashing + if((get_maker() == "Sigma" || get_maker() == "Pentax" || get_maker() == "Sony") && dng_version) { // Hack to prevent sigma dng files and dng files from PixelShift2DNG from crashing height -= top_margin; width -= left_margin; } diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 1ee09dcf3..0a74cf8c2 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -714,7 +714,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati int wmax = tmpw; int hmax = tmph; - if (ri->get_maker() == "Sigma" && ri->DNGVERSION()) { // Hack to prevent sigma dng files from crashing + if ((ri->get_maker() == "Sigma" || ri->get_maker() == "Pentax" || ri->get_maker() == "Sony") && ri->DNGVERSION()) { // Hack to prevent sigma dng files from crashing wmax = (width - 2 - left_margin) / hskip; hmax = (height - 2 - top_margin) / vskip; } From 9df80089491f918df4b07ea8f82c01ed5a04b282 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 4 Jun 2019 21:31:03 +0200 Subject: [PATCH 108/215] Film negative processing: first usable version. Only supports bayer raw files, thumbnails don't work Added performance improvements suggested by heckflosse. Lowered median sampling step from 7 to 5 since calculation is now much faster. Added support for Fuji X-Trans raw files. Applied SSE2 patch provided by @heckflosse, improves performance in main processing loop. Moved film negative processing stuff in its own compilation unit. Code cleanup: removed redundant omp directives. Added check for dead pixels, going above threshold after inversion. ST_BAYER only for now. Reverted leftover hack in cropwindow.cc --- .gitignore | 1 + rtdata/languages/Catala | 9 + rtdata/languages/Chinese (Simplified) | 9 + rtdata/languages/Deutsch | 13 + rtdata/languages/English (UK) | 9 + rtdata/languages/English (US) | 9 + rtdata/languages/Italiano | 9 + rtdata/languages/Magyar | 9 + rtdata/languages/Nederlands | 9 + rtdata/languages/Polish | 9 + rtdata/languages/Portugues (Brasil) | 9 + rtdata/languages/Russian | 9 + rtdata/languages/Serbian (Cyrilic Characters) | 9 + rtdata/languages/Swedish | 9 + rtdata/languages/default | 9 + rtengine/CMakeLists.txt | 1 + rtengine/filmnegativeproc.cc | 321 ++++++++++++++++++ rtengine/imagesource.h | 3 + rtengine/improccoordinator.cc | 31 ++ rtengine/improccoordinator.h | 1 + rtengine/procparams.cc | 41 +++ rtengine/procparams.h | 19 ++ rtengine/rawimagesource.h | 4 + rtengine/rtengine.h | 1 + rtengine/simpleprocess.cc | 5 + rtgui/CMakeLists.txt | 1 + rtgui/filmnegative.cc | 320 +++++++++++++++++ rtgui/filmnegative.h | 91 +++++ rtgui/paramsedited.cc | 29 ++ rtgui/paramsedited.h | 10 + rtgui/toolpanelcoord.cc | 18 +- rtgui/toolpanelcoord.h | 8 +- 32 files changed, 1033 insertions(+), 2 deletions(-) create mode 100644 rtengine/filmnegativeproc.cc create mode 100644 rtgui/filmnegative.cc create mode 100644 rtgui/filmnegative.h diff --git a/.gitignore b/.gitignore index 21ebf986a..fc65c877c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ .project .settings .directory +.vscode CMakeCache.txt CMakeFiles diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 73970424b..f9bcf25b2 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1314,6 +1314,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1851,6 +1853,13 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index fde2aab1b..78807ddd4 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1361,6 +1361,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1798,6 +1800,13 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 7f562d51c..fd2d0d07a 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2360,3 +2360,16 @@ 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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index cda91f29a..24bffbb0a 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -838,6 +838,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1665,6 +1667,13 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 9affa9444..5dad9591a 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -748,6 +748,8 @@ !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1636,6 +1638,13 @@ !TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index bedba34f6..98d86b69d 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1539,6 +1539,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1903,6 +1905,13 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index d1947b893..7aa5b30c3 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1248,6 +1248,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1816,6 +1818,13 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index b8b30e64c..508f06384 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2036,6 +2036,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -2230,6 +2232,13 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_ICM_WORKING_TRC;Tone response curve: !TP_ICM_WORKING_TRC_CUSTOM;Custom !TP_ICM_WORKING_TRC_GAMMA;Gamma diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 05f099ea6..e35f583ff 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1621,6 +1621,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1929,6 +1931,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !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. diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index da9a620df..0bafe632f 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2258,6 +2258,8 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !MAIN_FRAME_PLACES_DEL;Remove !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. @@ -2271,6 +2273,13 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !TP_COLORTONING_LABREGION_OFFSET;Offset !TP_COLORTONING_LABREGION_POWER;Power !TP_CROP_PPI;PPI +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !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. diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index c2b43033e..9e43f1098 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1706,6 +1706,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D !HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type @@ -1974,6 +1976,13 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !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_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 21a34119a..ce1452821 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1514,6 +1514,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1902,6 +1904,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 14dc4069f..cd3b9b3fc 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1863,6 +1863,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -2117,6 +2119,13 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_GREEN;Green exponent +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Employ the embedded DCP baseline exposure offset. The setting is only available if the selected DCP has one. diff --git a/rtdata/languages/default b/rtdata/languages/default index 5ea726218..e6a546a7e 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -747,6 +747,8 @@ 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_FILMNEGATIVE_ENABLED;Film Negative +HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed HISTORY_MSG_HISTMATCHING;Auto-matched tone curve HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1635,6 +1637,13 @@ TP_EXPOSURE_TCMODE_STANDARD;Standard TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points TP_EXPOS_WHITEPOINT_LABEL;Raw White Points +TP_FILMNEGATIVE_BLUE;Blue exponent +TP_FILMNEGATIVE_GREEN;Green exponent +TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +TP_FILMNEGATIVE_LABEL;Film Negative +TP_FILMNEGATIVE_PICK;Pick white and black spots +TP_FILMNEGATIVE_RED;Red exponent +TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots TP_FILMSIMULATION_LABEL;Film Simulation 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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index a1037f5a3..dfa843fd0 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -132,6 +132,7 @@ set(RTENGINESOURCEFILES ipdehaze.cc iplabregions.cc lj92.c + filmnegativeproc.cc ) if(LENSFUN_HAS_LOAD_DIRECTORY) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc new file mode 100644 index 000000000..dba623ab4 --- /dev/null +++ b/rtengine/filmnegativeproc.cc @@ -0,0 +1,321 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2010 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include +#include + +#include "rtengine.h" +#include "rawimagesource.h" +#include "mytime.h" +#include "procparams.h" +#ifdef _OPENMP +#include +#endif +#include "opthelper.h" +#include "rt_algo.h" + +namespace rtengine +{ + +extern const Settings* settings; + +bool RawImageSource::channelsAvg(Coord spotPos, int spotSize, float avgs[3], const FilmNegativeParams ¶ms) +{ + avgs[0] = avgs[1] = avgs[2] = 0.f; // Channel averages + + if(ri->getSensorType() != ST_BAYER && ri->getSensorType() != ST_FUJI_XTRANS) + return false; + + if (settings->verbose) + printf("Spot coord: x=%d y=%d\n", spotPos.x, spotPos.y); + + int x1 = spotPos.x - spotSize / 2; + int x2 = spotPos.x + spotSize / 2; + int y1 = spotPos.y - spotSize / 2; + int y2 = spotPos.y + spotSize / 2; + + if(x1<0 || x2>W || y1<0 || y2>H) + return false; // Spot goes outside bounds, bail out. + + int pxCount[3] = {0}; // Per-channel sample counts + for(int c=spotPos.x-spotSize; cgetSensorType() == ST_BAYER) ? FC(r,c) : ri->XTRANSFC(r,c); + + pxCount[ch]++; + // If film negative is currently enabled, undo the effect by elevating to 1/exp, + // in order to sample the original, linear value + if(params.enabled) + avgs[ch] += powf(rawData[r][c], -1 / (ch==0 ? params.redExp : ch==1 ? params.greenExp : params.blueExp)); + else + avgs[ch] += rawData[r][c]; + } + } + + for(int ch=0; ch<3; ch++) + avgs[ch] = avgs[ch] / (pxCount[ch]); + + return true; +} + +// Calculate logarithms in arbitrary base +float logBase(float base, float num) { + return log(num) / log(base); +} + +bool RawImageSource::getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, float newExps[3]) +{ + float clearVals[3], denseVals[3]; + + newExps[0] = currentParams.redExp; + newExps[1] = currentParams.greenExp; + newExps[2] = currentParams.blueExp; + + int spotSize = 32; // TODO : make this confugurable ? + Coord spot; + // Sample first spot + transformPosition (spotA.x, spotA.y, tran, spot.x, spot.y); + if(!channelsAvg(spot, spotSize, clearVals, currentParams)) + return false; + + // Sample second spot + transformPosition (spotB.x, spotB.y, tran, spot.x, spot.y); + if(!channelsAvg(spot, spotSize, denseVals, currentParams)) + return false; + + // Detect which one is the dense spot, based on green channel + if(clearVals[1] < denseVals[1]) + std::swap(clearVals, denseVals); + + if (settings->verbose) { + printf("Clear film values: R=%f G=%f B=%f\n", clearVals[0], clearVals[1], clearVals[2]); + printf("Dense film values: R=%f G=%f B=%f\n", denseVals[0], denseVals[1], denseVals[2]); + } + + float denseGreenRatio = clearVals[1] / denseVals[1]; + + // Calculate exponents for each channel, based on the ratio between the bright and dark values, + // compared to the ratio in the reference channel (green) + for(int ch=0; ch<3; ch++) + if(ch==1) + newExps[ch] = 1.f; // Green is the reference channel + else + newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 3.f); + + if (settings->verbose) + printf("New exponents: R=%f G=%f B=%f\n", newExps[0], newExps[1], newExps[2]); + + return true; +} + +void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams ¶ms) +{ + if(!params.enabled) + return; + + float exps[3] = { (float)params.redExp, (float)params.greenExp, (float)params.blueExp }; + + MyTime t1, t2, t3,t4, t5, t6; + t1.set(); + + if(ri->getSensorType() == ST_BAYER) { +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic, 16) +#endif + for (int row = 0; row < H; row ++) { + int col = 0; + // Exponents are expressed as positive in the parameters, so negate them in order + // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. + const float exps0 = -exps[FC(row, col)]; + const float exps1 = -exps[FC(row, col + 1)]; +#ifdef __SSE2__ + const vfloat expsv = _mm_setr_ps(exps0, exps1, exps0, exps1); + const vfloat onev = F2V(1.f); + for (; col < W - 3; col+=4) { + STVFU(rawData[row][col], pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv)); + } +#endif // __SSE2__ + for (; col < W - 1; col+=2) { + rawData[row][col] = pow_F(max(rawData[row][col], 1.f), exps0); + rawData[row][col + 1] = pow_F(max(rawData[row][col + 1], 1.f), exps1); + } + if (col < W) { + rawData[row][col] = pow_F(max(rawData[row][col], 1.f), exps0); + } + } + } else if(ri->getSensorType() == ST_FUJI_XTRANS) { +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic, 16) +#endif + for (int row = 0; row < H; row ++) { + int col = 0; + // Exponents are expressed as positive in the parameters, so negate them in order + // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. + const float expsc[6] = {-exps[ri->XTRANSFC(row, 0)], -exps[ri->XTRANSFC(row, 1)], -exps[ri->XTRANSFC(row, 2)], -exps[ri->XTRANSFC(row, 3)], -exps[ri->XTRANSFC(row, 4)], -exps[ri->XTRANSFC(row, 5)]}; +#ifdef __SSE2__ + const vfloat expsv0 = _mm_setr_ps(expsc[0], expsc[1], expsc[2], expsc[3]); + const vfloat expsv1 = _mm_setr_ps(expsc[4], expsc[5], expsc[0], expsc[1]); + const vfloat expsv2 = _mm_setr_ps(expsc[2], expsc[3], expsc[4], expsc[5]); + const vfloat onev = F2V(1.f); + for (; col < W - 11; col+=12) { + STVFU(rawData[row][col], pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0)); + STVFU(rawData[row][col + 4], pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1)); + STVFU(rawData[row][col + 8], pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2)); + } +#endif // __SSE2__ + for (; col < W - 5; col+=6) { + for (int c = 0; c < 6; ++c) { + rawData[row][col + c] = pow_F(max(rawData[row][col + c], 1.f), expsc[c]); + } + } + for (int c = 0; col < W; col++, c++) { + rawData[row][col + c] = pow_F(max(rawData[row][col + c], 1.f), expsc[c]); + } + } + } + + + t2.set(); + if (settings->verbose) + printf("Pow loop time us: %d\n", t2.etime(t1)); + + // Channel vectors to calculate medians + std::vector cvs[3] = { + std::vector(), + std::vector(), + std::vector() + }; + + // Sample one every 5 pixels, and push the value in the appropriate channel vector. + // Chose an odd step, not multiple of the CFA size, to get a chance to visit each channel. + if(ri->getSensorType() == ST_BAYER) { + for (int row = 0; row < H; row+=5) { + for (int col = 0; col < W; col+=5) { + int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + cvs[c].push_back(rawData[row][col]); + } + } + } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + for (int row = 0; row < H; row+=5) { + for (int col = 0; col < W; col+=5) { + int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B + cvs[c].push_back(rawData[row][col]); + } + } + } + + const float MAX_OUT_VALUE = 65000.f; + + t3.set(); + if (settings->verbose) + printf("Median vector fill loop time us: %d\n", t3.etime(t2)); + + float medians[3]; // Channel median values + float mults[3] = { 1.f }; // Channel normalization multipliers + + for (int c=0; c<3; c++) { + // Find median values for each channel using a histogram search function + findMinMaxPercentile(&cvs[c][0], cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); + // Determine the channel multipler so that N times the median becomes 65k. This clips away + // the values in the dark border surrounding the negative (due to the film holder, for example), + // the reciprocal of which have blown up to stellar values. + mults[c] = MAX_OUT_VALUE / (medians[c] * 24); + } + + + t4.set(); + if (settings->verbose) { + printf("Sample count : %lu, %lu, %lu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); + printf("Medians : %f %f %f\n", medians[0], medians[1], medians[2] ); + printf("Computed multipliers : %f %f %f\n", mults[0], mults[1], mults[2] ); + printf("Median calc time us: %d\n", t4.etime(t3)); + } + + + if(ri->getSensorType() == ST_BAYER) { + +#ifdef _OPENMP + #pragma omp for nowait +#endif + for (int row = 0; row < H; row ++) { + for (int col = 0; col < W; col++) { + int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + // Apply the multipliers + rawData[row][col] *= mults[c]; + } + } + + } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + +#ifdef _OPENMP + #pragma omp for nowait +#endif + for (int row = 0; row < H; row ++) { + for (int col = 0; col < W; col++) { + int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B + // Apply the multipliers + rawData[row][col] *= mults[c]; + } + } + + } + + + t5.set(); + if (settings->verbose) + printf("Mult loop time us: %d\n", t5.etime(t4)); + + + PixelsMap bitmapBads(W, H); + + int totBP = 0; // Hold count of bad pixels to correct + + if(ri->getSensorType() == ST_BAYER) { + + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) +#endif + + for(int i = 0; i < H; i++) + for(int j = 0; j < W; j++) { + if (rawData[i][j] >= MAX_OUT_VALUE) { + bitmapBads.set(j, i); + totBP++; + } + } + + if (totBP > 0) { + interpolateBadPixelsBayer( bitmapBads, rawData ); + } + + } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + + // TODO + + } + + t6.set(); + if (settings->verbose) { + printf("Bad pixels count: %d\n", totBP); + printf("Bad pixels interpolation time us: %d\n", t6.etime(t5)); + } +} + +} \ No newline at end of file diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index a18cca9d7..e3321b599 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -43,6 +43,7 @@ struct LensProfParams; struct RAWParams; struct RetinexParams; struct ToneCurveParams; +struct FilmNegativeParams; } @@ -77,6 +78,8 @@ public: ~ImageSource () override {} virtual int load (const Glib::ustring &fname) = 0; virtual void preprocess (const procparams::RAWParams &raw, const procparams::LensProfParams &lensProf, const procparams::CoarseTransformParams& coarse, bool prepareDenoise = true) {}; + virtual void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms) {}; + virtual bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, float newExps[3]) { return false; }; virtual void demosaic (const procparams::RAWParams &raw, bool autoContrast, double &contrastThreshold) {}; virtual void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {}; virtual void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {}; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 01f9892bf..2d0d490ad 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -277,6 +277,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) imgsrc->getRAWHistogram(histRedRaw, histGreenRaw, histBlueRaw); highDetailPreprocessComputed = highDetailNeeded; + + // After preprocess, run film negative processing if enabled + if((todo & M_RAW) && (imgsrc->getSensorType() == ST_BAYER || imgsrc->getSensorType() == ST_FUJI_XTRANS) && params->filmNegative.enabled) { + imgsrc->filmNegativeProcess (params->filmNegative); + } } /* @@ -1250,6 +1255,32 @@ void ImProcCoordinator::getSpotWB(int x, int y, int rect, double& temp, double& } } +bool ImProcCoordinator::getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) +{ + + { + MyMutex::MyLock lock(mProcessing); + + auto xlate = [this](int x, int y) { + std::vector points, red, green, blue; + + points.push_back(Coord2D(x, y)); + ipf.transCoord(fw, fh, points, red, green, blue); + return green[0]; + }; + + int tr = getCoarseBitMask(params->coarse); + + Coord2D p1 = xlate(xA, yA); + Coord2D p2 = xlate(xB, yB); + + return imgsrc->getFilmNegativeExponents(p1, p2, tr, params->filmNegative, newExps); + + } // end of mutex locking + +} + + void ImProcCoordinator::getAutoCrop(double ratio, int &x, int &y, int &w, int &h) { diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index c293f0c16..d10db8d70 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -269,6 +269,7 @@ public: bool getAutoWB (double& temp, double& green, double equal, double tempBias) override; void getCamWB (double& temp, double& green) override; void getSpotWB (int x, int y, int rectSize, double& temp, double& green) override; + bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) override; void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) override; bool getHighQualComputed() override; void setHighQualComputed() override; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index c24ee0049..9780255da 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2735,6 +2735,32 @@ bool MetaDataParams::operator!=(const MetaDataParams &other) const } +FilmNegativeParams::FilmNegativeParams() : + enabled(false), + redExp(1.36), + greenExp(1.0), + blueExp(0.86) +{ +} + +bool FilmNegativeParams::operator ==(const FilmNegativeParams& other) const +{ + return + enabled == other.enabled + && redExp == other.redExp + && greenExp == other.greenExp + && blueExp == other.blueExp; +} + +bool FilmNegativeParams::operator !=(const FilmNegativeParams& other) const +{ + return !(*this == other); +} + + + + + ProcParams::ProcParams() { setDefaults(); @@ -3566,6 +3592,13 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo // MetaData saveToKeyfile(!pedited || pedited->metadata.mode, "MetaData", "Mode", metadata.mode, keyFile); +// Film negative + saveToKeyfile(!pedited || pedited->filmNegative.enabled, "Film Negative", "Enabled", filmNegative.enabled, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.redExp, "Film Negative", "RedExponent", filmNegative.redExp, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.greenExp, "Film Negative", "GreenExponent", filmNegative.greenExp, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.blueExp, "Film Negative", "BlueExponent", filmNegative.blueExp, keyFile); + + // EXIF change list if (!pedited || pedited->exif) { for (ExifPairs::const_iterator i = exif.begin(); i != exif.end(); ++i) { @@ -5109,6 +5142,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "RAW X-Trans", "PreBlackBlue", pedited, raw.xtranssensor.blackblue, pedited->raw.xtranssensor.exBlackBlue); } + if (keyFile.has_group("Film Negative")) { + assignFromKeyfile(keyFile, "Film Negative", "Enabled", pedited, filmNegative.enabled, pedited->filmNegative.enabled); + assignFromKeyfile(keyFile, "Film Negative", "RedExponent", pedited, filmNegative.redExp, pedited->filmNegative.redExp); + assignFromKeyfile(keyFile, "Film Negative", "GreenExponent", pedited, filmNegative.greenExp, pedited->filmNegative.greenExp); + assignFromKeyfile(keyFile, "Film Negative", "BlueExponent", pedited, filmNegative.blueExp, pedited->filmNegative.blueExp); + } + + if (keyFile.has_group("MetaData")) { int mode = int(MetaDataParams::TUNNEL); assignFromKeyfile(keyFile, "MetaData", "Mode", pedited, mode, pedited->metadata.mode); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 0982fda48..3f9ff0342 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1501,6 +1501,23 @@ struct RAWParams { static Glib::ustring getFlatFieldBlurTypeString(FlatFieldBlurType type); }; + +/** + * Parameters of film negative + */ +struct FilmNegativeParams { + bool enabled; + double redExp; + double greenExp; + double blueExp; + + FilmNegativeParams(); + + bool operator ==(const FilmNegativeParams& other) const; + bool operator !=(const FilmNegativeParams& other) const; +}; + + /** * This class holds all the processing parameters applied on the images */ @@ -1559,6 +1576,8 @@ public: ExifPairs exif; ///< List of modifications appplied on the exif tags of the input image IPTCPairs iptc; ///< The IPTC tags and values to be saved to the output image + FilmNegativeParams filmNegative; ///< Film negative parameters + /** * The constructor only sets the hand-wired defaults. */ diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 530211715..56fec7146 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -44,6 +44,8 @@ private: static LUTf initInvGrad (); static void colorSpaceConversion_ (Imagefloat* im, const procparams::ColorManagementParams& cmp, const ColorTemp &wb, double pre_mul[3], cmsHPROFILE embedded, cmsHPROFILE camprofile, double cam[3][3], const std::string &camName); int defTransform (int tran); + bool channelsAvg(Coord spotPos, int spotSize, float avgs[3], const FilmNegativeParams ¶ms); + protected: MyMutex getImageMutex; // locks getImage @@ -116,6 +118,8 @@ public: int load(const Glib::ustring &fname) override { return load(fname, false); } int load(const Glib::ustring &fname, bool firstFrameOnly); void preprocess (const procparams::RAWParams &raw, const procparams::LensProfParams &lensProf, const procparams::CoarseTransformParams& coarse, bool prepareDenoise = true) override; + void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms) override; + bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, float newExps[3]) override; void demosaic (const procparams::RAWParams &raw, bool autoContrast, double &contrastThreshold) override; void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) override; void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) override; diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 6264d43ae..cc46cfca8 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -499,6 +499,7 @@ public: virtual bool getAutoWB (double& temp, double& green, double equal, double tempBias) = 0; virtual void getCamWB (double& temp, double& green) = 0; virtual void getSpotWB (int x, int y, int rectSize, double& temp, double& green) = 0; + virtual bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) = 0; virtual void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) = 0; virtual void saveInputICCReference (const Glib::ustring& fname, bool apply_wb) = 0; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 8b9bee738..e270f093f 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -209,6 +209,11 @@ private: imgsrc->setCurrentFrame (params.raw.bayersensor.imageNum); imgsrc->preprocess ( params.raw, params.lensProf, params.coarse, params.dirpyrDenoise.enabled); + // After preprocess, run film negative processing if enabled + if(imgsrc->getSensorType() == ST_BAYER && params.filmNegative.enabled) { + imgsrc->filmNegativeProcess (params.filmNegative); + } + if (pl) { pl->setProgress (0.20); } diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 3af955be8..4c775bdcc 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -161,6 +161,7 @@ set(NONCLISOURCEFILES labgrid.cc softlight.cc dehaze.cc + filmnegative.cc ) include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}") diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc new file mode 100644 index 000000000..bf4c22837 --- /dev/null +++ b/rtgui/filmnegative.cc @@ -0,0 +1,320 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2010 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include "filmnegative.h" + +#include + +#include "rtimage.h" +#include "options.h" +#include "editwidgets.h" +#include "eventmapper.h" + + +using namespace rtengine; +using namespace rtengine::procparams; + + +FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FILMNEGATIVE_LABEL"), false, true), EditSubscriber(ET_OBJECTS) +{ + + auto mkExponentAdjuster = [this](Glib::ustring label, double defaultVal) { + Adjuster *adj = Gtk::manage(new Adjuster (label, 0.3, 3, 0.01, defaultVal)); //exponent + adj->setAdjusterListener (this); + + if (adj->delay < options.adjusterMaxDelay) { + adj->delay = options.adjusterMaxDelay; + } + + adj->show(); + return adj; + }; + + redExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_RED"), 1.36); + greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 1.0); + blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 0.86); + + auto m = ProcEventMapper::getInstance(); + EvFilmNegativeEnabled = m->newEvent(ALL, "HISTORY_MSG_FILMNEGATIVE_ENABLED"); + EvFilmNegativeExponents = m->newEvent(ALL, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS"); + + + spotgrid = Gtk::manage(new Gtk::Grid()); + spotgrid->get_style_context()->add_class("grid-spacing"); + setExpandAlignProperties(spotgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + spotbutton = Gtk::manage (new Gtk::ToggleButton (M("TP_FILMNEGATIVE_PICK"))); + setExpandAlignProperties(spotbutton, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + spotbutton->get_style_context()->add_class("independent"); + spotbutton->set_tooltip_text(M("TP_FILMNEGATIVE_GUESS_TOOLTIP")); + spotbutton->set_image (*Gtk::manage (new RTImage ("color-picker-small.png"))); + + // TODO make spot size configurable ? + + // Gtk::Label* slab = Gtk::manage (new Gtk::Label (M("TP_WBALANCE_SIZE"))); + // setExpandAlignProperties(slab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + + // Gtk::Grid* wbsizehelper = Gtk::manage(new Gtk::Grid()); + // wbsizehelper->set_name("WB-Size-Helper"); + // setExpandAlignProperties(wbsizehelper, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + + // spotsize = Gtk::manage (new MyComboBoxText ()); + // setExpandAlignProperties(spotsize, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + // spotsize->append ("2"); + // spotsize->set_active(0); + // spotsize->append ("4"); + + spotgrid->attach (*spotbutton, 0, 1, 1, 1); +// spotgrid->attach (*slab, 1, 0, 1, 1); + // spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); + + pack_start (*redExp, Gtk::PACK_SHRINK, 0); + pack_start (*greenExp, Gtk::PACK_SHRINK, 0); + pack_start (*blueExp, Gtk::PACK_SHRINK, 0); + pack_start (*spotgrid, Gtk::PACK_SHRINK, 0 ); + + spotbutton->signal_toggled().connect( sigc::mem_fun(*this, &FilmNegative::editToggled) ); +// spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) ); + + + // Editing geometry; create the spot rectangle + Rectangle *spotRect = new Rectangle(); + spotRect->filled = false; + + EditSubscriber::visibleGeometry.push_back( spotRect ); + + // Stick a dummy rectangle over the whole image in mouseOverGeometry. + // This is to make sure the getCursor call is fired everywhere. + Rectangle *imgRect = new Rectangle(); + imgRect->filled = true; + + EditSubscriber::mouseOverGeometry.push_back( imgRect ); + +} + +FilmNegative::~FilmNegative() +{ +// idle_register.destroy(); + + for (std::vector::const_iterator i = visibleGeometry.begin(); i != visibleGeometry.end(); ++i) { + delete *i; + } + + for (std::vector::const_iterator i = mouseOverGeometry.begin(); i != mouseOverGeometry.end(); ++i) { + delete *i; + } + +} + + + +void FilmNegative::enabledChanged() +{ + if (listener) { + if (get_inconsistent()) { + listener->panelChanged(EvFilmNegativeEnabled, M("GENERAL_UNCHANGED")); + } else if (getEnabled()) { + listener->panelChanged(EvFilmNegativeEnabled, M("GENERAL_ENABLED")); + } else { + listener->panelChanged(EvFilmNegativeEnabled, M("GENERAL_DISABLED")); + } + } +} + + +void FilmNegative::adjusterChanged(Adjuster* a, double newval) +{ + if (listener && getEnabled()) { + if(a == redExp || a == greenExp || a == blueExp) { + listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( + "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); + } + } +} + +void FilmNegative::adjusterAutoToggled(Adjuster* a, bool newval) +{ +} + +void FilmNegative::setEditProvider (EditDataProvider* provider) +{ + EditSubscriber::setEditProvider(provider); +} + +void FilmNegative::editToggled () +{ + if (spotbutton->get_active()) { + subscribe(); + + int w, h; + getEditProvider()->getImageSize(w, h); + + // Stick a dummy rectangle over the whole image in mouseOverGeometry. + // This is to make sure the getCursor call is fired everywhere. + const auto imgRect = static_cast(mouseOverGeometry.at(0)); + imgRect->setXYWH(0, 0, w, h); + + } else { + this->refSpotCoords.clear(); + unsubscribe(); + } +} + + +void FilmNegative::read (const ProcParams* pp, const ParamsEdited* pedited) +{ + disableListener (); + + if(pedited) { + redExp->setEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); + greenExp->setEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); + blueExp->setEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); + set_inconsistent(multiImage && !pedited->filmNegative.enabled); + } + + setEnabled(pp->filmNegative.enabled); + redExp->setValue(pp->filmNegative.redExp); + greenExp->setValue(pp->filmNegative.greenExp); + blueExp->setValue(pp->filmNegative.blueExp); + + enableListener (); +} + +void FilmNegative::write (ProcParams* pp, ParamsEdited* pedited) +{ + pp->filmNegative.redExp = redExp->getValue(); + pp->filmNegative.greenExp = greenExp->getValue(); + pp->filmNegative.blueExp = blueExp->getValue(); + pp->filmNegative.enabled = getEnabled(); + + if (pedited) { + pedited->filmNegative.redExp = redExp->getEditedState(); + pedited->filmNegative.greenExp = greenExp->getEditedState(); + pedited->filmNegative.blueExp = blueExp->getEditedState(); + pedited->filmNegative.enabled = !get_inconsistent(); + } +} + +void FilmNegative::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) +{ + redExp->setValue(defParams->filmNegative.redExp); + greenExp->setValue(defParams->filmNegative.greenExp); + blueExp->setValue(defParams->filmNegative.blueExp); + + if (pedited) { + redExp->setDefaultEditedState (pedited->filmNegative.redExp ? Edited : UnEdited); + greenExp->setDefaultEditedState (pedited->filmNegative.greenExp ? Edited : UnEdited); + blueExp->setDefaultEditedState (pedited->filmNegative.blueExp ? Edited : UnEdited); + } else { + redExp->setDefaultEditedState (Irrelevant); + greenExp->setDefaultEditedState (Irrelevant); + blueExp->setDefaultEditedState (Irrelevant); + } +} + +void FilmNegative::setBatchMode (bool batchMode) +{ + spotConn.disconnect(); + removeIfThere(this, spotgrid, false); + ToolPanel::setBatchMode (batchMode); + redExp->showEditedCB (); + greenExp->showEditedCB (); + blueExp->showEditedCB (); +} + +bool FilmNegative::mouseOver(int modifierKey) +{ + EditDataProvider *provider = getEditProvider(); + const auto spotRect = static_cast(visibleGeometry.at(0)); + spotRect->setXYWH(provider->posImage.x - 16, provider->posImage.y - 16, 32, 32); + + return true; +} + +bool FilmNegative::button1Pressed(int modifierKey) +{ + EditDataProvider *provider = getEditProvider(); + + if(provider) { // debug. remove me + printf("x=%d y=%d pv1=%f pv2=%f pv3=%f\n", provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); + } + + EditSubscriber::action = EditSubscriber::Action::NONE; + + if (listener) { + + refSpotCoords.push_back(provider->posImage); + + if(refSpotCoords.size() == 2) { + + // User has selected 2 reference gray spots. Calculating new exponents + // from channel values and updating parameters. + + float newExps[3]; + if(fnp->getFilmNegativeExponents(refSpotCoords[0], refSpotCoords[1], newExps)) { + disableListener(); + redExp->setValue(newExps[0]); + greenExp->setValue(newExps[1]); + blueExp->setValue(newExps[2]); + enableListener(); + + if (listener && getEnabled()) { + listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( + "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); + } + } + + switchOffEditMode(); + } + } + + return true; +} + +bool FilmNegative::button1Released () +{ + EditDataProvider *provider = getEditProvider(); + + if(provider) { // debug. remove me + printf("x=%d y=%d pv1=%f pv2=%f pv3=%f\n", provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); + } + + EditSubscriber::action = EditSubscriber::Action::NONE; + return true; +} + +// TODO remove me ; couldn't make Action::PICKING work +bool FilmNegative::pick1 (bool picked) { + EditDataProvider *provider = getEditProvider(); + if(provider) { // debug. remove me + printf("Picked pick=%d x=%d y=%d pv1=%f pv2=%f pv3=%f\n", picked, provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); + } + return true; +} + +CursorShape FilmNegative::getCursor(int objectID) const +{ + return CSSpotWB; +} + +void FilmNegative::switchOffEditMode () +{ + refSpotCoords.clear(); + unsubscribe(); + spotbutton->set_active(false); +} \ No newline at end of file diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h new file mode 100644 index 000000000..614e60fb5 --- /dev/null +++ b/rtgui/filmnegative.h @@ -0,0 +1,91 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2010 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#ifndef _NEG_H_ +#define _NEG_H_ + +#include +#include "toolpanel.h" +#include "adjuster.h" +#include "guiutils.h" +#include "wbprovider.h" +#include "editcallbacks.h" +#include "../rtengine/procparams.h" + + +class FilmNegProvider +{ +public: + virtual ~FilmNegProvider() = default; + virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) = 0; +}; + +class FilmNegative : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public EditSubscriber +{ + +private: + rtengine::ProcEvent EvFilmNegativeExponents; + rtengine::ProcEvent EvFilmNegativeEnabled; + + std::vector refSpotCoords; + + FilmNegProvider *fnp; + + Adjuster* redExp; + Adjuster* greenExp; + Adjuster* blueExp; + + Gtk::Grid* spotgrid; + Gtk::ToggleButton* spotbutton; + sigc::connection spotConn; + + void editToggled (); + +public: + + FilmNegative (); + ~FilmNegative () override; + + void setFilmNegProvider(FilmNegProvider* p) + { + fnp = p; + }; + + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode (bool batchMode) override; + + void adjusterChanged (Adjuster* a, double newval) override; + void adjusterAutoToggled(Adjuster* a, bool newval) override; + void spotPressed (); + void enabledChanged() override; + + void setEditProvider (EditDataProvider* provider) override; + + // EditSubscriber interface + CursorShape getCursor(int objectID) const override; + bool mouseOver(int modifierKey) override; + bool button1Pressed(int modifierKey) override; + bool button1Released() override; + void switchOffEditMode () override; + bool pick1(bool picked) override; + +}; + +#endif diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 2c29b4f5b..3a5ab041a 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -580,6 +580,10 @@ void ParamsEdited::set(bool v) dehaze.showDepthMap = v; dehaze.depth = v; metadata.mode = v; + filmNegative.enabled = v; + filmNegative.redExp = v; + filmNegative.greenExp = v; + filmNegative.blueExp = v; exif = v; iptc = v; @@ -1142,6 +1146,10 @@ void ParamsEdited::initFrom(const std::vector& dehaze.showDepthMap = dehaze.showDepthMap && p.dehaze.showDepthMap == other.dehaze.showDepthMap; dehaze.depth = dehaze.depth && p.dehaze.depth == other.dehaze.depth; metadata.mode = metadata.mode && p.metadata.mode == other.metadata.mode; + filmNegative.enabled = filmNegative.enabled && p.filmNegative.enabled == other.filmNegative.enabled; + filmNegative.redExp = filmNegative.redExp && p.filmNegative.redExp == other.filmNegative.redExp; + filmNegative.greenExp = filmNegative.greenExp && p.filmNegative.greenExp == other.filmNegative.greenExp; + filmNegative.blueExp = filmNegative.blueExp && p.filmNegative.blueExp == other.filmNegative.blueExp; // How the hell can we handle that??? // exif = exif && p.exif==other.exif @@ -3175,6 +3183,22 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.metadata.mode = mods.metadata.mode; } + if (filmNegative.enabled) { + toEdit.filmNegative.enabled = mods.filmNegative.enabled; + } + + if (filmNegative.redExp) { + toEdit.filmNegative.redExp = mods.filmNegative.redExp; + } + + if (filmNegative.greenExp) { + toEdit.filmNegative.greenExp = mods.filmNegative.greenExp; + } + + if (filmNegative.blueExp) { + toEdit.filmNegative.blueExp = mods.filmNegative.blueExp; + } + // Exif changes are added to the existing ones if (exif) for (procparams::ExifPairs::const_iterator i = mods.exif.begin(); i != mods.exif.end(); ++i) { @@ -3216,3 +3240,8 @@ bool RetinexParamsEdited::isUnchanged() const { return enabled && retinexcolorspace && gammaretinex && gam && slope; } + +bool FilmNegativeParamsEdited::isUnchanged() const +{ + return enabled && redExp && greenExp && blueExp; +} \ No newline at end of file diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 95701e01a..57e6f2cdd 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -666,6 +666,15 @@ struct MetaDataParamsEdited { bool mode; }; +struct FilmNegativeParamsEdited { + bool enabled; + bool redExp; + bool greenExp; + bool blueExp; + + bool isUnchanged() const; +}; + struct ParamsEdited { GeneralParamsEdited general; ToneCurveParamsEdited toneCurve; @@ -710,6 +719,7 @@ struct ParamsEdited { SoftLightParamsEdited softlight; DehazeParamsEdited dehaze; MetaDataParamsEdited metadata; + FilmNegativeParamsEdited filmNegative; bool exif; bool iptc; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 41e25387e..bd9720dfd 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -92,6 +92,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), favorit bayerrawexposure = Gtk::manage (new BayerRAWExposure ()); xtransrawexposure = Gtk::manage (new XTransRAWExposure ()); fattal = Gtk::manage (new FattalToneMapping ()); + filmNegative = Gtk::manage (new FilmNegative ()); // So Demosaic, Line noise filter, Green Equilibration, Ca-Correction (garder le nom de section identique!) and Black-Level will be moved in a "Bayer sensor" tool, // and a separate Demosaic and Black Level tool will be created in an "X-Trans sensor" tool @@ -154,6 +155,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), favorit addfavoritePanel (rawPanel, preprocess); addfavoritePanel (rawPanel, darkframe); addfavoritePanel (rawPanel, flatfield); + addfavoritePanel (rawPanel, filmNegative); int favoriteCount = 0; for(auto it = favorites.begin(); it != favorites.end(); ++it) { @@ -255,6 +257,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), favorit distortion->setLensGeomListener (this); crop->setCropPanelListener (this); icm->setICMPanelListener (this); + filmNegative->setFilmNegProvider (this); toolBar = new ToolBar (); toolBar->setToolBarListener (this); @@ -305,6 +308,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorbayer->FoldableToolPanel::show(); preprocess->FoldableToolPanel::show(); flatfield->FoldableToolPanel::show(); + filmNegative->FoldableToolPanel::show(); retinex->FoldableToolPanel::setGrayedOut(false); return false; @@ -320,6 +324,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorbayer->FoldableToolPanel::hide(); preprocess->FoldableToolPanel::show(); flatfield->FoldableToolPanel::show(); + filmNegative->FoldableToolPanel::show(); retinex->FoldableToolPanel::setGrayedOut(false); return false; @@ -335,6 +340,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorxtrans->FoldableToolPanel::hide(); preprocess->FoldableToolPanel::hide(); flatfield->FoldableToolPanel::show(); + filmNegative->FoldableToolPanel::hide(); retinex->FoldableToolPanel::setGrayedOut(false); return false; @@ -349,6 +355,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorxtrans->FoldableToolPanel::hide(); preprocess->FoldableToolPanel::hide(); flatfield->FoldableToolPanel::hide(); + filmNegative->FoldableToolPanel::hide(); retinex->FoldableToolPanel::setGrayedOut(false); return false; @@ -360,6 +367,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt [this]() -> bool { rawPanelSW->set_sensitive(false); + filmNegative->FoldableToolPanel::hide(); retinex->FoldableToolPanel::setGrayedOut(true); return false; @@ -476,7 +484,7 @@ void ToolPanelCoordinator::profileChange( lParams[1] = *mergedParams; pe.initFrom (lParams); - filterRawRefresh = pe.raw.isUnchanged() && pe.lensProf.isUnchanged() && pe.retinex.isUnchanged(); + filterRawRefresh = pe.raw.isUnchanged() && pe.lensProf.isUnchanged() && pe.retinex.isUnchanged() && pe.filmNegative.isUnchanged(); } *params = *mergedParams; @@ -1014,3 +1022,11 @@ void ToolPanelCoordinator::setEditProvider (EditDataProvider *provider) toolPanels.at (i)->setEditProvider (provider); } } + +bool ToolPanelCoordinator::getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) +{ + if(!ipc) + return false; + + return ipc->getFilmNegativeExponents(spotA.x, spotA.y, spotB.x, spotB.y, newExps); +} diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 1ac74871a..9910f9757 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -82,6 +82,7 @@ #include "softlight.h" #include "dehaze.h" #include "guiutils.h" +#include "filmnegative.h" class ImageEditorCoordinator; @@ -97,7 +98,8 @@ class ToolPanelCoordinator : public CropPanelListener, public ICMPanelListener, public ImageAreaToolListener, - public rtengine::ImageTypeListener + public rtengine::ImageTypeListener, + public FilmNegProvider { protected: WhiteBalance* whitebalance; @@ -152,6 +154,7 @@ protected: XTransRAWExposure* xtransrawexposure; FattalToneMapping *fattal; MetaDataPanel* metadata; + FilmNegative* filmNegative; std::vector paramcListeners; @@ -288,6 +291,9 @@ public: rtengine::RawImage* getFF() override; Glib::ustring GetCurrentImageFilePath() override; + // FilmNegProvider interface + bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) override; + // rotatelistener interface void straightenRequested () override; void autoCropRequested () override; From c0a033e717181a32e7e6d1a8c8334180573ce33e Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 8 Jun 2019 15:13:44 +0200 Subject: [PATCH 109/215] interpolateBadPixelsXtrans() : fix oob access --- rtengine/rawimagesource.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 0f0d31c40..b8c422545 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -1298,6 +1298,7 @@ int RawImageSource::interpolateBadPixelsXtrans( PixelsMap &bitmapBads ) for(dx = -2, dy = 0; dx <= 2 && !distance2PixelFound; dx += 4) if(ri->XTRANSFC(row, col + dx) == pixelColor) { distance2PixelFound = true; + break; } if(!distance2PixelFound) @@ -1306,6 +1307,7 @@ int RawImageSource::interpolateBadPixelsXtrans( PixelsMap &bitmapBads ) for(dx = 0, dy = -2; dy <= 2 && !distance2PixelFound; dy += 4) if(ri->XTRANSFC(row + dy, col) == pixelColor) { distance2PixelFound = true; + break; } // calculate the value of its virtual counterpart (marked with a V in above examples) From b990b898754e05648b8ee88c87c1ab9e82c19805 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sat, 8 Jun 2019 15:13:44 +0200 Subject: [PATCH 110/215] interpolateBadPixelsXtrans() : fix oob access --- rtengine/rawimagesource.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 0f0d31c40..b8c422545 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -1298,6 +1298,7 @@ int RawImageSource::interpolateBadPixelsXtrans( PixelsMap &bitmapBads ) for(dx = -2, dy = 0; dx <= 2 && !distance2PixelFound; dx += 4) if(ri->XTRANSFC(row, col + dx) == pixelColor) { distance2PixelFound = true; + break; } if(!distance2PixelFound) @@ -1306,6 +1307,7 @@ int RawImageSource::interpolateBadPixelsXtrans( PixelsMap &bitmapBads ) for(dx = 0, dy = -2; dy <= 2 && !distance2PixelFound; dy += 4) if(ri->XTRANSFC(row + dy, col) == pixelColor) { distance2PixelFound = true; + break; } // calculate the value of its virtual counterpart (marked with a V in above examples) From d2366e633c61792fc1d5ae2d7caf76de5a2a0005 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Sun, 9 Jun 2019 13:09:29 +0200 Subject: [PATCH 111/215] Enabled bad pixels interpolation for ST_XTRANS after upstream fix c0a033e --- rtengine/filmnegativeproc.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index dba623ab4..d2a798abe 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -307,7 +307,21 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p } else if(ri->getSensorType() == ST_FUJI_XTRANS) { - // TODO +#ifdef _OPENMP + #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) +#endif + + for(int i = 0; i < H; i++) + for(int j = 0; j < W; j++) { + if (rawData[i][j] >= MAX_OUT_VALUE) { + bitmapBads.set(j, i); + totBP++; + } + } + + if (totBP > 0) { + interpolateBadPixelsXtrans( bitmapBads ); + } } From 1e4f9ac2488eabb85221746f32e7040e89c51eaf Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 9 Jun 2019 14:36:38 +0200 Subject: [PATCH 112/215] Avoid integer overflow when accessing luts with very large values --- rtengine/LUT.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/LUT.h b/rtengine/LUT.h index de668cca8..9f16995d0 100644 --- a/rtengine/LUT.h +++ b/rtengine/LUT.h @@ -444,7 +444,7 @@ public: } idx = 0; - } else if (idx > maxs) { + } else if (index > maxsf) { if (clip & LUT_CLIP_ABOVE) { return data[upperBound]; } From f0d32c1da704b36fd3b1a409fdf08c7d26f219ec Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 9 Jun 2019 14:37:33 +0200 Subject: [PATCH 113/215] White dot artifacts caused by CIECAM02, fixes #5342 --- rtengine/improcfun.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 53d930e1e..c2e0c5b50 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -1261,8 +1261,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw } Qpro = Qanc * (Qq / Qold); - // Jpro = 100.f * (Qpro * Qpro) / ((4.0f / c) * (4.0f / c) * (aw + 4.0f) * (aw + 4.0f)); - Jpro = Jpro * SQR (Qq / Qold); + Jpro = SQR ((10.f * Qpro) / wh); if (Jpro < 1.f) { Jpro = 1.f; @@ -1342,11 +1341,8 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw Qold = 0.001f; } - // Qpro = (float) (Qq * (coef) / 327.68f); Qpro = Qanc * (Qq / Qold); - Jpro = Jpro * SQR (Qq / Qold); - - // Jpro = 100.f * (Qpro * Qpro) / ((4.0f / c) * (4.0f / c) * (aw + 4.0f) * (aw + 4.0f)); + Jpro = SQR ((10.f * Qpro) / wh); if (t1L) { //to workaround the problem if we modify curve1-lightnees after curve2 brightness(the cat that bites its own tail!) in fact it's another type of curve only for this case coef = 2.f; //adapt Q to J approximation From df4513f5956f884d8a4e25a89cc0322aa59e0ee3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 9 Jun 2019 14:36:38 +0200 Subject: [PATCH 114/215] Avoid integer overflow when accessing luts with very large values --- rtengine/LUT.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/LUT.h b/rtengine/LUT.h index de668cca8..9f16995d0 100644 --- a/rtengine/LUT.h +++ b/rtengine/LUT.h @@ -444,7 +444,7 @@ public: } idx = 0; - } else if (idx > maxs) { + } else if (index > maxsf) { if (clip & LUT_CLIP_ABOVE) { return data[upperBound]; } From 91565728e50ab2eefe743c6a13295ba50f54522d Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Sun, 9 Jun 2019 19:25:15 +0200 Subject: [PATCH 115/215] Clamped output values to a max of 65535.f after applying multipliers, to avoid trouble further down the processing pipeline. --- rtengine/filmnegativeproc.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index d2a798abe..64f7a697b 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -255,9 +255,10 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p #endif for (int row = 0; row < H; row ++) { for (int col = 0; col < W; col++) { - int c = FC(row, col); // three colors, 0=R, 1=G, 2=B - // Apply the multipliers - rawData[row][col] *= mults[c]; + int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + // Apply the multipliers, clamp max output value to 65535 + float out = rawData[row][col] * mults[c]; + rawData[row][col] = out > 65535.f ? 65535.f : out; } } @@ -268,9 +269,10 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p #endif for (int row = 0; row < H; row ++) { for (int col = 0; col < W; col++) { - int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B - // Apply the multipliers - rawData[row][col] *= mults[c]; + int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B + // Apply the multipliers, clamp max output value to 65535 + float out = rawData[row][col] * mults[c]; + rawData[row][col] = out > 65535.f ? 65535.f : out; } } From fe16bf79176c2c21d6d32061e2b10a1271293cbf Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 10 Jun 2019 16:40:44 +0200 Subject: [PATCH 116/215] Move badpixel code to own compilation unit --- rtengine/CMakeLists.txt | 1 + rtengine/badpixels.cc | 576 ++++++++++++++++++++++++++++++++++++ rtengine/dfmanager.h | 1 + rtengine/ffmanager.h | 1 - rtengine/pixelsmap.h | 98 +++++++ rtengine/rawimage.h | 72 ----- rtengine/rawimagesource.cc | 580 +------------------------------------ rtengine/rawimagesource.h | 11 +- 8 files changed, 697 insertions(+), 643 deletions(-) create mode 100644 rtengine/badpixels.cc create mode 100644 rtengine/pixelsmap.h diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index a1037f5a3..b44413224 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -30,6 +30,7 @@ link_directories("${PROJECT_SOURCE_DIR}/rtexif" set(CAMCONSTSFILE "camconst.json") set(RTENGINESOURCEFILES + badpixels.cc CA_correct_RT.cc EdgePreservingDecomposition.cc FTblockDN.cc diff --git a/rtengine/badpixels.cc b/rtengine/badpixels.cc new file mode 100644 index 000000000..8d02be4a7 --- /dev/null +++ b/rtengine/badpixels.cc @@ -0,0 +1,576 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2019 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . +*/ + +#include "array2D.h" +#include "median.h" +#include "pixelsmap.h" +#include "rawimagesource.h" + +namespace rtengine +{ + +/* interpolateBadPixelsBayer: correct raw pixels looking at the bitmap + * takes into consideration if there are multiple bad pixels in the neighbourhood + */ +int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array2D &rawData) +{ + constexpr float eps = 1.f; + int counter = 0; + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) +#endif + + for(int row = 2; row < H - 2; ++row) { + for(int col = 2; col < W - 2; ++col) { + const int sk = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero + + if (sk) { + col += sk - 1; //-1 is because of col++ in cycle + continue; + } + + if (!bitmapBads.get(col, row)) { + continue; + } + + float wtdsum = 0.f, norm = 0.f; + + // diagonal interpolation + if (FC(row, col) == 1) { + // green channel. We can use closer pixels than for red or blue channel. Distance to centre pixel is sqrt(2) => weighting is 0.70710678 + // For green channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. + // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad + // 0 0 0 0 0 + // 0 1 0 1 0 + // 0 0 0 0 0 + // 0 1 0 1 0 + // 0 0 0 0 0 + for (int dx = -1; dx <= 1; dx += 2) { + if (bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { + continue; + } + + const float dirwt = 0.70710678f / (fabsf(rawData[row - 1][col + dx] - rawData[row + 1][col - dx]) + eps); + wtdsum += dirwt * (rawData[row - 1][col + dx] + rawData[row + 1][col - dx]); + norm += dirwt; + } + } else { + // red and blue channel. Distance to centre pixel is sqrt(8) => weighting is 0.35355339 + // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. + // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad + // 1 0 0 0 1 + // 0 0 0 0 0 + // 0 0 0 0 0 + // 0 0 0 0 0 + // 1 0 0 0 1 + for (int dx = -2; dx <= 2; dx += 4) { + if (bitmapBads.get(col + dx, row - 2) || bitmapBads.get(col - dx, row + 2)) { + continue; + } + + const float dirwt = 0.35355339f / (fabsf(rawData[row - 2][col + dx] - rawData[row + 2][col - dx]) + eps); + wtdsum += dirwt * (rawData[row - 2][col + dx] + rawData[row + 2][col - dx]); + norm += dirwt; + } + } + + // channel independent. Distance to centre pixel is 2 => weighting is 0.5 + // Additionally for all channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. + // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad + // 0 0 1 0 0 + // 0 0 0 0 0 + // 1 0 0 0 1 + // 0 0 0 0 0 + // 0 0 1 0 0 + + // horizontal interpolation + if (!(bitmapBads.get(col - 2, row) || bitmapBads.get(col + 2, row))) { + const float dirwt = 0.5f / (fabsf(rawData[row][col - 2] - rawData[row][col + 2]) + eps); + wtdsum += dirwt * (rawData[row][col - 2] + rawData[row][col + 2]); + norm += dirwt; + } + + // vertical interpolation + if (!(bitmapBads.get(col, row - 2) || bitmapBads.get(col, row + 2))) { + const float dirwt = 0.5f / (fabsf(rawData[row - 2][col] - rawData[row + 2][col]) + eps); + wtdsum += dirwt * (rawData[row - 2][col] + rawData[row + 2][col]); + norm += dirwt; + } + + if (LIKELY(norm > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% + rawData[row][col] = wtdsum / (2.f * norm); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps + counter++; + } else { //backup plan -- simple average. Same method for all channels. We could improve this, but it's really unlikely that this case happens + int tot = 0; + float sum = 0.f; + + for (int dy = -2; dy <= 2; dy += 2) { + for (int dx = -2; dx <= 2; dx += 2) { + if (bitmapBads.get(col + dx, row + dy)) { + continue; + } + + sum += rawData[row + dy][col + dx]; + tot++; + } + } + + if (tot > 0) { + rawData[row][col] = sum / tot; + counter ++; + } + } + } + } + + return counter; // Number of interpolated pixels. +} + +/* interpolateBadPixelsNColours: correct raw pixels looking at the bitmap + * takes into consideration if there are multiple bad pixels in the neighbourhood + */ +int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, const int colours) +{ + constexpr float eps = 1.f; + int counter = 0; + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) +#endif + + for (int row = 2; row < H - 2; ++row) { + for (int col = 2; col < W - 2; ++col) { + const int sk = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero + + if (sk) { + col += sk - 1; //-1 is because of col++ in cycle + continue; + } + + if (!bitmapBads.get(col, row)) { + continue; + } + + float wtdsum[colours] = {}; + float norm[colours] = {}; + + // diagonal interpolation + for (int dx = -1; dx <= 1; dx += 2) { + if (bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { + continue; + } + + for (int c = 0; c < colours; ++c) { + const float dirwt = 0.70710678f / (fabsf(rawData[row - 1][(col + dx) * colours + c] - rawData[row + 1][(col - dx) * colours + c]) + eps); + wtdsum[c] += dirwt * (rawData[row - 1][(col + dx) * colours + c] + rawData[row + 1][(col - dx) * colours + c]); + norm[c] += dirwt; + } + } + + // horizontal interpolation + if (!(bitmapBads.get(col - 1, row) || bitmapBads.get(col + 1, row))) { + for (int c = 0; c < colours; ++c) { + const float dirwt = 1.f / (fabsf(rawData[row][(col - 1) * colours + c] - rawData[row][(col + 1) * colours + c]) + eps); + wtdsum[c] += dirwt * (rawData[row][(col - 1) * colours + c] + rawData[row][(col + 1) * colours + c]); + norm[c] += dirwt; + } + } + + // vertical interpolation + if (!(bitmapBads.get(col, row - 1) || bitmapBads.get(col, row + 1))) { + for (int c = 0; c < colours; ++c) { + const float dirwt = 1.f / (fabsf(rawData[row - 1][col * colours + c] - rawData[row + 1][col * colours + c]) + eps); + wtdsum[c] += dirwt * (rawData[row - 1][col * colours + c] + rawData[row + 1][col * colours + c]); + norm[c] += dirwt; + } + } + + if (LIKELY(norm[0] > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% + for (int c = 0; c < colours; ++c) { + rawData[row][col * colours + c] = wtdsum[c] / (2.f * norm[c]); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps + } + + counter++; + } else { //backup plan -- simple average. Same method for all channels. We could improve this, but it's really unlikely that this case happens + int tot = 0; + float sum[colours] = {}; + + for (int dy = -2; dy <= 2; dy += 2) { + for (int dx = -2; dx <= 2; dx += 2) { + if (bitmapBads.get(col + dx, row + dy)) { + continue; + } + + for (int c = 0; c < colours; ++c) { + sum[c] += rawData[row + dy][(col + dx) * colours + c]; + } + + tot++; + } + } + + if (tot > 0) { + for (int c = 0; c < colours; ++c) { + rawData[row][col * colours + c] = sum[c] / tot; + } + + counter ++; + } + } + } + } + + return counter; // Number of interpolated pixels. +} + +/* interpolateBadPixelsXtrans: correct raw pixels looking at the bitmap + * takes into consideration if there are multiple bad pixels in the neighbourhood + */ +int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) +{ + constexpr float eps = 1.f; + int counter = 0; + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) +#endif + + for (int row = 2; row < H - 2; ++row) { + for (int col = 2; col < W - 2; ++col) { + const int skip = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero + + if (skip) { + col += skip - 1; //-1 is because of col++ in cycle + continue; + } + + if (!bitmapBads.get(col, row)) { + continue; + } + + float wtdsum = 0.f, norm = 0.f; + unsigned int pixelColor = ri->XTRANSFC(row, col); + + if (pixelColor == 1) { + // green channel. A green pixel can either be a solitary green pixel or a member of a 2x2 square of green pixels + if (ri->XTRANSFC(row, col - 1) == ri->XTRANSFC(row, col + 1)) { + // If left and right neighbour have same colour, then this is a solitary green pixel + // For these the following pixels will be used for interpolation. Pixel to be interpolated is in centre and marked with a P. + // Pairs of pixels used in this step are numbered. A pair will be used if none of the pixels of the pair is marked bad + // 0 means, the pixel has a different colour and will not be used + // 0 1 0 2 0 + // 3 5 0 6 4 + // 0 0 P 0 0 + // 4 6 0 5 3 + // 0 2 0 1 0 + for (int dx = -1; dx <= 1; dx += 2) { // pixels marked 5 or 6 in above example. Distance to P is sqrt(2) => weighting is 0.70710678f + if (bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { + continue; + } + + const float dirwt = 0.70710678f / (fabsf(rawData[row - 1][col + dx] - rawData[row + 1][col - dx]) + eps); + wtdsum += dirwt * (rawData[row - 1][col + dx] + rawData[row + 1][col - dx]); + norm += dirwt; + } + + for (int dx = -1; dx <= 1; dx += 2) { // pixels marked 1 or 2 on above example. Distance to P is sqrt(5) => weighting is 0.44721359f + if (bitmapBads.get(col + dx, row - 2) || bitmapBads.get(col - dx, row + 2)) { + continue; + } + + const float dirwt = 0.44721359f / (fabsf(rawData[row - 2][col + dx] - rawData[row + 2][col - dx]) + eps); + wtdsum += dirwt * (rawData[row - 2][col + dx] + rawData[row + 2][col - dx]); + norm += dirwt; + } + + for (int dx = -2; dx <= 2; dx += 4) { // pixels marked 3 or 4 on above example. Distance to P is sqrt(5) => weighting is 0.44721359f + if (bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { + continue; + } + + const float dirwt = 0.44721359f / (fabsf(rawData[row - 1][col + dx] - rawData[row + 1][col - dx]) + eps); + wtdsum += dirwt * (rawData[row - 1][col + dx] + rawData[row + 1][col - dx]); + norm += dirwt; + } + } else { + // this is a member of a 2x2 square of green pixels + // For these the following pixels will be used for interpolation. Pixel to be interpolated is at position P in the example. + // Pairs of pixels used in this step are numbered. A pair will be used if none of the pixels of the pair is marked bad + // 0 means, the pixel has a different colour and will not be used + // 1 0 0 3 + // 0 P 2 0 + // 0 2 1 0 + // 3 0 0 0 + + // pixels marked 1 in above example. Distance to P is sqrt(2) => weighting is 0.70710678f + const int offset1 = ri->XTRANSFC(row - 1, col - 1) == ri->XTRANSFC(row + 1, col + 1) ? 1 : -1; + + if (!(bitmapBads.get(col - offset1, row - 1) || bitmapBads.get(col + offset1, row + 1))) { + const float dirwt = 0.70710678f / (fabsf(rawData[row - 1][col - offset1] - rawData[row + 1][col + offset1]) + eps); + wtdsum += dirwt * (rawData[row - 1][col - offset1] + rawData[row + 1][col + offset1]); + norm += dirwt; + } + + // pixels marked 2 in above example. Distance to P is 1 => weighting is 1.f + int offsety = ri->XTRANSFC(row - 1, col) != 1 ? 1 : -1; + int offsetx = offset1 * offsety; + + if (!(bitmapBads.get(col + offsetx, row) || bitmapBads.get(col, row + offsety))) { + const float dirwt = 1.f / (fabsf(rawData[row][col + offsetx] - rawData[row + offsety][col]) + eps); + wtdsum += dirwt * (rawData[row][col + offsetx] + rawData[row + offsety][col]); + norm += dirwt; + } + + const int offsety2 = -offsety; + const int offsetx2 = -offsetx; + offsetx *= 2; + offsety *= 2; + + // pixels marked 3 in above example. Distance to P is sqrt(5) => weighting is 0.44721359f + if (!(bitmapBads.get(col + offsetx, row + offsety2) || bitmapBads.get(col + offsetx2, row + offsety))) { + const float dirwt = 0.44721359f / (fabsf(rawData[row + offsety2][col + offsetx] - rawData[row + offsety][col + offsetx2]) + eps); + wtdsum += dirwt * (rawData[row + offsety2][col + offsetx] + rawData[row + offsety][col + offsetx2]); + norm += dirwt; + } + } + } else { + // red and blue channel. + // Each red or blue pixel has exactly one neighbour of same colour in distance 2 and four neighbours of same colour which can be reached by a move of a knight in chess. + // For the distance 2 pixel (marked with an X) we generate a virtual counterpart (marked with a V) + // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in centre and marked with a P. + // Pairs of pixels used in this step are numbered except for distance 2 pixels which are marked X and V. A pair will be used if none of the pixels of the pair is marked bad + // 0 1 0 0 0 0 0 X 0 0 remaining cases are symmetric + // 0 0 0 0 2 1 0 0 0 2 + // X 0 P 0 V 0 0 P 0 0 + // 0 0 0 0 1 0 0 0 0 0 + // 0 2 0 0 0 0 2 V 1 0 + + // Find two knight moves landing on a pixel of same colour as the pixel to be interpolated. + // If we look at first and last row of 5x5 square, we will find exactly two knight pixels. + // Additionally we know that the column of this pixel has 1 or -1 horizontal distance to the centre pixel + // When we find a knight pixel, we get its counterpart, which has distance (+-3,+-3), where the signs of distance depend on the corner of the found knight pixel. + // These pixels are marked 1 or 2 in above examples. Distance to P is sqrt(5) => weighting is 0.44721359f + // The following loop simply scans the four possible places. To keep things simple, it does not stop after finding two knight pixels, because it will not find more than two + for (int d1 = -2, offsety = 3; d1 <= 2; d1 += 4, offsety -= 6) { + for (int d2 = -1, offsetx = 3; d2 < 1; d2 += 2, offsetx -= 6) { + if (ri->XTRANSFC(row + d1, col + d2) == pixelColor) { + if (!(bitmapBads.get(col + d2, row + d1) || bitmapBads.get(col + d2 + offsetx, row + d1 + offsety))) { + const float dirwt = 0.44721359f / (fabsf(rawData[row + d1][col + d2] - rawData[row + d1 + offsety][col + d2 + offsetx]) + eps); + wtdsum += dirwt * (rawData[row + d1][col + d2] + rawData[row + d1 + offsety][col + d2 + offsetx]); + norm += dirwt; + } + } + } + } + + // now scan for the pixel of same colour in distance 2 in each direction (marked with an X in above examples). + bool distance2PixelFound = false; + int dx, dy; + + // check horizontal + for (dx = -2, dy = 0; dx <= 2 && !distance2PixelFound; dx += 4) { + if (ri->XTRANSFC(row, col + dx) == pixelColor) { + distance2PixelFound = true; + break; + } + } + + if (!distance2PixelFound) { + // no distance 2 pixel on horizontal, check vertical + for (dx = 0, dy = -2; dy <= 2 && !distance2PixelFound; dy += 4) { + if (ri->XTRANSFC(row + dy, col) == pixelColor) { + distance2PixelFound = true; + break; + } + } + } + + // calculate the value of its virtual counterpart (marked with a V in above examples) + float virtualPixel; + + if (dy == 0) { + virtualPixel = 0.5f * (rawData[row - 1][col - dx] + rawData[row + 1][col - dx]); + } else { + virtualPixel = 0.5f * (rawData[row - dy][col - 1] + rawData[row - dy][col + 1]); + } + + // and weight as usual. Distance to P is 2 => weighting is 0.5f + const float dirwt = 0.5f / (fabsf(virtualPixel - rawData[row + dy][col + dx]) + eps); + wtdsum += dirwt * (virtualPixel + rawData[row + dy][col + dx]); + norm += dirwt; + } + + if (LIKELY(norm > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% + rawData[row][col] = wtdsum / (2.f * norm); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps + counter++; + } + } + } + + return counter; // Number of interpolated pixels. +} + +/* Search for hot or dead pixels in the image and update the map + * For each pixel compare its value to the average of similar colour surrounding + * (Taken from Emil Martinec idea) + * (Optimized by Ingo Weyrich 2013 and 2015) + */ +int RawImageSource::findHotDeadPixels(PixelsMap &bpMap, const float thresh, const bool findHotPixels, const bool findDeadPixels) const +{ + const float varthresh = (20.0 * (thresh / 100.0) + 1.0) / 24.f; + + // allocate temporary buffer + float* cfablur = new float[H * W]; + + // counter for dead or hot pixels + int counter = 0; + +#ifdef _OPENMP + #pragma omp parallel +#endif + { +#ifdef _OPENMP + #pragma omp for schedule(dynamic,16) nowait +#endif + + for (int i = 2; i < H - 2; i++) { + for (int j = 2; j < W - 2; j++) { + const float temp = median(rawData[i - 2][j - 2], rawData[i - 2][j], rawData[i - 2][j + 2], + rawData[i][j - 2], rawData[i][j], rawData[i][j + 2], + rawData[i + 2][j - 2], rawData[i + 2][j], rawData[i + 2][j + 2]); + cfablur[i * W + j] = rawData[i][j] - temp; + } + } + + // process borders. Former version calculated the median using mirrored border which does not make sense because the original pixel loses weight + // Setting the difference between pixel and median for border pixels to zero should do the job not worse then former version +#ifdef _OPENMP + #pragma omp single +#endif + { + for (int i = 0; i < 2; ++i) { + for (int j = 0; j < W; ++j) { + cfablur[i * W + j] = 0.f; + } + } + + for (int i = 2; i < H - 2; ++i) { + for (int j = 0; j < 2; ++j) { + cfablur[i * W + j] = 0.f; + } + + for (int j = W - 2; j < W; ++j) { + cfablur[i * W + j] = 0.f; + } + } + + for (int i = H - 2; i < H; ++i) { + for (int j = 0; j < W; ++j) { + cfablur[i * W + j] = 0.f; + } + } + } + +#ifdef _OPENMP + #pragma omp barrier // barrier because of nowait clause above + + #pragma omp for reduction(+:counter) schedule(dynamic,16) +#endif + + //cfa pixel heat/death evaluation + for (int rr = 2; rr < H - 2; ++rr) { + for (int cc = 2, rrmWpcc = rr * W + 2; cc < W - 2; ++cc, ++rrmWpcc) { + //evaluate pixel for heat/death + float pixdev = cfablur[rrmWpcc]; + + if (pixdev == 0.f) { + continue; + } + + if ((!findDeadPixels) && pixdev < 0) { + continue; + } + + if ((!findHotPixels) && pixdev > 0) { + continue; + } + + pixdev = fabsf(pixdev); + float hfnbrave = -pixdev; + +#ifdef __SSE2__ + // sum up 5*4 = 20 values using SSE + // 10 fabs function calls and 10 float additions with SSE + vfloat sum = vabsf(LVFU(cfablur[(rr - 2) * W + cc - 2])) + vabsf(LVFU(cfablur[(rr - 1) * W + cc - 2])); + sum += vabsf(LVFU(cfablur[(rr) * W + cc - 2])); + sum += vabsf(LVFU(cfablur[(rr + 1) * W + cc - 2])); + sum += vabsf(LVFU(cfablur[(rr + 2) * W + cc - 2])); + // horizontally add the values and add the result to hfnbrave + hfnbrave += vhadd(sum); + + // add remaining 5 values of last column + for (int mm = rr - 2; mm <= rr + 2; ++mm) { + hfnbrave += fabsf(cfablur[mm * W + cc + 2]); + } + +#else + + // 25 fabs function calls and 25 float additions without SSE + for (int mm = rr - 2; mm <= rr + 2; ++mm) { + for (int nn = cc - 2; nn <= cc + 2; ++nn) { + hfnbrave += fabsf(cfablur[mm * W + nn]); + } + } + +#endif + + if (pixdev > varthresh * hfnbrave) { + // mark the pixel as "bad" + bpMap.set(cc, rr); + counter++; + } + }//end of pixel evaluation + } + }//end of parallel processing + delete [] cfablur; + return counter; +} + +int RawImageSource::findZeroPixels(PixelsMap &bpMap) const +{ + int counter = 0; + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) +#endif + + for (int i = 0; i < H; ++i) { + for (int j = 0; j < W; ++j) { + if (ri->data[i][j] == 0.f) { + bpMap.set(j, i); + counter++; + } + } + } + return counter; +} + + +} diff --git a/rtengine/dfmanager.h b/rtengine/dfmanager.h index 1cc22723b..62379187b 100644 --- a/rtengine/dfmanager.h +++ b/rtengine/dfmanager.h @@ -20,6 +20,7 @@ #include #include #include +#include "pixelsmap.h" #include "rawimage.h" namespace rtengine diff --git a/rtengine/ffmanager.h b/rtengine/ffmanager.h index 4a65c2ed7..7022d1641 100644 --- a/rtengine/ffmanager.h +++ b/rtengine/ffmanager.h @@ -86,7 +86,6 @@ public: protected: typedef std::multimap ffList_t; - typedef std::map > bpList_t; ffList_t ffList; bool initialized; Glib::ustring currentPath; diff --git a/rtengine/pixelsmap.h b/rtengine/pixelsmap.h new file mode 100644 index 000000000..63dce4233 --- /dev/null +++ b/rtengine/pixelsmap.h @@ -0,0 +1,98 @@ +#pragma once + +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2019 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . +*/ + +#include +#include + +#include "noncopyable.h" + +namespace rtengine +{ + +struct badPix { + uint16_t x; + uint16_t y; + badPix(uint16_t xc, uint16_t yc): x(xc), y(yc) {} +}; + +class PixelsMap : + public NonCopyable +{ + int w; // line width in base_t units + int h; // height + typedef unsigned long base_t; + static const size_t base_t_size = sizeof(base_t); + base_t *pm; + +public: + PixelsMap(int width, int height) + : w((width / (base_t_size * 8)) + 1), h(height), pm(new base_t[h * w]) + { + clear(); + } + + ~PixelsMap() + { + delete [] pm; + } + int width() const + { + return w; + } + int height() const + { + return h; + } + + // if a pixel is set returns true + bool get(int x, int y) const + { + return (pm[y * w + x / (base_t_size * 8)] & (base_t)1 << (x % (base_t_size * 8))) != 0; + } + + // set a pixel + void set(int x, int y) + { + pm[y * w + x / (base_t_size * 8)] |= (base_t)1 << (x % (base_t_size * 8)) ; + } + + // set pixels from a list + int set(const std::vector &bp) + { + for (std::vector::const_iterator iter = bp.begin(); iter != bp.end(); ++iter) { + set(iter->x, iter->y); + } + + return bp.size(); + } + + void clear() + { + memset(pm, 0, h * w * base_t_size); + } + // return 0 if at least one pixel in the word(base_t) is set, otherwise return the number of pixels to skip to the next word base_t + int skipIfZero(int x, int y) const + { + return pm[y * w + x / (base_t_size * 8)] == 0 ? base_t_size * 8 - x % (base_t_size * 8) : 0; + } +}; + +} diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 0dabfef0d..8e92495a1 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -25,82 +25,10 @@ #include "dcraw.h" #include "imageformat.h" -#include "noncopyable.h" namespace rtengine { -struct badPix { - uint16_t x; - uint16_t y; - badPix( uint16_t xc, uint16_t yc ): x(xc), y(yc) {} -}; - -class PixelsMap : - public NonCopyable -{ - int w; // line width in base_t units - int h; // height - typedef unsigned long base_t; - static const size_t base_t_size = sizeof(base_t); - base_t *pm; - -public: - PixelsMap(int width, int height ) - : h(height) - { - w = (width / (base_t_size * 8)) + 1; - pm = new base_t [h * w ]; - memset(pm, 0, h * w * base_t_size ); - } - - ~PixelsMap() - { - delete [] pm; - } - int width() const - { - return w; - } - int height() const - { - return h; - } - - // if a pixel is set returns true - bool get(int x, int y) - { - return (pm[y * w + x / (base_t_size * 8) ] & (base_t)1 << (x % (base_t_size * 8)) ) != 0; - } - - // set a pixel - void set(int x, int y) - { - pm[y * w + x / (base_t_size * 8) ] |= (base_t)1 << (x % (base_t_size * 8)) ; - } - - // set pixels from a list - int set( std::vector &bp) - { - for(std::vector::iterator iter = bp.begin(); iter != bp.end(); ++iter) { - set( iter->x, iter->y); - } - - return bp.size(); - } - - void clear() - { - memset(pm, 0, h * w * base_t_size ); - } - // return 0 if at least one pixel in the word(base_t) is set, otherwise return the number of pixels to skip to the next word base_t - int skipIfZero(int x, int y) - { - return pm[y * w + x / (base_t_size * 8) ] == 0 ? base_t_size * 8 - x % (base_t_size * 8) : 0; - } -}; - - class RawImage: public DCraw { public: diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index b8c422545..3b2738405 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -930,542 +930,6 @@ void RawImageSource::convertColorSpace(Imagefloat* image, const ColorManagementP colorSpaceConversion (image, cmp, wb, pre_mul, embProfile, camProfile, imatrices.xyz_cam, (static_cast(getMetaData()))->getCamera()); } -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -/* interpolateBadPixelsBayer: correct raw pixels looking at the bitmap - * takes into consideration if there are multiple bad pixels in the neighbourhood - */ -int RawImageSource::interpolateBadPixelsBayer( PixelsMap &bitmapBads, array2D &rawData ) -{ - static const float eps = 1.f; - int counter = 0; -#ifdef _OPENMP - #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) -#endif - - for( int row = 2; row < H - 2; row++ ) { - for(int col = 2; col < W - 2; col++ ) { - int sk = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero - - if( sk ) { - col += sk - 1; //-1 is because of col++ in cycle - continue; - } - - if(!bitmapBads.get(col, row)) { - continue; - } - - float wtdsum = 0.f, norm = 0.f; - - // diagonal interpolation - if(FC(row, col) == 1) { - // green channel. We can use closer pixels than for red or blue channel. Distance to centre pixel is sqrt(2) => weighting is 0.70710678 - // For green channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. - // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad - // 0 0 0 0 0 - // 0 1 0 1 0 - // 0 0 0 0 0 - // 0 1 0 1 0 - // 0 0 0 0 0 - for( int dx = -1; dx <= 1; dx += 2) { - if( bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { - continue; - } - - float dirwt = 0.70710678f / ( fabsf( rawData[row - 1][col + dx] - rawData[row + 1][col - dx]) + eps); - wtdsum += dirwt * (rawData[row - 1][col + dx] + rawData[row + 1][col - dx]); - norm += dirwt; - } - } else { - // red and blue channel. Distance to centre pixel is sqrt(8) => weighting is 0.35355339 - // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. - // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad - // 1 0 0 0 1 - // 0 0 0 0 0 - // 0 0 0 0 0 - // 0 0 0 0 0 - // 1 0 0 0 1 - for( int dx = -2; dx <= 2; dx += 4) { - if( bitmapBads.get(col + dx, row - 2) || bitmapBads.get(col - dx, row + 2)) { - continue; - } - - float dirwt = 0.35355339f / ( fabsf( rawData[row - 2][col + dx] - rawData[row + 2][col - dx]) + eps); - wtdsum += dirwt * (rawData[row - 2][col + dx] + rawData[row + 2][col - dx]); - norm += dirwt; - } - } - - // channel independent. Distance to centre pixel is 2 => weighting is 0.5 - // Additionally for all channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. - // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad - // 0 0 1 0 0 - // 0 0 0 0 0 - // 1 0 0 0 1 - // 0 0 0 0 0 - // 0 0 1 0 0 - - // horizontal interpolation - if(!(bitmapBads.get(col - 2, row) || bitmapBads.get(col + 2, row))) { - float dirwt = 0.5f / ( fabsf( rawData[row][col - 2] - rawData[row][col + 2]) + eps); - wtdsum += dirwt * (rawData[row][col - 2] + rawData[row][col + 2]); - norm += dirwt; - } - - // vertical interpolation - if(!(bitmapBads.get(col, row - 2) || bitmapBads.get(col, row + 2))) { - float dirwt = 0.5f / ( fabsf( rawData[row - 2][col] - rawData[row + 2][col]) + eps); - wtdsum += dirwt * (rawData[row - 2][col] + rawData[row + 2][col]); - norm += dirwt; - } - - if (LIKELY(norm > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% - rawData[row][col] = wtdsum / (2.f * norm); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps - counter++; - } else { //backup plan -- simple average. Same method for all channels. We could improve this, but it's really unlikely that this case happens - int tot = 0; - float sum = 0; - - for( int dy = -2; dy <= 2; dy += 2) { - for( int dx = -2; dx <= 2; dx += 2) { - if(bitmapBads.get(col + dx, row + dy)) { - continue; - } - - sum += rawData[row + dy][col + dx]; - tot++; - } - } - - if (tot > 0) { - rawData[row][col] = sum / tot; - counter ++; - } - } - } - } - - return counter; // Number of interpolated pixels. -} - -/* interpolateBadPixels3Colours: correct raw pixels looking at the bitmap - * takes into consideration if there are multiple bad pixels in the neighbourhood - */ -int RawImageSource::interpolateBadPixelsNColours( PixelsMap &bitmapBads, const int colours ) -{ - static const float eps = 1.f; - int counter = 0; -#ifdef _OPENMP - #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) -#endif - - for( int row = 2; row < H - 2; row++ ) { - for(int col = 2; col < W - 2; col++ ) { - int sk = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero - - if( sk ) { - col += sk - 1; //-1 is because of col++ in cycle - continue; - } - - if(!bitmapBads.get(col, row)) { - continue; - } - - float wtdsum[colours], norm[colours]; - - for (int i = 0; i < colours; ++i) { - wtdsum[i] = norm[i] = 0.f; - } - - // diagonal interpolation - for( int dx = -1; dx <= 1; dx += 2) { - if( bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { - continue; - } - - for(int c = 0; c < colours; c++) { - float dirwt = 0.70710678f / ( fabsf( rawData[row - 1][(col + dx) * colours + c] - rawData[row + 1][(col - dx) * colours + c]) + eps); - wtdsum[c] += dirwt * (rawData[row - 1][(col + dx) * colours + c] + rawData[row + 1][(col - dx) * colours + c]); - norm[c] += dirwt; - } - } - - // horizontal interpolation - if(!(bitmapBads.get(col - 1, row) || bitmapBads.get(col + 1, row))) { - for(int c = 0; c < colours; c++) { - float dirwt = 1.f / ( fabsf( rawData[row][(col - 1) * colours + c] - rawData[row][(col + 1) * colours + c]) + eps); - wtdsum[c] += dirwt * (rawData[row][(col - 1) * colours + c] + rawData[row][(col + 1) * colours + c]); - norm[c] += dirwt; - } - } - - // vertical interpolation - if(!(bitmapBads.get(col, row - 1) || bitmapBads.get(col, row + 1))) { - for(int c = 0; c < colours; c++) { - float dirwt = 1.f / ( fabsf( rawData[row - 1][col * colours + c] - rawData[row + 1][col * colours + c]) + eps); - wtdsum[c] += dirwt * (rawData[row - 1][col * colours + c] + rawData[row + 1][col * colours + c]); - norm[c] += dirwt; - } - } - - if (LIKELY(norm[0] > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% - for(int c = 0; c < colours; c++) { - rawData[row][col * colours + c] = wtdsum[c] / (2.f * norm[c]); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps - } - - counter++; - } else { //backup plan -- simple average. Same method for all channels. We could improve this, but it's really unlikely that this case happens - int tot = 0; - float sum[colours]; - - for (int i = 0; i < colours; ++i) { - sum[i] = 0.f; - } - - for( int dy = -2; dy <= 2; dy += 2) { - for( int dx = -2; dx <= 2; dx += 2) { - if(bitmapBads.get(col + dx, row + dy)) { - continue; - } - - for(int c = 0; c < colours; c++) { - sum[c] += rawData[row + dy][(col + dx) * colours + c]; - } - - tot++; - } - } - - if (tot > 0) { - for(int c = 0; c < colours; c++) { - rawData[row][col * colours + c] = sum[c] / tot; - } - - counter ++; - } - } - } - } - - return counter; // Number of interpolated pixels. -} -/* interpolateBadPixelsXtrans: correct raw pixels looking at the bitmap - * takes into consideration if there are multiple bad pixels in the neighbourhood - */ -int RawImageSource::interpolateBadPixelsXtrans( PixelsMap &bitmapBads ) -{ - static const float eps = 1.f; - int counter = 0; -#ifdef _OPENMP - #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) -#endif - - for( int row = 2; row < H - 2; row++ ) { - for(int col = 2; col < W - 2; col++ ) { - int skip = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero - - if( skip ) { - col += skip - 1; //-1 is because of col++ in cycle - continue; - } - - if(!bitmapBads.get(col, row)) { - continue; - } - - float wtdsum = 0.f, norm = 0.f; - unsigned int pixelColor = ri->XTRANSFC(row, col); - - if(pixelColor == 1) { - // green channel. A green pixel can either be a solitary green pixel or a member of a 2x2 square of green pixels - if(ri->XTRANSFC(row, col - 1) == ri->XTRANSFC(row, col + 1)) { - // If left and right neighbour have same colour, then this is a solitary green pixel - // For these the following pixels will be used for interpolation. Pixel to be interpolated is in centre and marked with a P. - // Pairs of pixels used in this step are numbered. A pair will be used if none of the pixels of the pair is marked bad - // 0 means, the pixel has a different colour and will not be used - // 0 1 0 2 0 - // 3 5 0 6 4 - // 0 0 P 0 0 - // 4 6 0 5 3 - // 0 2 0 1 0 - for( int dx = -1; dx <= 1; dx += 2) { // pixels marked 5 or 6 in above example. Distance to P is sqrt(2) => weighting is 0.70710678f - if( bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { - continue; - } - - float dirwt = 0.70710678f / ( fabsf( rawData[row - 1][col + dx] - rawData[row + 1][col - dx]) + eps); - wtdsum += dirwt * (rawData[row - 1][col + dx] + rawData[row + 1][col - dx]); - norm += dirwt; - } - - for( int dx = -1; dx <= 1; dx += 2) { // pixels marked 1 or 2 on above example. Distance to P is sqrt(5) => weighting is 0.44721359f - if( bitmapBads.get(col + dx, row - 2) || bitmapBads.get(col - dx, row + 2)) { - continue; - } - - float dirwt = 0.44721359f / ( fabsf( rawData[row - 2][col + dx] - rawData[row + 2][col - dx]) + eps); - wtdsum += dirwt * (rawData[row - 2][col + dx] + rawData[row + 2][col - dx]); - norm += dirwt; - } - - for( int dx = -2; dx <= 2; dx += 4) { // pixels marked 3 or 4 on above example. Distance to P is sqrt(5) => weighting is 0.44721359f - if( bitmapBads.get(col + dx, row - 1) || bitmapBads.get(col - dx, row + 1)) { - continue; - } - - float dirwt = 0.44721359f / ( fabsf( rawData[row - 1][col + dx] - rawData[row + 1][col - dx]) + eps); - wtdsum += dirwt * (rawData[row - 1][col + dx] + rawData[row + 1][col - dx]); - norm += dirwt; - } - } else { - // this is a member of a 2x2 square of green pixels - // For these the following pixels will be used for interpolation. Pixel to be interpolated is at position P in the example. - // Pairs of pixels used in this step are numbered. A pair will be used if none of the pixels of the pair is marked bad - // 0 means, the pixel has a different colour and will not be used - // 1 0 0 3 - // 0 P 2 0 - // 0 2 1 0 - // 3 0 0 0 - - // pixels marked 1 in above example. Distance to P is sqrt(2) => weighting is 0.70710678f - int offset1 = ri->XTRANSFC(row - 1, col - 1) == ri->XTRANSFC(row + 1, col + 1) ? 1 : -1; - - if( !(bitmapBads.get(col - offset1, row - 1) || bitmapBads.get(col + offset1, row + 1))) { - float dirwt = 0.70710678f / ( fabsf( rawData[row - 1][col - offset1] - rawData[row + 1][col + offset1]) + eps); - wtdsum += dirwt * (rawData[row - 1][col - offset1] + rawData[row + 1][col + offset1]); - norm += dirwt; - } - - // pixels marked 2 in above example. Distance to P is 1 => weighting is 1.f - int offsety = (ri->XTRANSFC(row - 1, col) != 1 ? 1 : -1); - int offsetx = offset1 * offsety; - - if( !(bitmapBads.get(col + offsetx, row) || bitmapBads.get(col, row + offsety))) { - float dirwt = 1.f / ( fabsf( rawData[row][col + offsetx] - rawData[row + offsety][col]) + eps); - wtdsum += dirwt * (rawData[row][col + offsetx] + rawData[row + offsety][col]); - norm += dirwt; - } - - int offsety2 = -offsety; - int offsetx2 = -offsetx; - offsetx *= 2; - offsety *= 2; - - // pixels marked 3 in above example. Distance to P is sqrt(5) => weighting is 0.44721359f - if( !(bitmapBads.get(col + offsetx, row + offsety2) || bitmapBads.get(col + offsetx2, row + offsety))) { - float dirwt = 0.44721359f / ( fabsf( rawData[row + offsety2][col + offsetx] - rawData[row + offsety][col + offsetx2]) + eps); - wtdsum += dirwt * (rawData[row + offsety2][col + offsetx] + rawData[row + offsety][col + offsetx2]); - norm += dirwt; - } - } - } else { - // red and blue channel. - // Each red or blue pixel has exactly one neighbour of same colour in distance 2 and four neighbours of same colour which can be reached by a move of a knight in chess. - // For the distance 2 pixel (marked with an X) we generate a virtual counterpart (marked with a V) - // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in centre and marked with a P. - // Pairs of pixels used in this step are numbered except for distance 2 pixels which are marked X and V. A pair will be used if none of the pixels of the pair is marked bad - // 0 1 0 0 0 0 0 X 0 0 remaining cases are symmetric - // 0 0 0 0 2 1 0 0 0 2 - // X 0 P 0 V 0 0 P 0 0 - // 0 0 0 0 1 0 0 0 0 0 - // 0 2 0 0 0 0 2 V 1 0 - - // Find two knight moves landing on a pixel of same colour as the pixel to be interpolated. - // If we look at first and last row of 5x5 square, we will find exactly two knight pixels. - // Additionally we know that the column of this pixel has 1 or -1 horizontal distance to the centre pixel - // When we find a knight pixel, we get its counterpart, which has distance (+-3,+-3), where the signs of distance depend on the corner of the found knight pixel. - // These pixels are marked 1 or 2 in above examples. Distance to P is sqrt(5) => weighting is 0.44721359f - // The following loop simply scans the four possible places. To keep things simple, it does not stop after finding two knight pixels, because it will not find more than two - for(int d1 = -2, offsety = 3; d1 <= 2; d1 += 4, offsety -= 6) { - for(int d2 = -1, offsetx = 3; d2 < 1; d2 += 2, offsetx -= 6) { - if(ri->XTRANSFC(row + d1, col + d2) == pixelColor) { - if( !(bitmapBads.get(col + d2, row + d1) || bitmapBads.get(col + d2 + offsetx, row + d1 + offsety))) { - float dirwt = 0.44721359f / ( fabsf( rawData[row + d1][col + d2] - rawData[row + d1 + offsety][col + d2 + offsetx]) + eps); - wtdsum += dirwt * (rawData[row + d1][col + d2] + rawData[row + d1 + offsety][col + d2 + offsetx]); - norm += dirwt; - } - } - } - } - - // now scan for the pixel of same colour in distance 2 in each direction (marked with an X in above examples). - bool distance2PixelFound = false; - int dx, dy; - - // check horizontal - for(dx = -2, dy = 0; dx <= 2 && !distance2PixelFound; dx += 4) - if(ri->XTRANSFC(row, col + dx) == pixelColor) { - distance2PixelFound = true; - break; - } - - if(!distance2PixelFound) - - // no distance 2 pixel on horizontal, check vertical - for(dx = 0, dy = -2; dy <= 2 && !distance2PixelFound; dy += 4) - if(ri->XTRANSFC(row + dy, col) == pixelColor) { - distance2PixelFound = true; - break; - } - - // calculate the value of its virtual counterpart (marked with a V in above examples) - float virtualPixel; - - if(dy == 0) { - virtualPixel = 0.5f * (rawData[row - 1][col - dx] + rawData[row + 1][col - dx]); - } else { - virtualPixel = 0.5f * (rawData[row - dy][col - 1] + rawData[row - dy][col + 1]); - } - - // and weight as usual. Distance to P is 2 => weighting is 0.5f - float dirwt = 0.5f / ( fabsf( virtualPixel - rawData[row + dy][col + dx]) + eps); - wtdsum += dirwt * (virtualPixel + rawData[row + dy][col + dx]); - norm += dirwt; - } - - if (LIKELY(norm > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% - rawData[row][col] = wtdsum / (2.f * norm); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps - counter++; - } - } - } - - return counter; // Number of interpolated pixels. -} -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -/* Search for hot or dead pixels in the image and update the map - * For each pixel compare its value to the average of similar colour surrounding - * (Taken from Emil Martinec idea) - * (Optimized by Ingo Weyrich 2013 and 2015) - */ -int RawImageSource::findHotDeadPixels( PixelsMap &bpMap, float thresh, bool findHotPixels, bool findDeadPixels ) -{ - float varthresh = (20.0 * (thresh / 100.0) + 1.0 ) / 24.f; - - // allocate temporary buffer - float* cfablur; - cfablur = (float (*)) malloc (H * W * sizeof * cfablur); - - // counter for dead or hot pixels - int counter = 0; - -#ifdef _OPENMP - #pragma omp parallel -#endif - { -#ifdef _OPENMP - #pragma omp for schedule(dynamic,16) nowait -#endif - - for (int i = 2; i < H - 2; i++) { - for (int j = 2; j < W - 2; j++) { - const float& temp = median(rawData[i - 2][j - 2], rawData[i - 2][j], rawData[i - 2][j + 2], - rawData[i][j - 2], rawData[i][j], rawData[i][j + 2], - rawData[i + 2][j - 2], rawData[i + 2][j], rawData[i + 2][j + 2]); - cfablur[i * W + j] = rawData[i][j] - temp; - } - } - - // process borders. Former version calculated the median using mirrored border which does not make sense because the original pixel loses weight - // Setting the difference between pixel and median for border pixels to zero should do the job not worse then former version -#ifdef _OPENMP - #pragma omp single -#endif - { - for(int i = 0; i < 2; i++) { - for(int j = 0; j < W; j++) { - cfablur[i * W + j] = 0.f; - } - } - - for(int i = 2; i < H - 2; i++) { - for(int j = 0; j < 2; j++) { - cfablur[i * W + j] = 0.f; - } - - for(int j = W - 2; j < W; j++) { - cfablur[i * W + j] = 0.f; - } - } - - for(int i = H - 2; i < H; i++) { - for(int j = 0; j < W; j++) { - cfablur[i * W + j] = 0.f; - } - } - } -#ifdef _OPENMP - #pragma omp barrier // barrier because of nowait clause above - - #pragma omp for reduction(+:counter) schedule(dynamic,16) -#endif - - //cfa pixel heat/death evaluation - for (int rr = 2; rr < H - 2; rr++) { - int rrmWpcc = rr * W + 2; - - for (int cc = 2; cc < W - 2; cc++, rrmWpcc++) { - //evaluate pixel for heat/death - float pixdev = cfablur[rrmWpcc]; - - if(pixdev == 0.f) { - continue; - } - - if((!findDeadPixels) && pixdev < 0) { - continue; - } - - if((!findHotPixels) && pixdev > 0) { - continue; - } - - pixdev = fabsf(pixdev); - float hfnbrave = -pixdev; - -#ifdef __SSE2__ - // sum up 5*4 = 20 values using SSE - // 10 fabs function calls and float 10 additions with SSE - vfloat sum = vabsf(LVFU(cfablur[(rr - 2) * W + cc - 2])) + vabsf(LVFU(cfablur[(rr - 1) * W + cc - 2])); - sum += vabsf(LVFU(cfablur[(rr) * W + cc - 2])); - sum += vabsf(LVFU(cfablur[(rr + 1) * W + cc - 2])); - sum += vabsf(LVFU(cfablur[(rr + 2) * W + cc - 2])); - // horizontally add the values and add the result to hfnbrave - hfnbrave += vhadd(sum); - - // add remaining 5 values of last column - for (int mm = rr - 2; mm <= rr + 2; mm++) { - hfnbrave += fabsf(cfablur[mm * W + cc + 2]); - } - -#else - - // 25 fabs function calls and 25 float additions without SSE - for (int mm = rr - 2; mm <= rr + 2; mm++) { - for (int nn = cc - 2; nn <= cc + 2; nn++) { - hfnbrave += fabsf(cfablur[mm * W + nn]); - } - } - -#endif - - if (pixdev > varthresh * hfnbrave) { - // mark the pixel as "bad" - bpMap.set(cc, rr); - counter++; - } - }//end of pixel evaluation - } - }//end of parallel processing - free (cfablur); - return counter; -} - -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - void RawImageSource::getFullSize (int& w, int& h, int tr) { @@ -1741,23 +1205,13 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le printf( "Subtracting Darkframe:%s\n", rid->get_filename().c_str()); } - PixelsMap *bitmapBads = nullptr; + std::unique_ptr bitmapBads; int totBP = 0; // Hold count of bad pixels to correct if(ri->zeroIsBad()) { // mark all pixels with value zero as bad, has to be called before FF and DF. dcraw sets this flag only for some cameras (mainly Panasonic and Leica) - bitmapBads = new PixelsMap(W, H); -#ifdef _OPENMP - #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) -#endif - - for(int i = 0; i < H; i++) - for(int j = 0; j < W; j++) { - if(ri->data[i][j] == 0.f) { - bitmapBads->set(j, i); - totBP++; - } - } + bitmapBads.reset(new PixelsMap(W, H)); + totBP = findZeroPixels(*(bitmapBads.get())); if( settings->verbose) { printf( "%d pixels with value zero marked as bad pixels\n", totBP); @@ -1821,10 +1275,10 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le if( bp ) { if(!bitmapBads) { - bitmapBads = new PixelsMap(W, H); + bitmapBads.reset(new PixelsMap(W, H)); } - totBP += bitmapBads->set( *bp ); + totBP += bitmapBads->set(*bp); if( settings->verbose ) { std::cout << "Correcting " << bp->size() << " pixels from .badpixels" << std::endl; @@ -1842,10 +1296,10 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le if(bp) { if(!bitmapBads) { - bitmapBads = new PixelsMap(W, H); + bitmapBads.reset(new PixelsMap(W, H)); } - totBP += bitmapBads->set( *bp ); + totBP += bitmapBads->set(*bp); if( settings->verbose && !bp->empty()) { std::cout << "Correcting " << bp->size() << " hotpixels from darkframe" << std::endl; @@ -1917,10 +1371,10 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le } if(!bitmapBads) { - bitmapBads = new PixelsMap(W, H); + bitmapBads.reset(new PixelsMap(W, H)); } - int nFound = findHotDeadPixels( *bitmapBads, raw.hotdeadpix_thresh, raw.hotPixelFilter, raw.deadPixelFilter ); + int nFound = findHotDeadPixels(*(bitmapBads.get()), raw.hotdeadpix_thresh, raw.hotPixelFilter, raw.deadPixelFilter ); totBP += nFound; if( settings->verbose && nFound > 0) { @@ -1932,10 +1386,10 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le PDAFLinesFilter f(ri); if (!bitmapBads) { - bitmapBads = new PixelsMap(W, H); + bitmapBads.reset(new PixelsMap(W, H)); } - int n = f.mark(rawData, *bitmapBads); + int n = f.mark(rawData, *(bitmapBads.get())); totBP += n; if (n > 0) { @@ -1999,15 +1453,15 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le if ( ri->getSensorType() == ST_BAYER ) { if(numFrames == 4) { for(int i = 0; i < 4; ++i) { - interpolateBadPixelsBayer( *bitmapBads, *rawDataFrames[i] ); + interpolateBadPixelsBayer(*(bitmapBads.get()), *rawDataFrames[i]); } } else { - interpolateBadPixelsBayer( *bitmapBads, rawData ); + interpolateBadPixelsBayer(*(bitmapBads.get()), rawData); } } else if ( ri->getSensorType() == ST_FUJI_XTRANS ) { - interpolateBadPixelsXtrans( *bitmapBads ); + interpolateBadPixelsXtrans(*(bitmapBads.get())); } else { - interpolateBadPixelsNColours( *bitmapBads, ri->get_colors() ); + interpolateBadPixelsNColours(*(bitmapBads.get()), ri->get_colors()); } } @@ -2060,10 +1514,6 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le printf("Preprocessing: %d usec\n", t2.etime(t1)); } - if(bitmapBads) { - delete bitmapBads; - } - rawDirty = true; return; } diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 530211715..95dba61f4 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -28,6 +28,7 @@ #include "dcp.h" #include "iimage.h" #include "imagesource.h" +#include "pixelsmap.h" #define HR_SCALE 2 @@ -258,11 +259,11 @@ protected: ); void ddct8x8s(int isgn, float a[8][8]); - int interpolateBadPixelsBayer( PixelsMap &bitmapBads, array2D &rawData ); - int interpolateBadPixelsNColours( PixelsMap &bitmapBads, const int colours ); - int interpolateBadPixelsXtrans( PixelsMap &bitmapBads ); - int findHotDeadPixels( PixelsMap &bpMap, float thresh, bool findHotPixels, bool findDeadPixels ); - + int interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array2D &rawData); + int interpolateBadPixelsNColours(const PixelsMap &bitmapBads, int colours); + int interpolateBadPixelsXtrans(const PixelsMap &bitmapBads); + int findHotDeadPixels(PixelsMap &bpMap, float thresh, bool findHotPixels, bool findDeadPixels) const; + int findZeroPixels(PixelsMap &bpMap) const; void cfa_linedn (float linenoiselevel, bool horizontal, bool vertical, const CFALineDenoiseRowBlender &rowblender);//Emil's line denoise void green_equilibrate_global (array2D &rawData); From b95bdb1aea7ef0de3378b06ca46da6b3c2d0e8be Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Mon, 10 Jun 2019 22:05:54 +0200 Subject: [PATCH 117/215] Linked red and blue exponent adjuster to the green adjuster, in order to maintain the ratio between exponents if the user moves the green adjuster (master). Switched back to vector sort for median calculations: the results of the histogram search function diverge more and more from the simple median calculation as the exponents increase. At 2.0 the test picture is already impossible to WB as the multipliers are too far off (2.78226e+08 histo vs 9.7927e+11 sort), and the normal WB sliders can't compensate for those huge factors. --- rtengine/filmnegativeproc.cc | 25 ++++++++++++++----------- rtgui/filmnegative.cc | 24 ++++++++++++++++++++---- rtgui/filmnegative.h | 2 ++ 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 64f7a697b..948e86957 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -104,8 +104,8 @@ bool RawImageSource::getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int std::swap(clearVals, denseVals); if (settings->verbose) { - printf("Clear film values: R=%f G=%f B=%f\n", clearVals[0], clearVals[1], clearVals[2]); - printf("Dense film values: R=%f G=%f B=%f\n", denseVals[0], denseVals[1], denseVals[2]); + printf("Clear film values: R=%g G=%g B=%g\n", clearVals[0], clearVals[1], clearVals[2]); + printf("Dense film values: R=%g G=%g B=%g\n", denseVals[0], denseVals[1], denseVals[2]); } float denseGreenRatio = clearVals[1] / denseVals[1]; @@ -119,7 +119,7 @@ bool RawImageSource::getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 3.f); if (settings->verbose) - printf("New exponents: R=%f G=%f B=%f\n", newExps[0], newExps[1], newExps[2]); + printf("New exponents: R=%g G=%g B=%g\n", newExps[0], newExps[1], newExps[2]); return true; } @@ -230,20 +230,23 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p float mults[3] = { 1.f }; // Channel normalization multipliers for (int c=0; c<3; c++) { - // Find median values for each channel using a histogram search function - findMinMaxPercentile(&cvs[c][0], cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); - // Determine the channel multipler so that N times the median becomes 65k. This clips away - // the values in the dark border surrounding the negative (due to the film holder, for example), - // the reciprocal of which have blown up to stellar values. - mults[c] = MAX_OUT_VALUE / (medians[c] * 24); + // Find median values for each channel + if(cvs[c].size() > 0) { + std::sort(cvs[c].begin(), cvs[c].end()); + medians[c] = cvs[c].at(cvs[c].size() / 2); + // Determine the channel multipler so that N times the median becomes 65k. This clips away + // the values in the dark border surrounding the negative (due to the film holder, for example), + // the reciprocal of which have blown up to stellar values. + mults[c] = MAX_OUT_VALUE / (medians[c] * 24); + } } t4.set(); if (settings->verbose) { printf("Sample count : %lu, %lu, %lu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); - printf("Medians : %f %f %f\n", medians[0], medians[1], medians[2] ); - printf("Computed multipliers : %f %f %f\n", mults[0], mults[1], mults[2] ); + printf("Medians : %g %g %g\n", medians[0], medians[1], medians[2] ); + printf("Computed multipliers : %g %g %g\n", mults[0], mults[1], mults[2] ); printf("Median calc time us: %d\n", t4.etime(t3)); } diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index bf4c22837..94c6db4dd 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -34,7 +34,7 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI { auto mkExponentAdjuster = [this](Glib::ustring label, double defaultVal) { - Adjuster *adj = Gtk::manage(new Adjuster (label, 0.3, 3, 0.01, defaultVal)); //exponent + Adjuster *adj = Gtk::manage(new Adjuster (label, 0.3, 5, 0.001, defaultVal)); //exponent adj->setAdjusterListener (this); if (adj->delay < options.adjusterMaxDelay) { @@ -49,6 +49,9 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 1.0); blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 0.86); + redRatio = redExp->getValue() / greenExp->getValue(); + blueRatio = blueExp->getValue() / greenExp->getValue(); + auto m = ProcEventMapper::getInstance(); EvFilmNegativeEnabled = m->newEvent(ALL, "HISTORY_MSG_FILMNEGATIVE_ENABLED"); EvFilmNegativeExponents = m->newEvent(ALL, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS"); @@ -139,10 +142,23 @@ void FilmNegative::enabledChanged() void FilmNegative::adjusterChanged(Adjuster* a, double newval) { - if (listener && getEnabled()) { + if (listener) { if(a == redExp || a == greenExp || a == blueExp) { - listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( - "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); + disableListener(); + if(a == greenExp) { + redExp->setValue(a->getValue() * redRatio); + blueExp->setValue(a->getValue() * blueRatio); + } else if(a == redExp) { + redRatio = newval / greenExp->getValue(); + } else if(a == blueExp) { + blueRatio = newval / greenExp->getValue(); + } + enableListener(); + + if(getEnabled()) { + listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( + "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); + } } } } diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index 614e60fb5..5d6c8ce03 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -54,6 +54,8 @@ private: Gtk::ToggleButton* spotbutton; sigc::connection spotConn; + double redRatio, blueRatio; + void editToggled (); public: From 156f3009d5b92b410267cc6ae674eeeab4b7c1e4 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 10 Jun 2019 22:15:16 +0200 Subject: [PATCH 118/215] badpixels code: further cleanups --- rtengine/badpixels.cc | 88 +++++++++++++++++++-------------------- rtengine/pixelsmap.h | 2 +- rtengine/rawimagesource.h | 2 +- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/rtengine/badpixels.cc b/rtengine/badpixels.cc index 8d02be4a7..895294cae 100644 --- a/rtengine/badpixels.cc +++ b/rtengine/badpixels.cc @@ -26,7 +26,7 @@ namespace rtengine { /* interpolateBadPixelsBayer: correct raw pixels looking at the bitmap - * takes into consideration if there are multiple bad pixels in the neighbourhood + * takes into consideration if there are multiple bad pixels in the neighborhood */ int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array2D &rawData) { @@ -37,8 +37,8 @@ int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array #pragma omp parallel for reduction(+:counter) schedule(dynamic,16) #endif - for(int row = 2; row < H - 2; ++row) { - for(int col = 2; col < W - 2; ++col) { + for (int row = 2; row < H - 2; ++row) { + for (int col = 2; col < W - 2; ++col) { const int sk = bitmapBads.skipIfZero(col, row); //optimization for a stripe all zero if (sk) { @@ -54,8 +54,8 @@ int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array // diagonal interpolation if (FC(row, col) == 1) { - // green channel. We can use closer pixels than for red or blue channel. Distance to centre pixel is sqrt(2) => weighting is 0.70710678 - // For green channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. + // green channel. We can use closer pixels than for red or blue channel. Distance to center pixel is sqrt(2) => weighting is 0.70710678 + // For green channel following pixels will be used for interpolation. Pixel to be interpolated is in center. // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad // 0 0 0 0 0 // 0 1 0 1 0 @@ -72,8 +72,8 @@ int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array norm += dirwt; } } else { - // red and blue channel. Distance to centre pixel is sqrt(8) => weighting is 0.35355339 - // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. + // red and blue channel. Distance to center pixel is sqrt(8) => weighting is 0.35355339 + // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in center. // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad // 1 0 0 0 1 // 0 0 0 0 0 @@ -91,8 +91,8 @@ int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array } } - // channel independent. Distance to centre pixel is 2 => weighting is 0.5 - // Additionally for all channel following pixels will be used for interpolation. Pixel to be interpolated is in centre. + // channel independent. Distance to center pixel is 2 => weighting is 0.5 + // Additionally for all channel following pixels will be used for interpolation. Pixel to be interpolated is in center. // 1 means that pixel is used in this step, if itself and his counterpart are not marked bad // 0 0 1 0 0 // 0 0 0 0 0 @@ -143,10 +143,10 @@ int RawImageSource::interpolateBadPixelsBayer(const PixelsMap &bitmapBads, array return counter; // Number of interpolated pixels. } -/* interpolateBadPixelsNColours: correct raw pixels looking at the bitmap - * takes into consideration if there are multiple bad pixels in the neighbourhood +/* interpolateBadPixelsNcolors: correct raw pixels looking at the bitmap + * takes into consideration if there are multiple bad pixels in the neighborhood */ -int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, const int colours) +int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, const int colors) { constexpr float eps = 1.f; int counter = 0; @@ -168,8 +168,8 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co continue; } - float wtdsum[colours] = {}; - float norm[colours] = {}; + float wtdsum[colors] = {}; + float norm[colors] = {}; // diagonal interpolation for (int dx = -1; dx <= 1; dx += 2) { @@ -177,40 +177,40 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co continue; } - for (int c = 0; c < colours; ++c) { - const float dirwt = 0.70710678f / (fabsf(rawData[row - 1][(col + dx) * colours + c] - rawData[row + 1][(col - dx) * colours + c]) + eps); - wtdsum[c] += dirwt * (rawData[row - 1][(col + dx) * colours + c] + rawData[row + 1][(col - dx) * colours + c]); + for (int c = 0; c < colors; ++c) { + const float dirwt = 0.70710678f / (fabsf(rawData[row - 1][(col + dx) * colors + c] - rawData[row + 1][(col - dx) * colors + c]) + eps); + wtdsum[c] += dirwt * (rawData[row - 1][(col + dx) * colors + c] + rawData[row + 1][(col - dx) * colors + c]); norm[c] += dirwt; } } // horizontal interpolation if (!(bitmapBads.get(col - 1, row) || bitmapBads.get(col + 1, row))) { - for (int c = 0; c < colours; ++c) { - const float dirwt = 1.f / (fabsf(rawData[row][(col - 1) * colours + c] - rawData[row][(col + 1) * colours + c]) + eps); - wtdsum[c] += dirwt * (rawData[row][(col - 1) * colours + c] + rawData[row][(col + 1) * colours + c]); + for (int c = 0; c < colors; ++c) { + const float dirwt = 1.f / (fabsf(rawData[row][(col - 1) * colors + c] - rawData[row][(col + 1) * colors + c]) + eps); + wtdsum[c] += dirwt * (rawData[row][(col - 1) * colors + c] + rawData[row][(col + 1) * colors + c]); norm[c] += dirwt; } } // vertical interpolation if (!(bitmapBads.get(col, row - 1) || bitmapBads.get(col, row + 1))) { - for (int c = 0; c < colours; ++c) { - const float dirwt = 1.f / (fabsf(rawData[row - 1][col * colours + c] - rawData[row + 1][col * colours + c]) + eps); - wtdsum[c] += dirwt * (rawData[row - 1][col * colours + c] + rawData[row + 1][col * colours + c]); + for (int c = 0; c < colors; ++c) { + const float dirwt = 1.f / (fabsf(rawData[row - 1][col * colors + c] - rawData[row + 1][col * colors + c]) + eps); + wtdsum[c] += dirwt * (rawData[row - 1][col * colors + c] + rawData[row + 1][col * colors + c]); norm[c] += dirwt; } } if (LIKELY(norm[0] > 0.f)) { // This means, we found at least one pair of valid pixels in the steps above, likelihood of this case is about 99.999% - for (int c = 0; c < colours; ++c) { - rawData[row][col * colours + c] = wtdsum[c] / (2.f * norm[c]); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps + for (int c = 0; c < colors; ++c) { + rawData[row][col * colors + c] = wtdsum[c] / (2.f * norm[c]); //gradient weighted average, Factor of 2.f is an optimization to avoid multiplications in former steps } counter++; } else { //backup plan -- simple average. Same method for all channels. We could improve this, but it's really unlikely that this case happens int tot = 0; - float sum[colours] = {}; + float sum[colors] = {}; for (int dy = -2; dy <= 2; dy += 2) { for (int dx = -2; dx <= 2; dx += 2) { @@ -218,8 +218,8 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co continue; } - for (int c = 0; c < colours; ++c) { - sum[c] += rawData[row + dy][(col + dx) * colours + c]; + for (int c = 0; c < colors; ++c) { + sum[c] += rawData[row + dy][(col + dx) * colors + c]; } tot++; @@ -227,8 +227,8 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co } if (tot > 0) { - for (int c = 0; c < colours; ++c) { - rawData[row][col * colours + c] = sum[c] / tot; + for (int c = 0; c < colors; ++c) { + rawData[row][col * colors + c] = sum[c] / tot; } counter ++; @@ -241,7 +241,7 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co } /* interpolateBadPixelsXtrans: correct raw pixels looking at the bitmap - * takes into consideration if there are multiple bad pixels in the neighbourhood + * takes into consideration if there are multiple bad pixels in the neighborhood */ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) { @@ -266,15 +266,15 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) } float wtdsum = 0.f, norm = 0.f; - unsigned int pixelColor = ri->XTRANSFC(row, col); + const unsigned int pixelColor = ri->XTRANSFC(row, col); if (pixelColor == 1) { // green channel. A green pixel can either be a solitary green pixel or a member of a 2x2 square of green pixels if (ri->XTRANSFC(row, col - 1) == ri->XTRANSFC(row, col + 1)) { - // If left and right neighbour have same colour, then this is a solitary green pixel - // For these the following pixels will be used for interpolation. Pixel to be interpolated is in centre and marked with a P. + // If left and right neighbor have same color, then this is a solitary green pixel + // For these the following pixels will be used for interpolation. Pixel to be interpolated is in center and marked with a P. // Pairs of pixels used in this step are numbered. A pair will be used if none of the pixels of the pair is marked bad - // 0 means, the pixel has a different colour and will not be used + // 0 means, the pixel has a different color and will not be used // 0 1 0 2 0 // 3 5 0 6 4 // 0 0 P 0 0 @@ -313,7 +313,7 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) // this is a member of a 2x2 square of green pixels // For these the following pixels will be used for interpolation. Pixel to be interpolated is at position P in the example. // Pairs of pixels used in this step are numbered. A pair will be used if none of the pixels of the pair is marked bad - // 0 means, the pixel has a different colour and will not be used + // 0 means, the pixel has a different color and will not be used // 1 0 0 3 // 0 P 2 0 // 0 2 1 0 @@ -352,9 +352,9 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) } } else { // red and blue channel. - // Each red or blue pixel has exactly one neighbour of same colour in distance 2 and four neighbours of same colour which can be reached by a move of a knight in chess. + // Each red or blue pixel has exactly one neighbor of same color in distance 2 and four neighbors of same color which can be reached by a move of a knight in chess. // For the distance 2 pixel (marked with an X) we generate a virtual counterpart (marked with a V) - // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in centre and marked with a P. + // For red and blue channel following pixels will be used for interpolation. Pixel to be interpolated is in center and marked with a P. // Pairs of pixels used in this step are numbered except for distance 2 pixels which are marked X and V. A pair will be used if none of the pixels of the pair is marked bad // 0 1 0 0 0 0 0 X 0 0 remaining cases are symmetric // 0 0 0 0 2 1 0 0 0 2 @@ -362,9 +362,9 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) // 0 0 0 0 1 0 0 0 0 0 // 0 2 0 0 0 0 2 V 1 0 - // Find two knight moves landing on a pixel of same colour as the pixel to be interpolated. + // Find two knight moves landing on a pixel of same color as the pixel to be interpolated. // If we look at first and last row of 5x5 square, we will find exactly two knight pixels. - // Additionally we know that the column of this pixel has 1 or -1 horizontal distance to the centre pixel + // Additionally we know that the column of this pixel has 1 or -1 horizontal distance to the center pixel // When we find a knight pixel, we get its counterpart, which has distance (+-3,+-3), where the signs of distance depend on the corner of the found knight pixel. // These pixels are marked 1 or 2 in above examples. Distance to P is sqrt(5) => weighting is 0.44721359f // The following loop simply scans the four possible places. To keep things simple, it does not stop after finding two knight pixels, because it will not find more than two @@ -380,12 +380,12 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) } } - // now scan for the pixel of same colour in distance 2 in each direction (marked with an X in above examples). + // now scan for the pixel of same color in distance 2 in each direction (marked with an X in above examples). bool distance2PixelFound = false; int dx, dy; // check horizontal - for (dx = -2, dy = 0; dx <= 2 && !distance2PixelFound; dx += 4) { + for (dx = -2, dy = 0; dx <= 2; dx += 4) { if (ri->XTRANSFC(row, col + dx) == pixelColor) { distance2PixelFound = true; break; @@ -394,7 +394,7 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) if (!distance2PixelFound) { // no distance 2 pixel on horizontal, check vertical - for (dx = 0, dy = -2; dy <= 2 && !distance2PixelFound; dy += 4) { + for (dx = 0, dy = -2; dy <= 2; dy += 4) { if (ri->XTRANSFC(row + dy, col) == pixelColor) { distance2PixelFound = true; break; @@ -428,7 +428,7 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) } /* Search for hot or dead pixels in the image and update the map - * For each pixel compare its value to the average of similar colour surrounding + * For each pixel compare its value to the average of similar color surrounding * (Taken from Emil Martinec idea) * (Optimized by Ingo Weyrich 2013 and 2015) */ diff --git a/rtengine/pixelsmap.h b/rtengine/pixelsmap.h index 63dce4233..9089ac91c 100644 --- a/rtengine/pixelsmap.h +++ b/rtengine/pixelsmap.h @@ -39,7 +39,7 @@ class PixelsMap : int w; // line width in base_t units int h; // height typedef unsigned long base_t; - static const size_t base_t_size = sizeof(base_t); + static constexpr size_t base_t_size = sizeof(base_t); base_t *pm; public: diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 95dba61f4..4c7b0ba21 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -102,7 +102,7 @@ protected: void transformRect (const PreviewProps &pp, int tran, int &sx1, int &sy1, int &width, int &height, int &fw); void transformPosition (int x, int y, int tran, int& tx, int& ty); - unsigned FC(int row, int col) + unsigned FC(int row, int col) const { return ri->FC(row, col); } From 223ae8abcee359c2f807ef272443c606aa471621 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 11 Jun 2019 00:19:18 +0200 Subject: [PATCH 119/215] Bugfix: exponent adjusters were not following the master (green) slider after exponents auto-calc via dual spot picking; updated redRatio/blueRatio after calculation. --- rtgui/filmnegative.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 94c6db4dd..b4fdc895c 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -154,7 +154,7 @@ void FilmNegative::adjusterChanged(Adjuster* a, double newval) blueRatio = newval / greenExp->getValue(); } enableListener(); - + if(getEnabled()) { listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); @@ -287,6 +287,8 @@ bool FilmNegative::button1Pressed(int modifierKey) redExp->setValue(newExps[0]); greenExp->setValue(newExps[1]); blueExp->setValue(newExps[2]); + redRatio = redExp->getValue() / greenExp->getValue(); + blueRatio = blueExp->getValue() / greenExp->getValue(); enableListener(); if (listener && getEnabled()) { From e1c9197ed5b547bb114a87fa7bb8789218323326 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 11 Jun 2019 20:08:46 +0200 Subject: [PATCH 120/215] Moved median calculation block before exponentiation. This way findMinMaxPercentile() can be used again because it works on the original raw file values (which are in a much more reasonable range). Patch kindly provided by @heckflosse ;-) --- rtengine/filmnegativeproc.cc | 115 +++++++++++++++++------------------ 1 file changed, 57 insertions(+), 58 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 948e86957..e00891b1a 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -134,6 +134,61 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p MyTime t1, t2, t3,t4, t5, t6; t1.set(); + // Channel vectors to calculate medians + std::vector cvs[3] = { + std::vector(), + std::vector(), + std::vector() + }; + + // Sample one every 5 pixels, and push the value in the appropriate channel vector. + // Chose an odd step, not multiple of the CFA size, to get a chance to visit each channel. + if(ri->getSensorType() == ST_BAYER) { + for (int row = 0; row < H; row+=5) { + for (int col = 0; col < W; col+=5) { + int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + cvs[c].push_back(rawData[row][col]); + } + } + } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + for (int row = 0; row < H; row+=5) { + for (int col = 0; col < W; col+=5) { + int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B + cvs[c].push_back(rawData[row][col]); + } + } + } + + const float MAX_OUT_VALUE = 65000.f; + + t2.set(); + if (settings->verbose) + printf("Median vector fill loop time us: %d\n", t2.etime(t1)); + + float medians[3]; // Channel median values + float mults[3] = { 1.f }; // Channel normalization multipliers + + for (int c=0; c<3; c++) { + // Find median values for each channel + if(cvs[c].size() > 0) { + findMinMaxPercentile(&cvs[c][0], cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); + medians[c] = pow_F(max(medians[c], 1.f), -exps[c]); + // Determine the channel multipler so that N times the median becomes 65k. This clips away + // the values in the dark border surrounding the negative (due to the film holder, for example), + // the reciprocal of which have blown up to stellar values. + mults[c] = MAX_OUT_VALUE / (medians[c] * 24); + } + } + + t3.set(); + if (settings->verbose) { + printf("Sample count : %lu, %lu, %lu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); + printf("Medians : %g %g %g\n", medians[0], medians[1], medians[2] ); + printf("Computed multipliers : %g %g %g\n", mults[0], mults[1], mults[2] ); + printf("Median calc time us: %d\n", t3.etime(t2)); + } + + if(ri->getSensorType() == ST_BAYER) { #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) @@ -191,65 +246,9 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p } - t2.set(); - if (settings->verbose) - printf("Pow loop time us: %d\n", t2.etime(t1)); - - // Channel vectors to calculate medians - std::vector cvs[3] = { - std::vector(), - std::vector(), - std::vector() - }; - - // Sample one every 5 pixels, and push the value in the appropriate channel vector. - // Chose an odd step, not multiple of the CFA size, to get a chance to visit each channel. - if(ri->getSensorType() == ST_BAYER) { - for (int row = 0; row < H; row+=5) { - for (int col = 0; col < W; col+=5) { - int c = FC(row, col); // three colors, 0=R, 1=G, 2=B - cvs[c].push_back(rawData[row][col]); - } - } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { - for (int row = 0; row < H; row+=5) { - for (int col = 0; col < W; col+=5) { - int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B - cvs[c].push_back(rawData[row][col]); - } - } - } - - const float MAX_OUT_VALUE = 65000.f; - - t3.set(); - if (settings->verbose) - printf("Median vector fill loop time us: %d\n", t3.etime(t2)); - - float medians[3]; // Channel median values - float mults[3] = { 1.f }; // Channel normalization multipliers - - for (int c=0; c<3; c++) { - // Find median values for each channel - if(cvs[c].size() > 0) { - std::sort(cvs[c].begin(), cvs[c].end()); - medians[c] = cvs[c].at(cvs[c].size() / 2); - // Determine the channel multipler so that N times the median becomes 65k. This clips away - // the values in the dark border surrounding the negative (due to the film holder, for example), - // the reciprocal of which have blown up to stellar values. - mults[c] = MAX_OUT_VALUE / (medians[c] * 24); - } - } - - t4.set(); - if (settings->verbose) { - printf("Sample count : %lu, %lu, %lu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); - printf("Medians : %g %g %g\n", medians[0], medians[1], medians[2] ); - printf("Computed multipliers : %g %g %g\n", mults[0], mults[1], mults[2] ); - printf("Median calc time us: %d\n", t4.etime(t3)); - } - + if (settings->verbose) + printf("Pow loop time us: %d\n", t4.etime(t3)); if(ri->getSensorType() == ST_BAYER) { From 2bbf8bd864fa65092b96c3db917ed38e0e6e9f60 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 11 Jun 2019 20:26:13 +0200 Subject: [PATCH 121/215] Changed events action from ALL to FIRST , this way the histogram is updated after enabling/disabling or moving the adjusters. --- rtgui/filmnegative.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index b4fdc895c..2af69677f 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -53,8 +53,8 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI blueRatio = blueExp->getValue() / greenExp->getValue(); auto m = ProcEventMapper::getInstance(); - EvFilmNegativeEnabled = m->newEvent(ALL, "HISTORY_MSG_FILMNEGATIVE_ENABLED"); - EvFilmNegativeExponents = m->newEvent(ALL, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS"); + EvFilmNegativeEnabled = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED"); + EvFilmNegativeExponents = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS"); spotgrid = Gtk::manage(new Gtk::Grid()); From 8fa30d496d334312fa58e5c5e8d364f9cba9848c Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 11 Jun 2019 21:02:16 +0200 Subject: [PATCH 122/215] Now that medians are known *before* processing, moved multiplication step inside the same loop as exponentiation for further optimization. Patch kindly provided by @heckflosse ;-) --- rtengine/filmnegativeproc.cc | 65 +++++++++++++----------------------- 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index e00891b1a..5766fbf1e 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -29,6 +29,9 @@ #include "opthelper.h" #include "rt_algo.h" +//#define BENCHMARK +#include "StopWatch.h" + namespace rtengine { @@ -126,6 +129,8 @@ bool RawImageSource::getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams ¶ms) { +// BENCHFUNMICRO + if(!params.enabled) return; @@ -199,19 +204,23 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. const float exps0 = -exps[FC(row, col)]; const float exps1 = -exps[FC(row, col + 1)]; + const float mult0 = mults[FC(row, col)]; + const float mult1 = mults[FC(row, col + 1)]; #ifdef __SSE2__ const vfloat expsv = _mm_setr_ps(exps0, exps1, exps0, exps1); + const vfloat multsv = _mm_setr_ps(mult0, mult1, mult0, mult1); const vfloat onev = F2V(1.f); + const vfloat c65535v = F2V(65535.f); for (; col < W - 3; col+=4) { - STVFU(rawData[row][col], pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv)); + STVFU(rawData[row][col], vminf(multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv), c65535v)); } #endif // __SSE2__ for (; col < W - 1; col+=2) { - rawData[row][col] = pow_F(max(rawData[row][col], 1.f), exps0); - rawData[row][col + 1] = pow_F(max(rawData[row][col + 1], 1.f), exps1); + rawData[row][col] = rtengine::min(mult0 * pow_F(max(rawData[row][col], 1.f), exps0), 65535.f); + rawData[row][col + 1] = rtengine::min(mult1 * pow_F(max(rawData[row][col + 1], 1.f), exps1), 65535.f); } if (col < W) { - rawData[row][col] = pow_F(max(rawData[row][col], 1.f), exps0); + rawData[row][col] = rtengine::min(mult0 * pow_F(max(rawData[row][col], 1.f), exps0), 65535.f); } } } else if(ri->getSensorType() == ST_FUJI_XTRANS) { @@ -223,24 +232,29 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p // Exponents are expressed as positive in the parameters, so negate them in order // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. const float expsc[6] = {-exps[ri->XTRANSFC(row, 0)], -exps[ri->XTRANSFC(row, 1)], -exps[ri->XTRANSFC(row, 2)], -exps[ri->XTRANSFC(row, 3)], -exps[ri->XTRANSFC(row, 4)], -exps[ri->XTRANSFC(row, 5)]}; + const float multsc[6] = {mults[ri->XTRANSFC(row, 0)], mults[ri->XTRANSFC(row, 1)], mults[ri->XTRANSFC(row, 2)], mults[ri->XTRANSFC(row, 3)], mults[ri->XTRANSFC(row, 4)], mults[ri->XTRANSFC(row, 5)]}; #ifdef __SSE2__ const vfloat expsv0 = _mm_setr_ps(expsc[0], expsc[1], expsc[2], expsc[3]); const vfloat expsv1 = _mm_setr_ps(expsc[4], expsc[5], expsc[0], expsc[1]); const vfloat expsv2 = _mm_setr_ps(expsc[2], expsc[3], expsc[4], expsc[5]); + const vfloat multsv0 = _mm_setr_ps(multsc[0], multsc[1], multsc[2], multsc[3]); + const vfloat multsv1 = _mm_setr_ps(multsc[4], multsc[5], multsc[0], multsc[1]); + const vfloat multsv2 = _mm_setr_ps(multsc[2], multsc[3], multsc[4], multsc[5]); const vfloat onev = F2V(1.f); + const vfloat c65535v = F2V(65535.f); for (; col < W - 11; col+=12) { - STVFU(rawData[row][col], pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0)); - STVFU(rawData[row][col + 4], pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1)); - STVFU(rawData[row][col + 8], pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2)); + STVFU(rawData[row][col], vminf(multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0), c65535v)); + STVFU(rawData[row][col + 4], vminf(multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1), c65535v)); + STVFU(rawData[row][col + 8], vminf(multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2), c65535v)); } #endif // __SSE2__ for (; col < W - 5; col+=6) { for (int c = 0; c < 6; ++c) { - rawData[row][col + c] = pow_F(max(rawData[row][col + c], 1.f), expsc[c]); + rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); } } for (int c = 0; col < W; col++, c++) { - rawData[row][col + c] = pow_F(max(rawData[row][col + c], 1.f), expsc[c]); + rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); } } } @@ -250,41 +264,8 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p if (settings->verbose) printf("Pow loop time us: %d\n", t4.etime(t3)); - if(ri->getSensorType() == ST_BAYER) { - -#ifdef _OPENMP - #pragma omp for nowait -#endif - for (int row = 0; row < H; row ++) { - for (int col = 0; col < W; col++) { - int c = FC(row, col); // three colors, 0=R, 1=G, 2=B - // Apply the multipliers, clamp max output value to 65535 - float out = rawData[row][col] * mults[c]; - rawData[row][col] = out > 65535.f ? 65535.f : out; - } - } - - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { - -#ifdef _OPENMP - #pragma omp for nowait -#endif - for (int row = 0; row < H; row ++) { - for (int col = 0; col < W; col++) { - int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B - // Apply the multipliers, clamp max output value to 65535 - float out = rawData[row][col] * mults[c]; - rawData[row][col] = out > 65535.f ? 65535.f : out; - } - } - - } - t5.set(); - if (settings->verbose) - printf("Mult loop time us: %d\n", t5.etime(t4)); - PixelsMap bitmapBads(W, H); From 5ddc4a3e0ee3f63ec684f05b175e1215111659f9 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 11 Jun 2019 22:13:16 +0200 Subject: [PATCH 123/215] Added missing checkbox for film negative feature in partial apply / partial paste dialogs. --- rtdata/languages/default | 1 + rtgui/partialpastedlg.cc | 18 ++++++++++++++++++ rtgui/partialpastedlg.h | 3 +++ 3 files changed, 22 insertions(+) diff --git a/rtdata/languages/default b/rtdata/languages/default index e6a546a7e..1c6a1acba 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -985,6 +985,7 @@ PARTIALPASTE_EVERYTHING;Everything PARTIALPASTE_EXIFCHANGES;Exif PARTIALPASTE_EXPOSURE;Exposure PARTIALPASTE_FILMSIMULATION;Film simulation +PARTIALPASTE_FILMNEGATIVE;Film Negative PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 734f7c29b..ef18e2953 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -134,6 +134,9 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren raw_ca_autocorrect = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_AUTO"))); raw_caredblue = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_CAREDBLUE"))); raw_ca_avoid_colourshift = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT"))); + //--- + filmNegative = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_FILMNEGATIVE")) ); + Gtk::VBox* vboxes[8]; Gtk::HSeparator* hseps[8]; @@ -249,6 +252,9 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vboxes[7]->pack_start (*raw_ca_autocorrect, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_caredblue, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_ca_avoid_colourshift, Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); + vboxes[7]->pack_start (*filmNegative, Gtk::PACK_SHRINK, 2); + Gtk::VBox* vbCol1 = Gtk::manage (new Gtk::VBox ()); Gtk::VBox* vbCol2 = Gtk::manage (new Gtk::VBox ()); @@ -396,6 +402,8 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren raw_ca_autocorrectConn = raw_ca_autocorrect->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); raw_caredblueConn = raw_caredblue->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); raw_ca_avoid_colourshiftconn = raw_ca_avoid_colourshift->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); + //--- + filmNegativeConn = filmNegative->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); add_button (M("GENERAL_OK"), Gtk::RESPONSE_OK); add_button (M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); @@ -467,6 +475,7 @@ void PartialPasteDlg::rawToggled () ConnectionBlocker raw_ca_autocorrectBlocker(raw_ca_autocorrectConn); ConnectionBlocker raw_caredblueBlocker(raw_caredblueConn); ConnectionBlocker raw_ca_avoid_colourshiftBlocker(raw_ca_avoid_colourshiftconn); + ConnectionBlocker filmNegativeBlocker(filmNegativeConn); raw->set_inconsistent (false); @@ -495,6 +504,7 @@ void PartialPasteDlg::rawToggled () raw_ca_autocorrect->set_active (raw->get_active ()); raw_caredblue->set_active (raw->get_active ()); raw_ca_avoid_colourshift->set_active (raw->get_active ()); + filmNegative->set_active (raw->get_active()); } void PartialPasteDlg::basicToggled () @@ -966,6 +976,14 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.raw.ff_AutoClipControl = falsePE.raw.ff_AutoClipControl; } + if (!filmNegative->get_active ()) { + filterPE.filmNegative.enabled = falsePE.filmNegative.enabled; + filterPE.filmNegative.redExp = falsePE.filmNegative.redExp; + filterPE.filmNegative.greenExp = falsePE.filmNegative.greenExp; + filterPE.filmNegative.blueExp = falsePE.filmNegative.blueExp; + } + + if (dstPE) { *dstPE = filterPE; } diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 0325fa063..b5b93b11a 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -130,6 +130,8 @@ public: Gtk::CheckButton* ff_BlurType; Gtk::CheckButton* ff_ClipControl; + Gtk::CheckButton* filmNegative; + sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn; sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn; @@ -140,6 +142,7 @@ public: sigc::connection metadataConn, exifchConn, iptcConn, icmConn; sigc::connection df_fileConn, df_AutoSelectConn, ff_fileConn, ff_AutoSelectConn, ff_BlurRadiusConn, ff_BlurTypeConn, ff_ClipControlConn; sigc::connection raw_caredblueConn, raw_ca_autocorrectConn, raw_ca_avoid_colourshiftconn, raw_hotpix_filtConn, raw_deadpix_filtConn, raw_pdaf_lines_filterConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_methodConn, raw_borderConn, raw_imagenumConn, raw_dcb_iterationsConn, raw_lmmse_iterationsConn, raw_pixelshiftConn, raw_dcb_enhanceConn, raw_exposConn, raw_blackConn; + sigc::connection filmNegativeConn; public: PartialPasteDlg (const Glib::ustring &title, Gtk::Window* parent); From 8d0755eddc6d3aa02de4b39154ca40edde7865c9 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 11 Jun 2019 22:50:36 +0200 Subject: [PATCH 124/215] Raised default master exponent from 1.0 to 2.0, to get a reasonable contrast right from the start. --- rtengine/filmnegativeproc.cc | 4 ++-- rtengine/procparams.cc | 6 +++--- rtgui/filmnegative.cc | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 5766fbf1e..db98fdf02 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -117,9 +117,9 @@ bool RawImageSource::getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int // compared to the ratio in the reference channel (green) for(int ch=0; ch<3; ch++) if(ch==1) - newExps[ch] = 1.f; // Green is the reference channel + newExps[ch] = 2.f; // Green is the reference channel else - newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 3.f); + newExps[ch] = CLAMP(2.f * logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 6.f); if (settings->verbose) printf("New exponents: R=%g G=%g B=%g\n", newExps[0], newExps[1], newExps[2]); diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 9780255da..bb5c86494 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2737,9 +2737,9 @@ bool MetaDataParams::operator!=(const MetaDataParams &other) const FilmNegativeParams::FilmNegativeParams() : enabled(false), - redExp(1.36), - greenExp(1.0), - blueExp(0.86) + redExp(2.72), + greenExp(2.0), + blueExp(1.72) { } diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 2af69677f..8f1fb5610 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -34,7 +34,7 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI { auto mkExponentAdjuster = [this](Glib::ustring label, double defaultVal) { - Adjuster *adj = Gtk::manage(new Adjuster (label, 0.3, 5, 0.001, defaultVal)); //exponent + Adjuster *adj = Gtk::manage(new Adjuster (label, 0.3, 6, 0.001, defaultVal)); //exponent adj->setAdjusterListener (this); if (adj->delay < options.adjusterMaxDelay) { @@ -45,9 +45,9 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI return adj; }; - redExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_RED"), 1.36); - greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 1.0); - blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 0.86); + redExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_RED"), 2.72); + greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 2.0); + blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 1.72); redRatio = redExp->getValue() / greenExp->getValue(); blueRatio = blueExp->getValue() / greenExp->getValue(); From c819cb63a253b7ee1e884c43063537317e610b42 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Wed, 12 Jun 2019 22:11:34 +0200 Subject: [PATCH 125/215] Speed boost in the median vectors fill via loop unrolling --- rtengine/filmnegativeproc.cc | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index db98fdf02..7c7103dc6 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -150,16 +150,28 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p // Chose an odd step, not multiple of the CFA size, to get a chance to visit each channel. if(ri->getSensorType() == ST_BAYER) { for (int row = 0; row < H; row+=5) { - for (int col = 0; col < W; col+=5) { - int c = FC(row, col); // three colors, 0=R, 1=G, 2=B - cvs[c].push_back(rawData[row][col]); + int col = 0; + int c0 = FC(row, col); + int c1 = FC(row, col + 5); + for (; col < W - 5; col+=10) { + cvs[c0].push_back(rawData[row][col]); + cvs[c1].push_back(rawData[row][col + 5]); + } + if (col < W) { + cvs[c0].push_back(rawData[row][col]); } } } else if(ri->getSensorType() == ST_FUJI_XTRANS) { for (int row = 0; row < H; row+=5) { - for (int col = 0; col < W; col+=5) { - int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B - cvs[c].push_back(rawData[row][col]); + int col = 0; + const unsigned int cs[6] = {ri->XTRANSFC(row, 0), ri->XTRANSFC(row, 5), ri->XTRANSFC(row, 10), ri->XTRANSFC(row, 15), ri->XTRANSFC(row, 20), ri->XTRANSFC(row, 25)}; + for (; col < W - 25; col += 30) { + for (int c = 0; c < 6; ++c) { + cvs[cs[c]].push_back(rawData[row][col + c * 5]); + } + } + for (int c = 0; col < W; col += 5, ++c) { + cvs[cs[c]].push_back(rawData[row][col]); } } } From 015cffc73ab416d9d8788938dceb78e08ec127e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 13 Jun 2019 09:52:13 +0200 Subject: [PATCH 126/215] Peripheral cleanups and a fix - Whitespace, braces, sorting - Fixed missing filmnegative in `ProcParams::operator ==(ProcParams)` --- rtengine/CMakeLists.txt | 42 +- rtengine/imagesource.h | 20 +- rtengine/improccoordinator.cc | 38 +- rtengine/procparams.cc | 10 +- rtengine/procparams.h | 10 +- rtengine/rawimagesource.h | 3 - rtengine/simpleprocess.cc | 2 +- rtgui/CMakeLists.txt | 22 +- rtgui/paramsedited.cc | 772 +++++++++++++++++----------------- rtgui/partialpastedlg.cc | 4 - rtgui/toolpanelcoord.cc | 5 +- 11 files changed, 457 insertions(+), 471 deletions(-) diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index dfa843fd0..385ba921e 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -30,18 +30,15 @@ link_directories("${PROJECT_SOURCE_DIR}/rtexif" set(CAMCONSTSFILE "camconst.json") set(RTENGINESOURCEFILES - CA_correct_RT.cc - EdgePreservingDecomposition.cc - FTblockDN.cc - PF_correct_RT.cc ahd_demosaic_RT.cc amaze_demosaic_RT.cc - cJSON.c + CA_correct_RT.cc calc_distort.cc camconst.cc cfa_linedn_RT.cc ciecam02.cc cieimage.cc + cJSON.c clutstore.cc color.cc colortemp.cc @@ -58,12 +55,18 @@ set(RTENGINESOURCEFILES dual_demosaic_RT.cc dynamicprofile.cc eahd_demosaic.cc + EdgePreservingDecomposition.cc fast_demo.cc ffmanager.cc + filmnegativeproc.cc flatcurves.cc + FTblockDN.cc + gamutwarning.cc gauss.cc green_equil_RT.cc + guidedfilter.cc hilite_recon.cc + histmatching.cc hphd_demosaic_RT.cc iccjpeg.cc iccstore.cc @@ -78,10 +81,15 @@ set(RTENGINESOURCEFILES improcfun.cc impulse_denoise.cc init.cc + ipdehaze.cc iplab2rgb.cc + iplabregions.cc + iplocalcontrast.cc ipresize.cc ipretinex.cc + ipshadowshighlights.cc ipsharpen.cc + ipsoftlight.cc iptransform.cc ipvibrance.cc ipwavelet.cc @@ -89,8 +97,8 @@ set(RTENGINESOURCEFILES jpeg_ijg/jpeg_memsrc.cc klt/convolve.cc klt/error.cc - klt/klt.cc klt/klt_util.cc + klt/klt.cc klt/pnmio.cc klt/pyramid.cc klt/selectGoodFeatures.cc @@ -99,8 +107,11 @@ set(RTENGINESOURCEFILES klt/writeFeatures.cc labimage.cc lcp.cc + lj92.c loadinitial.cc myfile.cc + pdaflinesfilter.cc + PF_correct_RT.cc pipettebuffer.cc pixelshift.cc previewimage.cc @@ -112,28 +123,17 @@ set(RTENGINESOURCEFILES rcd_demosaic.cc refreshmap.cc rt_algo.cc + rtlensfun.cc rtthumbnail.cc shmap.cc simpleprocess.cc slicer.cc stdimagesource.cc - utils.cc - rtlensfun.cc tmo_fattal02.cc - iplocalcontrast.cc - histmatching.cc - pdaflinesfilter.cc - gamutwarning.cc - ipshadowshighlights.cc - xtrans_demosaic.cc + utils.cc vng4_demosaic_RT.cc - ipsoftlight.cc - guidedfilter.cc - ipdehaze.cc - iplabregions.cc - lj92.c - filmnegativeproc.cc - ) + xtrans_demosaic.cc +) if(LENSFUN_HAS_LOAD_DIRECTORY) set_source_files_properties(rtlensfun.cc PROPERTIES COMPILE_DEFINITIONS RT_LENSFUN_HAS_LOAD_DIRECTORY) diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index e3321b599..0a34b6bc8 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -16,20 +16,21 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _IMAGESOURCE_ -#define _IMAGESOURCE_ +#pragma once + +#include #include -#include -#include "rtengine.h" + #include "colortemp.h" #include "coord2d.h" #include "dcp.h" -#include "LUT.h" -#include "imagedata.h" -#include "image8.h" #include "image16.h" +#include "image8.h" +#include "imagedata.h" #include "imagefloat.h" +#include "LUT.h" +#include "rtengine.h" namespace rtengine { @@ -39,11 +40,11 @@ namespace procparams struct CoarseTransformParams; struct ColorManagementParams; +struct FilmNegativeParams; struct LensProfParams; struct RAWParams; struct RetinexParams; struct ToneCurveParams; -struct FilmNegativeParams; } @@ -57,6 +58,7 @@ public: double cam_xyz[3][3] = {}; }; +// TODO: Move implementation to .cc (Flössie) class ImageSource : public InitialImage { @@ -180,5 +182,5 @@ public: } virtual void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) = 0; }; + } -#endif diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 2d0d490ad..fb6250183 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -279,8 +279,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) highDetailPreprocessComputed = highDetailNeeded; // After preprocess, run film negative processing if enabled - if((todo & M_RAW) && (imgsrc->getSensorType() == ST_BAYER || imgsrc->getSensorType() == ST_FUJI_XTRANS) && params->filmNegative.enabled) { - imgsrc->filmNegativeProcess (params->filmNegative); + if ( + (todo & M_RAW) + && ( + imgsrc->getSensorType() == ST_BAYER + || imgsrc->getSensorType() == ST_FUJI_XTRANS + ) + && params->filmNegative.enabled + ) { + imgsrc->filmNegativeProcess(params->filmNegative); } } @@ -1257,30 +1264,29 @@ void ImProcCoordinator::getSpotWB(int x, int y, int rect, double& temp, double& bool ImProcCoordinator::getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) { + MyMutex::MyLock lock(mProcessing); - { - MyMutex::MyLock lock(mProcessing); + const auto xlate = + [this](int x, int y) -> Coord2D + { + const std::vector points = {Coord2D(x, y)}; - auto xlate = [this](int x, int y) { - std::vector points, red, green, blue; - - points.push_back(Coord2D(x, y)); + std::vector red; + std::vector green; + std::vector blue; ipf.transCoord(fw, fh, points, red, green, blue); + return green[0]; }; - int tr = getCoarseBitMask(params->coarse); + const int tr = getCoarseBitMask(params->coarse); - Coord2D p1 = xlate(xA, yA); - Coord2D p2 = xlate(xB, yB); - - return imgsrc->getFilmNegativeExponents(p1, p2, tr, params->filmNegative, newExps); - - } // end of mutex locking + const Coord2D p1 = xlate(xA, yA); + const Coord2D p2 = xlate(xB, yB); + return imgsrc->getFilmNegativeExponents(p1, p2, tr, params->filmNegative, newExps); } - void ImProcCoordinator::getAutoCrop(double ratio, int &x, int &y, int &w, int &h) { diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index bb5c86494..ade3b0581 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2734,7 +2734,6 @@ bool MetaDataParams::operator!=(const MetaDataParams &other) const return !(*this == other); } - FilmNegativeParams::FilmNegativeParams() : enabled(false), redExp(2.72), @@ -2757,10 +2756,6 @@ bool FilmNegativeParams::operator !=(const FilmNegativeParams& other) const return !(*this == other); } - - - - ProcParams::ProcParams() { setDefaults(); @@ -3598,7 +3593,6 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->filmNegative.greenExp, "Film Negative", "GreenExponent", filmNegative.greenExp, keyFile); saveToKeyfile(!pedited || pedited->filmNegative.blueExp, "Film Negative", "BlueExponent", filmNegative.blueExp, keyFile); - // EXIF change list if (!pedited || pedited->exif) { for (ExifPairs::const_iterator i = exif.begin(); i != exif.end(); ++i) { @@ -5149,7 +5143,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Film Negative", "BlueExponent", pedited, filmNegative.blueExp, pedited->filmNegative.blueExp); } - if (keyFile.has_group("MetaData")) { int mode = int(MetaDataParams::TUNNEL); assignFromKeyfile(keyFile, "MetaData", "Mode", pedited, mode, pedited->metadata.mode); @@ -5272,7 +5265,8 @@ bool ProcParams::operator ==(const ProcParams& other) const && metadata == other.metadata && exif == other.exif && iptc == other.iptc - && dehaze == other.dehaze; + && dehaze == other.dehaze + && filmNegative == other.filmNegative; } bool ProcParams::operator !=(const ProcParams& other) const diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 3f9ff0342..2af018035 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -728,7 +728,6 @@ struct DirPyrDenoiseParams { bool operator !=(const DirPyrDenoiseParams& other) const; void getCurves(NoiseCurve& lCurve, NoiseCurve& cCurve) const; - }; // EPD related parameters. @@ -1056,7 +1055,6 @@ struct ColorManagementParams { bool operator !=(const ColorManagementParams& other) const; }; - /** * Parameters for metadata handling */ @@ -1295,7 +1293,6 @@ struct HSVEqualizerParams { bool operator !=(const HSVEqualizerParams& other) const; }; - /** * Film simualtion params */ @@ -1310,7 +1307,6 @@ struct FilmSimulationParams { bool operator !=(const FilmSimulationParams& other) const; }; - struct SoftLightParams { bool enabled; int strength; @@ -1334,7 +1330,6 @@ struct DehazeParams { bool operator!=(const DehazeParams &other) const; }; - /** * Parameters for RAW demosaicing, common to all sensor type */ @@ -1501,7 +1496,6 @@ struct RAWParams { static Glib::ustring getFlatFieldBlurTypeString(FlatFieldBlurType type); }; - /** * Parameters of film negative */ @@ -1517,7 +1511,6 @@ struct FilmNegativeParams { bool operator !=(const FilmNegativeParams& other) const; }; - /** * This class holds all the processing parameters applied on the images */ @@ -1566,6 +1559,7 @@ public: FilmSimulationParams filmSimulation; ///< film simulation parameters SoftLightParams softlight; ///< softlight parameters DehazeParams dehaze; ///< dehaze parameters + FilmNegativeParams filmNegative; ///< Film negative parameters int rank; ///< Custom image quality ranking int colorlabel; ///< Custom color label bool inTrash; ///< Marks deleted image @@ -1576,8 +1570,6 @@ public: ExifPairs exif; ///< List of modifications appplied on the exif tags of the input image IPTCPairs iptc; ///< The IPTC tags and values to be saved to the output image - FilmNegativeParams filmNegative; ///< Film negative parameters - /** * The constructor only sets the hand-wired defaults. */ diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 56fec7146..6e039e7f8 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -36,7 +36,6 @@ namespace rtengine class RawImageSource : public ImageSource { - private: static DiagonalCurve *phaseOneIccCurve; static DiagonalCurve *phaseOneIccCurveInv; @@ -46,7 +45,6 @@ private: int defTransform (int tran); bool channelsAvg(Coord spotPos, int spotSize, float avgs[3], const FilmNegativeParams ¶ms); - protected: MyMutex getImageMutex; // locks getImage @@ -110,7 +108,6 @@ protected: inline void getRowStartEnd (int x, int &start, int &end); static void getProfilePreprocParams(cmsHPROFILE in, float& gammafac, float& lineFac, float& lineSum); - public: RawImageSource (); ~RawImageSource () override; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index e270f093f..4bdaa6ff1 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -210,7 +210,7 @@ private: imgsrc->preprocess ( params.raw, params.lensProf, params.coarse, params.dirpyrDenoise.enabled); // After preprocess, run film negative processing if enabled - if(imgsrc->getSensorType() == ST_BAYER && params.filmNegative.enabled) { + if (imgsrc->getSensorType() == ST_BAYER && params.filmNegative.enabled) { imgsrc->filmNegativeProcess (params.filmNegative); } diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 4c775bdcc..bdd166938 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -8,7 +8,7 @@ set(CLISOURCEFILES paramsedited.cc pathutils.cc threadutils.cc - ) +) set(NONCLISOURCEFILES adjuster.cc @@ -43,6 +43,7 @@ set(NONCLISOURCEFILES curveeditorgroup.cc darkframe.cc defringe.cc + dehaze.cc diagonalcurveeditorsubgroup.cc dirbrowser.cc dirpyrdenoise.cc @@ -55,15 +56,18 @@ set(NONCLISOURCEFILES editwidgets.cc editwindow.cc epd.cc + eventmapper.cc exiffiltersettings.cc exifpanel.cc exportpanel.cc extprog.cc + fattaltonemap.cc filebrowser.cc filebrowserentry.cc filecatalog.cc filepanel.cc filethumbnailbuttonset.cc + filmnegative.cc filmsimulation.cc filterpanel.cc flatcurveeditorsubgroup.cc @@ -83,12 +87,15 @@ set(NONCLISOURCEFILES inspector.cc iptcpanel.cc labcurve.cc + labgrid.cc lensgeom.cc lensprofile.cc + localcontrast.cc lockablecolorpicker.cc lwbutton.cc lwbuttonset.cc main.cc + metadatapanel.cc multilangmgr.cc mycurve.cc mydiagonalcurve.cc @@ -122,8 +129,8 @@ set(NONCLISOURCEFILES rgbcurves.cc rotate.cc rtimage.cc - rtsurface.cc rtscalable.cc + rtsurface.cc rtwindow.cc saveasdlg.cc saveformatpanel.cc @@ -134,6 +141,7 @@ set(NONCLISOURCEFILES sharpening.cc sharpenmicro.cc shcselector.cc + softlight.cc soundman.cc splash.cc threadutils.cc @@ -154,15 +162,7 @@ set(NONCLISOURCEFILES xtransprocess.cc xtransrawexposure.cc zoompanel.cc - fattaltonemap.cc - localcontrast.cc - eventmapper.cc - metadatapanel.cc - labgrid.cc - softlight.cc - dehaze.cc - filmnegative.cc - ) +) include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}") diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 3a5ab041a..7d52d309a 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -1163,15 +1163,15 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng bool dontforceSet = !forceSet; if (toneCurve.curve) { - toEdit.toneCurve.curve = mods.toneCurve.curve; + toEdit.toneCurve.curve = mods.toneCurve.curve; } if (toneCurve.curve2) { - toEdit.toneCurve.curve2 = mods.toneCurve.curve2; + toEdit.toneCurve.curve2 = mods.toneCurve.curve2; } if (toneCurve.curveMode) { - toEdit.toneCurve.curveMode = mods.toneCurve.curveMode; + toEdit.toneCurve.curveMode = mods.toneCurve.curveMode; } if (toneCurve.curveMode2) { @@ -1183,11 +1183,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (toneCurve.black) { - toEdit.toneCurve.black = dontforceSet && options.baBehav[ADDSET_TC_BLACKLEVEL] ? toEdit.toneCurve.black + mods.toneCurve.black : mods.toneCurve.black; + toEdit.toneCurve.black = dontforceSet && options.baBehav[ADDSET_TC_BLACKLEVEL] ? toEdit.toneCurve.black + mods.toneCurve.black : mods.toneCurve.black; } if (toneCurve.contrast) { - toEdit.toneCurve.contrast = dontforceSet && options.baBehav[ADDSET_TC_CONTRAST] ? toEdit.toneCurve.contrast + mods.toneCurve.contrast : mods.toneCurve.contrast; + toEdit.toneCurve.contrast = dontforceSet && options.baBehav[ADDSET_TC_CONTRAST] ? toEdit.toneCurve.contrast + mods.toneCurve.contrast : mods.toneCurve.contrast; } if (toneCurve.saturation) { @@ -1195,43 +1195,43 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (toneCurve.shcompr) { - toEdit.toneCurve.shcompr = dontforceSet && options.baBehav[ADDSET_TC_SHCOMP] ? toEdit.toneCurve.shcompr + mods.toneCurve.shcompr : mods.toneCurve.shcompr; + toEdit.toneCurve.shcompr = dontforceSet && options.baBehav[ADDSET_TC_SHCOMP] ? toEdit.toneCurve.shcompr + mods.toneCurve.shcompr : mods.toneCurve.shcompr; } if (toneCurve.autoexp) { - toEdit.toneCurve.autoexp = mods.toneCurve.autoexp; + toEdit.toneCurve.autoexp = mods.toneCurve.autoexp; } if (toneCurve.clip) { - toEdit.toneCurve.clip = mods.toneCurve.clip; + toEdit.toneCurve.clip = mods.toneCurve.clip; } if (toneCurve.expcomp) { - toEdit.toneCurve.expcomp = dontforceSet && options.baBehav[ADDSET_TC_EXPCOMP] ? toEdit.toneCurve.expcomp + mods.toneCurve.expcomp : mods.toneCurve.expcomp; + toEdit.toneCurve.expcomp = dontforceSet && options.baBehav[ADDSET_TC_EXPCOMP] ? toEdit.toneCurve.expcomp + mods.toneCurve.expcomp : mods.toneCurve.expcomp; } if (toneCurve.hlcompr) { - toEdit.toneCurve.hlcompr = dontforceSet && options.baBehav[ADDSET_TC_HLCOMPAMOUNT] ? toEdit.toneCurve.hlcompr + mods.toneCurve.hlcompr : mods.toneCurve.hlcompr; + toEdit.toneCurve.hlcompr = dontforceSet && options.baBehav[ADDSET_TC_HLCOMPAMOUNT] ? toEdit.toneCurve.hlcompr + mods.toneCurve.hlcompr : mods.toneCurve.hlcompr; } if (toneCurve.hlcomprthresh) { - toEdit.toneCurve.hlcomprthresh = dontforceSet && options.baBehav[ADDSET_TC_HLCOMPTHRESH] ? toEdit.toneCurve.hlcomprthresh + mods.toneCurve.hlcomprthresh : mods.toneCurve.hlcomprthresh; + toEdit.toneCurve.hlcomprthresh = dontforceSet && options.baBehav[ADDSET_TC_HLCOMPTHRESH] ? toEdit.toneCurve.hlcomprthresh + mods.toneCurve.hlcomprthresh : mods.toneCurve.hlcomprthresh; } if (toneCurve.hrenabled) { - toEdit.toneCurve.hrenabled = mods.toneCurve.hrenabled; + toEdit.toneCurve.hrenabled = mods.toneCurve.hrenabled; } if (toneCurve.method) { - toEdit.toneCurve.method = mods.toneCurve.method; + toEdit.toneCurve.method = mods.toneCurve.method; } if (toneCurve.histmatching) { - toEdit.toneCurve.histmatching = mods.toneCurve.histmatching; + toEdit.toneCurve.histmatching = mods.toneCurve.histmatching; } if (toneCurve.fromHistMatching) { - toEdit.toneCurve.fromHistMatching = mods.toneCurve.fromHistMatching; + toEdit.toneCurve.fromHistMatching = mods.toneCurve.fromHistMatching; } if (toneCurve.clampOOG) { @@ -1239,132 +1239,132 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (retinex.enabled) { - toEdit.retinex.enabled = mods.retinex.enabled; + toEdit.retinex.enabled = mods.retinex.enabled; } if (retinex.cdcurve) { - toEdit.retinex.cdcurve = mods.retinex.cdcurve; + toEdit.retinex.cdcurve = mods.retinex.cdcurve; } if (retinex.mapcurve) { - toEdit.retinex.mapcurve = mods.retinex.mapcurve; + toEdit.retinex.mapcurve = mods.retinex.mapcurve; } if (retinex.cdHcurve) { - toEdit.retinex.cdHcurve = mods.retinex.cdHcurve; + toEdit.retinex.cdHcurve = mods.retinex.cdHcurve; } if (retinex.lhcurve) { - toEdit.retinex.lhcurve = mods.retinex.lhcurve; + toEdit.retinex.lhcurve = mods.retinex.lhcurve; } if (retinex.transmissionCurve) { - toEdit.retinex.transmissionCurve = mods.retinex.transmissionCurve; + toEdit.retinex.transmissionCurve = mods.retinex.transmissionCurve; } if (retinex.gaintransmissionCurve) { - toEdit.retinex.gaintransmissionCurve = mods.retinex.gaintransmissionCurve; + toEdit.retinex.gaintransmissionCurve = mods.retinex.gaintransmissionCurve; } if (retinex.retinexMethod) { - toEdit.retinex.retinexMethod = mods.retinex.retinexMethod; + toEdit.retinex.retinexMethod = mods.retinex.retinexMethod; } if (retinex.mapMethod) { - toEdit.retinex.mapMethod = mods.retinex.mapMethod; + toEdit.retinex.mapMethod = mods.retinex.mapMethod; } if (retinex.viewMethod) { - toEdit.retinex.viewMethod = mods.retinex.viewMethod; + toEdit.retinex.viewMethod = mods.retinex.viewMethod; } if (retinex.retinexcolorspace) { - toEdit.retinex.retinexcolorspace = mods.retinex.retinexcolorspace; + toEdit.retinex.retinexcolorspace = mods.retinex.retinexcolorspace; } if (retinex.gammaretinex) { - toEdit.retinex.gammaretinex = mods.retinex.gammaretinex; + toEdit.retinex.gammaretinex = mods.retinex.gammaretinex; } if (retinex.gam) { - toEdit.retinex.gam = dontforceSet && options.baBehav[ADDSET_RETI_GAM] ? toEdit.retinex.gam + mods.retinex.gam : mods.retinex.gam; + toEdit.retinex.gam = dontforceSet && options.baBehav[ADDSET_RETI_GAM] ? toEdit.retinex.gam + mods.retinex.gam : mods.retinex.gam; } if (retinex.slope) { - toEdit.retinex.slope = dontforceSet && options.baBehav[ADDSET_RETI_SLO] ? toEdit.retinex.slope + mods.retinex.slope : mods.retinex.slope; + toEdit.retinex.slope = dontforceSet && options.baBehav[ADDSET_RETI_SLO] ? toEdit.retinex.slope + mods.retinex.slope : mods.retinex.slope; } if (retinex.str) { - toEdit.retinex.str = dontforceSet && options.baBehav[ADDSET_RETI_STR] ? toEdit.retinex.str + mods.retinex.str : mods.retinex.str; + toEdit.retinex.str = dontforceSet && options.baBehav[ADDSET_RETI_STR] ? toEdit.retinex.str + mods.retinex.str : mods.retinex.str; } if (retinex.scal) { - toEdit.retinex.scal = mods.retinex.scal; + toEdit.retinex.scal = mods.retinex.scal; } if (retinex.iter) { - toEdit.retinex.iter = mods.retinex.iter; + toEdit.retinex.iter = mods.retinex.iter; } if (retinex.grad) { - toEdit.retinex.grad = mods.retinex.grad; + toEdit.retinex.grad = mods.retinex.grad; } if (retinex.grads) { - toEdit.retinex.grads = mods.retinex.grads; + toEdit.retinex.grads = mods.retinex.grads; } // if (retinex.scal) { -// toEdit.retinex.scal = dontforceSet && options.baBehav[ADDSET_RETI_SCAL] ? toEdit.retinex.scal + mods.retinex.scal : mods.retinex.scal; +// toEdit.retinex.scal = dontforceSet && options.baBehav[ADDSET_RETI_SCAL] ? toEdit.retinex.scal + mods.retinex.scal : mods.retinex.scal; // } if (retinex.medianmap) { - toEdit.retinex.medianmap = mods.retinex.medianmap; + toEdit.retinex.medianmap = mods.retinex.medianmap; } if (retinex.neigh) { - toEdit.retinex.neigh = dontforceSet && options.baBehav[ADDSET_RETI_NEIGH] ? toEdit.retinex.neigh + mods.retinex.neigh : mods.retinex.neigh; + toEdit.retinex.neigh = dontforceSet && options.baBehav[ADDSET_RETI_NEIGH] ? toEdit.retinex.neigh + mods.retinex.neigh : mods.retinex.neigh; } if (retinex.limd) { - toEdit.retinex.limd = dontforceSet && options.baBehav[ADDSET_RETI_LIMD] ? toEdit.retinex.limd + mods.retinex.limd : mods.retinex.limd; + toEdit.retinex.limd = dontforceSet && options.baBehav[ADDSET_RETI_LIMD] ? toEdit.retinex.limd + mods.retinex.limd : mods.retinex.limd; } if (retinex.highl) { - toEdit.retinex.highl = mods.retinex.highl; + toEdit.retinex.highl = mods.retinex.highl; } if (retinex.skal) { - toEdit.retinex.skal = mods.retinex.skal; + toEdit.retinex.skal = mods.retinex.skal; } if (retinex.offs) { - toEdit.retinex.offs = dontforceSet && options.baBehav[ADDSET_RETI_OFFS] ? toEdit.retinex.offs + mods.retinex.offs : mods.retinex.offs; + toEdit.retinex.offs = dontforceSet && options.baBehav[ADDSET_RETI_OFFS] ? toEdit.retinex.offs + mods.retinex.offs : mods.retinex.offs; } if (retinex.vart) { - toEdit.retinex.vart = dontforceSet && options.baBehav[ADDSET_RETI_VART] ? toEdit.retinex.vart + mods.retinex.vart : mods.retinex.vart; + toEdit.retinex.vart = dontforceSet && options.baBehav[ADDSET_RETI_VART] ? toEdit.retinex.vart + mods.retinex.vart : mods.retinex.vart; } if (retinex.highlights) { - toEdit.retinex.highlights = mods.retinex.highlights; + toEdit.retinex.highlights = mods.retinex.highlights; } if (retinex.htonalwidth) { - toEdit.retinex.htonalwidth = mods.retinex.htonalwidth; + toEdit.retinex.htonalwidth = mods.retinex.htonalwidth; } if (retinex.shadows) { - toEdit.retinex.shadows = mods.retinex.shadows; + toEdit.retinex.shadows = mods.retinex.shadows; } if (retinex.stonalwidth) { - toEdit.retinex.stonalwidth = mods.retinex.stonalwidth; + toEdit.retinex.stonalwidth = mods.retinex.stonalwidth; } if (retinex.radius) { - toEdit.retinex.radius = mods.retinex.radius; + toEdit.retinex.radius = mods.retinex.radius; } @@ -1373,47 +1373,47 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (labCurve.lcurve) { - toEdit.labCurve.lcurve = mods.labCurve.lcurve; + toEdit.labCurve.lcurve = mods.labCurve.lcurve; } if (labCurve.acurve) { - toEdit.labCurve.acurve = mods.labCurve.acurve; + toEdit.labCurve.acurve = mods.labCurve.acurve; } if (labCurve.bcurve) { - toEdit.labCurve.bcurve = mods.labCurve.bcurve; + toEdit.labCurve.bcurve = mods.labCurve.bcurve; } if (labCurve.cccurve) { - toEdit.labCurve.cccurve = mods.labCurve.cccurve; + toEdit.labCurve.cccurve = mods.labCurve.cccurve; } if (labCurve.chcurve) { - toEdit.labCurve.chcurve = mods.labCurve.chcurve; + toEdit.labCurve.chcurve = mods.labCurve.chcurve; } if (labCurve.lhcurve) { - toEdit.labCurve.lhcurve = mods.labCurve.lhcurve; + toEdit.labCurve.lhcurve = mods.labCurve.lhcurve; } if (labCurve.hhcurve) { - toEdit.labCurve.hhcurve = mods.labCurve.hhcurve; + toEdit.labCurve.hhcurve = mods.labCurve.hhcurve; } if (labCurve.lccurve) { - toEdit.labCurve.lccurve = mods.labCurve.lccurve; + toEdit.labCurve.lccurve = mods.labCurve.lccurve; } if (labCurve.clcurve) { - toEdit.labCurve.clcurve = mods.labCurve.clcurve; + toEdit.labCurve.clcurve = mods.labCurve.clcurve; } if (labCurve.brightness) { - toEdit.labCurve.brightness = dontforceSet && options.baBehav[ADDSET_LC_BRIGHTNESS] ? toEdit.labCurve.brightness + mods.labCurve.brightness : mods.labCurve.brightness; + toEdit.labCurve.brightness = dontforceSet && options.baBehav[ADDSET_LC_BRIGHTNESS] ? toEdit.labCurve.brightness + mods.labCurve.brightness : mods.labCurve.brightness; } if (labCurve.contrast) { - toEdit.labCurve.contrast = dontforceSet && options.baBehav[ADDSET_LC_CONTRAST] ? toEdit.labCurve.contrast + mods.labCurve.contrast : mods.labCurve.contrast; + toEdit.labCurve.contrast = dontforceSet && options.baBehav[ADDSET_LC_CONTRAST] ? toEdit.labCurve.contrast + mods.labCurve.contrast : mods.labCurve.contrast; } if (labCurve.chromaticity) { @@ -1429,7 +1429,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (labCurve.lcredsk) { - toEdit.labCurve.lcredsk = mods.labCurve.lcredsk; + toEdit.labCurve.lcredsk = mods.labCurve.lcredsk; } if (localContrast.enabled) { @@ -1454,23 +1454,23 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (rgbCurves.lumamode) { - toEdit.rgbCurves.lumamode = mods.rgbCurves.lumamode; + toEdit.rgbCurves.lumamode = mods.rgbCurves.lumamode; } if (rgbCurves.rcurve) { - toEdit.rgbCurves.rcurve = mods.rgbCurves.rcurve; + toEdit.rgbCurves.rcurve = mods.rgbCurves.rcurve; } if (rgbCurves.gcurve) { - toEdit.rgbCurves.gcurve = mods.rgbCurves.gcurve; + toEdit.rgbCurves.gcurve = mods.rgbCurves.gcurve; } if (rgbCurves.bcurve) { - toEdit.rgbCurves.bcurve = mods.rgbCurves.bcurve; + toEdit.rgbCurves.bcurve = mods.rgbCurves.bcurve; } if (colorToning.enabled) { - toEdit.colorToning.enabled = mods.colorToning.enabled; + toEdit.colorToning.enabled = mods.colorToning.enabled; } if (colorToning.twocolor) { @@ -1478,7 +1478,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.opacityCurve) { - toEdit.colorToning.opacityCurve = mods.colorToning.opacityCurve; + toEdit.colorToning.opacityCurve = mods.colorToning.opacityCurve; } if (colorToning.colorCurve) { @@ -1486,11 +1486,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.enabled) { - toEdit.colorToning.enabled = mods.colorToning.enabled; + toEdit.colorToning.enabled = mods.colorToning.enabled; } if (colorToning.opacityCurve) { - toEdit.colorToning.opacityCurve = mods.colorToning.opacityCurve; + toEdit.colorToning.opacityCurve = mods.colorToning.opacityCurve; } if (colorToning.satprotectionthreshold) { @@ -1498,7 +1498,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.autosat) { - toEdit.colorToning.autosat = mods.colorToning.autosat; + toEdit.colorToning.autosat = mods.colorToning.autosat; } if (colorToning.saturatedopacity) { @@ -1506,23 +1506,23 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.strength) { - toEdit.colorToning.strength = dontforceSet && options.baBehav[ADDSET_COLORTONING_STRENGTH] ? toEdit.colorToning.strength + mods.colorToning.strength : mods.colorToning.strength; + toEdit.colorToning.strength = dontforceSet && options.baBehav[ADDSET_COLORTONING_STRENGTH] ? toEdit.colorToning.strength + mods.colorToning.strength : mods.colorToning.strength; } if (colorToning.shadowsColSat) { - toEdit.colorToning.shadowsColSat = mods.colorToning.shadowsColSat; + toEdit.colorToning.shadowsColSat = mods.colorToning.shadowsColSat; } if (colorToning.hlColSat) { - toEdit.colorToning.hlColSat = mods.colorToning.hlColSat; + toEdit.colorToning.hlColSat = mods.colorToning.hlColSat; } if (colorToning.balance) { - toEdit.colorToning.balance = dontforceSet && options.baBehav[ADDSET_COLORTONING_BALANCE] ? toEdit.colorToning.balance + mods.colorToning.balance : mods.colorToning.balance; + toEdit.colorToning.balance = dontforceSet && options.baBehav[ADDSET_COLORTONING_BALANCE] ? toEdit.colorToning.balance + mods.colorToning.balance : mods.colorToning.balance; } if (colorToning.clcurve) { - toEdit.colorToning.clcurve = mods.colorToning.clcurve; + toEdit.colorToning.clcurve = mods.colorToning.clcurve; } if (colorToning.method) { @@ -1530,11 +1530,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.cl2curve) { - toEdit.colorToning.cl2curve = mods.colorToning.cl2curve; + toEdit.colorToning.cl2curve = mods.colorToning.cl2curve; } if (colorToning.lumamode) { - toEdit.colorToning.lumamode = mods.colorToning.lumamode; + toEdit.colorToning.lumamode = mods.colorToning.lumamode; } if (colorToning.satlow) { @@ -1542,7 +1542,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.sathigh) { - toEdit.colorToning.sathigh = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.sathigh + mods.colorToning.sathigh : mods.colorToning.sathigh; + toEdit.colorToning.sathigh = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.sathigh + mods.colorToning.sathigh : mods.colorToning.sathigh; } if (colorToning.redlow) { @@ -1550,11 +1550,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.greenlow) { - toEdit.colorToning.greenlow = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.greenlow + mods.colorToning.greenlow : mods.colorToning.greenlow; + toEdit.colorToning.greenlow = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.greenlow + mods.colorToning.greenlow : mods.colorToning.greenlow; } if (colorToning.bluelow) { - toEdit.colorToning.bluelow = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.bluelow + mods.colorToning.bluelow : mods.colorToning.bluelow; + toEdit.colorToning.bluelow = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.bluelow + mods.colorToning.bluelow : mods.colorToning.bluelow; } if (colorToning.redmed) { @@ -1562,15 +1562,15 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.greenmed) { - toEdit.colorToning.greenmed = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.greenmed + mods.colorToning.greenmed : mods.colorToning.greenmed; + toEdit.colorToning.greenmed = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.greenmed + mods.colorToning.greenmed : mods.colorToning.greenmed; } if (colorToning.bluemed) { - toEdit.colorToning.bluemed = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.bluemed + mods.colorToning.bluemed : mods.colorToning.bluemed; + toEdit.colorToning.bluemed = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.bluemed + mods.colorToning.bluemed : mods.colorToning.bluemed; } if (colorToning.redhigh) { - toEdit.colorToning.redhigh = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.redhigh + mods.colorToning.redhigh : mods.colorToning.redhigh; + toEdit.colorToning.redhigh = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.redhigh + mods.colorToning.redhigh : mods.colorToning.redhigh; } if (colorToning.greenhigh) { @@ -1578,7 +1578,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorToning.bluehigh) { - toEdit.colorToning.bluehigh = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.bluehigh + mods.colorToning.bluehigh : mods.colorToning.bluehigh; + toEdit.colorToning.bluehigh = dontforceSet && options.baBehav[ADDSET_COLORTONING_SPLIT] ? toEdit.colorToning.bluehigh + mods.colorToning.bluehigh : mods.colorToning.bluehigh; } if (colorToning.labgridALow) { @@ -1606,7 +1606,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (sharpenEdge.enabled) { - toEdit.sharpenEdge.enabled = mods.sharpenEdge.enabled; + toEdit.sharpenEdge.enabled = mods.sharpenEdge.enabled; } if (sharpenEdge.passes) { @@ -1618,47 +1618,47 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (sharpenEdge.threechannels) { - toEdit.sharpenEdge.threechannels = mods.sharpenEdge.threechannels; + toEdit.sharpenEdge.threechannels = mods.sharpenEdge.threechannels; } if (sharpenMicro.enabled) { - toEdit.sharpenMicro.enabled = mods.sharpenMicro.enabled; + toEdit.sharpenMicro.enabled = mods.sharpenMicro.enabled; } if (sharpenMicro.matrix) { - toEdit.sharpenMicro.matrix = mods.sharpenMicro.matrix; + toEdit.sharpenMicro.matrix = mods.sharpenMicro.matrix; } if (sharpenMicro.amount) { - toEdit.sharpenMicro.amount = dontforceSet && options.baBehav[ADDSET_SHARPENMICRO_AMOUNT] ? toEdit.sharpenMicro.amount + mods.sharpenMicro.amount : mods.sharpenMicro.amount; + toEdit.sharpenMicro.amount = dontforceSet && options.baBehav[ADDSET_SHARPENMICRO_AMOUNT] ? toEdit.sharpenMicro.amount + mods.sharpenMicro.amount : mods.sharpenMicro.amount; } if (sharpenMicro.contrast) { - toEdit.sharpenMicro.contrast = dontforceSet && options.baBehav[ADDSET_SHARPENMICRO_CONTRAST] ? toEdit.sharpenMicro.contrast + mods.sharpenMicro.contrast : mods.sharpenMicro.contrast; + toEdit.sharpenMicro.contrast = dontforceSet && options.baBehav[ADDSET_SHARPENMICRO_CONTRAST] ? toEdit.sharpenMicro.contrast + mods.sharpenMicro.contrast : mods.sharpenMicro.contrast; } if (sharpenMicro.uniformity) { - toEdit.sharpenMicro.uniformity = dontforceSet && options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY] ? toEdit.sharpenMicro.uniformity + mods.sharpenMicro.uniformity : mods.sharpenMicro.uniformity; + toEdit.sharpenMicro.uniformity = dontforceSet && options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY] ? toEdit.sharpenMicro.uniformity + mods.sharpenMicro.uniformity : mods.sharpenMicro.uniformity; } if (sharpening.enabled) { - toEdit.sharpening.enabled = mods.sharpening.enabled; + toEdit.sharpening.enabled = mods.sharpening.enabled; } if (sharpening.contrast) { - toEdit.sharpening.contrast = dontforceSet && options.baBehav[ADDSET_SHARP_CONTRAST] ? toEdit.sharpening.contrast + mods.sharpening.contrast : mods.sharpening.contrast; + toEdit.sharpening.contrast = dontforceSet && options.baBehav[ADDSET_SHARP_CONTRAST] ? toEdit.sharpening.contrast + mods.sharpening.contrast : mods.sharpening.contrast; } if (sharpening.radius) { - toEdit.sharpening.radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.radius + mods.sharpening.radius : mods.sharpening.radius; + toEdit.sharpening.radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.radius + mods.sharpening.radius : mods.sharpening.radius; } if (sharpening.blurradius) { - toEdit.sharpening.blurradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.blurradius + mods.sharpening.blurradius : mods.sharpening.blurradius; + toEdit.sharpening.blurradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.blurradius + mods.sharpening.blurradius : mods.sharpening.blurradius; } if (sharpening.amount) { - toEdit.sharpening.amount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.amount + mods.sharpening.amount : mods.sharpening.amount; + toEdit.sharpening.amount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.amount + mods.sharpening.amount : mods.sharpening.amount; } if (sharpening.threshold) { @@ -1666,7 +1666,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (sharpening.edgesonly) { - toEdit.sharpening.edgesonly = mods.sharpening.edgesonly; + toEdit.sharpening.edgesonly = mods.sharpening.edgesonly; } if (sharpening.edges_radius) { @@ -1686,19 +1686,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (sharpening.method) { - toEdit.sharpening.method = mods.sharpening.method; + toEdit.sharpening.method = mods.sharpening.method; } if (sharpening.deconvamount) { - toEdit.sharpening.deconvamount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.deconvamount + mods.sharpening.deconvamount : mods.sharpening.deconvamount; + toEdit.sharpening.deconvamount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.deconvamount + mods.sharpening.deconvamount : mods.sharpening.deconvamount; } if (sharpening.deconvradius) { - toEdit.sharpening.deconvradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.deconvradius + mods.sharpening.deconvradius : mods.sharpening.deconvradius; + toEdit.sharpening.deconvradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.deconvradius + mods.sharpening.deconvradius : mods.sharpening.deconvradius; } if (sharpening.deconviter) { - toEdit.sharpening.deconviter = dontforceSet && options.baBehav[ADDSET_SHARP_ITER] ? toEdit.sharpening.deconviter + mods.sharpening.deconviter : mods.sharpening.deconviter; + toEdit.sharpening.deconviter = dontforceSet && options.baBehav[ADDSET_SHARP_ITER] ? toEdit.sharpening.deconviter + mods.sharpening.deconviter : mods.sharpening.deconviter; } if (sharpening.deconvdamping) { @@ -1706,19 +1706,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (prsharpening.enabled) { - toEdit.prsharpening.enabled = mods.prsharpening.enabled; + toEdit.prsharpening.enabled = mods.prsharpening.enabled; } if (prsharpening.contrast) { - toEdit.prsharpening.contrast = dontforceSet && options.baBehav[ADDSET_SHARP_CONTRAST] ? toEdit.prsharpening.contrast + mods.prsharpening.contrast : mods.prsharpening.contrast; + toEdit.prsharpening.contrast = dontforceSet && options.baBehav[ADDSET_SHARP_CONTRAST] ? toEdit.prsharpening.contrast + mods.prsharpening.contrast : mods.prsharpening.contrast; } if (prsharpening.radius) { - toEdit.prsharpening.radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.radius + mods.prsharpening.radius : mods.prsharpening.radius; + toEdit.prsharpening.radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.radius + mods.prsharpening.radius : mods.prsharpening.radius; } if (prsharpening.amount) { - toEdit.prsharpening.amount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.prsharpening.amount + mods.prsharpening.amount : mods.prsharpening.amount; + toEdit.prsharpening.amount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.prsharpening.amount + mods.prsharpening.amount : mods.prsharpening.amount; } if (prsharpening.threshold) { @@ -1726,11 +1726,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (prsharpening.edgesonly) { - toEdit.prsharpening.edgesonly = mods.prsharpening.edgesonly; + toEdit.prsharpening.edgesonly = mods.prsharpening.edgesonly; } if (prsharpening.edges_radius) { - toEdit.prsharpening.edges_radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.edges_radius + mods.prsharpening.edges_radius : mods.prsharpening.edges_radius; + toEdit.prsharpening.edges_radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.edges_radius + mods.prsharpening.edges_radius : mods.prsharpening.edges_radius; } if (prsharpening.edges_tolerance) { @@ -1738,7 +1738,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (prsharpening.halocontrol) { - toEdit.prsharpening.halocontrol = mods.prsharpening.halocontrol; + toEdit.prsharpening.halocontrol = mods.prsharpening.halocontrol; } if (prsharpening.halocontrol_amount) { @@ -1746,19 +1746,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (prsharpening.method) { - toEdit.prsharpening.method = mods.prsharpening.method; + toEdit.prsharpening.method = mods.prsharpening.method; } if (prsharpening.deconvamount) { - toEdit.prsharpening.deconvamount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.prsharpening.deconvamount + mods.prsharpening.deconvamount : mods.prsharpening.deconvamount; + toEdit.prsharpening.deconvamount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.prsharpening.deconvamount + mods.prsharpening.deconvamount : mods.prsharpening.deconvamount; } if (prsharpening.deconvradius) { - toEdit.prsharpening.deconvradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.deconvradius + mods.prsharpening.deconvradius : mods.prsharpening.deconvradius; + toEdit.prsharpening.deconvradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.deconvradius + mods.prsharpening.deconvradius : mods.prsharpening.deconvradius; } if (prsharpening.deconviter) { - toEdit.prsharpening.deconviter = dontforceSet && options.baBehav[ADDSET_SHARP_ITER] ? toEdit.prsharpening.deconviter + mods.prsharpening.deconviter : mods.prsharpening.deconviter; + toEdit.prsharpening.deconviter = dontforceSet && options.baBehav[ADDSET_SHARP_ITER] ? toEdit.prsharpening.deconviter + mods.prsharpening.deconviter : mods.prsharpening.deconviter; } if (prsharpening.deconvdamping) { @@ -1766,79 +1766,79 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (vibrance.enabled) { - toEdit.vibrance.enabled = mods.vibrance.enabled; + toEdit.vibrance.enabled = mods.vibrance.enabled; } if (vibrance.pastels) { - toEdit.vibrance.pastels = dontforceSet && options.baBehav[ADDSET_VIBRANCE_PASTELS] ? toEdit.vibrance.pastels + mods.vibrance.pastels : mods.vibrance.pastels; + toEdit.vibrance.pastels = dontforceSet && options.baBehav[ADDSET_VIBRANCE_PASTELS] ? toEdit.vibrance.pastels + mods.vibrance.pastels : mods.vibrance.pastels; } if (vibrance.saturated) { - toEdit.vibrance.saturated = dontforceSet && options.baBehav[ADDSET_VIBRANCE_SATURATED] ? toEdit.vibrance.saturated + mods.vibrance.saturated : mods.vibrance.saturated; + toEdit.vibrance.saturated = dontforceSet && options.baBehav[ADDSET_VIBRANCE_SATURATED] ? toEdit.vibrance.saturated + mods.vibrance.saturated : mods.vibrance.saturated; } if (vibrance.psthreshold) { - toEdit.vibrance.psthreshold = mods.vibrance.psthreshold; + toEdit.vibrance.psthreshold = mods.vibrance.psthreshold; } if (vibrance.protectskins) { - toEdit.vibrance.protectskins = mods.vibrance.protectskins; + toEdit.vibrance.protectskins = mods.vibrance.protectskins; } if (vibrance.avoidcolorshift) { - toEdit.vibrance.avoidcolorshift = mods.vibrance.avoidcolorshift; + toEdit.vibrance.avoidcolorshift = mods.vibrance.avoidcolorshift; } if (vibrance.pastsattog) { - toEdit.vibrance.pastsattog = mods.vibrance.pastsattog; + toEdit.vibrance.pastsattog = mods.vibrance.pastsattog; } if (vibrance.skintonescurve) { - toEdit.vibrance.skintonescurve = mods.vibrance.skintonescurve; + toEdit.vibrance.skintonescurve = mods.vibrance.skintonescurve; } - //if (colorBoost.amount) toEdit.colorBoost.amount = dontforceSet && options.baBehav[ADDSET_CBOOST_AMOUNT] ? toEdit.colorBoost.amount + mods.colorBoost.amount : mods.colorBoost.amount; - //if (colorBoost.avoidclip) toEdit.colorBoost.avoidclip = mods.colorBoost.avoidclip; - //if (colorBoost.enable_saturationlimiter)toEdit.colorBoost.enable_saturationlimiter = mods.colorBoost.enable_saturationlimiter; - //if (colorBoost.saturationlimit) toEdit.colorBoost.saturationlimit = mods.colorBoost.saturationlimit; + //if (colorBoost.amount) toEdit.colorBoost.amount = dontforceSet && options.baBehav[ADDSET_CBOOST_AMOUNT] ? toEdit.colorBoost.amount + mods.colorBoost.amount : mods.colorBoost.amount; + //if (colorBoost.avoidclip) toEdit.colorBoost.avoidclip = mods.colorBoost.avoidclip; + //if (colorBoost.enable_saturationlimiter)toEdit.colorBoost.enable_saturationlimiter = mods.colorBoost.enable_saturationlimiter; + //if (colorBoost.saturationlimit) toEdit.colorBoost.saturationlimit = mods.colorBoost.saturationlimit; if (wb.enabled) { toEdit.wb.enabled = mods.wb.enabled; } if (wb.method) { - toEdit.wb.method = mods.wb.method; + toEdit.wb.method = mods.wb.method; } if (wb.equal) { - toEdit.wb.equal = dontforceSet && options.baBehav[ADDSET_WB_EQUAL] ? toEdit.wb.equal + mods.wb.equal : mods.wb.equal; + toEdit.wb.equal = dontforceSet && options.baBehav[ADDSET_WB_EQUAL] ? toEdit.wb.equal + mods.wb.equal : mods.wb.equal; } if (wb.tempBias) { - toEdit.wb.tempBias = dontforceSet && options.baBehav[ADDSET_WB_TEMPBIAS] ? toEdit.wb.tempBias + mods.wb.tempBias : mods.wb.tempBias; + toEdit.wb.tempBias = dontforceSet && options.baBehav[ADDSET_WB_TEMPBIAS] ? toEdit.wb.tempBias + mods.wb.tempBias : mods.wb.tempBias; } if (wb.green) { - toEdit.wb.green = dontforceSet && options.baBehav[ADDSET_WB_GREEN] ? toEdit.wb.green + mods.wb.green : mods.wb.green; + toEdit.wb.green = dontforceSet && options.baBehav[ADDSET_WB_GREEN] ? toEdit.wb.green + mods.wb.green : mods.wb.green; } if (wb.temperature) { - toEdit.wb.temperature = dontforceSet && options.baBehav[ADDSET_WB_TEMPERATURE] ? toEdit.wb.temperature + mods.wb.temperature : mods.wb.temperature; + toEdit.wb.temperature = dontforceSet && options.baBehav[ADDSET_WB_TEMPERATURE] ? toEdit.wb.temperature + mods.wb.temperature : mods.wb.temperature; } - //if (colorShift.a) toEdit.colorShift.a = dontforceSet && options.baBehav[ADDSET_CS_BLUEYELLOW] ? toEdit.colorShift.a + mods.colorShift.a : mods.colorShift.a; - //if (colorShift.b) toEdit.colorShift.b = dontforceSet && options.baBehav[ADDSET_CS_GREENMAGENTA] ? toEdit.colorShift.b + mods.colorShift.b : mods.colorShift.b; - //if (lumaDenoise.enabled) toEdit.lumaDenoise.enabled = mods.lumaDenoise.enabled; - //if (lumaDenoise.radius) toEdit.lumaDenoise.radius = mods.lumaDenoise.radius; - //if (lumaDenoise.edgetolerance) toEdit.lumaDenoise.edgetolerance = dontforceSet && options.baBehav[ADDSET_LD_EDGETOLERANCE] ? toEdit.lumaDenoise.edgetolerance + mods.lumaDenoise.edgetolerance : mods.lumaDenoise.edgetolerance; - //if (colorDenoise.enabled) toEdit.colorDenoise.enabled = mods.colorDenoise.enabled; - //if (colorDenoise.amount) toEdit.colorDenoise.amount = mods.colorDenoise.amount; + //if (colorShift.a) toEdit.colorShift.a = dontforceSet && options.baBehav[ADDSET_CS_BLUEYELLOW] ? toEdit.colorShift.a + mods.colorShift.a : mods.colorShift.a; + //if (colorShift.b) toEdit.colorShift.b = dontforceSet && options.baBehav[ADDSET_CS_GREENMAGENTA] ? toEdit.colorShift.b + mods.colorShift.b : mods.colorShift.b; + //if (lumaDenoise.enabled) toEdit.lumaDenoise.enabled = mods.lumaDenoise.enabled; + //if (lumaDenoise.radius) toEdit.lumaDenoise.radius = mods.lumaDenoise.radius; + //if (lumaDenoise.edgetolerance) toEdit.lumaDenoise.edgetolerance = dontforceSet && options.baBehav[ADDSET_LD_EDGETOLERANCE] ? toEdit.lumaDenoise.edgetolerance + mods.lumaDenoise.edgetolerance : mods.lumaDenoise.edgetolerance; + //if (colorDenoise.enabled) toEdit.colorDenoise.enabled = mods.colorDenoise.enabled; + //if (colorDenoise.amount) toEdit.colorDenoise.amount = mods.colorDenoise.amount; if (defringe.enabled) { - toEdit.defringe.enabled = mods.defringe.enabled; + toEdit.defringe.enabled = mods.defringe.enabled; } if (defringe.radius) { - toEdit.defringe.radius = mods.defringe.radius; + toEdit.defringe.radius = mods.defringe.radius; } if (defringe.threshold) { @@ -1846,23 +1846,23 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (defringe.huecurve) { - toEdit.defringe.huecurve = mods.defringe.huecurve; + toEdit.defringe.huecurve = mods.defringe.huecurve; } if (colorappearance.curve) { - toEdit.colorappearance.curve = mods.colorappearance.curve; + toEdit.colorappearance.curve = mods.colorappearance.curve; } if (colorappearance.curve2) { - toEdit.colorappearance.curve2 = mods.colorappearance.curve2; + toEdit.colorappearance.curve2 = mods.colorappearance.curve2; } if (colorappearance.curve3) { - toEdit.colorappearance.curve3 = mods.colorappearance.curve3; + toEdit.colorappearance.curve3 = mods.colorappearance.curve3; } if (colorappearance.curveMode) { - toEdit.colorappearance.curveMode = mods.colorappearance.curveMode; + toEdit.colorappearance.curveMode = mods.colorappearance.curveMode; } if (colorappearance.curveMode2) { @@ -1874,11 +1874,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorappearance.enabled) { - toEdit.colorappearance.enabled = mods.colorappearance.enabled; + toEdit.colorappearance.enabled = mods.colorappearance.enabled; } if (colorappearance.degree) { - toEdit.colorappearance.degree = dontforceSet && options.baBehav[ADDSET_CAT_DEGREE] ? toEdit.colorappearance.degree + mods.colorappearance.degree : mods.colorappearance.degree; + toEdit.colorappearance.degree = dontforceSet && options.baBehav[ADDSET_CAT_DEGREE] ? toEdit.colorappearance.degree + mods.colorappearance.degree : mods.colorappearance.degree; } if (colorappearance.autodegree) { @@ -1886,7 +1886,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorappearance.degreeout) { - toEdit.colorappearance.degreeout = mods.colorappearance.degreeout; + toEdit.colorappearance.degreeout = mods.colorappearance.degreeout; } if (colorappearance.autodegreeout) { @@ -1894,95 +1894,95 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (colorappearance.surround) { - toEdit.colorappearance.surround = mods.colorappearance.surround; + toEdit.colorappearance.surround = mods.colorappearance.surround; } if (colorappearance.surrsrc) { - toEdit.colorappearance.surrsrc = mods.colorappearance.surrsrc; + toEdit.colorappearance.surrsrc = mods.colorappearance.surrsrc; } if (colorappearance.autoadapscen) { - toEdit.colorappearance.autoadapscen = mods.colorappearance.autoadapscen; + toEdit.colorappearance.autoadapscen = mods.colorappearance.autoadapscen; } if (colorappearance.adapscen) { - toEdit.colorappearance.adapscen = dontforceSet && options.baBehav[ADDSET_CAT_ADAPTSCENE] ? toEdit.colorappearance.adapscen + mods.colorappearance.adapscen : mods.colorappearance.adapscen; + toEdit.colorappearance.adapscen = dontforceSet && options.baBehav[ADDSET_CAT_ADAPTSCENE] ? toEdit.colorappearance.adapscen + mods.colorappearance.adapscen : mods.colorappearance.adapscen; } if (colorappearance.autoybscen) { - toEdit.colorappearance.autoybscen = mods.colorappearance.autoybscen; + toEdit.colorappearance.autoybscen = mods.colorappearance.autoybscen; } if (colorappearance.ybscen) { - toEdit.colorappearance.ybscen = mods.colorappearance.ybscen; + toEdit.colorappearance.ybscen = mods.colorappearance.ybscen; } if (colorappearance.adaplum) { - toEdit.colorappearance.adaplum = dontforceSet && options.baBehav[ADDSET_CAT_ADAPTVIEWING] ? toEdit.colorappearance.adaplum + mods.colorappearance.adaplum : mods.colorappearance.adaplum; + toEdit.colorappearance.adaplum = dontforceSet && options.baBehav[ADDSET_CAT_ADAPTVIEWING] ? toEdit.colorappearance.adaplum + mods.colorappearance.adaplum : mods.colorappearance.adaplum; } if (colorappearance.badpixsl) { - toEdit.colorappearance.badpixsl = dontforceSet && options.baBehav[ADDSET_CAT_BADPIX] ? toEdit.colorappearance.badpixsl + mods.colorappearance.badpixsl : mods.colorappearance.badpixsl; + toEdit.colorappearance.badpixsl = dontforceSet && options.baBehav[ADDSET_CAT_BADPIX] ? toEdit.colorappearance.badpixsl + mods.colorappearance.badpixsl : mods.colorappearance.badpixsl; } if (colorappearance.wbmodel) { - toEdit.colorappearance.wbmodel = mods.colorappearance.wbmodel; + toEdit.colorappearance.wbmodel = mods.colorappearance.wbmodel; } if (colorappearance.algo) { - toEdit.colorappearance.algo = mods.colorappearance.algo; + toEdit.colorappearance.algo = mods.colorappearance.algo; } if (colorappearance.tempout) { - toEdit.colorappearance.tempout = mods.colorappearance.tempout; + toEdit.colorappearance.tempout = mods.colorappearance.tempout; } if (colorappearance.greenout) { - toEdit.colorappearance.greenout = mods.colorappearance.greenout; + toEdit.colorappearance.greenout = mods.colorappearance.greenout; } if (colorappearance.tempsc) { - toEdit.colorappearance.tempsc = mods.colorappearance.tempsc; + toEdit.colorappearance.tempsc = mods.colorappearance.tempsc; } if (colorappearance.greensc) { - toEdit.colorappearance.greensc = mods.colorappearance.greensc; + toEdit.colorappearance.greensc = mods.colorappearance.greensc; } if (colorappearance.ybout) { - toEdit.colorappearance.ybout = mods.colorappearance.ybout; + toEdit.colorappearance.ybout = mods.colorappearance.ybout; } if (colorappearance.jlight) { - toEdit.colorappearance.jlight = dontforceSet && options.baBehav[ADDSET_CAT_LIGHT] ? toEdit.colorappearance.jlight + mods.colorappearance.jlight : mods.colorappearance.jlight; + toEdit.colorappearance.jlight = dontforceSet && options.baBehav[ADDSET_CAT_LIGHT] ? toEdit.colorappearance.jlight + mods.colorappearance.jlight : mods.colorappearance.jlight; } if (colorappearance.qbright) { - toEdit.colorappearance.qbright = dontforceSet && options.baBehav[ADDSET_CAT_BRIGHT] ? toEdit.colorappearance.qbright + mods.colorappearance.qbright : mods.colorappearance.qbright; + toEdit.colorappearance.qbright = dontforceSet && options.baBehav[ADDSET_CAT_BRIGHT] ? toEdit.colorappearance.qbright + mods.colorappearance.qbright : mods.colorappearance.qbright; } if (colorappearance.chroma) { - toEdit.colorappearance.chroma = dontforceSet && options.baBehav[ADDSET_CAT_CHROMA] ? toEdit.colorappearance.chroma + mods.colorappearance.chroma : mods.colorappearance.chroma; + toEdit.colorappearance.chroma = dontforceSet && options.baBehav[ADDSET_CAT_CHROMA] ? toEdit.colorappearance.chroma + mods.colorappearance.chroma : mods.colorappearance.chroma; } if (colorappearance.schroma) { - toEdit.colorappearance.schroma = dontforceSet && options.baBehav[ADDSET_CAT_CHROMA_S] ? toEdit.colorappearance.schroma + mods.colorappearance.schroma : mods.colorappearance.schroma; + toEdit.colorappearance.schroma = dontforceSet && options.baBehav[ADDSET_CAT_CHROMA_S] ? toEdit.colorappearance.schroma + mods.colorappearance.schroma : mods.colorappearance.schroma; } if (colorappearance.mchroma) { - toEdit.colorappearance.mchroma = dontforceSet && options.baBehav[ADDSET_CAT_CHROMA_M] ? toEdit.colorappearance.mchroma + mods.colorappearance.mchroma : mods.colorappearance.mchroma; + toEdit.colorappearance.mchroma = dontforceSet && options.baBehav[ADDSET_CAT_CHROMA_M] ? toEdit.colorappearance.mchroma + mods.colorappearance.mchroma : mods.colorappearance.mchroma; } if (colorappearance.contrast) { - toEdit.colorappearance.contrast = dontforceSet && options.baBehav[ADDSET_CAT_CONTRAST] ? toEdit.colorappearance.contrast + mods.colorappearance.contrast : mods.colorappearance.contrast; + toEdit.colorappearance.contrast = dontforceSet && options.baBehav[ADDSET_CAT_CONTRAST] ? toEdit.colorappearance.contrast + mods.colorappearance.contrast : mods.colorappearance.contrast; } if (colorappearance.qcontrast) { - toEdit.colorappearance.qcontrast = dontforceSet && options.baBehav[ADDSET_CAT_CONTRAST_Q] ? toEdit.colorappearance.qcontrast + mods.colorappearance.qcontrast : mods.colorappearance.qcontrast; + toEdit.colorappearance.qcontrast = dontforceSet && options.baBehav[ADDSET_CAT_CONTRAST_Q] ? toEdit.colorappearance.qcontrast + mods.colorappearance.qcontrast : mods.colorappearance.qcontrast; } if (colorappearance.colorh) { - toEdit.colorappearance.colorh = dontforceSet && options.baBehav[ADDSET_CAT_HUE] ? toEdit.colorappearance.colorh + mods.colorappearance.colorh : mods.colorappearance.colorh; + toEdit.colorappearance.colorh = dontforceSet && options.baBehav[ADDSET_CAT_HUE] ? toEdit.colorappearance.colorh + mods.colorappearance.colorh : mods.colorappearance.colorh; } if (colorappearance.rstprotection) { @@ -2008,47 +2008,47 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng // if (colorappearance.sharpcie) toEdit.colorappearance.sharpcie = mods.colorappearance.sharpcie; if (impulseDenoise.enabled) { - toEdit.impulseDenoise.enabled = mods.impulseDenoise.enabled; + toEdit.impulseDenoise.enabled = mods.impulseDenoise.enabled; } if (impulseDenoise.thresh) { - toEdit.impulseDenoise.thresh = mods.impulseDenoise.thresh; + toEdit.impulseDenoise.thresh = mods.impulseDenoise.thresh; } if (dirpyrDenoise.enabled) { - toEdit.dirpyrDenoise.enabled = mods.dirpyrDenoise.enabled; + toEdit.dirpyrDenoise.enabled = mods.dirpyrDenoise.enabled; } if (dirpyrDenoise.enhance) { - toEdit.dirpyrDenoise.enhance = mods.dirpyrDenoise.enhance; + toEdit.dirpyrDenoise.enhance = mods.dirpyrDenoise.enhance; } if (dirpyrDenoise.median) { - toEdit.dirpyrDenoise.median = mods.dirpyrDenoise.median; + toEdit.dirpyrDenoise.median = mods.dirpyrDenoise.median; } if (dirpyrDenoise.luma) { - toEdit.dirpyrDenoise.luma = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_LUMA] ? toEdit.dirpyrDenoise.luma + mods.dirpyrDenoise.luma : mods.dirpyrDenoise.luma; + toEdit.dirpyrDenoise.luma = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_LUMA] ? toEdit.dirpyrDenoise.luma + mods.dirpyrDenoise.luma : mods.dirpyrDenoise.luma; } if (dirpyrDenoise.lcurve) { - toEdit.dirpyrDenoise.lcurve = mods.dirpyrDenoise.lcurve; + toEdit.dirpyrDenoise.lcurve = mods.dirpyrDenoise.lcurve; } if (dirpyrDenoise.cccurve) { - toEdit.dirpyrDenoise.cccurve = mods.dirpyrDenoise.cccurve; + toEdit.dirpyrDenoise.cccurve = mods.dirpyrDenoise.cccurve; } if (dirpyrDenoise.Ldetail) { - toEdit.dirpyrDenoise.Ldetail = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_LUMDET] ? toEdit.dirpyrDenoise.Ldetail + mods.dirpyrDenoise.Ldetail : mods.dirpyrDenoise.Ldetail; + toEdit.dirpyrDenoise.Ldetail = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_LUMDET] ? toEdit.dirpyrDenoise.Ldetail + mods.dirpyrDenoise.Ldetail : mods.dirpyrDenoise.Ldetail; } if (dirpyrDenoise.chroma) { - toEdit.dirpyrDenoise.chroma = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_CHROMA] ? toEdit.dirpyrDenoise.chroma + mods.dirpyrDenoise.chroma : mods.dirpyrDenoise.chroma; + toEdit.dirpyrDenoise.chroma = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_CHROMA] ? toEdit.dirpyrDenoise.chroma + mods.dirpyrDenoise.chroma : mods.dirpyrDenoise.chroma; } if (dirpyrDenoise.redchro) { - toEdit.dirpyrDenoise.redchro = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_CHROMARED] ? toEdit.dirpyrDenoise.redchro + mods.dirpyrDenoise.redchro : mods.dirpyrDenoise.redchro; + toEdit.dirpyrDenoise.redchro = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_CHROMARED] ? toEdit.dirpyrDenoise.redchro + mods.dirpyrDenoise.redchro : mods.dirpyrDenoise.redchro; } if (dirpyrDenoise.bluechro) { @@ -2056,68 +2056,68 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (dirpyrDenoise.gamma) { - toEdit.dirpyrDenoise.gamma = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_GAMMA] ? toEdit.dirpyrDenoise.gamma + mods.dirpyrDenoise.gamma : mods.dirpyrDenoise.gamma; + toEdit.dirpyrDenoise.gamma = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_GAMMA] ? toEdit.dirpyrDenoise.gamma + mods.dirpyrDenoise.gamma : mods.dirpyrDenoise.gamma; } if (dirpyrDenoise.passes) { - toEdit.dirpyrDenoise.passes = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_PASSES] ? toEdit.dirpyrDenoise.passes + mods.dirpyrDenoise.passes : mods.dirpyrDenoise.passes; + toEdit.dirpyrDenoise.passes = dontforceSet && options.baBehav[ADDSET_DIRPYRDN_PASSES] ? toEdit.dirpyrDenoise.passes + mods.dirpyrDenoise.passes : mods.dirpyrDenoise.passes; } -// if (dirpyrDenoise.perform) toEdit.dirpyrDenoise.perform = mods.dirpyrDenoise.perform; +// if (dirpyrDenoise.perform) toEdit.dirpyrDenoise.perform = mods.dirpyrDenoise.perform; if (dirpyrDenoise.dmethod) { - toEdit.dirpyrDenoise.dmethod = mods.dirpyrDenoise.dmethod; + toEdit.dirpyrDenoise.dmethod = mods.dirpyrDenoise.dmethod; } if (dirpyrDenoise.Lmethod) { - toEdit.dirpyrDenoise.Lmethod = mods.dirpyrDenoise.Lmethod; + toEdit.dirpyrDenoise.Lmethod = mods.dirpyrDenoise.Lmethod; } if (dirpyrDenoise.Cmethod) { - toEdit.dirpyrDenoise.Cmethod = mods.dirpyrDenoise.Cmethod; + toEdit.dirpyrDenoise.Cmethod = mods.dirpyrDenoise.Cmethod; } if (dirpyrDenoise.C2method) { - toEdit.dirpyrDenoise.C2method = mods.dirpyrDenoise.C2method; + toEdit.dirpyrDenoise.C2method = mods.dirpyrDenoise.C2method; } if (dirpyrDenoise.smethod) { - toEdit.dirpyrDenoise.smethod = mods.dirpyrDenoise.smethod; + toEdit.dirpyrDenoise.smethod = mods.dirpyrDenoise.smethod; } if (dirpyrDenoise.medmethod) { - toEdit.dirpyrDenoise.medmethod = mods.dirpyrDenoise.medmethod; + toEdit.dirpyrDenoise.medmethod = mods.dirpyrDenoise.medmethod; } if (dirpyrDenoise.methodmed) { - toEdit.dirpyrDenoise.methodmed = mods.dirpyrDenoise.methodmed; + toEdit.dirpyrDenoise.methodmed = mods.dirpyrDenoise.methodmed; } if (dirpyrDenoise.rgbmethod) { - toEdit.dirpyrDenoise.rgbmethod = mods.dirpyrDenoise.rgbmethod; + toEdit.dirpyrDenoise.rgbmethod = mods.dirpyrDenoise.rgbmethod; } if (epd.enabled) { - toEdit.epd.enabled = mods.epd.enabled; + toEdit.epd.enabled = mods.epd.enabled; } if (epd.strength) { - toEdit.epd.strength = mods.epd.strength; + toEdit.epd.strength = mods.epd.strength; } if (epd.gamma) { - toEdit.epd.gamma = mods.epd.gamma; + toEdit.epd.gamma = mods.epd.gamma; } if (epd.edgeStopping) { - toEdit.epd.edgeStopping = mods.epd.edgeStopping; + toEdit.epd.edgeStopping = mods.epd.edgeStopping; } if (epd.scale) { - toEdit.epd.scale = mods.epd.scale; + toEdit.epd.scale = mods.epd.scale; } if (epd.reweightingIterates) { - toEdit.epd.reweightingIterates = mods.epd.reweightingIterates; + toEdit.epd.reweightingIterates = mods.epd.reweightingIterates; } if (fattal.enabled) { @@ -2137,31 +2137,31 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (sh.enabled) { - toEdit.sh.enabled = mods.sh.enabled; + toEdit.sh.enabled = mods.sh.enabled; } if (sh.highlights) { - toEdit.sh.highlights = dontforceSet && options.baBehav[ADDSET_SH_HIGHLIGHTS] ? toEdit.sh.highlights + mods.sh.highlights : mods.sh.highlights; + toEdit.sh.highlights = dontforceSet && options.baBehav[ADDSET_SH_HIGHLIGHTS] ? toEdit.sh.highlights + mods.sh.highlights : mods.sh.highlights; } if (sh.htonalwidth) { - toEdit.sh.htonalwidth = mods.sh.htonalwidth; + toEdit.sh.htonalwidth = mods.sh.htonalwidth; } if (sh.shadows) { - toEdit.sh.shadows = dontforceSet && options.baBehav[ADDSET_SH_SHADOWS] ? toEdit.sh.shadows + mods.sh.shadows : mods.sh.shadows; + toEdit.sh.shadows = dontforceSet && options.baBehav[ADDSET_SH_SHADOWS] ? toEdit.sh.shadows + mods.sh.shadows : mods.sh.shadows; } if (sh.stonalwidth) { - toEdit.sh.stonalwidth = mods.sh.stonalwidth; + toEdit.sh.stonalwidth = mods.sh.stonalwidth; } if (sh.radius) { - toEdit.sh.radius = mods.sh.radius; + toEdit.sh.radius = mods.sh.radius; } if (sh.lab) { - toEdit.sh.lab = mods.sh.lab; + toEdit.sh.lab = mods.sh.lab; } if (crop.enabled) { @@ -2169,27 +2169,27 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (crop.x) { - toEdit.crop.x = mods.crop.x; + toEdit.crop.x = mods.crop.x; } if (crop.y) { - toEdit.crop.y = mods.crop.y; + toEdit.crop.y = mods.crop.y; } if (crop.w) { - toEdit.crop.w = mods.crop.w; + toEdit.crop.w = mods.crop.w; } if (crop.h) { - toEdit.crop.h = mods.crop.h; + toEdit.crop.h = mods.crop.h; } if (crop.fixratio) { - toEdit.crop.fixratio = mods.crop.fixratio; + toEdit.crop.fixratio = mods.crop.fixratio; } if (crop.ratio) { - toEdit.crop.ratio = mods.crop.ratio; + toEdit.crop.ratio = mods.crop.ratio; } if (crop.orientation) { @@ -2197,51 +2197,51 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (crop.guide) { - toEdit.crop.guide = mods.crop.guide; + toEdit.crop.guide = mods.crop.guide; } if (coarse.rotate) { - toEdit.coarse.rotate = mods.coarse.rotate; + toEdit.coarse.rotate = mods.coarse.rotate; } if (coarse.hflip) { - toEdit.coarse.hflip = mods.coarse.hflip; + toEdit.coarse.hflip = mods.coarse.hflip; } if (coarse.vflip) { - toEdit.coarse.vflip = mods.coarse.vflip; + toEdit.coarse.vflip = mods.coarse.vflip; } if (commonTrans.autofill) { - toEdit.commonTrans.autofill = mods.commonTrans.autofill; + toEdit.commonTrans.autofill = mods.commonTrans.autofill; } if (rotate.degree) { - toEdit.rotate.degree = dontforceSet && options.baBehav[ADDSET_ROTATE_DEGREE] ? toEdit.rotate.degree + mods.rotate.degree : mods.rotate.degree; + toEdit.rotate.degree = dontforceSet && options.baBehav[ADDSET_ROTATE_DEGREE] ? toEdit.rotate.degree + mods.rotate.degree : mods.rotate.degree; } if (distortion.amount) { - toEdit.distortion.amount = dontforceSet && options.baBehav[ADDSET_DIST_AMOUNT] ? toEdit.distortion.amount + mods.distortion.amount : mods.distortion.amount; + toEdit.distortion.amount = dontforceSet && options.baBehav[ADDSET_DIST_AMOUNT] ? toEdit.distortion.amount + mods.distortion.amount : mods.distortion.amount; } if (lensProf.lcMode) { - toEdit.lensProf.lcMode = mods.lensProf.lcMode; + toEdit.lensProf.lcMode = mods.lensProf.lcMode; } if (lensProf.lcpFile) { - toEdit.lensProf.lcpFile = mods.lensProf.lcpFile; + toEdit.lensProf.lcpFile = mods.lensProf.lcpFile; } if (lensProf.useDist) { - toEdit.lensProf.useDist = mods.lensProf.useDist; + toEdit.lensProf.useDist = mods.lensProf.useDist; } if (lensProf.useVign) { - toEdit.lensProf.useVign = mods.lensProf.useVign; + toEdit.lensProf.useVign = mods.lensProf.useVign; } if (lensProf.useCA) { - toEdit.lensProf.useCA = mods.lensProf.useCA; + toEdit.lensProf.useCA = mods.lensProf.useCA; } if (lensProf.lfCameraMake) { @@ -2257,47 +2257,47 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (perspective.horizontal) { - toEdit.perspective.horizontal = dontforceSet && options.baBehav[ADDSET_PERSPECTIVE] ? toEdit.perspective.horizontal + mods.perspective.horizontal : mods.perspective.horizontal; + toEdit.perspective.horizontal = dontforceSet && options.baBehav[ADDSET_PERSPECTIVE] ? toEdit.perspective.horizontal + mods.perspective.horizontal : mods.perspective.horizontal; } if (perspective.vertical) { - toEdit.perspective.vertical = dontforceSet && options.baBehav[ADDSET_PERSPECTIVE] ? toEdit.perspective.vertical + mods.perspective.vertical : mods.perspective.vertical; + toEdit.perspective.vertical = dontforceSet && options.baBehav[ADDSET_PERSPECTIVE] ? toEdit.perspective.vertical + mods.perspective.vertical : mods.perspective.vertical; } if (gradient.enabled) { - toEdit.gradient.enabled = mods.gradient.enabled; + toEdit.gradient.enabled = mods.gradient.enabled; } if (gradient.degree) { - toEdit.gradient.degree = dontforceSet && options.baBehav[ADDSET_GRADIENT_DEGREE] ? toEdit.gradient.degree + mods.gradient.degree : mods.gradient.degree; + toEdit.gradient.degree = dontforceSet && options.baBehav[ADDSET_GRADIENT_DEGREE] ? toEdit.gradient.degree + mods.gradient.degree : mods.gradient.degree; } if (gradient.feather) { - toEdit.gradient.feather = dontforceSet && options.baBehav[ADDSET_GRADIENT_FEATHER] ? toEdit.gradient.feather + mods.gradient.feather : mods.gradient.feather; + toEdit.gradient.feather = dontforceSet && options.baBehav[ADDSET_GRADIENT_FEATHER] ? toEdit.gradient.feather + mods.gradient.feather : mods.gradient.feather; } if (gradient.strength) { - toEdit.gradient.strength = dontforceSet && options.baBehav[ADDSET_GRADIENT_STRENGTH] ? toEdit.gradient.strength + mods.gradient.strength : mods.gradient.strength; + toEdit.gradient.strength = dontforceSet && options.baBehav[ADDSET_GRADIENT_STRENGTH] ? toEdit.gradient.strength + mods.gradient.strength : mods.gradient.strength; } if (gradient.centerX) { - toEdit.gradient.centerX = dontforceSet && options.baBehav[ADDSET_GRADIENT_CENTER] ? toEdit.gradient.centerX + mods.gradient.centerX : mods.gradient.centerX; + toEdit.gradient.centerX = dontforceSet && options.baBehav[ADDSET_GRADIENT_CENTER] ? toEdit.gradient.centerX + mods.gradient.centerX : mods.gradient.centerX; } if (gradient.centerY) { - toEdit.gradient.centerY = dontforceSet && options.baBehav[ADDSET_GRADIENT_CENTER] ? toEdit.gradient.centerY + mods.gradient.centerY : mods.gradient.centerY; + toEdit.gradient.centerY = dontforceSet && options.baBehav[ADDSET_GRADIENT_CENTER] ? toEdit.gradient.centerY + mods.gradient.centerY : mods.gradient.centerY; } if (pcvignette.enabled) { - toEdit.pcvignette.enabled = mods.pcvignette.enabled; + toEdit.pcvignette.enabled = mods.pcvignette.enabled; } if (pcvignette.strength) { - toEdit.pcvignette.strength = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_STRENGTH] ? toEdit.pcvignette.strength + mods.pcvignette.strength : mods.pcvignette.strength; + toEdit.pcvignette.strength = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_STRENGTH] ? toEdit.pcvignette.strength + mods.pcvignette.strength : mods.pcvignette.strength; } if (pcvignette.feather) { - toEdit.pcvignette.feather = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_FEATHER] ? toEdit.pcvignette.feather + mods.pcvignette.feather : mods.pcvignette.feather; + toEdit.pcvignette.feather = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_FEATHER] ? toEdit.pcvignette.feather + mods.pcvignette.feather : mods.pcvignette.feather; } if (pcvignette.roundness) { @@ -2305,19 +2305,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (cacorrection.red) { - toEdit.cacorrection.red = dontforceSet && options.baBehav[ADDSET_CA] ? toEdit.cacorrection.red + mods.cacorrection.red : mods.cacorrection.red; + toEdit.cacorrection.red = dontforceSet && options.baBehav[ADDSET_CA] ? toEdit.cacorrection.red + mods.cacorrection.red : mods.cacorrection.red; } if (cacorrection.blue) { - toEdit.cacorrection.blue = dontforceSet && options.baBehav[ADDSET_CA] ? toEdit.cacorrection.blue + mods.cacorrection.blue : mods.cacorrection.blue; + toEdit.cacorrection.blue = dontforceSet && options.baBehav[ADDSET_CA] ? toEdit.cacorrection.blue + mods.cacorrection.blue : mods.cacorrection.blue; } if (vignetting.amount) { - toEdit.vignetting.amount = dontforceSet && options.baBehav[ADDSET_VIGN_AMOUNT] ? toEdit.vignetting.amount + mods.vignetting.amount : mods.vignetting.amount; + toEdit.vignetting.amount = dontforceSet && options.baBehav[ADDSET_VIGN_AMOUNT] ? toEdit.vignetting.amount + mods.vignetting.amount : mods.vignetting.amount; } if (vignetting.radius) { - toEdit.vignetting.radius = dontforceSet && options.baBehav[ADDSET_VIGN_RADIUS] ? toEdit.vignetting.radius + mods.vignetting.radius : mods.vignetting.radius; + toEdit.vignetting.radius = dontforceSet && options.baBehav[ADDSET_VIGN_RADIUS] ? toEdit.vignetting.radius + mods.vignetting.radius : mods.vignetting.radius; } if (vignetting.strength) { @@ -2338,92 +2338,92 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng for (int i = 0; i < 3; i++) { if (chmixer.red[i]) { - toEdit.chmixer.red[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.red[i] + mods.chmixer.red[i] : mods.chmixer.red[i]; + toEdit.chmixer.red[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.red[i] + mods.chmixer.red[i] : mods.chmixer.red[i]; } if (chmixer.green[i]) { - toEdit.chmixer.green[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.green[i] + mods.chmixer.green[i] : mods.chmixer.green[i]; + toEdit.chmixer.green[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.green[i] + mods.chmixer.green[i] : mods.chmixer.green[i]; } if (chmixer.blue[i]) { - toEdit.chmixer.blue[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.blue[i] + mods.chmixer.blue[i] : mods.chmixer.blue[i]; + toEdit.chmixer.blue[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.blue[i] + mods.chmixer.blue[i] : mods.chmixer.blue[i]; } } if (blackwhite.enabled) { - toEdit.blackwhite.enabled = mods.blackwhite.enabled; + toEdit.blackwhite.enabled = mods.blackwhite.enabled; } if (blackwhite.method) { - toEdit.blackwhite.method = mods.blackwhite.method; + toEdit.blackwhite.method = mods.blackwhite.method; } if (blackwhite.luminanceCurve) { - toEdit.blackwhite.luminanceCurve = mods.blackwhite.luminanceCurve; + toEdit.blackwhite.luminanceCurve = mods.blackwhite.luminanceCurve; } if (blackwhite.autoc) { - toEdit.blackwhite.autoc = mods.blackwhite.autoc; + toEdit.blackwhite.autoc = mods.blackwhite.autoc; } if (blackwhite.setting) { - toEdit.blackwhite.setting = mods.blackwhite.setting; + toEdit.blackwhite.setting = mods.blackwhite.setting; } if (blackwhite.enabledcc) { - toEdit.blackwhite.enabledcc = mods.blackwhite.enabledcc; + toEdit.blackwhite.enabledcc = mods.blackwhite.enabledcc; } if (blackwhite.filter) { - toEdit.blackwhite.filter = mods.blackwhite.filter; + toEdit.blackwhite.filter = mods.blackwhite.filter; } if (blackwhite.mixerRed) { - toEdit.blackwhite.mixerRed = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerRed + mods.blackwhite.mixerRed : mods.blackwhite.mixerRed; + toEdit.blackwhite.mixerRed = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerRed + mods.blackwhite.mixerRed : mods.blackwhite.mixerRed; } if (blackwhite.mixerOrange) { - toEdit.blackwhite.mixerOrange = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerOrange + mods.blackwhite.mixerOrange : mods.blackwhite.mixerOrange; + toEdit.blackwhite.mixerOrange = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerOrange + mods.blackwhite.mixerOrange : mods.blackwhite.mixerOrange; } if (blackwhite.mixerYellow) { - toEdit.blackwhite.mixerYellow = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerYellow + mods.blackwhite.mixerYellow : mods.blackwhite.mixerYellow; + toEdit.blackwhite.mixerYellow = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerYellow + mods.blackwhite.mixerYellow : mods.blackwhite.mixerYellow; } if (blackwhite.mixerGreen) { - toEdit.blackwhite.mixerGreen = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerGreen + mods.blackwhite.mixerGreen : mods.blackwhite.mixerGreen; + toEdit.blackwhite.mixerGreen = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerGreen + mods.blackwhite.mixerGreen : mods.blackwhite.mixerGreen; } if (blackwhite.mixerCyan) { - toEdit.blackwhite.mixerCyan = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerCyan + mods.blackwhite.mixerCyan : mods.blackwhite.mixerCyan; + toEdit.blackwhite.mixerCyan = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerCyan + mods.blackwhite.mixerCyan : mods.blackwhite.mixerCyan; } if (blackwhite.mixerBlue) { - toEdit.blackwhite.mixerBlue = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerBlue + mods.blackwhite.mixerBlue : mods.blackwhite.mixerBlue; + toEdit.blackwhite.mixerBlue = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerBlue + mods.blackwhite.mixerBlue : mods.blackwhite.mixerBlue; } if (blackwhite.mixerMagenta) { - toEdit.blackwhite.mixerMagenta = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerMagenta + mods.blackwhite.mixerMagenta : mods.blackwhite.mixerMagenta; + toEdit.blackwhite.mixerMagenta = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerMagenta + mods.blackwhite.mixerMagenta : mods.blackwhite.mixerMagenta; } if (blackwhite.mixerPurple) { - toEdit.blackwhite.mixerPurple = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerPurple + mods.blackwhite.mixerPurple : mods.blackwhite.mixerPurple; + toEdit.blackwhite.mixerPurple = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerPurple + mods.blackwhite.mixerPurple : mods.blackwhite.mixerPurple; } if (blackwhite.gammaRed) { - toEdit.blackwhite.gammaRed = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaRed + mods.blackwhite.gammaRed : mods.blackwhite.gammaRed; + toEdit.blackwhite.gammaRed = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaRed + mods.blackwhite.gammaRed : mods.blackwhite.gammaRed; } if (blackwhite.gammaGreen) { - toEdit.blackwhite.gammaGreen = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaGreen + mods.blackwhite.gammaGreen : mods.blackwhite.gammaGreen; + toEdit.blackwhite.gammaGreen = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaGreen + mods.blackwhite.gammaGreen : mods.blackwhite.gammaGreen; } if (blackwhite.gammaBlue) { - toEdit.blackwhite.gammaBlue = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaBlue + mods.blackwhite.gammaBlue : mods.blackwhite.gammaBlue; + toEdit.blackwhite.gammaBlue = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaBlue + mods.blackwhite.gammaBlue : mods.blackwhite.gammaBlue; } if (blackwhite.beforeCurve) { - toEdit.blackwhite.beforeCurve = mods.blackwhite.beforeCurve; + toEdit.blackwhite.beforeCurve = mods.blackwhite.beforeCurve; } if (blackwhite.beforeCurveMode) { @@ -2431,19 +2431,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (blackwhite.afterCurve) { - toEdit.blackwhite.afterCurve = mods.blackwhite.afterCurve; + toEdit.blackwhite.afterCurve = mods.blackwhite.afterCurve; } if (blackwhite.afterCurveMode) { - toEdit.blackwhite.afterCurveMode = mods.blackwhite.afterCurveMode; + toEdit.blackwhite.afterCurveMode = mods.blackwhite.afterCurveMode; } if (blackwhite.algo) { - toEdit.blackwhite.algo = mods.blackwhite.algo; + toEdit.blackwhite.algo = mods.blackwhite.algo; } if (resize.scale) { - toEdit.resize.scale = dontforceSet && options.baBehav[ADDSET_RESIZE_SCALE] ? toEdit.resize.scale + mods.resize.scale : mods.resize.scale; + toEdit.resize.scale = dontforceSet && options.baBehav[ADDSET_RESIZE_SCALE] ? toEdit.resize.scale + mods.resize.scale : mods.resize.scale; } if (resize.appliesTo) { @@ -2451,23 +2451,23 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (resize.method) { - toEdit.resize.method = mods.resize.method; + toEdit.resize.method = mods.resize.method; } if (resize.dataspec) { - toEdit.resize.dataspec = mods.resize.dataspec; + toEdit.resize.dataspec = mods.resize.dataspec; } if (resize.width) { - toEdit.resize.width = mods.resize.width; + toEdit.resize.width = mods.resize.width; } if (resize.height) { - toEdit.resize.height = mods.resize.height; + toEdit.resize.height = mods.resize.height; } if (resize.enabled) { - toEdit.resize.enabled = mods.resize.enabled; + toEdit.resize.enabled = mods.resize.enabled; } if (resize.allowUpscaling) { @@ -2527,47 +2527,47 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (raw.bayersensor.method) { - toEdit.raw.bayersensor.method = mods.raw.bayersensor.method; + toEdit.raw.bayersensor.method = mods.raw.bayersensor.method; } if (raw.bayersensor.border) { - toEdit.raw.bayersensor.border = mods.raw.bayersensor.border; + toEdit.raw.bayersensor.border = mods.raw.bayersensor.border; } if (raw.bayersensor.imageNum) { - toEdit.raw.bayersensor.imageNum = mods.raw.bayersensor.imageNum; + toEdit.raw.bayersensor.imageNum = mods.raw.bayersensor.imageNum; } if (raw.bayersensor.ccSteps) { - toEdit.raw.bayersensor.ccSteps = mods.raw.bayersensor.ccSteps; + toEdit.raw.bayersensor.ccSteps = mods.raw.bayersensor.ccSteps; } if (raw.bayersensor.exBlack0) { - toEdit.raw.bayersensor.black0 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black0 + mods.raw.bayersensor.black0 : mods.raw.bayersensor.black0; + toEdit.raw.bayersensor.black0 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black0 + mods.raw.bayersensor.black0 : mods.raw.bayersensor.black0; } if (raw.bayersensor.exBlack1) { - toEdit.raw.bayersensor.black1 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black1 + mods.raw.bayersensor.black1 : mods.raw.bayersensor.black1; + toEdit.raw.bayersensor.black1 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black1 + mods.raw.bayersensor.black1 : mods.raw.bayersensor.black1; } if (raw.bayersensor.exBlack2) { - toEdit.raw.bayersensor.black2 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black2 + mods.raw.bayersensor.black2 : mods.raw.bayersensor.black2; + toEdit.raw.bayersensor.black2 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black2 + mods.raw.bayersensor.black2 : mods.raw.bayersensor.black2; } if (raw.bayersensor.exBlack3) { - toEdit.raw.bayersensor.black3 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black3 + mods.raw.bayersensor.black3 : mods.raw.bayersensor.black3; + toEdit.raw.bayersensor.black3 = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.bayersensor.black3 + mods.raw.bayersensor.black3 : mods.raw.bayersensor.black3; } if (raw.bayersensor.exTwoGreen) { - toEdit.raw.bayersensor.twogreen = mods.raw.bayersensor.twogreen; + toEdit.raw.bayersensor.twogreen = mods.raw.bayersensor.twogreen; } if (raw.bayersensor.dcbIterations) { - toEdit.raw.bayersensor.dcb_iterations = mods.raw.bayersensor.dcb_iterations; + toEdit.raw.bayersensor.dcb_iterations = mods.raw.bayersensor.dcb_iterations; } if (raw.bayersensor.dcbEnhance) { - toEdit.raw.bayersensor.dcb_enhance = mods.raw.bayersensor.dcb_enhance; + toEdit.raw.bayersensor.dcb_enhance = mods.raw.bayersensor.dcb_enhance; } if (raw.bayersensor.lmmseIterations) { @@ -2639,11 +2639,11 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (raw.bayersensor.greenEq) { - toEdit.raw.bayersensor.greenthresh = dontforceSet && options.baBehav[ADDSET_PREPROCESS_GREENEQUIL] ? toEdit.raw.bayersensor.greenthresh + mods.raw.bayersensor.greenthresh : mods.raw.bayersensor.greenthresh; + toEdit.raw.bayersensor.greenthresh = dontforceSet && options.baBehav[ADDSET_PREPROCESS_GREENEQUIL] ? toEdit.raw.bayersensor.greenthresh + mods.raw.bayersensor.greenthresh : mods.raw.bayersensor.greenthresh; } if (raw.bayersensor.linenoise) { - toEdit.raw.bayersensor.linenoise = dontforceSet && options.baBehav[ADDSET_PREPROCESS_LINEDENOISE] ? toEdit.raw.bayersensor.linenoise + mods.raw.bayersensor.linenoise : mods.raw.bayersensor.linenoise; + toEdit.raw.bayersensor.linenoise = dontforceSet && options.baBehav[ADDSET_PREPROCESS_LINEDENOISE] ? toEdit.raw.bayersensor.linenoise + mods.raw.bayersensor.linenoise : mods.raw.bayersensor.linenoise; } if (raw.bayersensor.linenoiseDirection) { @@ -2655,67 +2655,67 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (raw.xtranssensor.method) { - toEdit.raw.xtranssensor.method = mods.raw.xtranssensor.method; + toEdit.raw.xtranssensor.method = mods.raw.xtranssensor.method; } if (raw.xtranssensor.dualDemosaicAutoContrast) { - toEdit.raw.xtranssensor.dualDemosaicAutoContrast = mods.raw.xtranssensor.dualDemosaicAutoContrast; + toEdit.raw.xtranssensor.dualDemosaicAutoContrast = mods.raw.xtranssensor.dualDemosaicAutoContrast; } if (raw.xtranssensor.dualDemosaicContrast) { - toEdit.raw.xtranssensor.dualDemosaicContrast = mods.raw.xtranssensor.dualDemosaicContrast; + toEdit.raw.xtranssensor.dualDemosaicContrast = mods.raw.xtranssensor.dualDemosaicContrast; } if (raw.xtranssensor.ccSteps) { - toEdit.raw.xtranssensor.ccSteps = mods.raw.xtranssensor.ccSteps; + toEdit.raw.xtranssensor.ccSteps = mods.raw.xtranssensor.ccSteps; } if (raw.xtranssensor.border) { - toEdit.raw.xtranssensor.border = mods.raw.xtranssensor.border; + toEdit.raw.xtranssensor.border = mods.raw.xtranssensor.border; } if (raw.xtranssensor.exBlackRed) { - toEdit.raw.xtranssensor.blackred = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.xtranssensor.blackred + mods.raw.xtranssensor.blackred : mods.raw.xtranssensor.blackred; + toEdit.raw.xtranssensor.blackred = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.xtranssensor.blackred + mods.raw.xtranssensor.blackred : mods.raw.xtranssensor.blackred; } if (raw.xtranssensor.exBlackGreen) { - toEdit.raw.xtranssensor.blackgreen = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.xtranssensor.blackgreen + mods.raw.xtranssensor.blackgreen : mods.raw.xtranssensor.blackgreen; + toEdit.raw.xtranssensor.blackgreen = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.xtranssensor.blackgreen + mods.raw.xtranssensor.blackgreen : mods.raw.xtranssensor.blackgreen; } if (raw.xtranssensor.exBlackBlue) { - toEdit.raw.xtranssensor.blackblue = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.xtranssensor.blackblue + mods.raw.xtranssensor.blackblue : mods.raw.xtranssensor.blackblue; + toEdit.raw.xtranssensor.blackblue = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_BLACKS] ? toEdit.raw.xtranssensor.blackblue + mods.raw.xtranssensor.blackblue : mods.raw.xtranssensor.blackblue; } if (raw.ca_autocorrect) { - toEdit.raw.ca_autocorrect = mods.raw.ca_autocorrect; + toEdit.raw.ca_autocorrect = mods.raw.ca_autocorrect; } if (raw.ca_avoidcolourshift) { - toEdit.raw.ca_avoidcolourshift = mods.raw.ca_avoidcolourshift; + toEdit.raw.ca_avoidcolourshift = mods.raw.ca_avoidcolourshift; } if (raw.caautoiterations) { - toEdit.raw.caautoiterations = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.caautoiterations + mods.raw.caautoiterations : mods.raw.caautoiterations; + toEdit.raw.caautoiterations = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.caautoiterations + mods.raw.caautoiterations : mods.raw.caautoiterations; } if (raw.cared) { - toEdit.raw.cared = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.cared + mods.raw.cared : mods.raw.cared; + toEdit.raw.cared = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.cared + mods.raw.cared : mods.raw.cared; } if (raw.cablue) { - toEdit.raw.cablue = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.cablue + mods.raw.cablue : mods.raw.cablue; + toEdit.raw.cablue = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.cablue + mods.raw.cablue : mods.raw.cablue; } if (raw.exPos) { - toEdit.raw.expos = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_LINEAR] ? toEdit.raw.expos + mods.raw.expos : mods.raw.expos; + toEdit.raw.expos = dontforceSet && options.baBehav[ADDSET_RAWEXPOS_LINEAR] ? toEdit.raw.expos + mods.raw.expos : mods.raw.expos; } if (raw.hotPixelFilter) { - toEdit.raw.hotPixelFilter = mods.raw.hotPixelFilter; + toEdit.raw.hotPixelFilter = mods.raw.hotPixelFilter; } if (raw.deadPixelFilter) { - toEdit.raw.deadPixelFilter = mods.raw.deadPixelFilter; + toEdit.raw.deadPixelFilter = mods.raw.deadPixelFilter; } if (raw.hotdeadpix_thresh) { @@ -2723,27 +2723,27 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (raw.darkFrame) { - toEdit.raw.dark_frame = mods.raw.dark_frame; + toEdit.raw.dark_frame = mods.raw.dark_frame; } if (raw.df_autoselect) { - toEdit.raw.df_autoselect = mods.raw.df_autoselect; + toEdit.raw.df_autoselect = mods.raw.df_autoselect; } if (raw.ff_file) { - toEdit.raw.ff_file = mods.raw.ff_file; + toEdit.raw.ff_file = mods.raw.ff_file; } if (raw.ff_AutoSelect) { - toEdit.raw.ff_AutoSelect = mods.raw.ff_AutoSelect; + toEdit.raw.ff_AutoSelect = mods.raw.ff_AutoSelect; } if (raw.ff_BlurRadius) { - toEdit.raw.ff_BlurRadius = mods.raw.ff_BlurRadius; + toEdit.raw.ff_BlurRadius = mods.raw.ff_BlurRadius; } if (raw.ff_BlurType) { - toEdit.raw.ff_BlurType = mods.raw.ff_BlurType; + toEdit.raw.ff_BlurType = mods.raw.ff_BlurType; } if (raw.ff_AutoClipControl) { @@ -2751,135 +2751,135 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (raw.ff_clipControl) { - toEdit.raw.ff_clipControl = dontforceSet && options.baBehav[ADDSET_RAWFFCLIPCONTROL] ? toEdit.raw.ff_clipControl + mods.raw.ff_clipControl : mods.raw.ff_clipControl; + toEdit.raw.ff_clipControl = dontforceSet && options.baBehav[ADDSET_RAWFFCLIPCONTROL] ? toEdit.raw.ff_clipControl + mods.raw.ff_clipControl : mods.raw.ff_clipControl; } if (wavelet.enabled) { - toEdit.wavelet.enabled = mods.wavelet.enabled; + toEdit.wavelet.enabled = mods.wavelet.enabled; } if (wavelet.strength) { - toEdit.wavelet.strength = mods.wavelet.strength; + toEdit.wavelet.strength = mods.wavelet.strength; } if (wavelet.balance) { - toEdit.wavelet.balance = mods.wavelet.balance; + toEdit.wavelet.balance = mods.wavelet.balance; } if (wavelet.iter) { - toEdit.wavelet.iter = mods.wavelet.iter; + toEdit.wavelet.iter = mods.wavelet.iter; } if (wavelet.median) { - toEdit.wavelet.median = mods.wavelet.median; + toEdit.wavelet.median = mods.wavelet.median; } if (wavelet.medianlev) { - toEdit.wavelet.medianlev = mods.wavelet.medianlev; + toEdit.wavelet.medianlev = mods.wavelet.medianlev; } if (wavelet.linkedg) { - toEdit.wavelet.linkedg = mods.wavelet.linkedg; + toEdit.wavelet.linkedg = mods.wavelet.linkedg; } if (wavelet.cbenab) { - toEdit.wavelet.cbenab = mods.wavelet.cbenab; + toEdit.wavelet.cbenab = mods.wavelet.cbenab; } if (wavelet.greenhigh) { - toEdit.wavelet.greenhigh = mods.wavelet.greenhigh; + toEdit.wavelet.greenhigh = mods.wavelet.greenhigh; } if (wavelet.bluehigh) { - toEdit.wavelet.bluehigh = mods.wavelet.bluehigh; + toEdit.wavelet.bluehigh = mods.wavelet.bluehigh; } if (wavelet.greenmed) { - toEdit.wavelet.greenmed = mods.wavelet.greenmed; + toEdit.wavelet.greenmed = mods.wavelet.greenmed; } if (wavelet.bluemed) { - toEdit.wavelet.bluemed = mods.wavelet.bluemed; + toEdit.wavelet.bluemed = mods.wavelet.bluemed; } if (wavelet.greenlow) { - toEdit.wavelet.greenlow = mods.wavelet.greenlow; + toEdit.wavelet.greenlow = mods.wavelet.greenlow; } if (wavelet.bluelow) { - toEdit.wavelet.bluelow = mods.wavelet.bluelow; + toEdit.wavelet.bluelow = mods.wavelet.bluelow; } if (wavelet.lipst) { - toEdit.wavelet.lipst = mods.wavelet.lipst; + toEdit.wavelet.lipst = mods.wavelet.lipst; } if (wavelet.Medgreinf) { - toEdit.wavelet.Medgreinf = mods.wavelet.Medgreinf; + toEdit.wavelet.Medgreinf = mods.wavelet.Medgreinf; } if (wavelet.avoid) { - toEdit.wavelet.avoid = mods.wavelet.avoid; + toEdit.wavelet.avoid = mods.wavelet.avoid; } if (wavelet.tmr) { - toEdit.wavelet.tmr = mods.wavelet.tmr; + toEdit.wavelet.tmr = mods.wavelet.tmr; } if (wavelet.Lmethod) { - toEdit.wavelet.Lmethod = mods.wavelet.Lmethod; + toEdit.wavelet.Lmethod = mods.wavelet.Lmethod; } if (wavelet.CLmethod) { - toEdit.wavelet.CLmethod = mods.wavelet.CLmethod; + toEdit.wavelet.CLmethod = mods.wavelet.CLmethod; } if (wavelet.Backmethod) { - toEdit.wavelet.Backmethod = mods.wavelet.Backmethod; + toEdit.wavelet.Backmethod = mods.wavelet.Backmethod; } if (wavelet.Tilesmethod) { - toEdit.wavelet.Tilesmethod = mods.wavelet.Tilesmethod; + toEdit.wavelet.Tilesmethod = mods.wavelet.Tilesmethod; } if (wavelet.daubcoeffmethod) { - toEdit.wavelet.daubcoeffmethod = mods.wavelet.daubcoeffmethod; + toEdit.wavelet.daubcoeffmethod = mods.wavelet.daubcoeffmethod; } if (wavelet.CHmethod) { - toEdit.wavelet.CHmethod = mods.wavelet.CHmethod; + toEdit.wavelet.CHmethod = mods.wavelet.CHmethod; } if (wavelet.CHSLmethod) { - toEdit.wavelet.CHSLmethod = mods.wavelet.CHSLmethod; + toEdit.wavelet.CHSLmethod = mods.wavelet.CHSLmethod; } if (wavelet.EDmethod) { - toEdit.wavelet.EDmethod = mods.wavelet.EDmethod; + toEdit.wavelet.EDmethod = mods.wavelet.EDmethod; } if (wavelet.NPmethod) { - toEdit.wavelet.NPmethod = mods.wavelet.NPmethod; + toEdit.wavelet.NPmethod = mods.wavelet.NPmethod; } if (wavelet.BAmethod) { - toEdit.wavelet.BAmethod = mods.wavelet.BAmethod; + toEdit.wavelet.BAmethod = mods.wavelet.BAmethod; } if (wavelet.TMmethod) { - toEdit.wavelet.TMmethod = mods.wavelet.TMmethod; + toEdit.wavelet.TMmethod = mods.wavelet.TMmethod; } if (wavelet.HSmethod) { - toEdit.wavelet.HSmethod = mods.wavelet.HSmethod; + toEdit.wavelet.HSmethod = mods.wavelet.HSmethod; } if (wavelet.Dirmethod) { - toEdit.wavelet.Dirmethod = mods.wavelet.Dirmethod; + toEdit.wavelet.Dirmethod = mods.wavelet.Dirmethod; } if (wavelet.edgthresh) { - toEdit.wavelet.edgthresh = mods.wavelet.edgthresh; + toEdit.wavelet.edgthresh = mods.wavelet.edgthresh; } if (wavelet.sky) { @@ -2895,39 +2895,39 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (wavelet.sup) { - toEdit.wavelet.sup = mods.wavelet.sup; + toEdit.wavelet.sup = mods.wavelet.sup; } if (wavelet.hllev) { - toEdit.wavelet.hllev = mods.wavelet.hllev; + toEdit.wavelet.hllev = mods.wavelet.hllev; } if (wavelet.bllev) { - toEdit.wavelet.bllev = mods.wavelet.bllev; + toEdit.wavelet.bllev = mods.wavelet.bllev; } if (wavelet.edgcont) { - toEdit.wavelet.edgcont = mods.wavelet.edgcont; + toEdit.wavelet.edgcont = mods.wavelet.edgcont; } if (wavelet.level0noise) { - toEdit.wavelet.level0noise = mods.wavelet.level0noise; + toEdit.wavelet.level0noise = mods.wavelet.level0noise; } if (wavelet.level1noise) { - toEdit.wavelet.level1noise = mods.wavelet.level1noise; + toEdit.wavelet.level1noise = mods.wavelet.level1noise; } if (wavelet.level2noise) { - toEdit.wavelet.level2noise = mods.wavelet.level2noise; + toEdit.wavelet.level2noise = mods.wavelet.level2noise; } if (wavelet.level3noise) { - toEdit.wavelet.level3noise = mods.wavelet.level3noise; + toEdit.wavelet.level3noise = mods.wavelet.level3noise; } if (wavelet.pastlev) { - toEdit.wavelet.pastlev = mods.wavelet.pastlev; + toEdit.wavelet.pastlev = mods.wavelet.pastlev; } if (wavelet.satlev) { @@ -2935,7 +2935,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (wavelet.ccwcurve) { - toEdit.wavelet.ccwcurve = mods.wavelet.ccwcurve; + toEdit.wavelet.ccwcurve = mods.wavelet.ccwcurve; } if (wavelet.opacityCurveRG) { @@ -2947,7 +2947,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (wavelet.opacityCurveW) { - toEdit.wavelet.opacityCurveW = mods.wavelet.opacityCurveW; + toEdit.wavelet.opacityCurveW = mods.wavelet.opacityCurveW; } if (wavelet.opacityCurveWL) { @@ -2955,44 +2955,44 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (wavelet.hhcurve) { - toEdit.wavelet.hhcurve = mods.wavelet.hhcurve; + toEdit.wavelet.hhcurve = mods.wavelet.hhcurve; } if (wavelet.Chcurve) { - toEdit.wavelet.Chcurve = mods.wavelet.Chcurve; + toEdit.wavelet.Chcurve = mods.wavelet.Chcurve; } if (wavelet.wavclCurve) { toEdit.wavelet.wavclCurve = mods.wavelet.wavclCurve; } - //if (wavelet.enacont) toEdit.wavelet.enacont = mods.wavelet.enacont; + //if (wavelet.enacont) toEdit.wavelet.enacont = mods.wavelet.enacont; if (wavelet.expcontrast) { - toEdit.wavelet.expcontrast = mods.wavelet.expcontrast; + toEdit.wavelet.expcontrast = mods.wavelet.expcontrast; } if (wavelet.expchroma) { - toEdit.wavelet.expchroma = mods.wavelet.expchroma; + toEdit.wavelet.expchroma = mods.wavelet.expchroma; } if (wavelet.expedge) { - toEdit.wavelet.expedge = mods.wavelet.expedge; + toEdit.wavelet.expedge = mods.wavelet.expedge; } if (wavelet.expresid) { - toEdit.wavelet.expresid = mods.wavelet.expresid; + toEdit.wavelet.expresid = mods.wavelet.expresid; } if (wavelet.expfinal) { - toEdit.wavelet.expfinal = mods.wavelet.expfinal; + toEdit.wavelet.expfinal = mods.wavelet.expfinal; } if (wavelet.exptoning) { - toEdit.wavelet.exptoning = mods.wavelet.exptoning; + toEdit.wavelet.exptoning = mods.wavelet.exptoning; } if (wavelet.expnoise) { - toEdit.wavelet.expnoise = mods.wavelet.expnoise; + toEdit.wavelet.expnoise = mods.wavelet.expnoise; } for (int i = 0; i < 9; i++) { @@ -3012,19 +3012,19 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (wavelet.hueskin) { - toEdit.wavelet.hueskin = mods.wavelet.hueskin; + toEdit.wavelet.hueskin = mods.wavelet.hueskin; } if (wavelet.hueskin2) { - toEdit.wavelet.hueskin2 = mods.wavelet.hueskin2; + toEdit.wavelet.hueskin2 = mods.wavelet.hueskin2; } if (wavelet.edgesensi) { - toEdit.wavelet.edgesensi = mods.wavelet.edgesensi; + toEdit.wavelet.edgesensi = mods.wavelet.edgesensi; } if (wavelet.edgeampli) { - toEdit.wavelet.edgeampli = mods.wavelet.edgeampli; + toEdit.wavelet.edgeampli = mods.wavelet.edgeampli; } if (wavelet.resconH) { @@ -3097,20 +3097,20 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng if (dirpyrequalizer.enabled) { - toEdit.dirpyrequalizer.enabled = mods.dirpyrequalizer.enabled; + toEdit.dirpyrequalizer.enabled = mods.dirpyrequalizer.enabled; } if (dirpyrequalizer.gamutlab) { - toEdit.dirpyrequalizer.gamutlab = mods.dirpyrequalizer.gamutlab; + toEdit.dirpyrequalizer.gamutlab = mods.dirpyrequalizer.gamutlab; } if (dirpyrequalizer.cbdlMethod) { - toEdit.dirpyrequalizer.cbdlMethod = mods.dirpyrequalizer.cbdlMethod; + toEdit.dirpyrequalizer.cbdlMethod = mods.dirpyrequalizer.cbdlMethod; } for (int i = 0; i < 6; i++) { if (dirpyrequalizer.mult[i]) { - toEdit.dirpyrequalizer.mult[i] = dontforceSet && options.baBehav[ADDSET_DIRPYREQ] ? toEdit.dirpyrequalizer.mult[i] + mods.dirpyrequalizer.mult[i] : mods.dirpyrequalizer.mult[i]; + toEdit.dirpyrequalizer.mult[i] = dontforceSet && options.baBehav[ADDSET_DIRPYREQ] ? toEdit.dirpyrequalizer.mult[i] + mods.dirpyrequalizer.mult[i] : mods.dirpyrequalizer.mult[i]; } } @@ -3123,93 +3123,95 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng } if (dirpyrequalizer.hueskin) { - toEdit.dirpyrequalizer.hueskin = mods.dirpyrequalizer.hueskin; + toEdit.dirpyrequalizer.hueskin = mods.dirpyrequalizer.hueskin; } -// if (dirpyrequalizer.algo) toEdit.dirpyrequalizer.algo = mods.dirpyrequalizer.algo; +// if (dirpyrequalizer.algo) toEdit.dirpyrequalizer.algo = mods.dirpyrequalizer.algo; if (hsvequalizer.enabled) { toEdit.hsvequalizer.enabled = mods.hsvequalizer.enabled; } if (hsvequalizer.hcurve) { - toEdit.hsvequalizer.hcurve = mods.hsvequalizer.hcurve; + toEdit.hsvequalizer.hcurve = mods.hsvequalizer.hcurve; } if (hsvequalizer.scurve) { - toEdit.hsvequalizer.scurve = mods.hsvequalizer.scurve; + toEdit.hsvequalizer.scurve = mods.hsvequalizer.scurve; } if (hsvequalizer.vcurve) { - toEdit.hsvequalizer.vcurve = mods.hsvequalizer.vcurve; + toEdit.hsvequalizer.vcurve = mods.hsvequalizer.vcurve; } if (filmSimulation.enabled) { - toEdit.filmSimulation.enabled = mods.filmSimulation.enabled; + toEdit.filmSimulation.enabled = mods.filmSimulation.enabled; } if (filmSimulation.clutFilename) { - toEdit.filmSimulation.clutFilename = mods.filmSimulation.clutFilename; + toEdit.filmSimulation.clutFilename = mods.filmSimulation.clutFilename; } if (filmSimulation.strength) { - toEdit.filmSimulation.strength = dontforceSet && options.baBehav[ADDSET_FILMSIMULATION_STRENGTH] ? toEdit.filmSimulation.strength + mods.filmSimulation.strength : mods.filmSimulation.strength; + toEdit.filmSimulation.strength = dontforceSet && options.baBehav[ADDSET_FILMSIMULATION_STRENGTH] ? toEdit.filmSimulation.strength + mods.filmSimulation.strength : mods.filmSimulation.strength; } if (softlight.enabled) { - toEdit.softlight.enabled = mods.softlight.enabled; + toEdit.softlight.enabled = mods.softlight.enabled; } if (softlight.strength) { - toEdit.softlight.strength = dontforceSet && options.baBehav[ADDSET_SOFTLIGHT_STRENGTH] ? toEdit.softlight.strength + mods.softlight.strength : mods.softlight.strength; + toEdit.softlight.strength = dontforceSet && options.baBehav[ADDSET_SOFTLIGHT_STRENGTH] ? toEdit.softlight.strength + mods.softlight.strength : mods.softlight.strength; } if (dehaze.enabled) { - toEdit.dehaze.enabled = mods.dehaze.enabled; + toEdit.dehaze.enabled = mods.dehaze.enabled; } if (dehaze.strength) { - toEdit.dehaze.strength = dontforceSet && options.baBehav[ADDSET_DEHAZE_STRENGTH] ? toEdit.dehaze.strength + mods.dehaze.strength : mods.dehaze.strength; + toEdit.dehaze.strength = dontforceSet && options.baBehav[ADDSET_DEHAZE_STRENGTH] ? toEdit.dehaze.strength + mods.dehaze.strength : mods.dehaze.strength; } if (dehaze.depth) { - toEdit.dehaze.depth = mods.dehaze.depth; + toEdit.dehaze.depth = mods.dehaze.depth; } if (dehaze.showDepthMap) { - toEdit.dehaze.showDepthMap = mods.dehaze.showDepthMap; + toEdit.dehaze.showDepthMap = mods.dehaze.showDepthMap; } if (metadata.mode) { - toEdit.metadata.mode = mods.metadata.mode; + toEdit.metadata.mode = mods.metadata.mode; } if (filmNegative.enabled) { - toEdit.filmNegative.enabled = mods.filmNegative.enabled; + toEdit.filmNegative.enabled = mods.filmNegative.enabled; } if (filmNegative.redExp) { - toEdit.filmNegative.redExp = mods.filmNegative.redExp; + toEdit.filmNegative.redExp = mods.filmNegative.redExp; } if (filmNegative.greenExp) { - toEdit.filmNegative.greenExp = mods.filmNegative.greenExp; + toEdit.filmNegative.greenExp = mods.filmNegative.greenExp; } if (filmNegative.blueExp) { - toEdit.filmNegative.blueExp = mods.filmNegative.blueExp; + toEdit.filmNegative.blueExp = mods.filmNegative.blueExp; } // Exif changes are added to the existing ones - if (exif) + if (exif) { for (procparams::ExifPairs::const_iterator i = mods.exif.begin(); i != mods.exif.end(); ++i) { toEdit.exif[i->first] = i->second; } + } // IPTC changes are added to the existing ones - if (iptc) + if (iptc) { for (procparams::IPTCPairs::const_iterator i = mods.iptc.begin(); i != mods.iptc.end(); ++i) { toEdit.iptc[i->first] = i->second; } + } } bool RAWParamsEdited::BayerSensor::isUnchanged() const @@ -3244,4 +3246,4 @@ bool RetinexParamsEdited::isUnchanged() const bool FilmNegativeParamsEdited::isUnchanged() const { return enabled && redExp && greenExp && blueExp; -} \ No newline at end of file +} diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index ef18e2953..34f9a414d 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -137,7 +137,6 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren //--- filmNegative = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_FILMNEGATIVE")) ); - Gtk::VBox* vboxes[8]; Gtk::HSeparator* hseps[8]; @@ -255,7 +254,6 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); vboxes[7]->pack_start (*filmNegative, Gtk::PACK_SHRINK, 2); - Gtk::VBox* vbCol1 = Gtk::manage (new Gtk::VBox ()); Gtk::VBox* vbCol2 = Gtk::manage (new Gtk::VBox ()); Gtk::VBox* vbCol3 = Gtk::manage (new Gtk::VBox ()); @@ -983,7 +981,6 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.filmNegative.blueExp = falsePE.filmNegative.blueExp; } - if (dstPE) { *dstPE = filterPE; } @@ -991,4 +988,3 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param // Apply the filter! filterPE.combine(*dstPP, *srcPP, true); } - diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index bd9720dfd..42dbeb984 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -1025,8 +1025,5 @@ void ToolPanelCoordinator::setEditProvider (EditDataProvider *provider) bool ToolPanelCoordinator::getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) { - if(!ipc) - return false; - - return ipc->getFilmNegativeExponents(spotA.x, spotA.y, spotB.x, spotB.y, newExps); + return ipc && ipc->getFilmNegativeExponents(spotA.x, spotA.y, spotB.x, spotB.y, newExps); } From 0de04eea9329778a7773e0ff6ffa6fcdcd52f49a Mon Sep 17 00:00:00 2001 From: Benitoite Date: Thu, 13 Jun 2019 01:57:37 -0700 Subject: [PATCH 127/215] macOS: optionally notarize app and dmg For macOS 10.15 *Catalina* compatibility: will notarize app and dmg with credentials provided thru cmake command. --- tools/osx/macosx_bundle.sh | 66 +++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index f3ff8d8ca..e334122be 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -204,9 +204,38 @@ plutil -convert binary1 "${CONTENTS}/Info.plist" # Sign the app CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" -codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${APP}" -spctl -a -vvvv "${APP}" - +if ! test -z "$CODESIGNID" ; then + codesign --deep --force -v -s "${CODESIGNID}" --timestamp -o runtime "${APP}" + spctl -a -vvvv "${APP}" +fi + +# Notarize the app +NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" +if ! test -z "$NOTARY" ; then + ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.filmulator" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + echo "Result= $uuid" # Display identifier string + sleep 15 + while : + do + fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status + status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` + if [ "$status1" = "success" ]; then + xcrun stapler staple *app # staple the ticket + xcrun stapler validate -v *app + echo "Notarization success" + break + elif [ "$status1" = "in" ]; then + echo "Notarization still in progress, sleeping for 15 seconds and trying again" + sleep 15 + else + echo "Notarization failed fullstatus below" + echo "$fullstatus" + exit 1 + fi + done +fi + function CreateDmg { local srcDir="$(mktemp -dt $$)" @@ -234,7 +263,36 @@ function CreateDmg { hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" # Sign disk image - codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" + if ! test -z "$CODESIGNID" ; then + codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" + fi + + # Notarize the dmg + if ! test -z "$NOTARY" ; then + zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.filmulator" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + echo "dmg Result= $uuid" # Display identifier string + sleep 15 + while : + do + fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status + status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` + if [ "$status1" = "success" ]; then + xcrun stapler staple "${dmg_name}.dmg" # staple the ticket + xcrun stapler validate -v "${dmg_name}.dmg" + echo "dmg Notarization success" + break + elif [ "$status1" = "in" ]; then + echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" + sleep 15 + else + echo "dmg Notarization failed fullstatus below" + echo "$fullstatus" + exit 1 + fi + done + fi + # Zip disk image for redistribution zip "${dmg_name}.zip" "${dmg_name}.dmg" AboutThisBuild.txt From 6095f8646739b35df902fa543e80a591200918fd Mon Sep 17 00:00:00 2001 From: Benitoite Date: Thu, 13 Jun 2019 02:03:00 -0700 Subject: [PATCH 128/215] macOS: Import notarization credentials Imports apple notarization credentials (Apple ID and App-specific password) given to cmake as `-DNOTARY:STRING="-u woz@apple.com -p abcd-efgh-ijkl-mnop"` --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 128551b02..e1e48bf9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -256,6 +256,10 @@ if(APPLE) if("${CODESIGNID}") set(CODESIGNID "${CODESIGNID}" CACHE STRING "Codesigning Identity") endif() + if("${NOTARY}") + set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity") + endif() + endif() # Enforce absolute paths for non-bundle builds: From 7ee7be183364ceeaf8a3b8d097926d0258905172 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Thu, 13 Jun 2019 02:14:37 -0700 Subject: [PATCH 129/215] macOS: Copy some libraries into the bundle for libexpat and libz --- tools/osx/macosx_bundle.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index e334122be..291fc8778 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -155,6 +155,12 @@ ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme # Copy libjpeg-turbo into the app bundle cp /opt/local/lib/libjpeg.62.dylib "${RESOURCES}/../Frameworks" +# Copy libexpat into the app bundle +cp /opt/local/lib/libexpat.1.dylib "${RESOURCES}/../Frameworks" + +# Copy libz into the app bundle +cp /opt/local/lib/libz.1.dylib "${RESOURCES}/../Frameworks" + # Copy libtiff into the app bundle cp /opt/local/lib/libtiff.5.dylib "${RESOURCES}/../Frameworks" From 1141f5fc65455dc1637c4bea27c514e26e0d1d41 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Thu, 13 Jun 2019 06:44:33 -0700 Subject: [PATCH 130/215] Fix a typo in macosx_bundle.sh --- tools/osx/macosx_bundle.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 291fc8778..0fc231852 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -219,7 +219,7 @@ fi NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" if ! test -z "$NOTARY" ; then ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" - uuid=`xcrun altool --notarize-app --primary-bundle-id "com.filmulator" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.rawtherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` echo "Result= $uuid" # Display identifier string sleep 15 while : @@ -276,7 +276,7 @@ function CreateDmg { # Notarize the dmg if ! test -z "$NOTARY" ; then zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" - uuid=`xcrun altool --notarize-app --primary-bundle-id "com.filmulator" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` echo "dmg Result= $uuid" # Display identifier string sleep 15 while : From 80f2b6a00281be746ff6275b9e23f6b1a429b9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Fri, 14 Jun 2019 08:58:04 +0200 Subject: [PATCH 131/215] Replace raw arrays with `std::array<>` --- rtengine/filmnegativeproc.cc | 4 ++-- rtengine/imagesource.h | 3 ++- rtengine/improccoordinator.cc | 2 +- rtengine/improccoordinator.h | 2 +- rtengine/rawimagesource.h | 8 ++++---- rtengine/rtengine.h | 37 +++++++++++++++++++---------------- rtgui/filmnegative.cc | 6 +++--- rtgui/filmnegative.h | 22 ++++++++++----------- rtgui/toolpanelcoord.cc | 2 +- rtgui/toolpanelcoord.h | 2 +- 10 files changed, 46 insertions(+), 42 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index db98fdf02..871b7a1d9 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -82,7 +82,7 @@ float logBase(float base, float num) { return log(num) / log(base); } -bool RawImageSource::getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, float newExps[3]) +bool RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, std::array& newExps) { float clearVals[3], denseVals[3]; @@ -317,4 +317,4 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p } } -} \ No newline at end of file +} diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index 0a34b6bc8..bf73b5bb2 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -18,6 +18,7 @@ */ #pragma once +#include #include #include @@ -81,7 +82,7 @@ public: virtual int load (const Glib::ustring &fname) = 0; virtual void preprocess (const procparams::RAWParams &raw, const procparams::LensProfParams &lensProf, const procparams::CoarseTransformParams& coarse, bool prepareDenoise = true) {}; virtual void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms) {}; - virtual bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, float newExps[3]) { return false; }; + virtual bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams& currentParams, std::array& newExps) { return false; }; virtual void demosaic (const procparams::RAWParams &raw, bool autoContrast, double &contrastThreshold) {}; virtual void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {}; virtual void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {}; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index fb6250183..6f471eedf 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1262,7 +1262,7 @@ void ImProcCoordinator::getSpotWB(int x, int y, int rect, double& temp, double& } } -bool ImProcCoordinator::getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) +bool ImProcCoordinator::getFilmNegativeExponents(int xA, int yA, int xB, int yB, std::array& newExps) { MyMutex::MyLock lock(mProcessing); diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index d10db8d70..fdf74d297 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -269,7 +269,7 @@ public: bool getAutoWB (double& temp, double& green, double equal, double tempBias) override; void getCamWB (double& temp, double& green) override; void getSpotWB (int x, int y, int rectSize, double& temp, double& green) override; - bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) override; + bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, std::array& newExps) override; void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) override; bool getHighQualComputed() override; void setHighQualComputed() override; diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 6e039e7f8..9bfeb0c67 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -16,9 +16,9 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _RAWIMAGESOURCE_ -#define _RAWIMAGESOURCE_ +#pragma once +#include #include #include @@ -116,7 +116,7 @@ public: int load(const Glib::ustring &fname, bool firstFrameOnly); void preprocess (const procparams::RAWParams &raw, const procparams::LensProfParams &lensProf, const procparams::CoarseTransformParams& coarse, bool prepareDenoise = true) override; void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms) override; - bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, float newExps[3]) override; + bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, std::array& newExps) override; void demosaic (const procparams::RAWParams &raw, bool autoContrast, double &contrastThreshold) override; void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) override; void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) override; @@ -309,5 +309,5 @@ protected: void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override; }; + } -#endif diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index cc46cfca8..da10d470f 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -16,23 +16,29 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _RTENGINE_ -#define _RTENGINE_ +#pragma once -#include "imageformat.h" -#include "rt_math.h" -#include "procevents.h" -#include -#include -#include +#include #include -#include "../rtexif/rtexif.h" -#include "rawmetadatalocation.h" +#include + +#include + +#include + #include "iimage.h" -#include "utils.h" -#include "../rtgui/threadutils.h" -#include "settings.h" +#include "imageformat.h" #include "LUT.h" +#include "procevents.h" +#include "rawmetadatalocation.h" +#include "rt_math.h" +#include "settings.h" +#include "utils.h" + +#include "../rtexif/rtexif.h" + +#include "../rtgui/threadutils.h" + /** * @file * This file contains the main functionality of the RawTherapee engine. @@ -499,7 +505,7 @@ public: virtual bool getAutoWB (double& temp, double& green, double equal, double tempBias) = 0; virtual void getCamWB (double& temp, double& green) = 0; virtual void getSpotWB (int x, int y, int rectSize, double& temp, double& green) = 0; - virtual bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, float* newExps) = 0; + virtual bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, std::array& newExps) = 0; virtual void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) = 0; virtual void saveInputICCReference (const Glib::ustring& fname, bool apply_wb) = 0; @@ -613,6 +619,3 @@ void startBatchProcessing (ProcessingJob* job, BatchProcessingListener* bpl); extern MyMutex* lcmsMutex; } - -#endif - diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 8f1fb5610..72141ecfb 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -281,8 +281,8 @@ bool FilmNegative::button1Pressed(int modifierKey) // User has selected 2 reference gray spots. Calculating new exponents // from channel values and updating parameters. - float newExps[3]; - if(fnp->getFilmNegativeExponents(refSpotCoords[0], refSpotCoords[1], newExps)) { + std::array newExps; + if (fnp->getFilmNegativeExponents(refSpotCoords[0], refSpotCoords[1], newExps)) { disableListener(); redExp->setValue(newExps[0]); greenExp->setValue(newExps[1]); @@ -335,4 +335,4 @@ void FilmNegative::switchOffEditMode () refSpotCoords.clear(); unsubscribe(); spotbutton->set_active(false); -} \ No newline at end of file +} diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index 5d6c8ce03..b9dc15378 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -16,23 +16,25 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _NEG_H_ -#define _NEG_H_ +#pragma once + +#include #include -#include "toolpanel.h" -#include "adjuster.h" -#include "guiutils.h" -#include "wbprovider.h" -#include "editcallbacks.h" -#include "../rtengine/procparams.h" +#include "adjuster.h" +#include "editcallbacks.h" +#include "guiutils.h" +#include "toolpanel.h" +#include "wbprovider.h" + +#include "../rtengine/procparams.h" class FilmNegProvider { public: virtual ~FilmNegProvider() = default; - virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) = 0; + virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array& newExps) = 0; }; class FilmNegative : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public EditSubscriber @@ -89,5 +91,3 @@ public: bool pick1(bool picked) override; }; - -#endif diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 42dbeb984..f7e2991e1 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -1023,7 +1023,7 @@ void ToolPanelCoordinator::setEditProvider (EditDataProvider *provider) } } -bool ToolPanelCoordinator::getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) +bool ToolPanelCoordinator::getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array& newExps) { return ipc && ipc->getFilmNegativeExponents(spotA.x, spotA.y, spotB.x, spotB.y, newExps); } diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 9910f9757..5569861ae 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -292,7 +292,7 @@ public: Glib::ustring GetCurrentImageFilePath() override; // FilmNegProvider interface - bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) override; + bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array& newExps) override; // rotatelistener interface void straightenRequested () override; From d01f78864c9052963d354a9c0b3cdb60f82e38be Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 14 Jun 2019 22:14:24 +0200 Subject: [PATCH 132/215] Locked red and blue exponents by default in the GUI, added CheckButton to unlock them. --- rtdata/languages/default | 4 +++- rtgui/filmnegative.cc | 33 +++++++++++++++++++++++++++------ rtgui/filmnegative.h | 4 ++++ 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 1c6a1acba..36e441015 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1639,9 +1639,11 @@ TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points TP_EXPOS_WHITEPOINT_LABEL;Raw White Points TP_FILMNEGATIVE_BLUE;Blue exponent -TP_FILMNEGATIVE_GREEN;Green exponent +TP_FILMNEGATIVE_GREEN;Green exponent (lead) TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. TP_FILMNEGATIVE_LABEL;Film Negative +TP_FILMNEGATIVE_LOCKCHANNELS;Lock exponent ratios +TP_FILMNEGATIVE_LOCKCHANNELS_TOOLTIP;Unlock to adjust channel exponents independently. This allows to adapt to the color characteristics of different film types. TP_FILMNEGATIVE_PICK;Pick white and black spots TP_FILMNEGATIVE_RED;Red exponent TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 8f1fb5610..72307946b 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -49,6 +49,9 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 2.0); blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 1.72); + redExp->set_sensitive(false); + blueExp->set_sensitive(false); + redRatio = redExp->getValue() / greenExp->getValue(); blueRatio = blueExp->getValue() / greenExp->getValue(); @@ -56,6 +59,10 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI EvFilmNegativeEnabled = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED"); EvFilmNegativeExponents = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS"); + lockChannels = Gtk::manage (new Gtk::CheckButton (M("TP_FILMNEGATIVE_LOCKCHANNELS"))); + lockChannels->set_tooltip_text(M("TP_FILMNEGATIVE_LOCKCHANNELS_TOOLTIP")); + lockChannels->set_active (true); + spotgrid = Gtk::manage(new Gtk::Grid()); spotgrid->get_style_context()->add_class("grid-spacing"); @@ -86,11 +93,13 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI // spotgrid->attach (*slab, 1, 0, 1, 1); // spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); + pack_start (*lockChannels, Gtk::PACK_SHRINK, 0); pack_start (*redExp, Gtk::PACK_SHRINK, 0); pack_start (*greenExp, Gtk::PACK_SHRINK, 0); pack_start (*blueExp, Gtk::PACK_SHRINK, 0); pack_start (*spotgrid, Gtk::PACK_SHRINK, 0 ); + lockChannels->signal_toggled().connect( sigc::mem_fun(*this, &FilmNegative::lockChannelsToggled) ); spotbutton->signal_toggled().connect( sigc::mem_fun(*this, &FilmNegative::editToggled) ); // spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) ); @@ -191,6 +200,12 @@ void FilmNegative::editToggled () } } +void FilmNegative::lockChannelsToggled () +{ + bool unlocked = !lockChannels->get_active(); + redExp->set_sensitive(unlocked); + blueExp->set_sensitive(unlocked); +} void FilmNegative::read (const ProcParams* pp, const ParamsEdited* pedited) { @@ -245,12 +260,18 @@ void FilmNegative::setDefaults (const ProcParams* defParams, const ParamsEdited* void FilmNegative::setBatchMode (bool batchMode) { - spotConn.disconnect(); - removeIfThere(this, spotgrid, false); - ToolPanel::setBatchMode (batchMode); - redExp->showEditedCB (); - greenExp->showEditedCB (); - blueExp->showEditedCB (); + if(batchMode) { + spotConn.disconnect(); + lockChannelsConn.disconnect(); + removeIfThere(this, spotgrid, false); + removeIfThere(this, lockChannels, false); + redExp->set_sensitive(true); + blueExp->set_sensitive(true); + ToolPanel::setBatchMode (batchMode); + redExp->showEditedCB (); + greenExp->showEditedCB (); + blueExp->showEditedCB (); + } } bool FilmNegative::mouseOver(int modifierKey) diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index 5d6c8ce03..1a2262aec 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -50,6 +50,9 @@ private: Adjuster* greenExp; Adjuster* blueExp; + Gtk::CheckButton* lockChannels; + sigc::connection lockChannelsConn; + Gtk::Grid* spotgrid; Gtk::ToggleButton* spotbutton; sigc::connection spotConn; @@ -57,6 +60,7 @@ private: double redRatio, blueRatio; void editToggled (); + void lockChannelsToggled (); public: From 2ed66677b81ec441c6fae174bab367e70be31f60 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Jun 2019 23:09:00 -0700 Subject: [PATCH 133/215] Mac: Property lists for nested app bundle --- tools/osx/Info.plist-bin.in | 10 ++++++++++ tools/osx/rt-bin.entitlements | 8 ++++++++ tools/osx/rt.entitlements | 20 ++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 tools/osx/Info.plist-bin.in create mode 100644 tools/osx/rt-bin.entitlements create mode 100644 tools/osx/rt.entitlements diff --git a/tools/osx/Info.plist-bin.in b/tools/osx/Info.plist-bin.in new file mode 100644 index 000000000..20ce5a741 --- /dev/null +++ b/tools/osx/Info.plist-bin.in @@ -0,0 +1,10 @@ + + + + + CFBundleName + RawTherapee-bin + CFBundleIdentifier + com.rawtherapee.rawtherapee + + diff --git a/tools/osx/rt-bin.entitlements b/tools/osx/rt-bin.entitlements new file mode 100644 index 000000000..9e5e269cb --- /dev/null +++ b/tools/osx/rt-bin.entitlements @@ -0,0 +1,8 @@ + + + + +com.apple.security.inherit + + + \ No newline at end of file diff --git a/tools/osx/rt.entitlements b/tools/osx/rt.entitlements new file mode 100644 index 000000000..2236af138 --- /dev/null +++ b/tools/osx/rt.entitlements @@ -0,0 +1,20 @@ + + + + + application-identifier + com.rawtherapee.rawtherapee + com.apple.security.temporary-exception.files.absolute-path.read-write + + "/" + + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.files.user-selected.read-write + + com.apple.security.app-sandbox + + com.apple.security.files.downloads.read-write + + + From 8a8536702e303f3eb87ffead3a24d1368badb4ed Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Jun 2019 23:11:29 -0700 Subject: [PATCH 134/215] Mac: point to directories from a nested app --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e1e48bf9c..637cc1b9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,7 +164,7 @@ endif() if(NOT DEFINED DATADIR) if(BUILD_BUNDLE) if(APPLE) - set(DATADIR "../Resources") + set(DATADIR "../../Resources") else() set(DATADIR .) endif() @@ -176,7 +176,7 @@ endif() if(NOT DEFINED LIBDIR) if(BUILD_BUNDLE) if(APPLE) - set(LIBDIR "../Frameworks") + set(LIBDIR "../../Frameworks") else() set(LIBDIR .) endif() From 1ad9444259af2c20e4835dedb65a03a873209d95 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Jun 2019 23:12:31 -0700 Subject: [PATCH 135/215] Mac: cleanup executable loader script --- tools/osx/executable_loader.in | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in index dcc0cabc4..72d17b04e 100644 --- a/tools/osx/executable_loader.in +++ b/tools/osx/executable_loader.in @@ -7,21 +7,8 @@ app="${cwd%/Contents/*}" lib="${app}/Contents/Frameworks" resources="${app}/Contents/Resources" etc="${resources}"/etc - -### Pending deletion: -# See https://github.com/Beep6581/RawTherapee/issues/1779 -# cups_dir=/tmp/RT5 -# install -d "${cups_dir}" -# cp -f /usr/lib/libcups.2.dylib "${cups_dir}" -# export DYLD_LIBRARY_PATH="${lib}:${cups_dir}" - -# export GTK_EXE_PREFIX="${resources}" -# export GTK_DATA_PREFIX="${resources}" export XDG_DATA_DIRS="${resources}/share" -# export GTK_IM_MODULE_FILE="${etc}/gtk-3.0/gtk.immodules" - export DYLD_LIBRARY_PATH="${lib}" - export GTK_PATH="${lib}/gtk-3.0/3.0.0" export XDG_DATA_HOME="${resources}/share" export GSETTINGS_SCHEMA_DIR="${resources}/share/glib-2.0/schemas" @@ -31,25 +18,13 @@ export GDK_PIXBUF_MODULEDIR="${lib}/gdk-pixbuf-2.0/2.10.0/loaders" export RT_SETTINGS="${HOME}/Library/Application Support/RawTherapee/config" export RT_CACHE="${HOME}/Library/Application Support/RawTherapee/cache" -### Pending deletion: -# Environment variables for X11 backend -#if [[ -d ${etc}/fonts ]]; then -# export FONTCONFIG_PATH="${etc}/fonts" -#fi - # Strip out system argument case "$1" in -psn_*) shift ;; esac -# Commented-out as part of "crash-on-startup part 2" fix, see https://github.com/Beep6581/RawTherapee/issues/3882#issuecomment-311703141 -#if [[ -d "/tmp/RawTherapee.app" ]]; then -# rm -rf "/tmp/RawTherapee.app" -#fi -#ln -sf "${app}" /tmp - # Prevent crash when directory name contains special characters AppleLocale=`defaults read -g AppleLocale` export LANG=${AppleLocale%@*}.UTF-8 -exec "${cwd}/rawtherapee-bin" "$@" +exec "${cwd}/bin/rawtherapee-bin" "$@" From f77eb3e4d2390261ec544e8bb71ca472596982dc Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Jun 2019 23:14:52 -0700 Subject: [PATCH 136/215] Mac: Use codesigning sandbox, entitlements Allows file system access in MacOS 10.15 *Catalina* --- tools/osx/macosx_bundle.sh | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 0fc231852..79002facb 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -101,7 +101,7 @@ ETC="${RESOURCES}/etc" EXECUTABLE="${MACOS}/rawtherapee" msg "Removing old files:" -rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" +rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" msg "Creating bundle container:" install -d "${RESOURCES}" \ @@ -134,7 +134,7 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 "${GTK_PREFIX}/bin/gdk-pixbuf-query-loaders" "${LIB}"/libpix*.so > "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" -sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|@executable_path/../|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" +sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Users/rb/repo-rt/build/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/glib-2.0/schemas "${GTK_PREFIX}/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" @@ -188,30 +188,37 @@ find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib done msg "Registering @loader_path into the executable:" -echo " install_name_tool -add_rpath @loader_path/../Frameworks '${EXECUTABLE}'" | bash -v +echo " install_name_tool -add_rpath @executable_path/../../Frameworks '${EXECUTABLE}'" | bash -v echo " install_name_tool -add_rpath @loader_path/../Frameworks '${EXECUTABLE}-cli'" | bash -v msg "Installing required application bundle files:" PROJECT_SOURCE_DATA_DIR="${PROJECT_SOURCE_DIR}/tools/osx" - +ditto "${PROJECT_SOURCE_DIR}/build/Resources" "${RESOURCES}" # Executable loader # Note: executable is renamed to 'rawtherapee-bin'. -mv "${MACOS}/rawtherapee" "${MACOS}/rawtherapee-bin" +mkdir "${MACOS}/bin" +mv "${MACOS}/rawtherapee" "${MACOS}/bin/rawtherapee-bin" install -m 0755 "${PROJECT_SOURCE_DATA_DIR}/executable_loader.in" "${MACOS}/rawtherapee" # App bundle resources cp "${PROJECT_SOURCE_DATA_DIR}/"{rawtherapee,profile}.icns "${RESOURCES}" cp "${PROJECT_SOURCE_DATA_DIR}/PkgInfo" "${CONTENTS}" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist.in" "${CONTENTS}/Info.plist" +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist-bin.in" "${CONTENTS}/MacOS/bin/Info.plist" sed -i "" -e "s|@version@|${PROJECT_FULL_VERSION}| s|@shortVersion@|${PROJECT_VERSION}| s|@arch@|${arch}|" \ "${CONTENTS}/Info.plist" plutil -convert binary1 "${CONTENTS}/Info.plist" - +plutil -convert binary1 "${CONTENTS}/MacOS/bin/Info.plist" # Sign the app CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" if ! test -z "$CODESIGNID" ; then - codesign --deep --force -v -s "${CODESIGNID}" --timestamp -o runtime "${APP}" +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/Entitlements.plist" +plutil -convert binary1 "${CONTENTS}/Entitlements.plist" +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt-bin.entitlements" "${CONTENTS}/MacOS/bin/Entitlements.plist" +plutil -convert binary1 "${CONTENTS}/MacOS/bin/Entitlements.plist" +codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" --timestamp -o runtime --entitlements "${APP}/Contents/MacOS/bin/Entitlements.plist" "${APP}/Contents/MacOS/bin/rawtherapee-bin" +codesign --deep --preserve-metadata=identifier,entitlements,runtime --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee" --timestamp -o runtime --entitlements "${APP}/Contents/Entitlements.plist" "${APP}" spctl -a -vvvv "${APP}" fi @@ -276,7 +283,7 @@ function CreateDmg { # Notarize the dmg if ! test -z "$NOTARY" ; then zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" - uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` echo "dmg Result= $uuid" # Display identifier string sleep 15 while : From 1d04026e9c5485cc7daf85b199bc7dba1bbcd082 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Jun 2019 23:24:38 -0700 Subject: [PATCH 137/215] Mac: update an absolute path --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 79002facb..2501e936b 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -134,7 +134,7 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 "${GTK_PREFIX}/bin/gdk-pixbuf-query-loaders" "${LIB}"/libpix*.so > "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" -sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Users/rb/repo-rt/build/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" +sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/glib-2.0/schemas "${GTK_PREFIX}/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" From daedba584ada4b04b93915eff68c0edebc88c210 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 16 Jun 2019 03:08:35 -0700 Subject: [PATCH 138/215] Mac: simplify exec. loader interpreter --- tools/osx/executable_loader.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in index 72d17b04e..429173d8e 100644 --- a/tools/osx/executable_loader.in +++ b/tools/osx/executable_loader.in @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh cd "$(dirname "$0")" || exit 1 From 54cc02eea971c7002f19b16b1552729ee8acd4e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Mon, 17 Jun 2019 08:03:46 +0200 Subject: [PATCH 139/215] Filmenegative core cleanup --- rtengine/filmnegativeproc.cc | 338 ++++++++++++++++++++-------------- rtengine/rawimage.cc | 2 +- rtengine/rawimage.h | 2 +- rtengine/rawimagesource.h | 1 - rtgui/filmnegative.cc | 343 ++++++++++++++++++----------------- rtgui/filmnegative.h | 80 ++++---- 6 files changed, 422 insertions(+), 344 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 871b7a1d9..51bd52365 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2004-2010 Gabor Horvath + * Copyright (c) 2019 rom9 * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,15 +19,17 @@ #include #include -#include "rtengine.h" -#include "rawimagesource.h" -#include "mytime.h" -#include "procparams.h" #ifdef _OPENMP #include #endif + +#include "rawimagesource.h" + +#include "mytime.h" #include "opthelper.h" +#include "procparams.h" #include "rt_algo.h" +#include "rtengine.h" //#define BENCHMARK #include "StopWatch.h" @@ -37,168 +39,221 @@ namespace rtengine extern const Settings* settings; -bool RawImageSource::channelsAvg(Coord spotPos, int spotSize, float avgs[3], const FilmNegativeParams ¶ms) +} + +namespace { - avgs[0] = avgs[1] = avgs[2] = 0.f; // Channel averages - if(ri->getSensorType() != ST_BAYER && ri->getSensorType() != ST_FUJI_XTRANS) +bool channelsAvg( + const rtengine::RawImage* ri, + int width, + int height, + array2D& rawData, + rtengine::Coord spotPos, + int spotSize, + const rtengine::procparams::FilmNegativeParams& params, + std::array& avgs +) +{ + avgs = {}; // Channel averages + + if (ri->getSensorType() != rtengine::ST_BAYER && ri->getSensorType() != rtengine::ST_FUJI_XTRANS) { return false; + } - if (settings->verbose) + if (rtengine::settings->verbose) { printf("Spot coord: x=%d y=%d\n", spotPos.x, spotPos.y); + } - int x1 = spotPos.x - spotSize / 2; - int x2 = spotPos.x + spotSize / 2; - int y1 = spotPos.y - spotSize / 2; - int y2 = spotPos.y + spotSize / 2; + const int half_spot_size = spotSize / 2; - if(x1<0 || x2>W || y1<0 || y2>H) + const int& x1 = spotPos.x - half_spot_size; + const int& x2 = spotPos.x + half_spot_size; + const int& y1 = spotPos.y - half_spot_size; + const int& y2 = spotPos.y + half_spot_size; + + if (x1 < 0 || x2 > width || y1 < 0 || y2 > height) { return false; // Spot goes outside bounds, bail out. + } - int pxCount[3] = {0}; // Per-channel sample counts - for(int c=spotPos.x-spotSize; c pxCount = {}; // Per-channel sample counts + for (int c = spotPos.x - spotSize; c < spotPos.x + spotSize; ++c) { + for (int r = spotPos.y - spotSize; r < spotPos.y + spotSize; ++r) { + const int ch = ri->getSensorType() == rtengine::ST_BAYER ? ri->FC(r,c) : ri->XTRANSFC(r,c); - int ch = (ri->getSensorType() == ST_BAYER) ? FC(r,c) : ri->XTRANSFC(r,c); + ++pxCount[ch]; - pxCount[ch]++; // If film negative is currently enabled, undo the effect by elevating to 1/exp, // in order to sample the original, linear value - if(params.enabled) - avgs[ch] += powf(rawData[r][c], -1 / (ch==0 ? params.redExp : ch==1 ? params.greenExp : params.blueExp)); - else + if (params.enabled) { + avgs[ch] += powf(rawData[r][c], -1.f / (ch == 0 ? params.redExp : ch == 1 ? params.greenExp : params.blueExp)); + } else { avgs[ch] += rawData[r][c]; + } } } - for(int ch=0; ch<3; ch++) - avgs[ch] = avgs[ch] / (pxCount[ch]); + for (int ch = 0; ch < 3; ++ch) { + avgs[ch] /= pxCount[ch]; + } return true; } -// Calculate logarithms in arbitrary base -float logBase(float base, float num) { - return log(num) / log(base); } -bool RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, std::array& newExps) +bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, std::array& newExps) { - float clearVals[3], denseVals[3]; + newExps = { + static_cast(currentParams.redExp), + static_cast(currentParams.greenExp), + static_cast(currentParams.blueExp) + }; - newExps[0] = currentParams.redExp; - newExps[1] = currentParams.greenExp; - newExps[2] = currentParams.blueExp; + constexpr int spotSize = 32; // TODO: Make this configurable? - int spotSize = 32; // TODO : make this confugurable ? Coord spot; + std::array clearVals; + std::array denseVals; + // Sample first spot - transformPosition (spotA.x, spotA.y, tran, spot.x, spot.y); - if(!channelsAvg(spot, spotSize, clearVals, currentParams)) - return false; - - // Sample second spot - transformPosition (spotB.x, spotB.y, tran, spot.x, spot.y); - if(!channelsAvg(spot, spotSize, denseVals, currentParams)) - return false; - - // Detect which one is the dense spot, based on green channel - if(clearVals[1] < denseVals[1]) - std::swap(clearVals, denseVals); - - if (settings->verbose) { - printf("Clear film values: R=%g G=%g B=%g\n", clearVals[0], clearVals[1], clearVals[2]); - printf("Dense film values: R=%g G=%g B=%g\n", denseVals[0], denseVals[1], denseVals[2]); + transformPosition(spotA.x, spotA.y, tran, spot.x, spot.y); + if (!channelsAvg(ri, W, H, rawData, spot, spotSize, currentParams, clearVals)) { + return false; } - float denseGreenRatio = clearVals[1] / denseVals[1]; + // Sample second spot + transformPosition(spotB.x, spotB.y, tran, spot.x, spot.y); + if (!channelsAvg(ri, W, H, rawData, spot, spotSize, currentParams, denseVals)) { + return false; + } + + // Detect which one is the dense spot, based on green channel + if (clearVals[1] < denseVals[1]) { + std::swap(clearVals, denseVals); + } + + if (settings->verbose) { + printf("Clear film values: R=%g G=%g B=%g\n", clearVals[0], clearVals[1], clearVals[2]); + printf("Dense film values: R=%g G=%g B=%g\n", denseVals[0], denseVals[1], denseVals[2]); + } + + const float denseGreenRatio = clearVals[1] / denseVals[1]; + + // Calculate logarithms in arbitrary base + const auto logBase = + [](float base, float num) -> float + { + return std::log(num) / std::log(base); + }; // Calculate exponents for each channel, based on the ratio between the bright and dark values, // compared to the ratio in the reference channel (green) - for(int ch=0; ch<3; ch++) - if(ch==1) + for (int ch = 0; ch < 3; ++ch) { + if (ch == 1) { newExps[ch] = 2.f; // Green is the reference channel - else + } else { newExps[ch] = CLAMP(2.f * logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 6.f); + } + } - if (settings->verbose) + if (settings->verbose) { printf("New exponents: R=%g G=%g B=%g\n", newExps[0], newExps[1], newExps[2]); + } return true; } -void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams ¶ms) +void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams ¶ms) { // BENCHFUNMICRO - if(!params.enabled) + if (!params.enabled) { return; + } - float exps[3] = { (float)params.redExp, (float)params.greenExp, (float)params.blueExp }; + const std::array exps = { + static_cast(params.redExp), + static_cast(params.greenExp), + static_cast(params.blueExp) + }; - MyTime t1, t2, t3,t4, t5, t6; + MyTime t1, t2, t3,t4, t5; + t1.set(); // Channel vectors to calculate medians - std::vector cvs[3] = { - std::vector(), - std::vector(), - std::vector() - }; + std::array, 3> cvs; // Sample one every 5 pixels, and push the value in the appropriate channel vector. - // Chose an odd step, not multiple of the CFA size, to get a chance to visit each channel. - if(ri->getSensorType() == ST_BAYER) { - for (int row = 0; row < H; row+=5) { - for (int col = 0; col < W; col+=5) { - int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + // Choose an odd step, not a multiple of the CFA size, to get a chance to visit each channel. + if (ri->getSensorType() == ST_BAYER) { + for (int row = 0; row < H; row += 5) { + for (int col = 0; col < W; col += 5) { + const int c = FC(row, col); // three colors: 0=R, 1=G, 2=B cvs[c].push_back(rawData[row][col]); } } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { - for (int row = 0; row < H; row+=5) { - for (int col = 0; col < W; col+=5) { - int c = ri->XTRANSFC(row, col); // three colors, 0=R, 1=G, 2=B + } + else if (ri->getSensorType() == ST_FUJI_XTRANS) { + for (int row = 0; row < H; row += 5) { + for (int col = 0; col < W; col += 5) { + const int c = ri->XTRANSFC(row, col); // three colors: 0=R, 1=G, 2=B cvs[c].push_back(rawData[row][col]); } } } - const float MAX_OUT_VALUE = 65000.f; + constexpr float MAX_OUT_VALUE = 65000.f; t2.set(); - if (settings->verbose) + + if (settings->verbose) { printf("Median vector fill loop time us: %d\n", t2.etime(t1)); + } - float medians[3]; // Channel median values - float mults[3] = { 1.f }; // Channel normalization multipliers + t2.set(); - for (int c=0; c<3; c++) { + std::array medians; // Channel median values + std::array mults = { + 1.f, + 1.f, + 1.f + }; // Channel normalization multipliers + + for (int c = 0; c < 3; ++c) { // Find median values for each channel - if(cvs[c].size() > 0) { - findMinMaxPercentile(&cvs[c][0], cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); - medians[c] = pow_F(max(medians[c], 1.f), -exps[c]); + if (!cvs[c].empty()) { + findMinMaxPercentile(cvs[c].data(), cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); + medians[c] = pow_F(rtengine::max(medians[c], 1.f), -exps[c]); // Determine the channel multipler so that N times the median becomes 65k. This clips away // the values in the dark border surrounding the negative (due to the film holder, for example), // the reciprocal of which have blown up to stellar values. - mults[c] = MAX_OUT_VALUE / (medians[c] * 24); + mults[c] = MAX_OUT_VALUE / (medians[c] * 24.f); } } t3.set(); + if (settings->verbose) { - printf("Sample count : %lu, %lu, %lu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); - printf("Medians : %g %g %g\n", medians[0], medians[1], medians[2] ); - printf("Computed multipliers : %g %g %g\n", mults[0], mults[1], mults[2] ); + printf("Sample count: %zu, %zu, %zu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); + printf("Medians: %g %g %g\n", medians[0], medians[1], medians[2] ); + printf("Computed multipliers: %g %g %g\n", mults[0], mults[1], mults[2] ); printf("Median calc time us: %d\n", t3.etime(t2)); } + t3.set(); + + if (ri->getSensorType() == ST_BAYER) { +#ifdef __SSE2__ + const vfloat onev = F2V(1.f); + const vfloat c65535v = F2V(65535.f); +#endif - if(ri->getSensorType() == ST_BAYER) { #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) #endif - for (int row = 0; row < H; row ++) { + for (int row = 0; row < H; ++row) { int col = 0; // Exponents are expressed as positive in the parameters, so negate them in order // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. @@ -209,21 +264,24 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p #ifdef __SSE2__ const vfloat expsv = _mm_setr_ps(exps0, exps1, exps0, exps1); const vfloat multsv = _mm_setr_ps(mult0, mult1, mult0, mult1); - const vfloat onev = F2V(1.f); - const vfloat c65535v = F2V(65535.f); - for (; col < W - 3; col+=4) { + for (; col < W - 3; col += 4) { STVFU(rawData[row][col], vminf(multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv), c65535v)); } #endif // __SSE2__ - for (; col < W - 1; col+=2) { - rawData[row][col] = rtengine::min(mult0 * pow_F(max(rawData[row][col], 1.f), exps0), 65535.f); - rawData[row][col + 1] = rtengine::min(mult1 * pow_F(max(rawData[row][col + 1], 1.f), exps1), 65535.f); + for (; col < W - 1; col += 2) { + rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), 65535.f); + rawData[row][col + 1] = rtengine::min(mult1 * pow_F(rtengine::max(rawData[row][col + 1], 1.f), exps1), 65535.f); } if (col < W) { - rawData[row][col] = rtengine::min(mult0 * pow_F(max(rawData[row][col], 1.f), exps0), 65535.f); + rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), 65535.f); } } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { +#ifdef __SSE2__ + const vfloat onev = F2V(1.f); + const vfloat c65535v = F2V(65535.f); +#endif + #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) #endif @@ -231,8 +289,22 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p int col = 0; // Exponents are expressed as positive in the parameters, so negate them in order // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. - const float expsc[6] = {-exps[ri->XTRANSFC(row, 0)], -exps[ri->XTRANSFC(row, 1)], -exps[ri->XTRANSFC(row, 2)], -exps[ri->XTRANSFC(row, 3)], -exps[ri->XTRANSFC(row, 4)], -exps[ri->XTRANSFC(row, 5)]}; - const float multsc[6] = {mults[ri->XTRANSFC(row, 0)], mults[ri->XTRANSFC(row, 1)], mults[ri->XTRANSFC(row, 2)], mults[ri->XTRANSFC(row, 3)], mults[ri->XTRANSFC(row, 4)], mults[ri->XTRANSFC(row, 5)]}; + const std::array expsc = { + -exps[ri->XTRANSFC(row, 0)], + -exps[ri->XTRANSFC(row, 1)], + -exps[ri->XTRANSFC(row, 2)], + -exps[ri->XTRANSFC(row, 3)], + -exps[ri->XTRANSFC(row, 4)], + -exps[ri->XTRANSFC(row, 5)] + }; + const std::array multsc = { + mults[ri->XTRANSFC(row, 0)], + mults[ri->XTRANSFC(row, 1)], + mults[ri->XTRANSFC(row, 2)], + mults[ri->XTRANSFC(row, 3)], + mults[ri->XTRANSFC(row, 4)], + mults[ri->XTRANSFC(row, 5)] + }; #ifdef __SSE2__ const vfloat expsv0 = _mm_setr_ps(expsc[0], expsc[1], expsc[2], expsc[3]); const vfloat expsv1 = _mm_setr_ps(expsc[4], expsc[5], expsc[0], expsc[1]); @@ -240,81 +312,75 @@ void RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams &p const vfloat multsv0 = _mm_setr_ps(multsc[0], multsc[1], multsc[2], multsc[3]); const vfloat multsv1 = _mm_setr_ps(multsc[4], multsc[5], multsc[0], multsc[1]); const vfloat multsv2 = _mm_setr_ps(multsc[2], multsc[3], multsc[4], multsc[5]); - const vfloat onev = F2V(1.f); - const vfloat c65535v = F2V(65535.f); - for (; col < W - 11; col+=12) { + for (; col < W - 11; col += 12) { STVFU(rawData[row][col], vminf(multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0), c65535v)); STVFU(rawData[row][col + 4], vminf(multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1), c65535v)); STVFU(rawData[row][col + 8], vminf(multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2), c65535v)); } #endif // __SSE2__ - for (; col < W - 5; col+=6) { + for (; col < W - 5; col += 6) { for (int c = 0; c < 6; ++c) { - rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); + rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); } } for (int c = 0; col < W; col++, c++) { - rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); + rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); } } } + t4.set(); + + if (settings->verbose) { + printf("Pow loop time us: %d\n", t4.etime(t3)); + } t4.set(); - if (settings->verbose) - printf("Pow loop time us: %d\n", t4.etime(t3)); - - - t5.set(); PixelsMap bitmapBads(W, H); int totBP = 0; // Hold count of bad pixels to correct - if(ri->getSensorType() == ST_BAYER) { - - + if (ri->getSensorType() == ST_BAYER) { #ifdef _OPENMP #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) #endif - - for(int i = 0; i < H; i++) - for(int j = 0; j < W; j++) { + for (int i = 0; i < H; ++i) { + for (int j = 0; j < W; ++j) { if (rawData[i][j] >= MAX_OUT_VALUE) { bitmapBads.set(j, i); - totBP++; + ++totBP; } } - - if (totBP > 0) { - interpolateBadPixelsBayer( bitmapBads, rawData ); } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { - -#ifdef _OPENMP - #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) -#endif - - for(int i = 0; i < H; i++) - for(int j = 0; j < W; j++) { - if (rawData[i][j] >= MAX_OUT_VALUE) { - bitmapBads.set(j, i); - totBP++; - } - } - if (totBP > 0) { - interpolateBadPixelsXtrans( bitmapBads ); + interpolateBadPixelsBayer(bitmapBads, rawData); } } + else if (ri->getSensorType() == ST_FUJI_XTRANS) { +#ifdef _OPENMP + #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) +#endif + for (int i = 0; i < H; ++i) { + for (int j = 0; j < W; ++j) { + if (rawData[i][j] >= MAX_OUT_VALUE) { + bitmapBads.set(j, i); + totBP++; + } + } + } + + if (totBP > 0) { + interpolateBadPixelsXtrans(bitmapBads); + } + } + + t5.set(); - t6.set(); if (settings->verbose) { printf("Bad pixels count: %d\n", totBP); - printf("Bad pixels interpolation time us: %d\n", t6.etime(t5)); + printf("Bad pixels interpolation time us: %d\n", t5.etime(t4)); } } - -} diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 1fa1630ab..0134d4d16 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -67,7 +67,7 @@ RawImage::~RawImage() } } -eSensorType RawImage::getSensorType() +eSensorType RawImage::getSensorType() const { if (isBayer()) { return ST_BAYER; diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 0dabfef0d..4ff6d79c9 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -185,7 +185,7 @@ public: return float_raw_image; } - eSensorType getSensorType(); + eSensorType getSensorType() const; void getRgbCam (float rgbcam[3][4]); void getXtransMatrix ( int xtransMatrix[6][6]); diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 9bfeb0c67..c04da5b66 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -43,7 +43,6 @@ private: static LUTf initInvGrad (); static void colorSpaceConversion_ (Imagefloat* im, const procparams::ColorManagementParams& cmp, const ColorTemp &wb, double pre_mul[3], cmsHPROFILE embedded, cmsHPROFILE camprofile, double cam[3][3], const std::string &camName); int defTransform (int tran); - bool channelsAvg(Coord spotPos, int spotSize, float avgs[3], const FilmNegativeParams ¶ms); protected: MyMutex getImageMutex; // locks getImage diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 72141ecfb..fef4fc6c6 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2004-2010 Gabor Horvath + * Copyright (c) 2019 rom9 * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,52 +16,52 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include "filmnegative.h" - #include -#include "rtimage.h" -#include "options.h" +#include "filmnegative.h" + #include "editwidgets.h" #include "eventmapper.h" +#include "options.h" +#include "rtimage.h" +#include "../rtengine/procparams.h" -using namespace rtengine; -using namespace rtengine::procparams; - - -FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FILMNEGATIVE_LABEL"), false, true), EditSubscriber(ET_OBJECTS) +namespace { - auto mkExponentAdjuster = [this](Glib::ustring label, double defaultVal) { - Adjuster *adj = Gtk::manage(new Adjuster (label, 0.3, 6, 0.001, defaultVal)); //exponent - adj->setAdjusterListener (this); - - if (adj->delay < options.adjusterMaxDelay) { - adj->delay = options.adjusterMaxDelay; - } - - adj->show(); - return adj; - }; +Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring& label, double defaultVal) +{ + Adjuster* const adj = Gtk::manage(new Adjuster(label, 0.3, 6, 0.001, defaultVal)); // exponent + adj->setAdjusterListener(listener); - redExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_RED"), 2.72); - greenExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_GREEN"), 2.0); - blueExp = mkExponentAdjuster(M("TP_FILMNEGATIVE_BLUE"), 1.72); + if (adj->delay < options.adjusterMaxDelay) { + adj->delay = options.adjusterMaxDelay; + } - redRatio = redExp->getValue() / greenExp->getValue(); - blueRatio = blueExp->getValue() / greenExp->getValue(); + adj->show(); + return adj; +} - auto m = ProcEventMapper::getInstance(); - EvFilmNegativeEnabled = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED"); - EvFilmNegativeExponents = m->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS"); +} - - spotgrid = Gtk::manage(new Gtk::Grid()); +FilmNegative::FilmNegative() : + FoldableToolPanel(this, "filmnegative", M("TP_FILMNEGATIVE_LABEL"), false, true), + EditSubscriber(ET_OBJECTS), + evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS")), + evFilmNegativeEnabled(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED")), + fnp(nullptr), + redExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 2.72)), + greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 2.0)), + blueExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 1.72)), + spotgrid(Gtk::manage(new Gtk::Grid())), + spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))), + redRatio(redExp->getValue() / greenExp->getValue()), + blueRatio(blueExp->getValue() / greenExp->getValue()) +{ spotgrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(spotgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - spotbutton = Gtk::manage (new Gtk::ToggleButton (M("TP_FILMNEGATIVE_PICK"))); setExpandAlignProperties(spotbutton, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); spotbutton->get_style_context()->add_class("independent"); spotbutton->set_tooltip_text(M("TP_FILMNEGATIVE_GUESS_TOOLTIP")); @@ -83,120 +83,47 @@ FilmNegative::FilmNegative () : FoldableToolPanel(this, "filmnegative", M("TP_FI // spotsize->append ("4"); spotgrid->attach (*spotbutton, 0, 1, 1, 1); -// spotgrid->attach (*slab, 1, 0, 1, 1); + // spotgrid->attach (*slab, 1, 0, 1, 1); // spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); - pack_start (*redExp, Gtk::PACK_SHRINK, 0); - pack_start (*greenExp, Gtk::PACK_SHRINK, 0); - pack_start (*blueExp, Gtk::PACK_SHRINK, 0); - pack_start (*spotgrid, Gtk::PACK_SHRINK, 0 ); - - spotbutton->signal_toggled().connect( sigc::mem_fun(*this, &FilmNegative::editToggled) ); -// spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) ); + pack_start(*redExp, Gtk::PACK_SHRINK, 0); + pack_start(*greenExp, Gtk::PACK_SHRINK, 0); + pack_start(*blueExp, Gtk::PACK_SHRINK, 0); + pack_start(*spotgrid, Gtk::PACK_SHRINK, 0); + spotbutton->signal_toggled().connect(sigc::mem_fun(*this, &FilmNegative::editToggled)); + // spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) ); // Editing geometry; create the spot rectangle - Rectangle *spotRect = new Rectangle(); + Rectangle* const spotRect = new Rectangle(); spotRect->filled = false; - EditSubscriber::visibleGeometry.push_back( spotRect ); + visibleGeometry.push_back(spotRect); // Stick a dummy rectangle over the whole image in mouseOverGeometry. - // This is to make sure the getCursor call is fired everywhere. - Rectangle *imgRect = new Rectangle(); + // This is to make sure the getCursor() call is fired everywhere. + Rectangle* imgRect = new Rectangle(); imgRect->filled = true; - EditSubscriber::mouseOverGeometry.push_back( imgRect ); - + mouseOverGeometry.push_back(imgRect); } FilmNegative::~FilmNegative() { -// idle_register.destroy(); - - for (std::vector::const_iterator i = visibleGeometry.begin(); i != visibleGeometry.end(); ++i) { - delete *i; + for (auto geometry : visibleGeometry) { + delete geometry; } - for (std::vector::const_iterator i = mouseOverGeometry.begin(); i != mouseOverGeometry.end(); ++i) { - delete *i; - } - -} - - - -void FilmNegative::enabledChanged() -{ - if (listener) { - if (get_inconsistent()) { - listener->panelChanged(EvFilmNegativeEnabled, M("GENERAL_UNCHANGED")); - } else if (getEnabled()) { - listener->panelChanged(EvFilmNegativeEnabled, M("GENERAL_ENABLED")); - } else { - listener->panelChanged(EvFilmNegativeEnabled, M("GENERAL_DISABLED")); - } + for (auto geometry : mouseOverGeometry) { + delete geometry; } } - -void FilmNegative::adjusterChanged(Adjuster* a, double newval) +void FilmNegative::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) { - if (listener) { - if(a == redExp || a == greenExp || a == blueExp) { - disableListener(); - if(a == greenExp) { - redExp->setValue(a->getValue() * redRatio); - blueExp->setValue(a->getValue() * blueRatio); - } else if(a == redExp) { - redRatio = newval / greenExp->getValue(); - } else if(a == blueExp) { - blueRatio = newval / greenExp->getValue(); - } - enableListener(); + disableListener(); - if(getEnabled()) { - listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( - "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); - } - } - } -} - -void FilmNegative::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - -void FilmNegative::setEditProvider (EditDataProvider* provider) -{ - EditSubscriber::setEditProvider(provider); -} - -void FilmNegative::editToggled () -{ - if (spotbutton->get_active()) { - subscribe(); - - int w, h; - getEditProvider()->getImageSize(w, h); - - // Stick a dummy rectangle over the whole image in mouseOverGeometry. - // This is to make sure the getCursor call is fired everywhere. - const auto imgRect = static_cast(mouseOverGeometry.at(0)); - imgRect->setXYWH(0, 0, w, h); - - } else { - this->refSpotCoords.clear(); - unsubscribe(); - } -} - - -void FilmNegative::read (const ProcParams* pp, const ParamsEdited* pedited) -{ - disableListener (); - - if(pedited) { + if (pedited) { redExp->setEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); greenExp->setEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); blueExp->setEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); @@ -208,10 +135,10 @@ void FilmNegative::read (const ProcParams* pp, const ParamsEdited* pedited) greenExp->setValue(pp->filmNegative.greenExp); blueExp->setValue(pp->filmNegative.blueExp); - enableListener (); + enableListener(); } -void FilmNegative::write (ProcParams* pp, ParamsEdited* pedited) +void FilmNegative::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) { pp->filmNegative.redExp = redExp->getValue(); pp->filmNegative.greenExp = greenExp->getValue(); @@ -226,37 +153,103 @@ void FilmNegative::write (ProcParams* pp, ParamsEdited* pedited) } } -void FilmNegative::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) +void FilmNegative::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) { redExp->setValue(defParams->filmNegative.redExp); greenExp->setValue(defParams->filmNegative.greenExp); blueExp->setValue(defParams->filmNegative.blueExp); if (pedited) { - redExp->setDefaultEditedState (pedited->filmNegative.redExp ? Edited : UnEdited); - greenExp->setDefaultEditedState (pedited->filmNegative.greenExp ? Edited : UnEdited); - blueExp->setDefaultEditedState (pedited->filmNegative.blueExp ? Edited : UnEdited); + redExp->setDefaultEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); + greenExp->setDefaultEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); + blueExp->setDefaultEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); } else { - redExp->setDefaultEditedState (Irrelevant); - greenExp->setDefaultEditedState (Irrelevant); - blueExp->setDefaultEditedState (Irrelevant); + redExp->setDefaultEditedState(Irrelevant); + greenExp->setDefaultEditedState(Irrelevant); + blueExp->setDefaultEditedState(Irrelevant); } } -void FilmNegative::setBatchMode (bool batchMode) +void FilmNegative::setBatchMode(bool batchMode) { spotConn.disconnect(); removeIfThere(this, spotgrid, false); - ToolPanel::setBatchMode (batchMode); - redExp->showEditedCB (); - greenExp->showEditedCB (); - blueExp->showEditedCB (); + ToolPanel::setBatchMode(batchMode); + redExp->showEditedCB(); + greenExp->showEditedCB(); + blueExp->showEditedCB(); +} + +void FilmNegative::adjusterChanged(Adjuster* a, double newval) +{ + if (listener) { + if (a == redExp || a == greenExp || a == blueExp) { + disableListener(); + if (a == greenExp) { + redExp->setValue(a->getValue() * redRatio); + blueExp->setValue(a->getValue() * blueRatio); + } + else if (a == redExp) { + redRatio = newval / greenExp->getValue(); + } + else if (a == blueExp) { + blueRatio = newval / greenExp->getValue(); + } + enableListener(); + + if (getEnabled()) { + listener->panelChanged( + evFilmNegativeExponents, + Glib::ustring::compose( + "R=%1 ; G=%2 ; B=%3", + redExp->getTextValue(), + greenExp->getTextValue(), + blueExp->getTextValue() + ) + ); + } + } + } +} + +void FilmNegative::adjusterAutoToggled(Adjuster* a, bool newval) +{ +} + +void FilmNegative::enabledChanged() +{ + if (listener) { + if (get_inconsistent()) { + listener->panelChanged(evFilmNegativeEnabled, M("GENERAL_UNCHANGED")); + } + else if (getEnabled()) { + listener->panelChanged(evFilmNegativeEnabled, M("GENERAL_ENABLED")); + } + else { + listener->panelChanged(evFilmNegativeEnabled, M("GENERAL_DISABLED")); + } + } +} + +void FilmNegative::setFilmNegProvider(FilmNegProvider* p) +{ + fnp = p; +} + +void FilmNegative::setEditProvider(EditDataProvider* provider) +{ + EditSubscriber::setEditProvider(provider); +} + +CursorShape FilmNegative::getCursor(int objectID) const +{ + return CSSpotWB; } bool FilmNegative::mouseOver(int modifierKey) { - EditDataProvider *provider = getEditProvider(); - const auto spotRect = static_cast(visibleGeometry.at(0)); + EditDataProvider* const provider = getEditProvider(); + Rectangle* const spotRect = static_cast(visibleGeometry.at(0)); spotRect->setXYWH(provider->posImage.x - 16, provider->posImage.y - 16, 32, 32); return true; @@ -264,20 +257,18 @@ bool FilmNegative::mouseOver(int modifierKey) bool FilmNegative::button1Pressed(int modifierKey) { - EditDataProvider *provider = getEditProvider(); + EditDataProvider* const provider = getEditProvider(); - if(provider) { // debug. remove me + if (provider) { // TODO: Remove me (rom9) printf("x=%d y=%d pv1=%f pv2=%f pv3=%f\n", provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); } EditSubscriber::action = EditSubscriber::Action::NONE; if (listener) { - refSpotCoords.push_back(provider->posImage); - if(refSpotCoords.size() == 2) { - + if (refSpotCoords.size() == 2) { // User has selected 2 reference gray spots. Calculating new exponents // from channel values and updating parameters. @@ -292,8 +283,15 @@ bool FilmNegative::button1Pressed(int modifierKey) enableListener(); if (listener && getEnabled()) { - listener->panelChanged (EvFilmNegativeExponents, Glib::ustring::compose ( - "R=%1 ; G=%2 ; B=%3", redExp->getTextValue(), greenExp->getTextValue(), blueExp->getTextValue())); + listener->panelChanged( + evFilmNegativeExponents, + Glib::ustring::compose( + "R=%1 ; G=%2 ; B=%3", + redExp->getTextValue(), + greenExp->getTextValue(), + blueExp->getTextValue() + ) + ); } } @@ -304,35 +302,50 @@ bool FilmNegative::button1Pressed(int modifierKey) return true; } -bool FilmNegative::button1Released () +bool FilmNegative::button1Released() { - EditDataProvider *provider = getEditProvider(); + EditDataProvider* const provider = getEditProvider(); - if(provider) { // debug. remove me + if (provider) { // TODO: Remove me (rom9) printf("x=%d y=%d pv1=%f pv2=%f pv3=%f\n", provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); } EditSubscriber::action = EditSubscriber::Action::NONE; + return true; } -// TODO remove me ; couldn't make Action::PICKING work -bool FilmNegative::pick1 (bool picked) { - EditDataProvider *provider = getEditProvider(); - if(provider) { // debug. remove me - printf("Picked pick=%d x=%d y=%d pv1=%f pv2=%f pv3=%f\n", picked, provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); - } - return true; -} - -CursorShape FilmNegative::getCursor(int objectID) const -{ - return CSSpotWB; -} - -void FilmNegative::switchOffEditMode () +void FilmNegative::switchOffEditMode() { refSpotCoords.clear(); unsubscribe(); spotbutton->set_active(false); } + +// TODO: Remove me ; couldn't make Action::PICKING work (rom9) +bool FilmNegative::pick1(bool picked) +{ + EditDataProvider* const provider = getEditProvider(); + if (provider) { // TODO: Remove me (rom9) + printf("Picked pick=%d x=%d y=%d pv1=%f pv2=%f pv3=%f\n", picked, provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); + } + return true; +} + +void FilmNegative::editToggled() +{ + if (spotbutton->get_active()) { + subscribe(); + + int w, h; + getEditProvider()->getImageSize(w, h); + + // Stick a dummy rectangle over the whole image in mouseOverGeometry. + // This is to make sure the getCursor() call is fired everywhere. + Rectangle* const imgRect = static_cast(mouseOverGeometry.at(0)); + imgRect->setXYWH(0, 0, w, h); + } else { + refSpotCoords.clear(); + unsubscribe(); + } +} diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index b9dc15378..31d561127 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2004-2010 Gabor Horvath + * Copyright (c) 2019 rom9 * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,66 +28,66 @@ #include "toolpanel.h" #include "wbprovider.h" -#include "../rtengine/procparams.h" +#include "../rtengine/noncopyable.h" class FilmNegProvider { public: virtual ~FilmNegProvider() = default; + virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array& newExps) = 0; }; -class FilmNegative : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public EditSubscriber +class FilmNegative : + public rtengine::NonCopyable, + public ToolParamBlock, + public AdjusterListener, + public FoldableToolPanel, + public EditSubscriber { - -private: - rtengine::ProcEvent EvFilmNegativeExponents; - rtengine::ProcEvent EvFilmNegativeEnabled; - - std::vector refSpotCoords; - - FilmNegProvider *fnp; - - Adjuster* redExp; - Adjuster* greenExp; - Adjuster* blueExp; - - Gtk::Grid* spotgrid; - Gtk::ToggleButton* spotbutton; - sigc::connection spotConn; - - double redRatio, blueRatio; - - void editToggled (); - public: + FilmNegative(); + ~FilmNegative() override; - FilmNegative (); - ~FilmNegative () override; + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setBatchMode(bool batchMode) override; - void setFilmNegProvider(FilmNegProvider* p) - { - fnp = p; - }; - - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; - void setBatchMode (bool batchMode) override; - - void adjusterChanged (Adjuster* a, double newval) override; + void adjusterChanged(Adjuster* a, double newval) override; void adjusterAutoToggled(Adjuster* a, bool newval) override; - void spotPressed (); void enabledChanged() override; - void setEditProvider (EditDataProvider* provider) override; + void setFilmNegProvider(FilmNegProvider* p); + + void setEditProvider(EditDataProvider* provider) override; // EditSubscriber interface CursorShape getCursor(int objectID) const override; bool mouseOver(int modifierKey) override; bool button1Pressed(int modifierKey) override; bool button1Released() override; - void switchOffEditMode () override; + void switchOffEditMode() override; bool pick1(bool picked) override; +private: + void editToggled(); + + const rtengine::ProcEvent evFilmNegativeExponents; + const rtengine::ProcEvent evFilmNegativeEnabled; + + std::vector refSpotCoords; + + FilmNegProvider* fnp; + + Adjuster* const redExp; + Adjuster* const greenExp; + Adjuster* const blueExp; + + Gtk::Grid* const spotgrid; + Gtk::ToggleButton* const spotbutton; + sigc::connection spotConn; + + double redRatio; + double blueRatio; }; From 8de581ac39cc4686d50a7908eadf80780fbb0848 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Mon, 17 Jun 2019 21:46:50 +0200 Subject: [PATCH 140/215] Removed old debugging stuff from rtgui/filmnegative.cc --- rtgui/filmnegative.cc | 21 --------------------- rtgui/filmnegative.h | 1 - 2 files changed, 22 deletions(-) diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 0e0f1ee51..8e0e5133f 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -274,10 +274,6 @@ bool FilmNegative::button1Pressed(int modifierKey) { EditDataProvider* const provider = getEditProvider(); - if (provider) { // TODO: Remove me (rom9) - printf("x=%d y=%d pv1=%f pv2=%f pv3=%f\n", provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); - } - EditSubscriber::action = EditSubscriber::Action::NONE; if (listener) { @@ -319,14 +315,7 @@ bool FilmNegative::button1Pressed(int modifierKey) bool FilmNegative::button1Released() { - EditDataProvider* const provider = getEditProvider(); - - if (provider) { // TODO: Remove me (rom9) - printf("x=%d y=%d pv1=%f pv2=%f pv3=%f\n", provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); - } - EditSubscriber::action = EditSubscriber::Action::NONE; - return true; } @@ -337,16 +326,6 @@ void FilmNegative::switchOffEditMode() spotbutton->set_active(false); } -// TODO: Remove me ; couldn't make Action::PICKING work (rom9) -bool FilmNegative::pick1(bool picked) -{ - EditDataProvider* const provider = getEditProvider(); - if (provider) { // TODO: Remove me (rom9) - printf("Picked pick=%d x=%d y=%d pv1=%f pv2=%f pv3=%f\n", picked, provider->posImage.x, provider->posImage.y, provider->getPipetteVal1(), provider->getPipetteVal2(), provider->getPipetteVal3()); - } - return true; -} - void FilmNegative::editToggled() { if (spotbutton->get_active()) { diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index e29a20103..655217367 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -68,7 +68,6 @@ public: bool button1Pressed(int modifierKey) override; bool button1Released() override; void switchOffEditMode() override; - bool pick1(bool picked) override; private: void editToggled(); From ca387e0379ef854ed22afb5bcc6f579553fd094e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Tue, 18 Jun 2019 09:22:45 +0200 Subject: [PATCH 141/215] Use terser C++11 resets in `ProcParams::setDefaults()` --- rtengine/procparams.cc | 82 +++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index c24ee0049..1c05fbbad 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2742,23 +2742,23 @@ ProcParams::ProcParams() void ProcParams::setDefaults() { - toneCurve = ToneCurveParams(); + toneCurve = {}; - labCurve = LCurveParams(); + labCurve = {}; - rgbCurves = RGBCurvesParams(); + rgbCurves = {}; - localContrast = LocalContrastParams(); + localContrast = {}; - colorToning = ColorToningParams(); + colorToning = {}; - sharpenEdge = SharpenEdgeParams(); + sharpenEdge = {}; - sharpenMicro = SharpenMicroParams(); + sharpenMicro = {}; - sharpening = SharpeningParams(); + sharpening = {}; - prsharpening = SharpeningParams(); + prsharpening = {}; prsharpening.contrast = 15.0; prsharpening.method = "rld"; prsharpening.deconvamount = 100; @@ -2766,69 +2766,69 @@ void ProcParams::setDefaults() prsharpening.deconviter = 100; prsharpening.deconvdamping = 0; - vibrance = VibranceParams(); + vibrance = {}; - wb = WBParams(); + wb = {}; - colorappearance = ColorAppearanceParams(); + colorappearance = {}; - defringe = DefringeParams(); + defringe = {}; - impulseDenoise = ImpulseDenoiseParams(); + impulseDenoise = {}; - dirpyrDenoise = DirPyrDenoiseParams(); + dirpyrDenoise = {}; - epd = EPDParams(); + epd = {}; - fattal = FattalToneMappingParams(); + fattal = {}; - sh = SHParams(); + sh = {}; - crop = CropParams(); + crop = {}; - coarse = CoarseTransformParams(); + coarse = {}; - commonTrans = CommonTransformParams(); + commonTrans = {}; - rotate = RotateParams(); + rotate = {}; - distortion = DistortionParams(); + distortion = {}; - lensProf = LensProfParams(); + lensProf = {}; - perspective = PerspectiveParams(); + perspective = {}; - gradient = GradientParams(); + gradient = {}; - pcvignette = PCVignetteParams(); + pcvignette = {}; - vignetting = VignettingParams(); + vignetting = {}; - chmixer = ChannelMixerParams(); + chmixer = {}; - blackwhite = BlackWhiteParams(); + blackwhite = {}; - cacorrection = CACorrParams(); + cacorrection = {}; - resize = ResizeParams(); + resize = {}; - icm = ColorManagementParams(); + icm = {}; - wavelet = WaveletParams(); + wavelet = {}; - dirpyrequalizer = DirPyrEqualizerParams(); + dirpyrequalizer = {}; - hsvequalizer = HSVEqualizerParams(); + hsvequalizer = {}; - filmSimulation = FilmSimulationParams(); + filmSimulation = {}; - softlight = SoftLightParams(); + softlight = {}; - dehaze = DehazeParams(); + dehaze = {}; - raw = RAWParams(); + raw = {}; - metadata = MetaDataParams(); + metadata = {}; exif.clear(); iptc.clear(); From 7c0275ca1a034dacb8f130bfffc40e5399a52f7b Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 18 Jun 2019 13:52:58 +0200 Subject: [PATCH 142/215] Updated copyright notice in new source files --- rtengine/filmnegativeproc.cc | 2 +- rtgui/filmnegative.cc | 2 +- rtgui/filmnegative.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index f367c4368..bd68314e3 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2019 rom9 + * Copyright (c) 2019 Alberto Romei * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 8e0e5133f..b6cb9f1c6 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2019 rom9 + * Copyright (c) 2019 Alberto Romei * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index 655217367..b21bc23c3 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2019 rom9 + * Copyright (c) 2019 Alberto Romei * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From c9c834dc633ac98b17be363b214526125491b691 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 18 Jun 2019 21:02:53 +0200 Subject: [PATCH 143/215] Very honored to add myself to AUTHORS.txt, as suggested by heckflosse: https://github.com/Beep6581/RawTherapee/pull/5349#pullrequestreview-247409279 --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index 15e3e13d4..160869776 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -28,6 +28,7 @@ Development contributors, in last name alphabetical order: Adam Reichold Philip Rinn Jan Rinze + Alberto Romei Ben S. Andrey Skvortsov Fabio Suprani From 03dc855fc73898b5957fdf1d39c26a612d6938f5 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Tue, 18 Jun 2019 21:08:18 +0200 Subject: [PATCH 144/215] Merged cleanup patch proposed by heckflosse, moves exponents negation to a single place. Now it's much easier to read. --- rtengine/filmnegativeproc.cc | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index bd68314e3..f5a231c05 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -172,10 +172,12 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ return; } + // Exponents are expressed as positive in the parameters, so negate them in order + // to get the reciprocals. const std::array exps = { - static_cast(params.redExp), - static_cast(params.greenExp), - static_cast(params.blueExp) + static_cast(-params.redExp), + static_cast(-params.greenExp), + static_cast(-params.blueExp) }; MyTime t1, t2, t3,t4, t5; @@ -244,8 +246,8 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ // Find median values for each channel if (!cvs[c].empty()) { findMinMaxPercentile(cvs[c].data(), cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); - medians[c] = pow_F(rtengine::max(medians[c], 1.f), -exps[c]); - // Determine the channel multipler so that N times the median becomes 65k. This clips away + medians[c] = pow_F(rtengine::max(medians[c], 1.f), exps[c]); + // Determine the channel multiplier so that N times the median becomes 65k. This clips away // the values in the dark border surrounding the negative (due to the film holder, for example), // the reciprocal of which have blown up to stellar values. mults[c] = MAX_OUT_VALUE / (medians[c] * 24.f); @@ -274,10 +276,9 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ #endif for (int row = 0; row < H; ++row) { int col = 0; - // Exponents are expressed as positive in the parameters, so negate them in order - // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. - const float exps0 = -exps[FC(row, col)]; - const float exps1 = -exps[FC(row, col + 1)]; + // Avoid trouble with zeroes, minimum pixel value is 1. + const float exps0 = exps[FC(row, col)]; + const float exps1 = exps[FC(row, col + 1)]; const float mult0 = mults[FC(row, col)]; const float mult1 = mults[FC(row, col + 1)]; #ifdef __SSE2__ @@ -306,15 +307,14 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ #endif for (int row = 0; row < H; row ++) { int col = 0; - // Exponents are expressed as positive in the parameters, so negate them in order - // to get the reciprocals. Avoid trouble with zeroes, minimum pixel value is 1. + // Avoid trouble with zeroes, minimum pixel value is 1. const std::array expsc = { - -exps[ri->XTRANSFC(row, 0)], - -exps[ri->XTRANSFC(row, 1)], - -exps[ri->XTRANSFC(row, 2)], - -exps[ri->XTRANSFC(row, 3)], - -exps[ri->XTRANSFC(row, 4)], - -exps[ri->XTRANSFC(row, 5)] + exps[ri->XTRANSFC(row, 0)], + exps[ri->XTRANSFC(row, 1)], + exps[ri->XTRANSFC(row, 2)], + exps[ri->XTRANSFC(row, 3)], + exps[ri->XTRANSFC(row, 4)], + exps[ri->XTRANSFC(row, 5)] }; const std::array multsc = { mults[ri->XTRANSFC(row, 0)], From 789edc5bd32c9a604ce71544836d06695b576c49 Mon Sep 17 00:00:00 2001 From: Eric Jiang Date: Tue, 18 Jun 2019 18:02:10 -0700 Subject: [PATCH 145/215] Apply code-cleanup patch from @Floessie See https://github.com/Beep6581/RawTherapee/pull/5325 --- rtengine/imagedata.cc | 73 +++++++++++++++++++++-------------------- rtengine/imagedata.h | 2 +- rtgui/cacheimagedata.cc | 37 +++++++++++++++++---- 3 files changed, 70 insertions(+), 42 deletions(-) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index 26fe80f03..faa7ad5ed 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -69,37 +69,40 @@ FramesMetaData* FramesMetaData::fromFile (const Glib::ustring& fname, std::uniqu return new FramesData (fname, std::move(rml), firstFrameOnly); } -FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* rootDir, rtexif::TagDirectory* firstRootDir) - : frameRootDir(frameRootDir_), iptc(nullptr), time(), timeStamp(), iso_speed(0), aperture(0.), focal_len(0.), focal_len35mm(0.), focus_dist(0.f), - shutter(0.), expcomp(0.), make("Unknown"), model("Unknown"), orientation("Unknown"), rating(0), lens("Unknown"), - sampleFormat(IIOSF_UNKNOWN), isPixelShift(false), isHDR(false) +FrameData::FrameData(rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* rootDir, rtexif::TagDirectory* firstRootDir) : + frameRootDir(frameRootDir_), + iptc(nullptr), + time{}, + timeStamp{}, + iso_speed(0), + aperture(0.), + focal_len(0.), + focal_len35mm(0.), + focus_dist(0.f), + shutter(0.), + expcomp(0.), + make("Unknown"), + model("Unknown"), + orientation("Unknown"), + rating(0), + lens("Unknown"), + sampleFormat(IIOSF_UNKNOWN), + isPixelShift(false), + isHDR(false) { - memset (&time, 0, sizeof(time)); - if (!frameRootDir) { return; } - rtexif::Tag* tag; - rtexif::TagDirectory* newFrameRootDir = frameRootDir; - - memset(&time, 0, sizeof(time)); - timeStamp = 0; - iso_speed = 0; - aperture = 0.0; - focal_len = 0.0; - focal_len35mm = 0.0; - focus_dist = 0.0f; - shutter = 0.0; - expcomp = 0.0; make.clear(); model.clear(); serial.clear(); orientation.clear(); lens.clear(); - rating = 0; - tag = newFrameRootDir->findTag("Make"); + rtexif::TagDirectory* newFrameRootDir = frameRootDir; + + rtexif::Tag* tag = newFrameRootDir->findTag("Make"); if (!tag) { newFrameRootDir = rootDir; tag = newFrameRootDir->findTag("Make"); @@ -198,17 +201,11 @@ FrameData::FrameData (rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* } char sXMPRating[64]; if (newFrameRootDir->getXMPTagValue("xmp:Rating", sXMPRating)) { - rating = atoi(sXMPRating); - } - // guard against out-of-range values - if (rating > 5) { - rating = 5; - } - // Currently, Rating=-1 is not supported. A value of -1 should mean - // "Rejected" according to the specification. Maybe in the future, Rating=-1 - // sets InTrash=true? - if (rating < 0) { - rating = 0; + // Guard against out-of-range values (<0, >5) + rating = rtengine::max(0, rtengine::min(5, atoi(sXMPRating))); + // Currently, Rating=-1 is not supported. A value of -1 should mean + // "Rejected" according to the specification. Maybe in the future, Rating=-1 + // sets InTrash=true? } tag = newFrameRootDir->findTagUpward("MakerNote"); @@ -1197,15 +1194,21 @@ std::string FramesData::getOrientation(unsigned int frame) const } ); } -int FramesData::getRating (unsigned int frame) const + +int FramesData::getRating(unsigned int frame) const { - return frames.empty() || frame >= frames.size() ? 0 : frames.at(frame)->getRating (); + return getFromFrame( + frames, + frame, + [](const FrameData& frame_data) + { + return frame_data.getRating(); + } + ); } - //------inherited functions--------------// - std::string FramesMetaData::apertureToString (double aperture) { diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index 097a5cc80..d06820296 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -127,7 +127,7 @@ public: std::string getModel (unsigned int frame = 0) const override; std::string getLens (unsigned int frame = 0) const override; std::string getSerialNumber (unsigned int frame = 0) const; - std::string getOrientation (unsigned int frame = 0) const; + std::string getOrientation (unsigned int frame = 0) const override; int getRating (unsigned int frame = 0) const override; }; diff --git a/rtgui/cacheimagedata.cc b/rtgui/cacheimagedata.cc index 47318990d..1756f523b 100644 --- a/rtgui/cacheimagedata.cc +++ b/rtgui/cacheimagedata.cc @@ -24,12 +24,37 @@ #include "../rtengine/procparams.h" -CacheImageData::CacheImageData () - : md5(""), supported(false), format(FT_Invalid), rankOld(-1), inTrashOld(false), recentlySaved(false), - timeValid(false), year(0), month(0), day(0), hour(0), min(0), sec(0), exifValid(false), frameCount(1), - fnumber(0.0), shutter(0.0), focalLen(0.0), focalLen35mm(0.0), focusDist(0.f), iso(0), rating(0), isHDR (false), - isPixelShift (false), sensortype(rtengine::ST_NONE), sampleFormat(rtengine::IIOSF_UNKNOWN), - redAWBMul(-1.0), greenAWBMul(-1.0), blueAWBMul(-1.0), rotate(0), thumbImgType(0) +CacheImageData::CacheImageData() : + supported(false), + format(FT_Invalid), + rankOld(-1), + inTrashOld(false), + recentlySaved(false), + timeValid(false), + year(0), + month(0), + day(0), + hour(0), + min(0), + sec(0), + exifValid(false), + frameCount(1), + fnumber(0.0), + shutter(0.0), + focalLen(0.0), + focalLen35mm(0.0), + focusDist(0.f), + iso(0), + rating(0), + isHDR (false), + isPixelShift (false), + sensortype(rtengine::ST_NONE), + sampleFormat(rtengine::IIOSF_UNKNOWN), + redAWBMul(-1.0), + greenAWBMul(-1.0), + blueAWBMul(-1.0), + rotate(0), + thumbImgType(0) { } From 880a6e125e85977f590de24ec60bbe40710193e9 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 21 Jun 2019 07:12:42 +0200 Subject: [PATCH 146/215] Added film negative processing in thumbnails, with correct white balance. Calculated channel averages to restore the same initial conditions as RawImageSource, where get_colorsCoeff is called with forceAutoWB = true. Code still needs refinement and cleanup. --- rtengine/rtthumbnail.cc | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 0a74cf8c2..52691475e 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -39,9 +39,12 @@ #include "settings.h" #include "procparams.h" #include +#define BENCHMARK #include "StopWatch.h" #include "median.h" +#include "rt_algo.h" + namespace { @@ -1167,6 +1170,75 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT Imagefloat* baseImg = resizeTo (rwidth, rheight, interp, thumbImg); + if(isRaw && params.filmNegative.enabled) { + StopWatch stop1("Thumbnail film negative", true); + + // Channel exponents + const float rexp = -params.filmNegative.redExp; + const float gexp = -params.filmNegative.greenExp; + const float bexp = -params.filmNegative.blueExp; + + // Need to calculate channel averages, to fake the same conditions + // found in rawimagesource, where get_ColorsCoeff is called with + // forceAutoWB=true. + float rsum = 0.f, gsum = 0.f, bsum = 0.f; + + // Channel vectors to calculate medians + std::vector rv, gv, bv; + + for (int i = 0; i < rheight; i++) { + for (int j = 0; j < rwidth; j++) { + const float r = baseImg->r(i, j); + const float g = baseImg->g(i, j); + const float b = baseImg->b(i, j); + + rsum += r; + gsum += g; + bsum += b; + + rv.push_back(r); + gv.push_back(g); + bv.push_back(b); + } + } + + const float ravg = rsum / (rheight*rwidth); + const float gavg = gsum / (rheight*rwidth); + const float bavg = bsum / (rheight*rwidth); + + // Shifting current WB multipliers, based on channel averages. + rmi /= (gavg/ravg); + // gmi /= (gAvg/gAvg); green chosen as reference channel + bmi /= (gavg/bavg); + + float rmed, gmed, bmed; + findMinMaxPercentile(rv.data(), rv.size(), 0.5f, rmed, 0.5f, rmed, true); + findMinMaxPercentile(gv.data(), gv.size(), 0.5f, gmed, 0.5f, gmed, true); + findMinMaxPercentile(bv.data(), bv.size(), 0.5f, bmed, 0.5f, bmed, true); + + rmed = powf(rmed, rexp); + gmed = powf(gmed, gexp); + bmed = powf(bmed, bexp); + + const float MAX_OUT_VALUE = 65000.f; + const float rmult = (MAX_OUT_VALUE / (rmed * 24)) ; + const float gmult = (MAX_OUT_VALUE / (gmed * 24)) ; + const float bmult = (MAX_OUT_VALUE / (bmed * 24)) ; + + if (settings->verbose) { + printf("Thumbnail channel medians: %g %g %g\n", rmed, gmed, bmed); + printf("Thumbnail computed multipliers: %g %g %g\n", rmult, gmult, bmult); + } + + for (int i = 0; i < rheight; i++) { + for (int j = 0; j < rwidth; j++) { + baseImg->r(i, j) = CLIP(rmult * powf(baseImg->r (i, j), rexp)); + baseImg->g(i, j) = CLIP(gmult * powf(baseImg->g (i, j), gexp)); + baseImg->b(i, j) = CLIP(bmult * powf(baseImg->b (i, j), bexp)); + } + } + } + if (params.coarse.rotate) { baseImg->rotate (params.coarse.rotate); rwidth = baseImg->getWidth(); From 8c6458daff364af5fb8c621009f0ec1fd417a707 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 21 Jun 2019 20:51:50 +0200 Subject: [PATCH 147/215] Removed "lock channels" CheckButton, it wasn't very useful. Keeping the "(lead)" note on the green channel label, to give a hint that this slider controls the other two as well. --- rtdata/languages/default | 2 -- rtgui/filmnegative.cc | 20 -------------------- rtgui/filmnegative.h | 4 ---- 3 files changed, 26 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 36e441015..79fdc5729 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1642,8 +1642,6 @@ TP_FILMNEGATIVE_BLUE;Blue exponent TP_FILMNEGATIVE_GREEN;Green exponent (lead) TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. TP_FILMNEGATIVE_LABEL;Film Negative -TP_FILMNEGATIVE_LOCKCHANNELS;Lock exponent ratios -TP_FILMNEGATIVE_LOCKCHANNELS_TOOLTIP;Unlock to adjust channel exponents independently. This allows to adapt to the color characteristics of different film types. TP_FILMNEGATIVE_PICK;Pick white and black spots TP_FILMNEGATIVE_RED;Red exponent TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index b6cb9f1c6..36f2e7c34 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -54,18 +54,11 @@ FilmNegative::FilmNegative() : redExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 2.72)), greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 2.0)), blueExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 1.72)), - lockChannels(Gtk::manage(new Gtk::CheckButton(M("TP_FILMNEGATIVE_LOCKCHANNELS")))), spotgrid(Gtk::manage(new Gtk::Grid())), spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))), redRatio(redExp->getValue() / greenExp->getValue()), blueRatio(blueExp->getValue() / greenExp->getValue()) { - redExp->set_sensitive(false); - blueExp->set_sensitive(false); - - lockChannels->set_tooltip_text(M("TP_FILMNEGATIVE_LOCKCHANNELS_TOOLTIP")); - lockChannels->set_active (true); - spotgrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(spotgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); @@ -93,13 +86,11 @@ FilmNegative::FilmNegative() : // spotgrid->attach (*slab, 1, 0, 1, 1); // spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); - pack_start(*lockChannels, Gtk::PACK_SHRINK, 0); pack_start(*redExp, Gtk::PACK_SHRINK, 0); pack_start(*greenExp, Gtk::PACK_SHRINK, 0); pack_start(*blueExp, Gtk::PACK_SHRINK, 0); pack_start(*spotgrid, Gtk::PACK_SHRINK, 0); - lockChannels->signal_toggled().connect(sigc::mem_fun(*this, &FilmNegative::lockChannelsToggled)); spotbutton->signal_toggled().connect(sigc::mem_fun(*this, &FilmNegative::editToggled)); // spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) ); @@ -183,11 +174,7 @@ void FilmNegative::setBatchMode(bool batchMode) { if (batchMode) { spotConn.disconnect(); - lockChannelsConn.disconnect(); removeIfThere(this, spotgrid, false); - removeIfThere(this, lockChannels, false); - redExp->set_sensitive(true); - blueExp->set_sensitive(true); ToolPanel::setBatchMode(batchMode); redExp->showEditedCB(); greenExp->showEditedCB(); @@ -343,10 +330,3 @@ void FilmNegative::editToggled() unsubscribe(); } } - -void FilmNegative::lockChannelsToggled() -{ - const bool unlocked = !lockChannels->get_active(); - redExp->set_sensitive(unlocked); - blueExp->set_sensitive(unlocked); -} diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index b21bc23c3..b8aa338c6 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -71,7 +71,6 @@ public: private: void editToggled(); - void lockChannelsToggled(); const rtengine::ProcEvent evFilmNegativeExponents; const rtengine::ProcEvent evFilmNegativeEnabled; @@ -84,9 +83,6 @@ private: Adjuster* const greenExp; Adjuster* const blueExp; - Gtk::CheckButton* const lockChannels; - sigc::connection lockChannelsConn; - Gtk::Grid* const spotgrid; Gtk::ToggleButton* const spotbutton; sigc::connection spotConn; From 2fde6e562ad52cff16c098651377d20a0e35b8cd Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Sun, 23 Jun 2019 22:21:24 +0200 Subject: [PATCH 148/215] The "dual-spot" exponents calculation feature now honors the master (green) exponent set by the user, and adjusts red and blue based on the ratios between the new, "guessed" exponents. This way, if the user has chosen a different master exponent than the default, using the feature just alters the color characteristic of the conversion, while keeping the same contrast level. --- rtengine/filmnegativeproc.cc | 4 ++-- rtgui/filmnegative.cc | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index f5a231c05..eed10fdc4 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -151,9 +151,9 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s // compared to the ratio in the reference channel (green) for (int ch = 0; ch < 3; ++ch) { if (ch == 1) { - newExps[ch] = 2.f; // Green is the reference channel + newExps[ch] = 1.f; // Green is the reference channel } else { - newExps[ch] = CLAMP(2.f * logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 6.f); + newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 6.f); } } diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 36f2e7c34..d84c1bd0a 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -273,11 +273,12 @@ bool FilmNegative::button1Pressed(int modifierKey) std::array newExps; if (fnp->getFilmNegativeExponents(refSpotCoords[0], refSpotCoords[1], newExps)) { disableListener(); - redExp->setValue(newExps[0]); - greenExp->setValue(newExps[1]); - blueExp->setValue(newExps[2]); - redRatio = redExp->getValue() / greenExp->getValue(); - blueRatio = blueExp->getValue() / greenExp->getValue(); + // Leaving green exponent unchanged, setting red and blue exponents based on + // the ratios between newly calculated exponents. + redRatio = newExps[0] / newExps[1]; + blueRatio = newExps[2] / newExps[1]; + redExp->setValue(greenExp->getValue() * redRatio); + blueExp->setValue(greenExp->getValue() * blueRatio); enableListener(); if (listener && getEnabled()) { From d3fb58a19c96fd88ef307f9691bc3e7ac506ff15 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 24 Jun 2019 19:43:43 +0200 Subject: [PATCH 149/215] clang error on badpixels.cc variable-sized object initializations, fixes #5358 --- rtengine/badpixels.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/rtengine/badpixels.cc b/rtengine/badpixels.cc index 895294cae..376e58b3b 100644 --- a/rtengine/badpixels.cc +++ b/rtengine/badpixels.cc @@ -168,8 +168,11 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co continue; } - float wtdsum[colors] = {}; - float norm[colors] = {}; + float wtdsum[colors]; + float norm[colors]; + for (int c = 0; c < colors; ++c) { + wtdsum[c] = norm[c] = 0.f; + } // diagonal interpolation for (int dx = -1; dx <= 1; dx += 2) { @@ -210,7 +213,10 @@ int RawImageSource::interpolateBadPixelsNColours(const PixelsMap &bitmapBads, co counter++; } else { //backup plan -- simple average. Same method for all channels. We could improve this, but it's really unlikely that this case happens int tot = 0; - float sum[colors] = {}; + float sum[colors]; + for (int c = 0; c < colors; ++c) { + sum[c] = 0.f; + } for (int dy = -2; dy <= 2; dy += 2) { for (int dx = -2; dx <= 2; dx += 2) { From 66c9cd61772bddd7b871addd90c4741246024bec Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 24 Jun 2019 19:52:17 +0200 Subject: [PATCH 150/215] Don't scan for darframes/flatfields/cluts if folder is not set, #2238 --- rtengine/dfmanager.cc | 5 ++++- rtengine/dfmanager.h | 2 +- rtengine/ffmanager.cc | 5 ++++- rtengine/ffmanager.h | 2 +- rtgui/filmsimulation.cc | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc index 5f1035a8e..7de712fb5 100644 --- a/rtengine/dfmanager.cc +++ b/rtengine/dfmanager.cc @@ -270,8 +270,11 @@ void dfInfo::updateBadPixelList( RawImage *df ) // ************************* class DFManager ********************************* -void DFManager::init( Glib::ustring pathname ) +void DFManager::init(const Glib::ustring& pathname) { + if (pathname.empty()) { + return; + } std::vector names; auto dir = Gio::File::create_for_path (pathname); diff --git a/rtengine/dfmanager.h b/rtengine/dfmanager.h index 62379187b..2e55c3c22 100644 --- a/rtengine/dfmanager.h +++ b/rtengine/dfmanager.h @@ -78,7 +78,7 @@ protected: class DFManager { public: - void init( Glib::ustring pathname ); + void init(const Glib::ustring &pathname); Glib::ustring getPathname() { return currentPath; diff --git a/rtengine/ffmanager.cc b/rtengine/ffmanager.cc index 6b0302d1e..6e4977076 100644 --- a/rtengine/ffmanager.cc +++ b/rtengine/ffmanager.cc @@ -231,8 +231,11 @@ void ffInfo::updateRawImage() // ************************* class FFManager ********************************* -void FFManager::init( Glib::ustring pathname ) +void FFManager::init(const Glib::ustring& pathname) { + if (pathname.empty()) { + return; + } std::vector names; auto dir = Gio::File::create_for_path (pathname); diff --git a/rtengine/ffmanager.h b/rtengine/ffmanager.h index 7022d1641..9068216ef 100644 --- a/rtengine/ffmanager.h +++ b/rtengine/ffmanager.h @@ -75,7 +75,7 @@ protected: class FFManager { public: - void init( Glib::ustring pathname ); + void init(const Glib::ustring &pathname); Glib::ustring getPathname() { return currentPath; diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index aee06f310..734b46c34 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -300,7 +300,7 @@ ClutComboBox::ClutModel::ClutModel(const Glib::ustring &path) { m_model = Gtk::TreeStore::create (m_columns); //set_model (m_model); - count = parseDir(path); + count = path.empty() ? 0 : parseDir(path); } int ClutComboBox::ClutModel::parseDir(const Glib::ustring& path) From 22f6297a5bd09e04482949ad91c847389e3b6b64 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Mon, 24 Jun 2019 21:48:06 +0200 Subject: [PATCH 151/215] Removed clipping check for values above 65535 (reverts commit 9156572). It was just a defensive check to avoid hitting corner cases like this: 1e4f9ac , that is already fixed elsewhere. The check is now causing problems with the dual-spot feature, because after clipping, the formula cannot be undone to get back the original raw values. Since there are no known issues caused by raw values >65k, i'm removing the check until there will be a good reason to re-introduce it. --- rtengine/filmnegativeproc.cc | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index eed10fdc4..6e2f4e37c 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -268,7 +268,6 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ if (ri->getSensorType() == ST_BAYER) { #ifdef __SSE2__ const vfloat onev = F2V(1.f); - const vfloat c65535v = F2V(65535.f); #endif #ifdef _OPENMP @@ -285,21 +284,20 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ const vfloat expsv = _mm_setr_ps(exps0, exps1, exps0, exps1); const vfloat multsv = _mm_setr_ps(mult0, mult1, mult0, mult1); for (; col < W - 3; col += 4) { - STVFU(rawData[row][col], vminf(multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv), c65535v)); + STVFU(rawData[row][col], multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv)); } #endif // __SSE2__ for (; col < W - 1; col += 2) { - rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), 65535.f); - rawData[row][col + 1] = rtengine::min(mult1 * pow_F(rtengine::max(rawData[row][col + 1], 1.f), exps1), 65535.f); + rawData[row][col] = mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0); + rawData[row][col + 1] = mult1 * pow_F(rtengine::max(rawData[row][col + 1], 1.f), exps1); } if (col < W) { - rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), 65535.f); + rawData[row][col] = mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0); } } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { #ifdef __SSE2__ const vfloat onev = F2V(1.f); - const vfloat c65535v = F2V(65535.f); #endif #ifdef _OPENMP @@ -332,18 +330,18 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ const vfloat multsv1 = _mm_setr_ps(multsc[4], multsc[5], multsc[0], multsc[1]); const vfloat multsv2 = _mm_setr_ps(multsc[2], multsc[3], multsc[4], multsc[5]); for (; col < W - 11; col += 12) { - STVFU(rawData[row][col], vminf(multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0), c65535v)); - STVFU(rawData[row][col + 4], vminf(multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1), c65535v)); - STVFU(rawData[row][col + 8], vminf(multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2), c65535v)); + STVFU(rawData[row][col], multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0)); + STVFU(rawData[row][col + 4], multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1)); + STVFU(rawData[row][col + 8], multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2)); } #endif // __SSE2__ for (; col < W - 5; col += 6) { for (int c = 0; c < 6; ++c) { - rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); + rawData[row][col + c] = multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]); } } for (int c = 0; col < W; col++, c++) { - rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), 65535.f); + rawData[row][col + c] = multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]); } } } From 157d83d1694754d837f30ce85314806e950b444b Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Wed, 26 Jun 2019 00:14:03 +0200 Subject: [PATCH 152/215] Partially reverting my last commit. When using large exponents, huge raw values could cause segfaults in ImProcFunctions:rgbProc (specifically in shadowToneCurve), and in Amaze demosaic. Re-added the clipping check on raw values, but with a higher threshold. This way, raw clipping is less frequent in highlight areas (so those can be used as spots for exponents calculation), but the threshold is low enough to avoid the segfaults. Not a very clean solution, need to find a better one... --- rtengine/filmnegativeproc.cc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 6e2f4e37c..555a47506 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -263,11 +263,14 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ printf("Median calc time us: %d\n", t3.etime(t2)); } + constexpr float CLIP_VAL = 20 * MAX_OUT_VALUE; + t3.set(); if (ri->getSensorType() == ST_BAYER) { #ifdef __SSE2__ const vfloat onev = F2V(1.f); + const vfloat clipv = F2V(CLIP_VAL); #endif #ifdef _OPENMP @@ -284,20 +287,21 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ const vfloat expsv = _mm_setr_ps(exps0, exps1, exps0, exps1); const vfloat multsv = _mm_setr_ps(mult0, mult1, mult0, mult1); for (; col < W - 3; col += 4) { - STVFU(rawData[row][col], multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv)); + STVFU(rawData[row][col], vminf(multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv), clipv)); } #endif // __SSE2__ for (; col < W - 1; col += 2) { - rawData[row][col] = mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0); - rawData[row][col + 1] = mult1 * pow_F(rtengine::max(rawData[row][col + 1], 1.f), exps1); + rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), CLIP_VAL); + rawData[row][col + 1] = rtengine::min(mult1 * pow_F(rtengine::max(rawData[row][col + 1], 1.f), exps1), CLIP_VAL); } if (col < W) { - rawData[row][col] = mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0); + rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), CLIP_VAL); } } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { #ifdef __SSE2__ const vfloat onev = F2V(1.f); + const vfloat clipv = F2V(CLIP_VAL); #endif #ifdef _OPENMP @@ -330,18 +334,18 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ const vfloat multsv1 = _mm_setr_ps(multsc[4], multsc[5], multsc[0], multsc[1]); const vfloat multsv2 = _mm_setr_ps(multsc[2], multsc[3], multsc[4], multsc[5]); for (; col < W - 11; col += 12) { - STVFU(rawData[row][col], multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0)); - STVFU(rawData[row][col + 4], multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1)); - STVFU(rawData[row][col + 8], multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2)); + STVFU(rawData[row][col], vminf(multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0), clipv)); + STVFU(rawData[row][col + 4], vminf(multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1), clipv)); + STVFU(rawData[row][col + 8], vminf(multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2), clipv)); } #endif // __SSE2__ for (; col < W - 5; col += 6) { for (int c = 0; c < 6; ++c) { - rawData[row][col + c] = multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]); + rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), CLIP_VAL); } } for (int c = 0; col < W; col++, c++) { - rawData[row][col + c] = multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]); + rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), CLIP_VAL); } } } From 63a6e1b79cc4a6033c2fcb77b74d78857423829b Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Wed, 26 Jun 2019 01:06:48 +0200 Subject: [PATCH 153/215] Changed GUI behaviour so that the first slider sets the reference exponent (green channel), and the other two sliders set the ratio of the red/blue exponent to the reference one. This should be more intuitive, and less confusing when clicking on the reset-to-default slider button. Now the first slider sets the general contrast, while the other two affect the color. Lowered exponent slider max value from 6 to 4 (it was too large to be useful). New sliders are log-scale. --- rtdata/languages/default | 6 +-- rtgui/filmnegative.cc | 87 +++++++++++++++++----------------------- rtgui/filmnegative.h | 7 +--- 3 files changed, 42 insertions(+), 58 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 79fdc5729..63c877bbf 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1638,12 +1638,12 @@ TP_EXPOSURE_TCMODE_STANDARD;Standard TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -TP_FILMNEGATIVE_BLUE;Blue exponent -TP_FILMNEGATIVE_GREEN;Green exponent (lead) +TP_FILMNEGATIVE_BLUE;Blue ratio +TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. TP_FILMNEGATIVE_LABEL;Film Negative TP_FILMNEGATIVE_PICK;Pick white and black spots -TP_FILMNEGATIVE_RED;Red exponent +TP_FILMNEGATIVE_RED;Red ratio TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots TP_FILMSIMULATION_LABEL;Film Simulation 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? diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index d84c1bd0a..129af3034 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -30,11 +30,15 @@ namespace { -Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring& label, double defaultVal) +Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring& label, double minV, double maxV, double defaultVal, bool log) { - Adjuster* const adj = Gtk::manage(new Adjuster(label, 0.3, 6, 0.001, defaultVal)); // exponent + Adjuster* const adj = Gtk::manage(new Adjuster(label, minV, maxV, 0.001, defaultVal)); // exponent adj->setAdjusterListener(listener); + if (log) { + adj->setLogScale(10, minV, false); + } + if (adj->delay < options.adjusterMaxDelay) { adj->delay = options.adjusterMaxDelay; } @@ -51,13 +55,11 @@ FilmNegative::FilmNegative() : evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS")), evFilmNegativeEnabled(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED")), fnp(nullptr), - redExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 2.72)), - greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 2.0)), - blueExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 1.72)), + greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 2.0, false)), + redRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 0.3, 3, 1.36, true)), + blueRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 0.3, 3, 0.86, true)), spotgrid(Gtk::manage(new Gtk::Grid())), - spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))), - redRatio(redExp->getValue() / greenExp->getValue()), - blueRatio(blueExp->getValue() / greenExp->getValue()) + spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))) { spotgrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(spotgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); @@ -86,9 +88,9 @@ FilmNegative::FilmNegative() : // spotgrid->attach (*slab, 1, 0, 1, 1); // spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); - pack_start(*redExp, Gtk::PACK_SHRINK, 0); pack_start(*greenExp, Gtk::PACK_SHRINK, 0); - pack_start(*blueExp, Gtk::PACK_SHRINK, 0); + pack_start(*redRatio, Gtk::PACK_SHRINK, 0); + pack_start(*blueRatio, Gtk::PACK_SHRINK, 0); pack_start(*spotgrid, Gtk::PACK_SHRINK, 0); spotbutton->signal_toggled().connect(sigc::mem_fun(*this, &FilmNegative::editToggled)); @@ -124,49 +126,49 @@ void FilmNegative::read(const rtengine::procparams::ProcParams* pp, const Params disableListener(); if (pedited) { - redExp->setEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); + redRatio->setEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); greenExp->setEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); - blueExp->setEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); + blueRatio->setEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); set_inconsistent(multiImage && !pedited->filmNegative.enabled); } setEnabled(pp->filmNegative.enabled); - redExp->setValue(pp->filmNegative.redExp); + redRatio->setValue(pp->filmNegative.redExp / pp->filmNegative.greenExp); greenExp->setValue(pp->filmNegative.greenExp); - blueExp->setValue(pp->filmNegative.blueExp); + blueRatio->setValue(pp->filmNegative.blueExp / pp->filmNegative.greenExp); enableListener(); } void FilmNegative::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) { - pp->filmNegative.redExp = redExp->getValue(); + pp->filmNegative.redExp = greenExp->getValue() * redRatio->getValue(); pp->filmNegative.greenExp = greenExp->getValue(); - pp->filmNegative.blueExp = blueExp->getValue(); + pp->filmNegative.blueExp = greenExp->getValue() * blueRatio->getValue(); pp->filmNegative.enabled = getEnabled(); if (pedited) { - pedited->filmNegative.redExp = redExp->getEditedState(); + pedited->filmNegative.redExp = greenExp->getEditedState() || redRatio->getEditedState(); pedited->filmNegative.greenExp = greenExp->getEditedState(); - pedited->filmNegative.blueExp = blueExp->getEditedState(); + pedited->filmNegative.blueExp = greenExp->getEditedState() || blueRatio->getEditedState(); pedited->filmNegative.enabled = !get_inconsistent(); } } void FilmNegative::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) { - redExp->setValue(defParams->filmNegative.redExp); + redRatio->setValue(defParams->filmNegative.redExp / defParams->filmNegative.greenExp); greenExp->setValue(defParams->filmNegative.greenExp); - blueExp->setValue(defParams->filmNegative.blueExp); + blueRatio->setValue(defParams->filmNegative.blueExp / defParams->filmNegative.greenExp); if (pedited) { - redExp->setDefaultEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); + redRatio->setDefaultEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); greenExp->setDefaultEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); - blueExp->setDefaultEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); + blueRatio->setDefaultEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); } else { - redExp->setDefaultEditedState(Irrelevant); + redRatio->setDefaultEditedState(Irrelevant); greenExp->setDefaultEditedState(Irrelevant); - blueExp->setDefaultEditedState(Irrelevant); + blueRatio->setDefaultEditedState(Irrelevant); } } @@ -176,37 +178,24 @@ void FilmNegative::setBatchMode(bool batchMode) spotConn.disconnect(); removeIfThere(this, spotgrid, false); ToolPanel::setBatchMode(batchMode); - redExp->showEditedCB(); + redRatio->showEditedCB(); greenExp->showEditedCB(); - blueExp->showEditedCB(); + blueRatio->showEditedCB(); } } void FilmNegative::adjusterChanged(Adjuster* a, double newval) { if (listener) { - if (a == redExp || a == greenExp || a == blueExp) { - disableListener(); - if (a == greenExp) { - redExp->setValue(a->getValue() * redRatio); - blueExp->setValue(a->getValue() * blueRatio); - } - else if (a == redExp) { - redRatio = newval / greenExp->getValue(); - } - else if (a == blueExp) { - blueRatio = newval / greenExp->getValue(); - } - enableListener(); - + if (a == redRatio || a == greenExp || a == blueRatio) { if (getEnabled()) { listener->panelChanged( evFilmNegativeExponents, Glib::ustring::compose( "R=%1 ; G=%2 ; B=%3", - redExp->getTextValue(), - greenExp->getTextValue(), - blueExp->getTextValue() + greenExp->getValue() * redRatio->getValue(), + greenExp->getValue(), + greenExp->getValue() * blueRatio->getValue() ) ); } @@ -275,10 +264,8 @@ bool FilmNegative::button1Pressed(int modifierKey) disableListener(); // Leaving green exponent unchanged, setting red and blue exponents based on // the ratios between newly calculated exponents. - redRatio = newExps[0] / newExps[1]; - blueRatio = newExps[2] / newExps[1]; - redExp->setValue(greenExp->getValue() * redRatio); - blueExp->setValue(greenExp->getValue() * blueRatio); + redRatio->setValue(newExps[0] / newExps[1]); + blueRatio->setValue(newExps[2] / newExps[1]); enableListener(); if (listener && getEnabled()) { @@ -286,9 +273,9 @@ bool FilmNegative::button1Pressed(int modifierKey) evFilmNegativeExponents, Glib::ustring::compose( "R=%1 ; G=%2 ; B=%3", - redExp->getTextValue(), - greenExp->getTextValue(), - blueExp->getTextValue() + greenExp->getValue() * redRatio->getValue(), + greenExp->getValue(), + greenExp->getValue() * blueRatio->getValue() ) ); } diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index b8aa338c6..7de1bd56a 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -79,14 +79,11 @@ private: FilmNegProvider* fnp; - Adjuster* const redExp; Adjuster* const greenExp; - Adjuster* const blueExp; + Adjuster* const redRatio; + Adjuster* const blueRatio; Gtk::Grid* const spotgrid; Gtk::ToggleButton* const spotbutton; sigc::connection spotConn; - - double redRatio; - double blueRatio; }; From e76d98fb9fae610ca34f1f33cf0c7bf18dfe001a Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 26 Jun 2019 20:49:07 +0200 Subject: [PATCH 154/215] raw crop for Sony DSC-RX0M2 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 9e6ec49b6..607ff506a 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -2364,6 +2364,11 @@ Camera constants: "ranges": { "black": 512, "white": 16300 } }, + { // Quality C, correction for frame width + "make_model": [ "Sony DSC-RX0M2" ], + "raw_crop": [ 0, 0, -8, 0 ] // 8 rightmost columns are garbage + }, + { // Quality B, correction for frame width, crop modes covered "make_model": [ "Sony ILCE-7RM2", "Sony DSC-RX1RM2" ], "dcraw_matrix": [ 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 ], // DNG_v9.1.1 D65 From a652752c2fd8e8454a91488398ea854a5c7be703 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 26 Jun 2019 22:12:38 +0200 Subject: [PATCH 155/215] raw crops for FUJIFILM X-T30 and Sony DSC-HX99 --- rtengine/camconst.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 607ff506a..abdf84c7d 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1327,7 +1327,7 @@ Camera constants: }, { // Quality C, only raw crop - "make_model": [ "FUJIFILM X-T3" ], + "make_model": [ "FUJIFILM X-T3", "FUJIFILM X-T30" ], "raw_crop": [ 0, 5, 6252, 4176] }, @@ -2436,6 +2436,11 @@ Camera constants: "ranges": { "black": 512, "white": 16300 } }, + { // Quality C + "make_model": [ "Sony DSC-HX99" ], + "raw_crop": [ 0, 0, -8, 0 ] // 8 rightmost columns are garbage + }, + { // Quality C "make_model": [ "Sony DSC-R1" ], "raw_crop": [ 0, 0, 3924, 2608 ] From 9ea964f5d95bd599ec21e231df4b315b23942859 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 27 Jun 2019 15:32:28 +0200 Subject: [PATCH 156/215] camconst.json: some raw crops and white levels --- rtengine/camconst.json | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index abdf84c7d..396bdcf30 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1290,6 +1290,11 @@ Camera constants: "ranges": { "white": 16100 } }, + { // Quality C + "make_model": "FUJIFILM X-A5", + "ranges": { "white": 16100 } + }, + { // Quality B "make_model": "FUJIFILM X-A10", "dcraw_matrix": [ 11540,-4999,-991,-2949,10963,2278,-382,1049,5605 ], // DNGv9.12 D65 @@ -1305,6 +1310,11 @@ Camera constants: "ranges": { "white": 16100 } }, + { // Quality C + "make_model": [ "FUJIFILM X-T100" ], + "ranges": { "white": 16100 } + }, + { // Quality B "make_model": "FUJIFILM X-E2S", "dcraw_matrix": [ 11562,-5118,-961,-3022,11007,2311,-525,1569,6097 ], // DNG_v9.4 D65 @@ -1677,6 +1687,11 @@ Camera constants: "ranges": { "white": 4040 } // nominal 4056 }, + { // Quality C + "make_model": [ "OLYMPUS E-PL9" ], + "ranges": { "white": 4080 } // nominal 4093 + }, + { // Quality B, with long exposure noise reduction White Level gets WL-BL = around 256_12-bit levels less "make_model": [ "OLYMPUS E-PL7", "OLYMPUS E-PL8" ], "global_green_equilibration" : true, @@ -2365,7 +2380,7 @@ Camera constants: }, { // Quality C, correction for frame width - "make_model": [ "Sony DSC-RX0M2" ], + "make_model": [ "Sony DSC-RX0", "Sony DSC-RX0M2" ], "raw_crop": [ 0, 0, -8, 0 ] // 8 rightmost columns are garbage }, @@ -2443,7 +2458,8 @@ Camera constants: { // Quality C "make_model": [ "Sony DSC-R1" ], - "raw_crop": [ 0, 0, 3924, 2608 ] + "raw_crop": [ 0, 0, 3924, 2608 ], + "ranges": { "white": 16368 } }, { // Quality A From a3004bb2b8be6242b927a048d3f68a77456e80fc Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Thu, 27 Jun 2019 22:03:59 +0200 Subject: [PATCH 157/215] Added SSE2 optimization in film negative thumbnail processing. --- rtengine/rtthumbnail.cc | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 52691475e..7e4544a0d 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1229,12 +1229,33 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT printf("Thumbnail channel medians: %g %g %g\n", rmed, gmed, bmed); printf("Thumbnail computed multipliers: %g %g %g\n", rmult, gmult, bmult); } - + +#ifdef __SSE2__ + const vfloat clipv = F2V(MAXVALF); + const vfloat rexpv = F2V(rexp); + const vfloat gexpv = F2V(gexp); + const vfloat bexpv = F2V(bexp); + const vfloat rmultv = F2V(rmult); + const vfloat gmultv = F2V(gmult); + const vfloat bmultv = F2V(bmult); +#endif + for (int i = 0; i < rheight; i++) { - for (int j = 0; j < rwidth; j++) { - baseImg->r(i, j) = CLIP(rmult * powf(baseImg->r (i, j), rexp)); - baseImg->g(i, j) = CLIP(gmult * powf(baseImg->g (i, j), gexp)); - baseImg->b(i, j) = CLIP(bmult * powf(baseImg->b (i, j), bexp)); + float *rline = baseImg->r(i); + float *gline = baseImg->g(i); + float *bline = baseImg->b(i); + int j = 0; +#ifdef __SSE2__ + for (; j < rwidth - 3; j +=4) { + STVFU(rline[j], vminf(rmultv * pow_F(LVFU(rline[j]), rexpv), clipv)); + STVFU(gline[j], vminf(gmultv * pow_F(LVFU(gline[j]), gexpv), clipv)); + STVFU(bline[j], vminf(bmultv * pow_F(LVFU(bline[j]), bexpv), clipv)); + } +#endif + for (; j < rwidth; ++j) { + rline[j] = CLIP(rmult * powf(rline[j], rexp)); + gline[j] = CLIP(gmult * powf(gline[j], gexp)); + bline[j] = CLIP(bmult * powf(bline[j], bexp)); } } } From 4eb7240a41890c55c1f4d34c2661b14e226583c2 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 27 Jun 2019 22:39:36 +0200 Subject: [PATCH 158/215] change granularity of raw black point adjusters from 0.1 to 1 --- rtgui/bayerrawexposure.cc | 8 ++++---- rtgui/xtransrawexposure.cc | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtgui/bayerrawexposure.cc b/rtgui/bayerrawexposure.cc index 73c96bcf1..f9027c09f 100644 --- a/rtgui/bayerrawexposure.cc +++ b/rtgui/bayerrawexposure.cc @@ -28,7 +28,7 @@ using namespace rtengine::procparams; BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposure", M("TP_EXPOS_BLACKPOINT_LABEL"), options.prevdemo != PD_Sidecar) { - PexBlack1 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_1"), -2048, 2048, 0.1, 0)); //black level + PexBlack1 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_1"), -2048, 2048, 1.0, 0)); //black level PexBlack1->setAdjusterListener (this); if (PexBlack1->delay < options.adjusterMaxDelay) { @@ -36,7 +36,7 @@ BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposur } PexBlack1->show(); - PexBlack2 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_2"), -2048, 2048, 0.1, 0)); //black level + PexBlack2 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_2"), -2048, 2048, 1.0, 0)); //black level PexBlack2->setAdjusterListener (this); if (PexBlack2->delay < options.adjusterMaxDelay) { @@ -44,7 +44,7 @@ BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposur } PexBlack2->show(); - PexBlack3 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_3"), -2048, 2048, 0.1, 0)); //black level + PexBlack3 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_3"), -2048, 2048, 1.0, 0)); //black level PexBlack3->setAdjusterListener (this); if (PexBlack3->delay < options.adjusterMaxDelay) { @@ -52,7 +52,7 @@ BayerRAWExposure::BayerRAWExposure () : FoldableToolPanel(this, "bayerrawexposur } PexBlack3->show(); - PexBlack0 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_0"), -2048, 2048, 0.1, 0)); //black level + PexBlack0 = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_0"), -2048, 2048, 1.0, 0)); //black level PexBlack0->setAdjusterListener (this); if (PexBlack0->delay < options.adjusterMaxDelay) { diff --git a/rtgui/xtransrawexposure.cc b/rtgui/xtransrawexposure.cc index a863ecfea..93f6ee202 100644 --- a/rtgui/xtransrawexposure.cc +++ b/rtgui/xtransrawexposure.cc @@ -30,7 +30,7 @@ using namespace rtengine::procparams; XTransRAWExposure::XTransRAWExposure () : FoldableToolPanel(this, "xtransrawexposure", M("TP_EXPOS_BLACKPOINT_LABEL")) { - PexBlackRed = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_RED"), -2048, 2048, 0.1, 0)); //black level + PexBlackRed = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_RED"), -2048, 2048, 1.0, 0)); //black level PexBlackRed->setAdjusterListener (this); if (PexBlackRed->delay < options.adjusterMaxDelay) { @@ -38,7 +38,7 @@ XTransRAWExposure::XTransRAWExposure () : FoldableToolPanel(this, "xtransrawexpo } PexBlackRed->show(); - PexBlackGreen = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_GREEN"), -2048, 2048, 0.1, 0)); //black level + PexBlackGreen = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_GREEN"), -2048, 2048, 1.0, 0)); //black level PexBlackGreen->setAdjusterListener (this); if (PexBlackGreen->delay < options.adjusterMaxDelay) { @@ -46,7 +46,7 @@ XTransRAWExposure::XTransRAWExposure () : FoldableToolPanel(this, "xtransrawexpo } PexBlackGreen->show(); - PexBlackBlue = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_BLUE"), -2048, 2048, 0.1, 0)); //black level + PexBlackBlue = Gtk::manage(new Adjuster (M("TP_RAWEXPOS_BLACK_BLUE"), -2048, 2048, 1.0, 0)); //black level PexBlackBlue->setAdjusterListener (this); if (PexBlackBlue->delay < options.adjusterMaxDelay) { From 938fc63dd0b25200cd4732c10aaa4ab2b51b718e Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Thu, 27 Jun 2019 23:01:51 +0200 Subject: [PATCH 159/215] Replaced `powf` calls with the optimized `pow_F` macro (which also works for the non-SSE2 case). --- rtengine/rtthumbnail.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 7e4544a0d..60052f783 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1253,9 +1253,9 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT } #endif for (; j < rwidth; ++j) { - rline[j] = CLIP(rmult * powf(rline[j], rexp)); - gline[j] = CLIP(gmult * powf(gline[j], gexp)); - bline[j] = CLIP(bmult * powf(bline[j], bexp)); + rline[j] = CLIP(rmult * pow_F(rline[j], rexp)); + gline[j] = CLIP(gmult * pow_F(gline[j], gexp)); + bline[j] = CLIP(bmult * pow_F(bline[j], bexp)); } } } From d7bab9ba9f7981b3e1710f88ec25df9200c5e11d Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 28 Jun 2019 20:44:40 +0200 Subject: [PATCH 160/215] Changed `channelsAverage()` to sample values from the original data in the RawImage instance, taking into account black levels. This lets me completely revert my awful commit 22f6297a5 and clip values to 65535, as it should be to avoid trouble downstream. --- rtengine/filmnegativeproc.cc | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 555a47506..4abe32b86 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -49,6 +49,7 @@ bool channelsAvg( int width, int height, array2D& rawData, + const float* cblacksom, rtengine::Coord spotPos, int spotSize, const rtengine::procparams::FilmNegativeParams& params, @@ -83,13 +84,9 @@ bool channelsAvg( ++pxCount[ch]; - // If film negative is currently enabled, undo the effect by elevating to 1/exp, - // in order to sample the original, linear value - if (params.enabled) { - avgs[ch] += powf(rawData[r][c], -1.f / (ch == 0 ? params.redExp : ch == 1 ? params.greenExp : params.blueExp)); - } else { - avgs[ch] += rawData[r][c]; - } + // Sample the original unprocessed values from RawImage, subtracting black levels. + // Scaling is irrelevant, as we are only interested in the ratio between two spots. + avgs[ch] += ri->data[r][c] - cblacksom[ch]; } } @@ -118,13 +115,13 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s // Sample first spot transformPosition(spotA.x, spotA.y, tran, spot.x, spot.y); - if (!channelsAvg(ri, W, H, rawData, spot, spotSize, currentParams, clearVals)) { + if (!channelsAvg(ri, W, H, rawData, cblacksom, spot, spotSize, currentParams, clearVals)) { return false; } // Sample second spot transformPosition(spotB.x, spotB.y, tran, spot.x, spot.y); - if (!channelsAvg(ri, W, H, rawData, spot, spotSize, currentParams, denseVals)) { + if (!channelsAvg(ri, W, H, rawData, cblacksom, spot, spotSize, currentParams, denseVals)) { return false; } @@ -263,7 +260,7 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ printf("Median calc time us: %d\n", t3.etime(t2)); } - constexpr float CLIP_VAL = 20 * MAX_OUT_VALUE; + constexpr float CLIP_VAL = 65535.f; t3.set(); From 4e09fd4f212efd3e8b0606302745beb1ef42d066 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 28 Jun 2019 21:29:06 +0200 Subject: [PATCH 161/215] Changed master exponent default from 2.0 to 1.5; it was too large for high-contrast negatives. Set all sliders as log-scale, centered at 1.0, so that reasonable values can be fine-tuned more easily. --- rtengine/filmnegativeproc.cc | 2 +- rtengine/procparams.cc | 6 +++--- rtgui/filmnegative.cc | 15 ++++++--------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 4abe32b86..f3cca1245 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -150,7 +150,7 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s if (ch == 1) { newExps[ch] = 1.f; // Green is the reference channel } else { - newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 6.f); + newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 4.f); } } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 4ed97f767..b35faca94 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2736,9 +2736,9 @@ bool MetaDataParams::operator!=(const MetaDataParams &other) const FilmNegativeParams::FilmNegativeParams() : enabled(false), - redExp(2.72), - greenExp(2.0), - blueExp(1.72) + redExp(2.04), + greenExp(1.5), + blueExp(1.29) { } diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 129af3034..0e6ec9e8f 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -30,14 +30,11 @@ namespace { -Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring& label, double minV, double maxV, double defaultVal, bool log) +Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring& label, double minV, double maxV, double defaultVal) { - Adjuster* const adj = Gtk::manage(new Adjuster(label, minV, maxV, 0.001, defaultVal)); // exponent + Adjuster* const adj = Gtk::manage(new Adjuster(label, minV, maxV, 0.001, defaultVal)); adj->setAdjusterListener(listener); - - if (log) { - adj->setLogScale(10, minV, false); - } + adj->setLogScale(6, 1, true); if (adj->delay < options.adjusterMaxDelay) { adj->delay = options.adjusterMaxDelay; @@ -55,9 +52,9 @@ FilmNegative::FilmNegative() : evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS")), evFilmNegativeEnabled(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED")), fnp(nullptr), - greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 2.0, false)), - redRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 0.3, 3, 1.36, true)), - blueRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 0.3, 3, 0.86, true)), + greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 1.5)), + redRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 0.3, 3, 1.36)), + blueRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 0.3, 3, 0.86)), spotgrid(Gtk::manage(new Gtk::Grid())), spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))) { From 536bbf95aad6a0c6e989aef36773ec14378a5fbd Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 28 Jun 2019 22:17:28 +0200 Subject: [PATCH 162/215] Added comments to clarify the difference between default exponents in procparams and default ratios in the GUI sliders. --- rtgui/filmnegative.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 0e6ec9e8f..4956968e3 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -52,9 +52,9 @@ FilmNegative::FilmNegative() : evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS")), evFilmNegativeEnabled(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED")), fnp(nullptr), - greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 1.5)), - redRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 0.3, 3, 1.36)), - blueRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 0.3, 3, 0.86)), + greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 1.5)), // master exponent (green channel) + redRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 0.3, 3, (2.04 / 1.5))), // ratio of red exponent to master exponent + blueRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 0.3, 3, (1.29 / 1.5))), // ratio of blue exponent to master exponent spotgrid(Gtk::manage(new Gtk::Grid())), spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))) { From 0920f6dfe8d5656429ef36147cf356dd9e491a12 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 28 Jun 2019 22:51:22 +0200 Subject: [PATCH 163/215] rawData is not needed anymore in channelsAvg after commit d7bab9ba --- rtengine/filmnegativeproc.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index f3cca1245..db5705a3c 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -48,7 +48,6 @@ bool channelsAvg( const rtengine::RawImage* ri, int width, int height, - array2D& rawData, const float* cblacksom, rtengine::Coord spotPos, int spotSize, @@ -115,13 +114,13 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s // Sample first spot transformPosition(spotA.x, spotA.y, tran, spot.x, spot.y); - if (!channelsAvg(ri, W, H, rawData, cblacksom, spot, spotSize, currentParams, clearVals)) { + if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, currentParams, clearVals)) { return false; } // Sample second spot transformPosition(spotB.x, spotB.y, tran, spot.x, spot.y); - if (!channelsAvg(ri, W, H, rawData, cblacksom, spot, spotSize, currentParams, denseVals)) { + if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, currentParams, denseVals)) { return false; } From 41e5899f97bd7055f6ba957c490aeb8d2005c5a0 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Fri, 28 Jun 2019 22:54:32 +0200 Subject: [PATCH 164/215] Moved film negative thumbnail processing to own compilation unit --- rtengine/CMakeLists.txt | 1 + rtengine/filmnegativethumb.cc | 139 ++++++++++++++++++++++++++++++++++ rtengine/rtthumbnail.cc | 91 +--------------------- rtengine/rtthumbnail.h | 2 + 4 files changed, 143 insertions(+), 90 deletions(-) create mode 100644 rtengine/filmnegativethumb.cc diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 9ac09fbcc..c5c8afa82 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -62,6 +62,7 @@ set(RTENGINESOURCEFILES fast_demo.cc ffmanager.cc filmnegativeproc.cc + filmnegativethumb.cc flatcurves.cc gauss.cc green_equil_RT.cc diff --git a/rtengine/filmnegativethumb.cc b/rtengine/filmnegativethumb.cc new file mode 100644 index 000000000..8889915e6 --- /dev/null +++ b/rtengine/filmnegativethumb.cc @@ -0,0 +1,139 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2019 Alberto Romei + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include +#include + +#ifdef _OPENMP +#include +#endif + +#include "rtengine.h" +#include "rtthumbnail.h" + +#include "mytime.h" +#include "opthelper.h" +#include "procparams.h" +#include "rt_algo.h" +#include "rtengine.h" +#include "settings.h" +#include "procparams.h" +#define BENCHMARK +#include "StopWatch.h" + +namespace rtengine +{ + +extern const Settings* settings; + +} + +void rtengine::Thumbnail::processFilmNegative( + const procparams::ProcParams ¶ms, + const Imagefloat* baseImg, + const int rwidth, const int rheight, + float &rmi, float &gmi, float &bmi +) { + StopWatch stop1("Thumbnail film negative", true); + + // Channel exponents + const float rexp = -params.filmNegative.redExp; + const float gexp = -params.filmNegative.greenExp; + const float bexp = -params.filmNegative.blueExp; + + // Need to calculate channel averages, to fake the same conditions + // found in rawimagesource, where get_ColorsCoeff is called with + // forceAutoWB=true. + float rsum = 0.f, gsum = 0.f, bsum = 0.f; + + // Channel vectors to calculate medians + std::vector rv, gv, bv; + + for (int i = 0; i < rheight; i++) { + for (int j = 0; j < rwidth; j++) { + const float r = baseImg->r(i, j); + const float g = baseImg->g(i, j); + const float b = baseImg->b(i, j); + + rsum += r; + gsum += g; + bsum += b; + + rv.push_back(r); + gv.push_back(g); + bv.push_back(b); + } + } + + const float ravg = rsum / (rheight*rwidth); + const float gavg = gsum / (rheight*rwidth); + const float bavg = bsum / (rheight*rwidth); + + // Shifting current WB multipliers, based on channel averages. + rmi /= (gavg/ravg); + // gmi /= (gAvg/gAvg); green chosen as reference channel + bmi /= (gavg/bavg); + + float rmed, gmed, bmed; + findMinMaxPercentile(rv.data(), rv.size(), 0.5f, rmed, 0.5f, rmed, true); + findMinMaxPercentile(gv.data(), gv.size(), 0.5f, gmed, 0.5f, gmed, true); + findMinMaxPercentile(bv.data(), bv.size(), 0.5f, bmed, 0.5f, bmed, true); + + rmed = powf(rmed, rexp); + gmed = powf(gmed, gexp); + bmed = powf(bmed, bexp); + + const float MAX_OUT_VALUE = 65000.f; + const float rmult = (MAX_OUT_VALUE / (rmed * 24)) ; + const float gmult = (MAX_OUT_VALUE / (gmed * 24)) ; + const float bmult = (MAX_OUT_VALUE / (bmed * 24)) ; + + if (settings->verbose) { + printf("Thumbnail channel medians: %g %g %g\n", rmed, gmed, bmed); + printf("Thumbnail computed multipliers: %g %g %g\n", rmult, gmult, bmult); + } + +#ifdef __SSE2__ + const vfloat clipv = F2V(MAXVALF); + const vfloat rexpv = F2V(rexp); + const vfloat gexpv = F2V(gexp); + const vfloat bexpv = F2V(bexp); + const vfloat rmultv = F2V(rmult); + const vfloat gmultv = F2V(gmult); + const vfloat bmultv = F2V(bmult); +#endif + + for (int i = 0; i < rheight; i++) { + float *rline = baseImg->r(i); + float *gline = baseImg->g(i); + float *bline = baseImg->b(i); + int j = 0; +#ifdef __SSE2__ + for (; j < rwidth - 3; j +=4) { + STVFU(rline[j], vminf(rmultv * pow_F(LVFU(rline[j]), rexpv), clipv)); + STVFU(gline[j], vminf(gmultv * pow_F(LVFU(gline[j]), gexpv), clipv)); + STVFU(bline[j], vminf(bmultv * pow_F(LVFU(bline[j]), bexpv), clipv)); + } +#endif + for (; j < rwidth; ++j) { + rline[j] = CLIP(rmult * pow_F(rline[j], rexp)); + gline[j] = CLIP(gmult * pow_F(gline[j], gexp)); + bline[j] = CLIP(bmult * pow_F(bline[j], bexp)); + } + } +} \ No newline at end of file diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 60052f783..4b0baa685 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -39,12 +39,9 @@ #include "settings.h" #include "procparams.h" #include -#define BENCHMARK #include "StopWatch.h" #include "median.h" -#include "rt_algo.h" - namespace { @@ -1171,93 +1168,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT Imagefloat* baseImg = resizeTo (rwidth, rheight, interp, thumbImg); if(isRaw && params.filmNegative.enabled) { - StopWatch stop1("Thumbnail film negative", true); - - // Channel exponents - const float rexp = -params.filmNegative.redExp; - const float gexp = -params.filmNegative.greenExp; - const float bexp = -params.filmNegative.blueExp; - - // Need to calculate channel averages, to fake the same conditions - // found in rawimagesource, where get_ColorsCoeff is called with - // forceAutoWB=true. - float rsum = 0.f, gsum = 0.f, bsum = 0.f; - - // Channel vectors to calculate medians - std::vector rv, gv, bv; - - for (int i = 0; i < rheight; i++) { - for (int j = 0; j < rwidth; j++) { - const float r = baseImg->r(i, j); - const float g = baseImg->g(i, j); - const float b = baseImg->b(i, j); - - rsum += r; - gsum += g; - bsum += b; - - rv.push_back(r); - gv.push_back(g); - bv.push_back(b); - } - } - - const float ravg = rsum / (rheight*rwidth); - const float gavg = gsum / (rheight*rwidth); - const float bavg = bsum / (rheight*rwidth); - - // Shifting current WB multipliers, based on channel averages. - rmi /= (gavg/ravg); - // gmi /= (gAvg/gAvg); green chosen as reference channel - bmi /= (gavg/bavg); - - float rmed, gmed, bmed; - findMinMaxPercentile(rv.data(), rv.size(), 0.5f, rmed, 0.5f, rmed, true); - findMinMaxPercentile(gv.data(), gv.size(), 0.5f, gmed, 0.5f, gmed, true); - findMinMaxPercentile(bv.data(), bv.size(), 0.5f, bmed, 0.5f, bmed, true); - - rmed = powf(rmed, rexp); - gmed = powf(gmed, gexp); - bmed = powf(bmed, bexp); - - const float MAX_OUT_VALUE = 65000.f; - const float rmult = (MAX_OUT_VALUE / (rmed * 24)) ; - const float gmult = (MAX_OUT_VALUE / (gmed * 24)) ; - const float bmult = (MAX_OUT_VALUE / (bmed * 24)) ; - - if (settings->verbose) { - printf("Thumbnail channel medians: %g %g %g\n", rmed, gmed, bmed); - printf("Thumbnail computed multipliers: %g %g %g\n", rmult, gmult, bmult); - } - -#ifdef __SSE2__ - const vfloat clipv = F2V(MAXVALF); - const vfloat rexpv = F2V(rexp); - const vfloat gexpv = F2V(gexp); - const vfloat bexpv = F2V(bexp); - const vfloat rmultv = F2V(rmult); - const vfloat gmultv = F2V(gmult); - const vfloat bmultv = F2V(bmult); -#endif - - for (int i = 0; i < rheight; i++) { - float *rline = baseImg->r(i); - float *gline = baseImg->g(i); - float *bline = baseImg->b(i); - int j = 0; -#ifdef __SSE2__ - for (; j < rwidth - 3; j +=4) { - STVFU(rline[j], vminf(rmultv * pow_F(LVFU(rline[j]), rexpv), clipv)); - STVFU(gline[j], vminf(gmultv * pow_F(LVFU(gline[j]), gexpv), clipv)); - STVFU(bline[j], vminf(bmultv * pow_F(LVFU(bline[j]), bexpv), clipv)); - } -#endif - for (; j < rwidth; ++j) { - rline[j] = CLIP(rmult * pow_F(rline[j], rexp)); - gline[j] = CLIP(gmult * pow_F(gline[j], gexp)); - bline[j] = CLIP(bmult * pow_F(bline[j], bexp)); - } - } + processFilmNegative(params, baseImg, rwidth, rheight, rmi, gmi, bmi); } if (params.coarse.rotate) { diff --git a/rtengine/rtthumbnail.h b/rtengine/rtthumbnail.h index df33b892d..09a0510eb 100644 --- a/rtengine/rtthumbnail.h +++ b/rtengine/rtthumbnail.h @@ -68,6 +68,8 @@ class Thumbnail bool gammaCorrected; double colorMatrix[3][3]; + void processFilmNegative(const procparams::ProcParams& params, const Imagefloat* baseImg, int rwidth, int rheight, float &rmi, float &gmi, float &bmi); + public: bool isRaw; From b4c109f275beaf33d624c9ac7a4ea42cb480d41b Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Sat, 29 Jun 2019 16:06:40 +0200 Subject: [PATCH 165/215] ProcParams now contain red and blue ratios, to be aligned with values in the GUI. --- rtdata/languages/Catala | 6 +-- rtdata/languages/Chinese (Simplified) | 6 +-- rtdata/languages/Deutsch | 6 +-- rtdata/languages/English (UK) | 6 +-- rtdata/languages/English (US) | 6 +-- rtdata/languages/Italiano | 6 +-- rtdata/languages/Magyar | 6 +-- rtdata/languages/Nederlands | 6 +-- rtdata/languages/Polish | 6 +-- rtdata/languages/Portugues (Brasil) | 6 +-- rtdata/languages/Russian | 6 +-- rtdata/languages/Serbian (Cyrilic Characters) | 6 +-- rtdata/languages/Swedish | 6 +-- rtdata/languages/default | 2 +- rtengine/filmnegativeproc.cc | 8 ++-- rtengine/filmnegativethumb.cc | 12 +----- rtengine/procparams.cc | 16 ++++---- rtengine/procparams.h | 4 +- rtgui/filmnegative.cc | 38 +++++++++---------- rtgui/paramsedited.cc | 18 ++++----- rtgui/paramsedited.h | 4 +- rtgui/partialpastedlg.cc | 4 +- 22 files changed, 88 insertions(+), 96 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index f9bcf25b2..a6b104be2 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1315,7 +1315,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1853,12 +1853,12 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 78807ddd4..9f0e4b365 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1362,7 +1362,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1800,12 +1800,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index fd2d0d07a..e3aa6ea44 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2365,11 +2365,11 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - !!!!!!!!!!!!!!!!!!!!!!!!! !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed -!TP_FILMNEGATIVE_BLUE;Blue exponent +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 24bffbb0a..677dc1818 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -839,7 +839,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1667,12 +1667,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 5dad9591a..7d2c5ff43 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -749,7 +749,7 @@ !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1638,12 +1638,12 @@ !TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 98d86b69d..2390c0d81 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1540,7 +1540,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1905,12 +1905,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 7aa5b30c3..c3272133a 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1249,7 +1249,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1818,12 +1818,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 508f06384..179ba9b3f 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2037,7 +2037,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -2232,12 +2232,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_ICM_WORKING_TRC;Tone response curve: !TP_ICM_WORKING_TRC_CUSTOM;Custom diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index e35f583ff..daca63dd6 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1622,7 +1622,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1931,12 +1931,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !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_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !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 diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 0bafe632f..0a9f4fe89 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2259,7 +2259,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !MAIN_FRAME_PLACES_DEL;Remove !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. @@ -2273,12 +2273,12 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !TP_COLORTONING_LABREGION_OFFSET;Offset !TP_COLORTONING_LABREGION_POWER;Power !TP_CROP_PPI;PPI -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 9e43f1098..dd4c501d7 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1707,7 +1707,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D !HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type @@ -1976,12 +1976,12 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !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_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !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_FLATFIELD_CLIPCONTROL;Clip control diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index ce1452821..966213d1d 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1515,7 +1515,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -1904,12 +1904,12 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points -!TP_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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? diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index cd3b9b3fc..4fb3e301b 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1864,7 +1864,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_HISTMATCHING;Auto-matched tone curve !HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries !HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D @@ -2119,12 +2119,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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_FILMNEGATIVE_BLUE;Blue exponent +!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Green exponent !TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red exponent +!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. diff --git a/rtdata/languages/default b/rtdata/languages/default index 63c877bbf..d5e3b13fa 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -748,7 +748,7 @@ 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_FILMNEGATIVE_ENABLED;Film Negative -HISTORY_MSG_FILMNEGATIVE_EXPONENTS;Film negative exponents changed +HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values HISTORY_MSG_HISTMATCHING;Auto-matched tone curve HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index db5705a3c..58d87d103 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -101,9 +101,9 @@ bool channelsAvg( bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D spotB, int tran, const FilmNegativeParams ¤tParams, std::array& newExps) { newExps = { - static_cast(currentParams.redExp), + static_cast(currentParams.redRatio * currentParams.greenExp), static_cast(currentParams.greenExp), - static_cast(currentParams.blueExp) + static_cast(currentParams.blueRatio * currentParams.greenExp) }; constexpr int spotSize = 32; // TODO: Make this configurable? @@ -171,9 +171,9 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ // Exponents are expressed as positive in the parameters, so negate them in order // to get the reciprocals. const std::array exps = { - static_cast(-params.redExp), + static_cast(-params.redRatio * params.greenExp), static_cast(-params.greenExp), - static_cast(-params.blueExp) + static_cast(-params.blueRatio * params.greenExp) }; MyTime t1, t2, t3,t4, t5; diff --git a/rtengine/filmnegativethumb.cc b/rtengine/filmnegativethumb.cc index 8889915e6..610781872 100644 --- a/rtengine/filmnegativethumb.cc +++ b/rtengine/filmnegativethumb.cc @@ -17,18 +17,10 @@ * along with RawTherapee. If not, see . */ #include -#include - -#ifdef _OPENMP -#include -#endif #include "rtengine.h" #include "rtthumbnail.h" - -#include "mytime.h" #include "opthelper.h" -#include "procparams.h" #include "rt_algo.h" #include "rtengine.h" #include "settings.h" @@ -52,9 +44,9 @@ void rtengine::Thumbnail::processFilmNegative( StopWatch stop1("Thumbnail film negative", true); // Channel exponents - const float rexp = -params.filmNegative.redExp; + const float rexp = -params.filmNegative.redRatio * params.filmNegative.greenExp; const float gexp = -params.filmNegative.greenExp; - const float bexp = -params.filmNegative.blueExp; + const float bexp = -params.filmNegative.blueRatio * params.filmNegative.greenExp; // Need to calculate channel averages, to fake the same conditions // found in rawimagesource, where get_ColorsCoeff is called with diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index b35faca94..45c71b03a 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2736,9 +2736,9 @@ bool MetaDataParams::operator!=(const MetaDataParams &other) const FilmNegativeParams::FilmNegativeParams() : enabled(false), - redExp(2.04), + redRatio(1.36), greenExp(1.5), - blueExp(1.29) + blueRatio(0.86) { } @@ -2746,9 +2746,9 @@ bool FilmNegativeParams::operator ==(const FilmNegativeParams& other) const { return enabled == other.enabled - && redExp == other.redExp + && redRatio == other.redRatio && greenExp == other.greenExp - && blueExp == other.blueExp; + && blueRatio == other.blueRatio; } bool FilmNegativeParams::operator !=(const FilmNegativeParams& other) const @@ -3589,9 +3589,9 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo // Film negative saveToKeyfile(!pedited || pedited->filmNegative.enabled, "Film Negative", "Enabled", filmNegative.enabled, keyFile); - saveToKeyfile(!pedited || pedited->filmNegative.redExp, "Film Negative", "RedExponent", filmNegative.redExp, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.redRatio, "Film Negative", "RedRatio", filmNegative.redRatio, keyFile); saveToKeyfile(!pedited || pedited->filmNegative.greenExp, "Film Negative", "GreenExponent", filmNegative.greenExp, keyFile); - saveToKeyfile(!pedited || pedited->filmNegative.blueExp, "Film Negative", "BlueExponent", filmNegative.blueExp, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.blueRatio, "Film Negative", "BlueRatio", filmNegative.blueRatio, keyFile); // EXIF change list if (!pedited || pedited->exif) { @@ -5138,9 +5138,9 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) if (keyFile.has_group("Film Negative")) { assignFromKeyfile(keyFile, "Film Negative", "Enabled", pedited, filmNegative.enabled, pedited->filmNegative.enabled); - assignFromKeyfile(keyFile, "Film Negative", "RedExponent", pedited, filmNegative.redExp, pedited->filmNegative.redExp); + assignFromKeyfile(keyFile, "Film Negative", "RedRatio", pedited, filmNegative.redRatio, pedited->filmNegative.redRatio); assignFromKeyfile(keyFile, "Film Negative", "GreenExponent", pedited, filmNegative.greenExp, pedited->filmNegative.greenExp); - assignFromKeyfile(keyFile, "Film Negative", "BlueExponent", pedited, filmNegative.blueExp, pedited->filmNegative.blueExp); + assignFromKeyfile(keyFile, "Film Negative", "BlueRatio", pedited, filmNegative.blueRatio, pedited->filmNegative.blueRatio); } if (keyFile.has_group("MetaData")) { diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 2af018035..46eb530bc 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1501,9 +1501,9 @@ struct RAWParams { */ struct FilmNegativeParams { bool enabled; - double redExp; + double redRatio; double greenExp; - double blueExp; + double blueRatio; FilmNegativeParams(); diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 4956968e3..598c9463a 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -49,7 +49,7 @@ Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring FilmNegative::FilmNegative() : FoldableToolPanel(this, "filmnegative", M("TP_FILMNEGATIVE_LABEL"), false, true), EditSubscriber(ET_OBJECTS), - evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_EXPONENTS")), + evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_VALUES")), evFilmNegativeEnabled(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED")), fnp(nullptr), greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 1.5)), // master exponent (green channel) @@ -123,45 +123,45 @@ void FilmNegative::read(const rtengine::procparams::ProcParams* pp, const Params disableListener(); if (pedited) { - redRatio->setEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); + redRatio->setEditedState(pedited->filmNegative.redRatio ? Edited : UnEdited); greenExp->setEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); - blueRatio->setEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); + blueRatio->setEditedState(pedited->filmNegative.blueRatio ? Edited : UnEdited); set_inconsistent(multiImage && !pedited->filmNegative.enabled); } setEnabled(pp->filmNegative.enabled); - redRatio->setValue(pp->filmNegative.redExp / pp->filmNegative.greenExp); + redRatio->setValue(pp->filmNegative.redRatio); greenExp->setValue(pp->filmNegative.greenExp); - blueRatio->setValue(pp->filmNegative.blueExp / pp->filmNegative.greenExp); + blueRatio->setValue(pp->filmNegative.blueRatio); enableListener(); } void FilmNegative::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) { - pp->filmNegative.redExp = greenExp->getValue() * redRatio->getValue(); + pp->filmNegative.redRatio = redRatio->getValue(); pp->filmNegative.greenExp = greenExp->getValue(); - pp->filmNegative.blueExp = greenExp->getValue() * blueRatio->getValue(); + pp->filmNegative.blueRatio = blueRatio->getValue(); pp->filmNegative.enabled = getEnabled(); if (pedited) { - pedited->filmNegative.redExp = greenExp->getEditedState() || redRatio->getEditedState(); + pedited->filmNegative.redRatio = redRatio->getEditedState(); pedited->filmNegative.greenExp = greenExp->getEditedState(); - pedited->filmNegative.blueExp = greenExp->getEditedState() || blueRatio->getEditedState(); + pedited->filmNegative.blueRatio = blueRatio->getEditedState(); pedited->filmNegative.enabled = !get_inconsistent(); } } void FilmNegative::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) { - redRatio->setValue(defParams->filmNegative.redExp / defParams->filmNegative.greenExp); + redRatio->setValue(defParams->filmNegative.redRatio); greenExp->setValue(defParams->filmNegative.greenExp); - blueRatio->setValue(defParams->filmNegative.blueExp / defParams->filmNegative.greenExp); + blueRatio->setValue(defParams->filmNegative.blueRatio); if (pedited) { - redRatio->setDefaultEditedState(pedited->filmNegative.redExp ? Edited : UnEdited); + redRatio->setDefaultEditedState(pedited->filmNegative.redRatio ? Edited : UnEdited); greenExp->setDefaultEditedState(pedited->filmNegative.greenExp ? Edited : UnEdited); - blueRatio->setDefaultEditedState(pedited->filmNegative.blueExp ? Edited : UnEdited); + blueRatio->setDefaultEditedState(pedited->filmNegative.blueRatio ? Edited : UnEdited); } else { redRatio->setDefaultEditedState(Irrelevant); greenExp->setDefaultEditedState(Irrelevant); @@ -189,10 +189,10 @@ void FilmNegative::adjusterChanged(Adjuster* a, double newval) listener->panelChanged( evFilmNegativeExponents, Glib::ustring::compose( - "R=%1 ; G=%2 ; B=%3", - greenExp->getValue() * redRatio->getValue(), + "Ref=%1 ; R=%2 ; B=%3", greenExp->getValue(), - greenExp->getValue() * blueRatio->getValue() + redRatio->getValue(), + blueRatio->getValue() ) ); } @@ -269,10 +269,10 @@ bool FilmNegative::button1Pressed(int modifierKey) listener->panelChanged( evFilmNegativeExponents, Glib::ustring::compose( - "R=%1 ; G=%2 ; B=%3", - greenExp->getValue() * redRatio->getValue(), + "Ref=%1 ; R=%2 ; B=%3", greenExp->getValue(), - greenExp->getValue() * blueRatio->getValue() + redRatio->getValue(), + blueRatio->getValue() ) ); } diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 7d52d309a..952b08161 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -581,9 +581,9 @@ void ParamsEdited::set(bool v) dehaze.depth = v; metadata.mode = v; filmNegative.enabled = v; - filmNegative.redExp = v; + filmNegative.redRatio = v; filmNegative.greenExp = v; - filmNegative.blueExp = v; + filmNegative.blueRatio = v; exif = v; iptc = v; @@ -1147,9 +1147,9 @@ void ParamsEdited::initFrom(const std::vector& dehaze.depth = dehaze.depth && p.dehaze.depth == other.dehaze.depth; metadata.mode = metadata.mode && p.metadata.mode == other.metadata.mode; filmNegative.enabled = filmNegative.enabled && p.filmNegative.enabled == other.filmNegative.enabled; - filmNegative.redExp = filmNegative.redExp && p.filmNegative.redExp == other.filmNegative.redExp; + filmNegative.redRatio = filmNegative.redRatio && p.filmNegative.redRatio == other.filmNegative.redRatio; filmNegative.greenExp = filmNegative.greenExp && p.filmNegative.greenExp == other.filmNegative.greenExp; - filmNegative.blueExp = filmNegative.blueExp && p.filmNegative.blueExp == other.filmNegative.blueExp; + filmNegative.blueRatio = filmNegative.blueRatio && p.filmNegative.blueRatio == other.filmNegative.blueRatio; // How the hell can we handle that??? // exif = exif && p.exif==other.exif @@ -3187,16 +3187,16 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.filmNegative.enabled = mods.filmNegative.enabled; } - if (filmNegative.redExp) { - toEdit.filmNegative.redExp = mods.filmNegative.redExp; + if (filmNegative.redRatio) { + toEdit.filmNegative.redRatio = mods.filmNegative.redRatio; } if (filmNegative.greenExp) { toEdit.filmNegative.greenExp = mods.filmNegative.greenExp; } - if (filmNegative.blueExp) { - toEdit.filmNegative.blueExp = mods.filmNegative.blueExp; + if (filmNegative.blueRatio) { + toEdit.filmNegative.blueRatio = mods.filmNegative.blueRatio; } // Exif changes are added to the existing ones @@ -3245,5 +3245,5 @@ bool RetinexParamsEdited::isUnchanged() const bool FilmNegativeParamsEdited::isUnchanged() const { - return enabled && redExp && greenExp && blueExp; + return enabled && redRatio && greenExp && blueRatio; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 57e6f2cdd..08a41fc7a 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -668,9 +668,9 @@ struct MetaDataParamsEdited { struct FilmNegativeParamsEdited { bool enabled; - bool redExp; + bool redRatio; bool greenExp; - bool blueExp; + bool blueRatio; bool isUnchanged() const; }; diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 34f9a414d..52adcfbf7 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -976,9 +976,9 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param if (!filmNegative->get_active ()) { filterPE.filmNegative.enabled = falsePE.filmNegative.enabled; - filterPE.filmNegative.redExp = falsePE.filmNegative.redExp; + filterPE.filmNegative.redRatio = falsePE.filmNegative.redRatio; filterPE.filmNegative.greenExp = falsePE.filmNegative.greenExp; - filterPE.filmNegative.blueExp = falsePE.filmNegative.blueExp; + filterPE.filmNegative.blueRatio = falsePE.filmNegative.blueRatio; } if (dstPE) { From bb11f685353960bf377186ab85650fa05599cf6e Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 2 Jul 2019 21:01:51 +0200 Subject: [PATCH 166/215] Fix wrong SSE code path of shadowToneCurve() --- rtengine/improcfun.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index c2e0c5b50..b3fd5f5af 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -76,7 +76,7 @@ void shadowToneCurve(const LUTf &shtonecurve, float *rtemp, float *gtemp, float //shadow tone curve vfloat Yv = cr * rv + cg * gv + cb * bv; - vfloat tonefactorv = shtonecurve(Yv); + vfloat tonefactorv = shtonecurve[Yv]; STVF(rtemp[ti * tileSize + tj], rv * tonefactorv); STVF(gtemp[ti * tileSize + tj], gv * tonefactorv); STVF(btemp[ti * tileSize + tj], bv * tonefactorv); From c04171bf34e1d938c6ee4b3f43696e9c8d0e63d8 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 2 Jul 2019 23:24:58 +0200 Subject: [PATCH 167/215] minor speedups --- rtengine/curves.cc | 30 ++++++++++++++++-------------- rtengine/improcfun.cc | 4 +++- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/rtengine/curves.cc b/rtengine/curves.cc index ecd38d4aa..f03a43e60 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -37,8 +37,6 @@ #include "ciecam02.h" #include "color.h" #include "iccstore.h" -#undef CLIPD -#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f) using namespace std; @@ -635,33 +633,37 @@ void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, dou //%%%%%%%%%%%%%%%%%%%%%%%%%% // change to [0,1] range shCurve.setClip(LUT_CLIP_ABOVE); // used LUT_CLIP_ABOVE, because the curve converges to 1.0 at the upper end and we don't want to exceed this value. - float val = 1.f / 65535.f; - float val2 = simplebasecurve (val, black, 0.015 * shcompr); - shCurve[0] = CLIPD(val2) / val; + if (black == 0.0) { + shCurve.makeConstant(1.f); + } else { + const float val = 1.f / 65535.f; + shCurve[0] = simplebasecurve(val, black, 0.015 * shcompr) / val; + } // gamma correction - val = Color::gammatab_srgb[0] / 65535.f; + float val = Color::gammatab_srgb1[0]; // apply brightness curve if (brightcurve) { - val = brightcurve->getVal (val); // TODO: getVal(double) is very slow! Optimize with a LUTf + val = brightcurve->getVal(val); // TODO: getVal(double) is very slow! Optimize with a LUTf } // store result in a temporary array - dcurve[0] = CLIPD(val); + dcurve[0] = LIM01(val); for (int i = 1; i < 0x10000; i++) { - float val = i / 65535.f; - float val2 = simplebasecurve (val, black, 0.015 * shcompr); - shCurve[i] = val2 / val; + if (black != 0.0) { + const float val = i / 65535.f; + shCurve[i] = simplebasecurve(val, black, 0.015 * shcompr) / val; + } // gamma correction - val = Color::gammatab_srgb[i] / 65535.f; + float val = Color::gammatab_srgb1[i]; // apply brightness curve if (brightcurve) { - val = CLIPD(brightcurve->getVal (val)); // TODO: getVal(double) is very slow! Optimize with a LUTf + val = LIM01(brightcurve->getVal (val)); // TODO: getVal(double) is very slow! Optimize with a LUTf } // store result in a temporary array @@ -849,7 +851,7 @@ void CurveFactory::complexLCurve (double br, double contr, const std::vector(val); } } else { diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index b3fd5f5af..0c1431868 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -2474,7 +2474,9 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer } highlightToneCurve(hltonecurve, rtemp, gtemp, btemp, istart, tH, jstart, tW, TS, exp_scale, comp, hlrange); - shadowToneCurve(shtonecurve, rtemp, gtemp, btemp, istart, tH, jstart, tW, TS); + if (params->toneCurve.black != 0.0) { + shadowToneCurve(shtonecurve, rtemp, gtemp, btemp, istart, tH, jstart, tW, TS); + } if (dcpProf) { dcpProf->step2ApplyTile (rtemp, gtemp, btemp, tW - jstart, tH - istart, TS, asIn); From a5800a18b0c5818ac61b54fd07f7ebf68dd47546 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Thu, 4 Jul 2019 17:21:19 +0200 Subject: [PATCH 168/215] raw crop for OLYMPUS E-M1X highres mode --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 396bdcf30..0ae967fc0 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1672,6 +1672,11 @@ Camera constants: "ranges": { "white": 4080 } // nominal 4095-4094, spread with some settings as long exposure }, + { // Quality C, only raw crop for highres mode + "make_model": "OLYMPUS E-M1X", + "raw_crop": [ 0, 0, 10388, 0 ] // Highres mode largest valid, full 80Mp 10400X7792, works also for non highres mode because larger width will be ignored + }, + { // Quality B, crop correction "make_model": [ "OLYMPUS E-M10", "OLYMPUS E-M10MarkII", "OLYMPUS E-M10 Mark III" ], "dcraw_matrix": [ 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 ], From 6fa533c40b34dec527f1176d47cc6c683422a73f Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 5 Jul 2019 15:30:30 +0200 Subject: [PATCH 169/215] Clarify permanent file deletion strings Closes #5365 --- rtdata/languages/Catala | 16 ++++++++-------- rtdata/languages/Chinese (Simplified) | 16 ++++++++-------- rtdata/languages/Czech | 14 +++++++------- rtdata/languages/Deutsch | 10 +++++++--- rtdata/languages/English (UK) | 16 ++++++++-------- rtdata/languages/English (US) | 16 ++++++++-------- rtdata/languages/Espanol | 14 +++++++------- rtdata/languages/Francais | 14 +++++++------- rtdata/languages/Italiano | 14 +++++++------- rtdata/languages/Japanese | 14 +++++++------- rtdata/languages/Magyar | 16 ++++++++-------- rtdata/languages/Nederlands | 14 +++++++------- rtdata/languages/Polish | 14 +++++++------- rtdata/languages/Portugues | 14 +++++++------- rtdata/languages/Portugues (Brasil) | 14 +++++++------- rtdata/languages/Russian | 16 ++++++++-------- rtdata/languages/Serbian (Cyrilic Characters) | 14 +++++++------- rtdata/languages/Swedish | 14 +++++++------- rtdata/languages/default | 14 +++++++------- 19 files changed, 139 insertions(+), 135 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 73970424b..974e51c38 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -84,8 +84,6 @@ FILEBROWSER_COPYPROFILE;Copia FILEBROWSER_CURRENT_NAME;Nom actual: FILEBROWSER_DARKFRAME;Marc fosc FILEBROWSER_DELETEDIALOG_HEADER;Confirmació d'esborrar fitxer -FILEBROWSER_DELETEDIALOG_SELECTED;Segur que voleu esborrar els %1 fitxers? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Segur que voleu suprimir els fitxers %1 seleccionats incloent la versió processada a la cua? FILEBROWSER_EMPTYTRASH;Buida paperera FILEBROWSER_EXTPROGMENU;Obre amb FILEBROWSER_FLATFIELD;Camp pla @@ -108,8 +106,6 @@ FILEBROWSER_POPUPPROCESS;Posa a la cua FILEBROWSER_POPUPPROCESSFAST;Posa a la cua (export. ràpida) FILEBROWSER_POPUPPROFILEOPERATIONS;Processant operacions de perfil FILEBROWSER_POPUPRANK;Rang -FILEBROWSER_POPUPREMOVE;Esborra el fitxer -FILEBROWSER_POPUPREMOVEINCLPROC;Esborra amb sortida de la cua FILEBROWSER_POPUPRENAME;Reanomena FILEBROWSER_POPUPSELECTALL;Selec. tot FILEBROWSER_POPUPTRASH;Llença a la paperera @@ -942,8 +938,10 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_POPUPCOLORLABEL0;Label: None !FILEBROWSER_POPUPCOLORLABEL1;Label: Red !FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow @@ -956,13 +954,15 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !FILEBROWSER_POPUPRANK3;Rank 3 *** !FILEBROWSER_POPUPRANK4;Rank 4 **** !FILEBROWSER_POPUPRANK5;Rank 5 ***** +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 !FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 !FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 !FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 !FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files @@ -1703,7 +1703,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_COLORAPP_SURROUND_DARK;Dark !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index fde2aab1b..82c8ddfa6 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -96,8 +96,6 @@ FILEBROWSER_COPYPROFILE;复制配置 FILEBROWSER_CURRENT_NAME;当前名称: FILEBROWSER_DARKFRAME;暗场 FILEBROWSER_DELETEDIALOG_HEADER;确认删除 -FILEBROWSER_DELETEDIALOG_SELECTED;确定删除所选的%1个文件? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;你确认要删除选择的 %1 文件 包括 一个处理队列中的版本? FILEBROWSER_EMPTYTRASH;清空垃圾箱 FILEBROWSER_EXTPROGMENU;调用程序... FILEBROWSER_FLATFIELD;平场 @@ -132,8 +130,6 @@ FILEBROWSER_POPUPRANK2;评 2 星 FILEBROWSER_POPUPRANK3;评 3 星 FILEBROWSER_POPUPRANK4;评 4 星 FILEBROWSER_POPUPRANK5;评 5 星 -FILEBROWSER_POPUPREMOVE;从文件系统中移除 -FILEBROWSER_POPUPREMOVEINCLPROC;删除序列输出 FILEBROWSER_POPUPRENAME;重命名 FILEBROWSER_POPUPSELECTALL;全部选中 FILEBROWSER_POPUPTRASH;移动到垃圾箱 @@ -957,8 +953,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_QUERYHINT;Type filenames to search for. Supports partial filenames. Separate the search terms using commas, e.g.\n1001,1004,1199\n\nExclude search terms by prefixing them with !=\ne.g.\n!=1001,1004,1199\n\nShortcuts:\nCtrl-f - focus the Find box,\nEnter - search,\nEsc - clear the Find box,\nShift-Esc - defocus the Find box. !FILEBROWSER_SHOWCOLORLABEL1HINT;Show images labeled Red.\nShortcut: Alt-1 !FILEBROWSER_SHOWCOLORLABEL2HINT;Show images labeled Yellow.\nShortcut: Alt-2 @@ -967,7 +967,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_SHOWCOLORLABEL5HINT;Show images labeled Purple.\nShortcut: Alt-5 !FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 !FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_SHOWRECENTLYSAVEDNOTHINT;Show unsaved images.\nShortcut: Alt-6 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 @@ -1654,7 +1654,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. !TP_COLORAPP_SURROUND;Surround !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness !TP_COLORAPP_TCMODE_LABEL1;Curve mode 1 diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 61f51cd2d..5df69dd3a 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -164,8 +164,6 @@ FILEBROWSER_COPYPROFILE;Kopírovat FILEBROWSER_CURRENT_NAME;Současné jméno: FILEBROWSER_DARKFRAME;Tmavý snímek FILEBROWSER_DELETEDIALOG_HEADER;Potvrzení smazání souboru -FILEBROWSER_DELETEDIALOG_SELECTED;Jste si jisti, že chcete vymazat %1 vybraných souborů? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Jste si jisti, že chcete vymazat %1 vybraných souborů včetně výstupů dávkového zpracování? FILEBROWSER_EMPTYTRASH;Vysypat koš FILEBROWSER_EXTPROGMENU;Otevřít pomocí FILEBROWSER_FLATFIELD;Flat Field @@ -200,8 +198,6 @@ FILEBROWSER_POPUPRANK2;Hodnocení 2 ** FILEBROWSER_POPUPRANK3;Hodnocení 3 *** FILEBROWSER_POPUPRANK4;Hodnocení 4 **** FILEBROWSER_POPUPRANK5;Hodnocení 5 ***** -FILEBROWSER_POPUPREMOVE;Smazat -FILEBROWSER_POPUPREMOVEINCLPROC;Smazat včetně výstupů z fronty FILEBROWSER_POPUPRENAME;Přejmenovat FILEBROWSER_POPUPSELECTALL;Vybrat vše FILEBROWSER_POPUPTRASH;Přesunout do koše @@ -228,7 +224,6 @@ FILEBROWSER_SHOWDIRHINT;Smazat všechny filtry.\nZkratka: d FILEBROWSER_SHOWEDITEDHINT;Ukázat upravené obrázky.\nZkratka: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Ukázat neupravené obrázky.\nZkratka: 6 FILEBROWSER_SHOWEXIFINFO;Zobrazit Exif informace.\n\nZkratky:\ni - režim více karet editoru,\nAlt-i - režim jedné karty editoru. -FILEBROWSER_SHOWNOTTRASHHINT;Zobrazit pouze nesmazané obrázky. FILEBROWSER_SHOWORIGINALHINT;Zobrazí pouze originální obrázky.\n\nPokud existuje několik obrázků se stejným názvem, ale rozdílnými příponami, bude jako originál vybrán ten, jehož přípona je nejvýše v seznamu přípon veVolby > Prohlížeč souborů > Analyzované přípony. FILEBROWSER_SHOWRANK1HINT;Ukázat obrázky hodnocené jednou hvězdičkou.\nZkratka: 1 FILEBROWSER_SHOWRANK2HINT;Ukázat obrázky hodnocené dvěma hvězdičkami.\nZkratka: 2 @@ -2321,6 +2316,11 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 7f562d51c..28cfb8e77 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -240,8 +240,6 @@ FILEBROWSER_POPUPRANK2;Bewertung 2 ** FILEBROWSER_POPUPRANK3;Bewertung 3 *** FILEBROWSER_POPUPRANK4;Bewertung 4 **** FILEBROWSER_POPUPRANK5;Bewertung 5 ***** -FILEBROWSER_POPUPREMOVE;Löschen -FILEBROWSER_POPUPREMOVEINCLPROC;Löschen (auch Resultate der Stapelverarbeitung) FILEBROWSER_POPUPRENAME;Umbenennen FILEBROWSER_POPUPSELECTALL;Alle auswählen FILEBROWSER_POPUPTRASH;In den Papierkorb verschieben @@ -268,7 +266,6 @@ FILEBROWSER_SHOWDIRHINT;Alle Filter zurücksetzen.\nTaste: d FILEBROWSER_SHOWEDITEDHINT;Nur bearbeitete Bilder anzeigen.\nTaste: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Nur unbearbeitete Bilder anzeigen.\nTaste: 6 FILEBROWSER_SHOWEXIFINFO;Bildinformationen ein-/ausblenden.\n\nIm Multi-Reitermodus:\nTaste: i\nIm Ein-Reitermodus:\nTaste: Alt + i -FILEBROWSER_SHOWNOTTRASHHINT;Nur nicht gelöschte Bilder anzeigen. FILEBROWSER_SHOWORIGINALHINT;Zeige nur das Originalbild.\n\nWenn mehrere Bilder mit dem gleichen Dateinamen und unterschiedlichen Dateitypen existieren, ist das Originalbild das Bild, welches in der Liste "Dateitypen anzeigen" unter Einstellungen > Dateiverwaltung als erstes gefunden wird. FILEBROWSER_SHOWRANK1HINT;Nur mit 1 Stern bewertete Bilder anzeigen.\nTaste: 1 FILEBROWSER_SHOWRANK2HINT;Nur mit 2 Sternen bewertete Bilder anzeigen.\nTaste: 2 @@ -2360,3 +2357,10 @@ 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. +!!!!!!!!!!!!!!!!!!!!!!!!! + +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index cda91f29a..6d1c7c09c 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -68,7 +68,7 @@ TP_COLORAPP_CHROMA_M_TOOLTIP;Colourfulness in CIECAM02 differs from L*a*b* and R TP_COLORAPP_CURVEEDITOR3;Colour curve TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Adjust either chroma, saturation or colourfulness.\n\nShows the histogram of chromaticity (L*a*b*) before CIECAM02.\nIf the "Show CIECAM02 output histograms in curves" checkbox is enabled, shows the histogram of C, s or M after CIECAM02.\n\nC, s and M are not shown in the main histogram panel.\nFor final output refer to the main histogram panel. TP_COLORAPP_LABEL;CIE Colour Appearance Model 2002 -TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colours to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colours to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. TP_COLORAPP_TCMODE_COLORF;Colourfulness TP_COLORTONING_COLOR;Colour TP_COLORTONING_LABEL;Colour Toning @@ -239,12 +239,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !FILEBROWSER_COPYPROFILE;Copy !FILEBROWSER_CURRENT_NAME;Current name: !FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? !FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: -!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? -!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? !FILEBROWSER_EMPTYTRASH;Empty trash -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_FLATFIELD;Flat-Field !FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory @@ -277,8 +277,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !FILEBROWSER_POPUPRANK3;Rank 3 *** !FILEBROWSER_POPUPRANK4;Rank 4 **** !FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVE;Delete -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_POPUPRENAME;Rename !FILEBROWSER_POPUPSELECTALL;Select all !FILEBROWSER_POPUPTRASH;Move to trash @@ -305,7 +305,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 !FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 !FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1-star.\nShortcut: 1 !FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2-star.\nShortcut: 2 diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 9affa9444..7f810f71f 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -122,12 +122,12 @@ !FILEBROWSER_COPYPROFILE;Copy !FILEBROWSER_CURRENT_NAME;Current name: !FILEBROWSER_DARKFRAME;Dark-frame -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? !FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: -!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? -!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? !FILEBROWSER_EMPTYTRASH;Empty trash -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_FLATFIELD;Flat-Field !FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory @@ -161,8 +161,8 @@ !FILEBROWSER_POPUPRANK3;Rank 3 *** !FILEBROWSER_POPUPRANK4;Rank 4 **** !FILEBROWSER_POPUPRANK5;Rank 5 ***** -!FILEBROWSER_POPUPREMOVE;Delete -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_POPUPRENAME;Rename !FILEBROWSER_POPUPSELECTALL;Select all !FILEBROWSER_POPUPTRASH;Move to trash @@ -189,7 +189,7 @@ !FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 !FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 !FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1-star.\nShortcut: 1 !FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2-star.\nShortcut: 2 @@ -1430,7 +1430,7 @@ !TP_COLORAPP_SURROUND_DARK;Dark !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index b1d76b24f..15a4d81f5 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -180,8 +180,6 @@ FILEBROWSER_COPYPROFILE;Copiar perfil FILEBROWSER_CURRENT_NAME;Nombre actual: FILEBROWSER_DARKFRAME;Toma Negra FILEBROWSER_DELETEDIALOG_HEADER;Confirmación de borrar archivos -FILEBROWSER_DELETEDIALOG_SELECTED;¿Seguro que quiere borrar los %1 archivos seleccionados? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;¿Seguro que quiere borrar los %1 archivos seleccionados incluyendo la versión procesada en la cola? FILEBROWSER_EMPTYTRASH;Vaciar papelera FILEBROWSER_EXTPROGMENU;Abrir con FILEBROWSER_FLATFIELD;Campo plano @@ -216,8 +214,6 @@ FILEBROWSER_POPUPRANK2;Rango 2 ** FILEBROWSER_POPUPRANK3;Rango 3 *** FILEBROWSER_POPUPRANK4;Rango 4 **** FILEBROWSER_POPUPRANK5;Rango 5 ***** -FILEBROWSER_POPUPREMOVE;Borrar -FILEBROWSER_POPUPREMOVEINCLPROC;Borrar con salida de la cola FILEBROWSER_POPUPRENAME;Renombrar FILEBROWSER_POPUPSELECTALL;Seleccionar todo FILEBROWSER_POPUPTRASH;Mover a la papelera @@ -244,7 +240,6 @@ FILEBROWSER_SHOWDIRHINT;Quitar todos los filtros.\nTecla de Atajo: d FILEBROWSER_SHOWEDITEDHINT;Mostrar imágenes editadas.\nTecla de Atajo: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Mostrar imágenes no editadas.\nTecla de Atajo: 6 FILEBROWSER_SHOWEXIFINFO;Mostrar datos Exif.\nTecla de Atajo: i\n\nTecla de Atajo en modo editor simple: Alt-I -FILEBROWSER_SHOWNOTTRASHHINT;Mostrar solo las imágenes no borradas. FILEBROWSER_SHOWORIGINALHINT;Muestre solo imágenes originales. \nCuando existen varias imágenes con el mismo nombre de archivo pero con diferentes extensiones, la que se considera original es aquella cuya extensión está más cerca de la parte superior de la lista de extensiones analizadas en Preferencias> Explorador de archivos> Extensiones analizadas. FILEBROWSER_SHOWRANK1HINT;Mostrar imágenes con 1 estrella.\nTecla de Atajo: 1 FILEBROWSER_SHOWRANK2HINT;Mostrar imágenes con 2 estrellas.\nTecla de Atajo: 2 @@ -2319,8 +2314,13 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !CURVEEDITOR_CATMULLROM;Flexible !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !MAIN_FRAME_PLACES_DEL;Remove !MAIN_TAB_FAVORITES;Favorites diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index cd3ac7394..d7141f8b2 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -119,8 +119,6 @@ FILEBROWSER_COPYPROFILE;Copier le profil FILEBROWSER_CURRENT_NAME;Nom courant: FILEBROWSER_DARKFRAME;Trame Noire FILEBROWSER_DELETEDIALOG_HEADER;Confirmation de la suppression de fichier -FILEBROWSER_DELETEDIALOG_SELECTED;Êtes-vous sûr de vouloir supprimer les %1 fichiers selectionnés? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Êtes-vous sûr de vouloir supprimer les %1 fichiers sélectionnés, INCLUANT une version déjà traitée? FILEBROWSER_EMPTYTRASH;Vider la corbeille FILEBROWSER_EXTPROGMENU;Ouvrir avec FILEBROWSER_FLATFIELD;Champ Uniforme @@ -155,8 +153,6 @@ FILEBROWSER_POPUPRANK2;Rang 2 ** FILEBROWSER_POPUPRANK3;Rang 3 *** FILEBROWSER_POPUPRANK4;Rang 4 **** FILEBROWSER_POPUPRANK5;Rang 5 ***** -FILEBROWSER_POPUPREMOVE;Retirer du système de fichier -FILEBROWSER_POPUPREMOVEINCLPROC;Supprimer (y compris les sorties de la file de traitement) FILEBROWSER_POPUPRENAME;Renommer FILEBROWSER_POPUPSELECTALL;Sélectionner tout FILEBROWSER_POPUPTRASH;Déplacer dans la corbeille @@ -183,7 +179,6 @@ FILEBROWSER_SHOWDIRHINT;Voir toutes les images du dossier\nRaccourci: d FILEBROWSER_SHOWEDITEDHINT;Afficher les images éditées\nRaccourci: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Afficher les images non éditées\nRaccourci: 6 FILEBROWSER_SHOWEXIFINFO;Montrer les infos EXIF.\nRaccourci: i\n\nRaccourcis dans le mode Éditeur Unique: Alt-i -FILEBROWSER_SHOWNOTTRASHHINT;Voir uniquement les images non supprimées FILEBROWSER_SHOWORIGINALHINT;Voir seulement les images originales.\n\nQuand plusieurs images éxistent avec le même nom de fichier mais des extensions différentes, celle considéré originale est celle dont l'extention est au plus dans la liste des extensions dans Préférences > Navigateur de fichiers > Extensions considérées. FILEBROWSER_SHOWRANK1HINT;Voir les images 1 étoile\nRaccourci: 1 FILEBROWSER_SHOWRANK2HINT;Voir les images 2 étoiles\nRaccourci: 2 @@ -2264,8 +2259,13 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !MAIN_FRAME_PLACES_DEL;Remove !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index bedba34f6..6d44a132f 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -92,8 +92,6 @@ FILEBROWSER_COPYPROFILE;Copia FILEBROWSER_CURRENT_NAME;Nome corrente: FILEBROWSER_DARKFRAME;Dark Frame FILEBROWSER_DELETEDIALOG_HEADER;Conferma eliminazione del file -FILEBROWSER_DELETEDIALOG_SELECTED;Vuoi eliminare i %1 file selezionati? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Vuoi eliminare i %1 file inclusa la versione sviluppata nella coda? FILEBROWSER_EMPTYTRASH;Svuota cestino FILEBROWSER_EXTPROGMENU;Apri con FILEBROWSER_FLATFIELD;Flat Field @@ -128,8 +126,6 @@ FILEBROWSER_POPUPRANK2;Punteggio 2 ** FILEBROWSER_POPUPRANK3;Punteggio 3 *** FILEBROWSER_POPUPRANK4;Punteggio 4 **** FILEBROWSER_POPUPRANK5;Punteggio 5 ***** -FILEBROWSER_POPUPREMOVE;Elimina -FILEBROWSER_POPUPREMOVEINCLPROC;Elimina insieme a quanto sviluppato nella coda FILEBROWSER_POPUPRENAME;Rinomina FILEBROWSER_POPUPSELECTALL;Seleziona tutto FILEBROWSER_POPUPTRASH;Sposta nel cestino @@ -1270,10 +1266,14 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !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) diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 0ab793099..2cec023e5 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -153,8 +153,6 @@ FILEBROWSER_COPYPROFILE;プロファイルをコピー FILEBROWSER_CURRENT_NAME;現在の名前: FILEBROWSER_DARKFRAME;ダークフレーム FILEBROWSER_DELETEDIALOG_HEADER;ファイル削除確認 -FILEBROWSER_DELETEDIALOG_SELECTED;選択済みのファイル %1 を削除してもいいですか? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;バッチ処理に組み込まれている選択済みのファイル %1 を削除してもいいですか? FILEBROWSER_EMPTYTRASH;ゴミ箱を空にする FILEBROWSER_EXTPROGMENU;..で開く FILEBROWSER_FLATFIELD;フラットフィールド @@ -189,8 +187,6 @@ FILEBROWSER_POPUPRANK2;ランク 2 ** FILEBROWSER_POPUPRANK3;ランク 3 *** FILEBROWSER_POPUPRANK4;ランク 4 **** FILEBROWSER_POPUPRANK5;ランク 5 ***** -FILEBROWSER_POPUPREMOVE;ファイルシステムから削除 -FILEBROWSER_POPUPREMOVEINCLPROC;ファイルシステムとバッチの結果から削除 FILEBROWSER_POPUPRENAME;名前変更 FILEBROWSER_POPUPSELECTALL;全選択 FILEBROWSER_POPUPTRASH;ゴミ箱へ移動 @@ -217,7 +213,6 @@ FILEBROWSER_SHOWDIRHINT;全ての絞り込みをクリア\nショートカット FILEBROWSER_SHOWEDITEDHINT;編集済み画像を表示\nショートカット: 7 FILEBROWSER_SHOWEDITEDNOTHINT;未編集画像を表示\nショートカット: 6 FILEBROWSER_SHOWEXIFINFO;EXIF情報を表示\nショートカット: i\n\nシングル・エディタ・タブのショートカット: Alt-i -FILEBROWSER_SHOWNOTTRASHHINT;削除されていない画像だけ表示 FILEBROWSER_SHOWORIGINALHINT;元画像だけを表示\n\nファイル名は同じだが拡張子が異なる画像がある場合は、環境設定の中のファイルブラウザタブにある拡張子リストの上位に位置する拡張子を持った画像を元画像とする。 FILEBROWSER_SHOWRANK1HINT;1つ星ランクを表示\nショートカット: 1 FILEBROWSER_SHOWRANK2HINT;2つ星ランクを表示\nショートカット: 2 @@ -2310,7 +2305,12 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !QUEUE_LOCATION_TITLE;Output Location diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index d1947b893..6286ba63c 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -82,8 +82,6 @@ FILEBROWSER_COPYPROFILE;Feldolgozási paraméterek másolása FILEBROWSER_CURRENT_NAME;Aktuális név: FILEBROWSER_DARKFRAME;Referencia feketekép (dark frame) FILEBROWSER_DELETEDIALOG_HEADER;Állománytörlés megerősítése -FILEBROWSER_DELETEDIALOG_SELECTED;Biztosan törölni kívánja a kijelölt %1 képet? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Biztos vagy benne, hogy törölni szeredné a kiválasztott %1 állományt, beleértve a feldolgozási sorba helyezett változatát IS? FILEBROWSER_EMPTYTRASH;Kuka ürítése FILEBROWSER_FLATFIELD;Flat Field FILEBROWSER_MOVETODARKFDIR;Mozgatás a 'dark frame' könyvtárba @@ -103,8 +101,6 @@ FILEBROWSER_POPUPOPENINEDITOR;Open in Szerkesztő FILEBROWSER_POPUPPROCESS;Feldolgozási sorba helyezés FILEBROWSER_POPUPPROCESSFAST;Feldolgozási sorba helyez (expressz export) FILEBROWSER_POPUPPROFILEOPERATIONS;Profilműveletek -FILEBROWSER_POPUPREMOVE;Törlés (végleges) -FILEBROWSER_POPUPREMOVEINCLPROC;Törlés (feldolgozási sorból is) FILEBROWSER_POPUPRENAME;Átnevezés FILEBROWSER_POPUPSELECTALL;Mindent kijelöl FILEBROWSER_POPUPTRASH;Kukába dobás @@ -870,8 +866,10 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_EXTPROGMENU;Open with !FILEBROWSER_OPENDEFAULTVIEWER;Windows default viewer (queue-processed) !FILEBROWSER_POPUPCOLORLABEL0;Label: None @@ -887,13 +885,15 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !FILEBROWSER_POPUPRANK3;Rank 3 *** !FILEBROWSER_POPUPRANK4;Rank 4 **** !FILEBROWSER_POPUPRANK5;Rank 5 ***** +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_RANK1_TOOLTIP;Rank 1 *\nShortcut: Shift-1 !FILEBROWSER_RANK2_TOOLTIP;Rank 2 *\nShortcut: Shift-2 !FILEBROWSER_RANK3_TOOLTIP;Rank 3 *\nShortcut: Shift-3 !FILEBROWSER_RANK4_TOOLTIP;Rank 4 *\nShortcut: Shift-4 !FILEBROWSER_RANK5_TOOLTIP;Rank 5 *\nShortcut: Shift-5 !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files @@ -1657,7 +1657,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_COLORAPP_SURROUND_DARK;Dark !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index b8b30e64c..7317038a3 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -123,8 +123,6 @@ FILEBROWSER_COPYPROFILE;Kopieer profiel FILEBROWSER_CURRENT_NAME;Huidige naam: FILEBROWSER_DARKFRAME;Donkerframe FILEBROWSER_DELETEDIALOG_HEADER;Bevestiging bestand verwijderen -FILEBROWSER_DELETEDIALOG_SELECTED;Weet u zeker dat u de geselecteerde %1 bestanden wilt verwijderen? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Weet u zeker dat u de %1 geselecteerde bestanden wilt verwijderen *inclusief* de versies van de verwerkingsrij? FILEBROWSER_EMPTYTRASH;Leeg prullenbak FILEBROWSER_EXTPROGMENU;Open met FILEBROWSER_FLATFIELD;Vlakveld @@ -159,8 +157,6 @@ FILEBROWSER_POPUPRANK2;Waardering 2 ** FILEBROWSER_POPUPRANK3;Waardering 3 *** FILEBROWSER_POPUPRANK4;Waardering 4 **** FILEBROWSER_POPUPRANK5;Waardering 5 ***** -FILEBROWSER_POPUPREMOVE;Verwijder van bestandssysteem -FILEBROWSER_POPUPREMOVEINCLPROC;Verwijder (met bestand in verwerkingsrij) FILEBROWSER_POPUPRENAME;Hernoem FILEBROWSER_POPUPSELECTALL;Alles selecteren FILEBROWSER_POPUPTRASH;Verplaats naar prullenbak @@ -187,7 +183,6 @@ FILEBROWSER_SHOWDIRHINT;Verwijder alle filters.\nSneltoets: d FILEBROWSER_SHOWEDITEDHINT;Toon bewerkte foto's\nSneltoets: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Toon niet-bewerkte foto's\nSneltoets: 6 FILEBROWSER_SHOWEXIFINFO;Toon EXIF-info -FILEBROWSER_SHOWNOTTRASHHINT;Toon alleen niet-verwijderde foto's. FILEBROWSER_SHOWORIGINALHINT;Toon alleen originele afbeelding.\n\nAls er meerdere afbeeldingen zijn met dezelfde naam maar verschillende extensies, dan wordt de afbeelding waarvan de extensie het hoogst staat in de lijst met extensies in Voorkeuren > Bestandsnavigator > Extensies FILEBROWSER_SHOWRANK1HINT;Toon foto's met 1 ster.\nSneltoets: 1 FILEBROWSER_SHOWRANK2HINT;Toon foto's met 2 sterren.\nSneltoets: 2 @@ -1979,8 +1974,13 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 05f099ea6..d1e27f0dc 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -96,8 +96,6 @@ FILEBROWSER_COPYPROFILE;Kopiuj profil FILEBROWSER_CURRENT_NAME;Obecna nazwa: FILEBROWSER_DARKFRAME;Czarna klatka FILEBROWSER_DELETEDIALOG_HEADER;Potwierdzenie usunięcia pliku -FILEBROWSER_DELETEDIALOG_SELECTED;Na pewno usunąć zaznaczone %1 plików? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Na pewno usunąć wybrany plik %1 WŁĄCZNIE z wersją utworzoną przez kolejkę przetwarzania? FILEBROWSER_EMPTYTRASH;Wyczyść kosz FILEBROWSER_EXTPROGMENU;Otwórz za pomocą FILEBROWSER_FLATFIELD;Puste pole @@ -132,8 +130,6 @@ FILEBROWSER_POPUPRANK2;Ocena 2 ** FILEBROWSER_POPUPRANK3;Ocena 3 *** FILEBROWSER_POPUPRANK4;Ocena 4 **** FILEBROWSER_POPUPRANK5;Ocena 5 ***** -FILEBROWSER_POPUPREMOVE;Usuń z dysku -FILEBROWSER_POPUPREMOVEINCLPROC;Usuń z dysku wraz z wynikiem przetwarzania FILEBROWSER_POPUPRENAME;Zmień nazwę FILEBROWSER_POPUPSELECTALL;Zaznacz wszystkie FILEBROWSER_POPUPTRASH;Przenieś do kosza @@ -1392,10 +1388,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !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) diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index b59f4ffe0..7e5713093 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -120,8 +120,6 @@ FILEBROWSER_COPYPROFILE;Copiar FILEBROWSER_CURRENT_NAME;Nome atual: FILEBROWSER_DARKFRAME;Fotograma escuro FILEBROWSER_DELETEDIALOG_HEADER;Confirmação de eliminação de ficheiro -FILEBROWSER_DELETEDIALOG_SELECTED;Tem a certeza que quer eliminar os %1 ficheiros selecionados? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Tem a certeza que quer eliminar os %1 ficheiros selecionados incluindo uma versão processada na fila? FILEBROWSER_EMPTYTRASH;Esvaziar o caixote do lixo FILEBROWSER_EXTPROGMENU;Abrir com FILEBROWSER_FLATFIELD;Campo plano @@ -156,8 +154,6 @@ FILEBROWSER_POPUPRANK2;Classificação 2 estrelas FILEBROWSER_POPUPRANK3;Classificação 3 estrelas FILEBROWSER_POPUPRANK4;Classificação 4 estrelas FILEBROWSER_POPUPRANK5;Classificação 5 estrelas -FILEBROWSER_POPUPREMOVE;Eliminar -FILEBROWSER_POPUPREMOVEINCLPROC;Eliminar com saída da fila FILEBROWSER_POPUPRENAME;Renomear FILEBROWSER_POPUPSELECTALL;Selecionar tudo FILEBROWSER_POPUPTRASH;Mover para o caixote do lixo @@ -184,7 +180,6 @@ FILEBROWSER_SHOWDIRHINT;Limpar todos os filtros.\nAtalho: d FILEBROWSER_SHOWEDITEDHINT;Mostrar imagens editadas.\nAtalho: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Mostrar imagens não editadas.\nAtalho: 6 FILEBROWSER_SHOWEXIFINFO;Mostrar informações Exif.\n\nAtalhos:\ni - Modo de editor em várias abas,\nAlt-i - Modo de editor numa só aba. -FILEBROWSER_SHOWNOTTRASHHINT;Mostrar apenas imagens não eliminadas. FILEBROWSER_SHOWORIGINALHINT;Mostrar apenas imagens originais.\n\nQuando existem várias imagens com o mesmo nome de ficheiro mas com extensões diferentes, a única considerada original é aquela cuja extensão está mais próxima da parte superior da lista de extensões analisadas em Preferências > Navegador de ficheiros > Extensões analisadas. FILEBROWSER_SHOWRANK1HINT;Mostrar imagens classificadas com 1 estrela.\nAtalho: 1 FILEBROWSER_SHOWRANK2HINT;Mostrar imagens classificadas com 2 estrelas.\nAtalho: 2 @@ -2262,8 +2257,13 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !MAIN_FRAME_PLACES_DEL;Remove !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PROGRESSBAR_DECODING;Decoding... diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index da9a620df..beffbb9a8 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -120,8 +120,6 @@ FILEBROWSER_COPYPROFILE;Copiar perfil FILEBROWSER_CURRENT_NAME;Nome atual: FILEBROWSER_DARKFRAME;Quadro escuro FILEBROWSER_DELETEDIALOG_HEADER;Confirmação de exclusão de arquivo -FILEBROWSER_DELETEDIALOG_SELECTED;Tens certeza de que desejas excluir os %1 arquivos selecionados? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Tens certeza de que desejas excluir os %1 arquivos selecionados incluindo uma versão processada em fila? FILEBROWSER_EMPTYTRASH;Esvaziar lixeira FILEBROWSER_EXTPROGMENU;Abrir com FILEBROWSER_FLATFIELD;Flat-Field @@ -156,8 +154,6 @@ FILEBROWSER_POPUPRANK2;Classificação 2 ** FILEBROWSER_POPUPRANK3;Classificação 3 *** FILEBROWSER_POPUPRANK4;Classificação 4 **** FILEBROWSER_POPUPRANK5;Classificação 5 ***** -FILEBROWSER_POPUPREMOVE;Excluir -FILEBROWSER_POPUPREMOVEINCLPROC;Excluir com saída da fila FILEBROWSER_POPUPRENAME;Renomear FILEBROWSER_POPUPSELECTALL;Selecionar tudo FILEBROWSER_POPUPTRASH;Mover para a lixeira @@ -184,7 +180,6 @@ FILEBROWSER_SHOWDIRHINT;Limpar todos os filtros.\nAtalho: d FILEBROWSER_SHOWEDITEDHINT;Mostrar imagens editadas.\nAtalho: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Mostrar imagens não editadas.\nAtalho: 6 FILEBROWSER_SHOWEXIFINFO;Mostrar informações Exif.\n\nAtalhos:\ni - Modo de Guias de Editores Múltiplos,\nAlt-i - Modo de Guia de Editor Único. -FILEBROWSER_SHOWNOTTRASHHINT;Mostre somente imagens não excluídas. FILEBROWSER_SHOWORIGINALHINT;Mostre somente imagens originais.\n\nQuando existem várias imagens com o mesmo nome de arquivo, mas extensões diferentes, a única considerada original é aquela cuja extensão está mais próxima da parte superior da lista de extensões analisadas em Preferências > Navegador de Arquivos > Extensões Analisadas. FILEBROWSER_SHOWRANK1HINT;Mostrar imagens classificadas com 1 estrela.\nAtalho: 1 FILEBROWSER_SHOWRANK2HINT;Mostrar imagens classificadas com 2 estrelas.\nAtalho: 2 @@ -2254,8 +2249,13 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power !MAIN_FRAME_PLACES_DEL;Remove diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index c2b43033e..870895dd7 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -113,8 +113,6 @@ FILEBROWSER_COPYPROFILE;Скопировать профиль FILEBROWSER_CURRENT_NAME;Текущее имя: FILEBROWSER_DARKFRAME;Темновой кадр FILEBROWSER_DELETEDIALOG_HEADER;Подтверждение удаления файла -FILEBROWSER_DELETEDIALOG_SELECTED;Вы уверены, что хотите удалить %1 выбранный(ых) файл(ов)? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Вы уверены, что хотите удалить %1 выделенных файлов, включая обработанные версии? FILEBROWSER_EMPTYTRASH;Очистить корзину FILEBROWSER_EXTPROGMENU;Открыть с помощью FILEBROWSER_FLATFIELD;Плоское поле @@ -149,8 +147,6 @@ FILEBROWSER_POPUPRANK2;Рейтинг 2 ** FILEBROWSER_POPUPRANK3;Рейтинг 3 *** FILEBROWSER_POPUPRANK4;Рейтинг 4 **** FILEBROWSER_POPUPRANK5;Рейтинг 5 ***** -FILEBROWSER_POPUPREMOVE;Удалить с диска -FILEBROWSER_POPUPREMOVEINCLPROC;Удалить с диска и пакетной обработки FILEBROWSER_POPUPRENAME;Переименовать FILEBROWSER_POPUPSELECTALL;Выбрать все FILEBROWSER_POPUPTRASH;Удалить в корзину @@ -177,7 +173,6 @@ FILEBROWSER_SHOWDIRHINT;Сбросить все фильтры.\nГорячая FILEBROWSER_SHOWEDITEDHINT;Показать измененные изображения.\nГорячая клавиша: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Показать не измененные изображения.\nГорячая клавиша: 6 FILEBROWSER_SHOWEXIFINFO;Показать информацию EXIF.\nГорячая клавиша: i\n\nГорячая клавиша в режиме Одиночного редактора: Alt-I -FILEBROWSER_SHOWNOTTRASHHINT;Показать только неудалённые изображения. FILEBROWSER_SHOWRANK1HINT;Показать изображения с рейтингом 1.\nГорячая клавиша: 1 FILEBROWSER_SHOWRANK2HINT;Показать изображения с рейтингом 2.\nГорячая клавиша: 2 FILEBROWSER_SHOWRANK3HINT;Показать изображения с рейтингом 3.\nГорячая клавиша: 3 @@ -1470,8 +1465,13 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !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_PP;Processing profiles !FILECHOOSER_FILTER_SAME;Same format as current photo @@ -1872,7 +1872,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_COLORAPP_SURROUND_DARK;Dark !TP_COLORAPP_SURROUND_DIM;Dim !TP_COLORAPP_SURROUND_EXDARK;Extremly Dark (Cutsheet) -!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slighty dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. +!TP_COLORAPP_SURROUND_TOOLTIP;Changes tones and colors to take into account the viewing conditions of the output device.\n\nAverage: Average light environment (standard). The image will not change.\n\nDim: Dim environment (TV). The image will become slightly dark.\n\nDark: Dark environment (projector). The image will become more dark.\n\nExtremly Dark: Extremly dark environment (cutsheet). The image will become very dark. !TP_COLORAPP_TCMODE_BRIGHTNESS;Brightness !TP_COLORAPP_TCMODE_CHROMA;Chroma !TP_COLORAPP_TCMODE_COLORF;Colorfulness diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 21a34119a..edcf1d2d6 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -85,8 +85,6 @@ FILEBROWSER_COPYPROFILE;Умножи профил FILEBROWSER_CURRENT_NAME;Тренутно име: FILEBROWSER_DARKFRAME;Тамни кадар FILEBROWSER_DELETEDIALOG_HEADER;Брисање датотеке -FILEBROWSER_DELETEDIALOG_SELECTED;Да ли сигурно желите да обришете %1 датотека? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Да ли желите да обришете %1 изабраних датотека, укључујући и оне које су заказане? FILEBROWSER_EMPTYTRASH;Избаци смеће FILEBROWSER_EXTPROGMENU;Отвори помоћу FILEBROWSER_FLATFIELD;Равно поље @@ -108,8 +106,6 @@ FILEBROWSER_POPUPPROCESS;Закажи за обраду FILEBROWSER_POPUPPROCESSFAST;Додај у заказано (брзи извоз) FILEBROWSER_POPUPPROFILEOPERATIONS;Профил FILEBROWSER_POPUPRANK;Оцена -FILEBROWSER_POPUPREMOVE;Уклони из система датотека -FILEBROWSER_POPUPREMOVEINCLPROC;Уклони из система датотека и заказаног FILEBROWSER_POPUPRENAME;Преименуј FILEBROWSER_POPUPSELECTALL;Изабери све FILEBROWSER_POPUPTRASH;Премести у смеће @@ -1229,8 +1225,10 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_POPUPCOLORLABEL0;Label: None !FILEBROWSER_POPUPCOLORLABEL1;Label: Red !FILEBROWSER_POPUPCOLORLABEL2;Label: Yellow @@ -1244,8 +1242,10 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !FILEBROWSER_POPUPRANK3;Rank 3 *** !FILEBROWSER_POPUPRANK4;Rank 4 **** !FILEBROWSER_POPUPRANK5;Rank 5 ***** +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default -!FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !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) diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 14dc4069f..2263584cd 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -94,8 +94,6 @@ FILEBROWSER_COPYPROFILE;Kopiera profil FILEBROWSER_CURRENT_NAME;Nuvarande namn: FILEBROWSER_DARKFRAME;Svartbild FILEBROWSER_DELETEDIALOG_HEADER;Bekräftelse vid borttag -FILEBROWSER_DELETEDIALOG_SELECTED;Är du säker på att du vill ta bort de valda %1 filerna? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Är du säker på att du vill ta bort de valda filerna %1 OCH den behandlade versionen? FILEBROWSER_EMPTYTRASH;Töm papperskorgen FILEBROWSER_EXTPROGMENU;Öppna med FILEBROWSER_FLATFIELD;Plattfält @@ -130,8 +128,6 @@ FILEBROWSER_POPUPRANK2;Betyg 2 ** FILEBROWSER_POPUPRANK3;Betyg 3 *** FILEBROWSER_POPUPRANK4;Betyg 4 **** FILEBROWSER_POPUPRANK5;Betyg 5 ***** -FILEBROWSER_POPUPREMOVE;Ta bort från filsystemet -FILEBROWSER_POPUPREMOVEINCLPROC;Ta bort från filsystemet inkl. den behandlade FILEBROWSER_POPUPRENAME;Byt namn FILEBROWSER_POPUPSELECTALL;Markera allt FILEBROWSER_POPUPTRASH;Flytta till papperskorgen @@ -157,7 +153,6 @@ FILEBROWSER_SHOWDIRHINT;Återställ alla sökfilter.\nKortkommando: d FILEBROWSER_SHOWEDITEDHINT;Visa redigerade bilder.\nKortkommando: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Visa ickeredigerade bilder.\nKortkommando: 6 FILEBROWSER_SHOWEXIFINFO;Visa EXIF-information.\nKortkommando: i\n\nKortkommando i enkelbildsläget: Alt-i -FILEBROWSER_SHOWNOTTRASHHINT;Visa endast ej borttagna bilder. FILEBROWSER_SHOWORIGINALHINT;Visa endast ursprungliga bilder.\n\nNär flera bilder finns med samma filnamn men med olika filändelser så anses den bild vara urpsrungsbilden som har sin ändelse närmst toppen i listan över filändelser i Inställningar > Filbläddrare > Hanterade filändelser FILEBROWSER_SHOWRANK1HINT;Visa bilder med betyg 1.\nKortkommando: 1 FILEBROWSER_SHOWRANK2HINT;Visa bilder med betyg 2.\nKortkommando: 2 @@ -1768,9 +1763,14 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. !FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles !FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? +!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? +!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +!FILEBROWSER_POPUPREMOVE;Delete permanently +!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default +!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !GENERAL_CURRENT;Current !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/default b/rtdata/languages/default index 5ea726218..31e704d7d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -121,12 +121,12 @@ FILEBROWSER_COLORLABEL_TOOLTIP;Color label.\n\nUse dropdown menu or shortcuts:\n FILEBROWSER_COPYPROFILE;Copy FILEBROWSER_CURRENT_NAME;Current name: FILEBROWSER_DARKFRAME;Dark-frame -FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to delete all %1 files in trash? +FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? FILEBROWSER_DELETEDIALOG_HEADER;File delete confirmation: -FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to delete the selected %1 files? -FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to delete the selected %1 files including a queue-processed version? +FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? FILEBROWSER_EMPTYTRASH;Empty trash -FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. +FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. FILEBROWSER_EXTPROGMENU;Open with FILEBROWSER_FLATFIELD;Flat-Field FILEBROWSER_MOVETODARKFDIR;Move to dark-frames directory @@ -160,8 +160,8 @@ FILEBROWSER_POPUPRANK2;Rank 2 ** FILEBROWSER_POPUPRANK3;Rank 3 *** FILEBROWSER_POPUPRANK4;Rank 4 **** FILEBROWSER_POPUPRANK5;Rank 5 ***** -FILEBROWSER_POPUPREMOVE;Delete -FILEBROWSER_POPUPREMOVEINCLPROC;Delete with output from queue +FILEBROWSER_POPUPREMOVE;Delete permanently +FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version FILEBROWSER_POPUPRENAME;Rename FILEBROWSER_POPUPSELECTALL;Select all FILEBROWSER_POPUPTRASH;Move to trash @@ -188,7 +188,7 @@ FILEBROWSER_SHOWDIRHINT;Clear all filters.\nShortcut: d FILEBROWSER_SHOWEDITEDHINT;Show edited images.\nShortcut: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Show not edited images.\nShortcut: 6 FILEBROWSER_SHOWEXIFINFO;Show Exif info.\n\nShortcuts:\ni - Multiple Editor Tabs Mode,\nAlt-i - Single Editor Tab Mode. -FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. +FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. FILEBROWSER_SHOWRANK1HINT;Show images ranked as 1-star.\nShortcut: 1 FILEBROWSER_SHOWRANK2HINT;Show images ranked as 2-star.\nShortcut: 2 From 0f09559413c8c5c2dfe8d67b53667055f6e57108 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 6 Jul 2019 12:58:53 +0200 Subject: [PATCH 170/215] Windows build crashes when trying to load a corrupted jpg, fixes #5366 --- rtengine/imageio.cc | 4 ++++ rtengine/jdatasrc.cc | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/rtengine/imageio.cc b/rtengine/imageio.cc index f1fa8dbef..3b0fdcf6d 100644 --- a/rtengine/imageio.cc +++ b/rtengine/imageio.cc @@ -575,7 +575,11 @@ int ImageIO::loadJPEG (const Glib::ustring &fname) my_jpeg_stdio_src (&cinfo, file); +#if defined( WIN32 ) && defined( __x86_64__ ) && !defined(__clang__) + if ( __builtin_setjmp((reinterpret_cast(cinfo.src))->error_jmp_buf) == 0 ) { +#else if ( setjmp((reinterpret_cast(cinfo.src))->error_jmp_buf) == 0 ) { +#endif if (pl) { pl->setProgressStr ("PROGRESSBAR_LOADJPEG"); pl->setProgress (0.0); diff --git a/rtengine/jdatasrc.cc b/rtengine/jdatasrc.cc index 0c2a13ed0..8c04a14a2 100644 --- a/rtengine/jdatasrc.cc +++ b/rtengine/jdatasrc.cc @@ -245,7 +245,11 @@ my_error_exit (j_common_ptr cinfo) j_decompress_ptr dinfo = (j_decompress_ptr)cinfo; // longjmp (((rt_jpeg_error_mgr*)(dinfo->src))->error_jmp_buf, 1); +#if defined( WIN32 ) && defined( __x86_64__ ) && !defined(__clang__) + __builtin_longjmp ((reinterpret_cast(dinfo->src)) ->error_jmp_buf, 1); +#else longjmp ((reinterpret_cast(dinfo->src)) ->error_jmp_buf, 1); +#endif } From 7f5080ded055e348d71ee5320c277e8d3f1ecbc4 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 6 Jul 2019 13:59:31 +0200 Subject: [PATCH 171/215] Update Deutsch locale --- rtdata/languages/Deutsch | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 28cfb8e77..4be1d35ce 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -81,6 +81,7 @@ #80 25.03.2019 Erweiterung (TooWaBoo) RT 5.6 #81 15.04.2019 Erweiterung (TooWaBoo) RT 5.6 #82 25.05.2019 Erweiterung (TooWaBoo) RT 5.6 +#83 06.07.2019 Erweiterung (TooWaBoo) RT 5.6 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -231,7 +232,7 @@ FILEBROWSER_POPUPMOVETO;Verschieben nach... FILEBROWSER_POPUPOPEN;Öffnen FILEBROWSER_POPUPOPENINEDITOR;Im Editor öffnen FILEBROWSER_POPUPPROCESS;Zur Warteschlange hinzufügen -FILEBROWSER_POPUPPROCESSFAST;Zur Warteschlange hinzufügen (Schnelles Exportieren) +FILEBROWSER_POPUPPROCESSFAST;Zur Warteschlange hinzufügen\n(Schnell-Export) FILEBROWSER_POPUPPROFILEOPERATIONS;Profiloperationen FILEBROWSER_POPUPRANK;Bewertung FILEBROWSER_POPUPRANK0;Nicht bewertet @@ -984,7 +985,7 @@ MAIN_TAB_DETAIL;Details MAIN_TAB_DETAIL_TOOLTIP;Taste: Alt + d MAIN_TAB_DEVELOP; Batchbearbeitung MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPORT; Exportieren +MAIN_TAB_EXPORT; Schnell-Export MAIN_TAB_EXPOSURE;Belichtung MAIN_TAB_EXPOSURE_TOOLTIP;Taste: Alt + e MAIN_TAB_FAVORITES;Favoriten @@ -2361,6 +2362,6 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!FILEBROWSER_POPUPREMOVE;Delete permanently -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version -!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +FILEBROWSER_POPUPREMOVE;Unwiederuflich löschen +FILEBROWSER_POPUPREMOVEINCLPROC;Unwiederuflich löschen\n(einschl. aller Dateien der Stabelverarbeitung) +FILEBROWSER_SHOWNOTTRASHHINT;Nur Bilder außerhalb des Papierkorbs anzeigen. From 3c18613afbdc1d2afad98e3cc77e20880e05f795 Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Sat, 6 Jul 2019 14:36:49 +0200 Subject: [PATCH 172/215] Typo fixed --- rtdata/languages/Deutsch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 4be1d35ce..950a33f45 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2362,6 +2362,6 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -FILEBROWSER_POPUPREMOVE;Unwiederuflich löschen -FILEBROWSER_POPUPREMOVEINCLPROC;Unwiederuflich löschen\n(einschl. aller Dateien der Stabelverarbeitung) +FILEBROWSER_POPUPREMOVE;Unwiderruflich löschen +FILEBROWSER_POPUPREMOVEINCLPROC;Unwiderruflich löschen\n(einschl. aller Dateien der Stabelverarbeitung) FILEBROWSER_SHOWNOTTRASHHINT;Nur Bilder außerhalb des Papierkorbs anzeigen. From 6cbcb9fee57b9df175e10e2bc460ff7b3a647d89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sat, 6 Jul 2019 17:37:49 +0200 Subject: [PATCH 173/215] Fix compilation and more C++11 (fixes #5368) --- rtengine/dfmanager.cc | 4 ++-- rtengine/pixelsmap.h | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc index 7de712fb5..4696af1a1 100644 --- a/rtengine/dfmanager.cc +++ b/rtengine/dfmanager.cc @@ -235,7 +235,7 @@ void dfInfo::updateBadPixelList( RawImage *df ) df->data[row + 2][col - 2] + df->data[row + 2][col] + df->data[row + 2][col + 2]); if( df->data[row][col] > m * threshold ) { - badPixelsThread.push_back( badPix(col, row) ); + badPixelsThread.emplace_back(col, row); } } @@ -566,7 +566,7 @@ int DFManager::scanBadPixelsFile( Glib::ustring filename ) if( numparms == 1 ) { // only one number in first line means, that this is the offset. offset = x; } else if(numparms == 2) { - bp.push_back( badPix(x + offset, y + offset) ); + bp.emplace_back(x + offset, y + offset); } while( fgets(line, sizeof(line), file ) ) { diff --git a/rtengine/pixelsmap.h b/rtengine/pixelsmap.h index 9089ac91c..b359d61d9 100644 --- a/rtengine/pixelsmap.h +++ b/rtengine/pixelsmap.h @@ -20,6 +20,7 @@ */ #include +#include #include #include "noncopyable.h" @@ -75,10 +76,10 @@ public: } // set pixels from a list - int set(const std::vector &bp) + int set(const std::vector& bp) { - for (std::vector::const_iterator iter = bp.begin(); iter != bp.end(); ++iter) { - set(iter->x, iter->y); + for (const auto& bad_pix : bp) { + set(bad_pix.x, bad_pix.y); } return bp.size(); @@ -86,7 +87,7 @@ public: void clear() { - memset(pm, 0, h * w * base_t_size); + std::memset(pm, 0, h * w * base_t_size); } // return 0 if at least one pixel in the word(base_t) is set, otherwise return the number of pixels to skip to the next word base_t int skipIfZero(int x, int y) const From e172dcabdaea64bb5f9fc587055b1ba9f0e98348 Mon Sep 17 00:00:00 2001 From: "luz.paz" Date: Sun, 7 Jul 2019 07:48:34 -0400 Subject: [PATCH 174/215] Fix misc. typos and whitespace Found via `codespell -q 3 -I ../rawtherapy-whitelist.txt -S ./rtdata/languages -L hist,fo,reall,bloc,alph,dof,thre,makro,chang,currentry,portugues,vektor,ue` --- rtengine/LUT.h | 2 +- rtengine/color.h | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rtengine/LUT.h b/rtengine/LUT.h index 9f16995d0..6584eefe6 100644 --- a/rtengine/LUT.h +++ b/rtengine/LUT.h @@ -563,7 +563,7 @@ public: } } - // compress a LUT with size y into a LUT with size x (y>x) by using the passTrough LUT to calculate indexes + // compress a LUT with size y into a LUT with size x (y>x) by using the passThrough LUT to calculate indexes template::value>::type> void compressTo(LUT &dest, unsigned int numVals, const LUT &passThrough) const { diff --git a/rtengine/color.h b/rtengine/color.h index a94302e30..fb4eea458 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -102,7 +102,7 @@ private: static float computeXYZ2Lab(float f); static float computeXYZ2LabY(float f); - + public: typedef enum Channel { @@ -1094,7 +1094,7 @@ public: //very small differences between the 2 return x <= 0.003040 ? x * 12.92310 : 1.055 * exp(log(x) / sRGBGammaCurve) - 0.055;//continuous // return x <= 0.003041 ? x * 12.92310 : 1.055011 * exp(log(x) / sRGBGammaCurve) - 0.055011;//continuous - + } @@ -1111,7 +1111,7 @@ public: //very small differences between the 4 return x <= 0.039286 ? x / 12.92310 : exp(log((x + 0.055) / 1.055) * sRGBGammaCurve);//continuous // return x <= 0.039293 ? x / 12.92310 : exp(log((x + 0.055011) / 1.055011) * sRGBGammaCurve);//continuous - + } @@ -1509,8 +1509,8 @@ public: static const float C9 = 8.f, C8 = 15.f, C7 = 12.f, C4 = 7.f, C3 = 5.f, C2 = 5.f, C1 = 5.f; static const float H9 = 0.05f, H8 = 0.25f, H7 = 0.1f, H4 = 0.02f, H3 = 0.02f, H2 = 0.1f, H1 = 0.1f, H10 = -0.2f, H11 = -0.2f; - // "real" skin color : take into account a slightly usage of contrast and saturation in RT if option "skin" = 1, uses imolicit factor 1.0 - // wide area skin color, useful if not accurate colorimetry or if the user has changed hue and saturation, uses explicit facor 0.6 + // "real" skin color : take into account a slight usage of contrast and saturation in RT if option "skin" = 1, uses implicit factor 1.0 + // wide area skin color, useful if not accurate colorimetry or if the user has changed hue and saturation, uses explicit factor 0.6 // wide area for transition, uses explicit factor 0.4 if (lum >= 85.0f) { @@ -1588,8 +1588,8 @@ public: static const float C9 = 8.f, C8 = 15.f, C7 = 12.f, C4 = 7.f, C3 = 5.f, C2 = 5.f, C1 = 5.f; static const float H9 = 0.05f, H8 = 0.25f, H7 = 0.1f, H4 = 0.02f, H3 = 0.02f, H2 = 0.1f, H1 = 0.1f, H10 = -0.2f, H11 = -0.2f; - // "real" skin color : take into account a slightly usage of contrast and saturation in RT if option "skin" = 1, uses imolicit factor 1.0 - // wide area skin color, useful if not accurate colorimetry or if the user has changed hue and saturation, uses explicit facor 0.6 + // "real" skin color : take into account a slight usage of contrast and saturation in RT if option "skin" = 1, uses implicit factor 1.0 + // wide area skin color, useful if not accurate colorimetry or if the user has changed hue and saturation, uses explicit factor 0.6 // wide area for transition, uses explicit factor 0.4 if((b_l > -0.3f && b_r < 2.f) || basc == 0) { //range maxi skin if (lum >= 85.0f) { @@ -1704,8 +1704,8 @@ public: hue = HH; - // "real" skin color : take into account a slightly usage of contrast and saturation in RT if option "skin" = 1, uses imolicit factor 1.0 - // wide area skin color, useful if not accurate colorimetry or if the user has changed hue and saturation, uses explicit facor 0.6 + // "real" skin color : take into account a slight usage of contrast and saturation in RT if option "skin" = 1, uses implicit factor 1.0 + // wide area skin color, useful if not accurate colorimetry or if the user has changed hue and saturation, uses explicit factor 0.6 // wide area for transition, uses explicit factor 0.4 if (lum >= 85.0f) { From 4d6c3f2ce2438fcd9ecc7337f2329b493d2a050f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 7 Jul 2019 15:29:24 +0200 Subject: [PATCH 175/215] Speedup for color propagation --- rtengine/hilite_recon.cc | 137 ++++++++++++++++++++++++-------------- rtengine/rawimagesource.h | 2 - 2 files changed, 86 insertions(+), 53 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 699d42071..38da3ea26 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -28,14 +28,11 @@ #include "rawimagesource.h" #include "rt_math.h" #include "opthelper.h" -namespace rtengine -{ +#define BENCHMARK +#include "StopWatch.h" -extern const Settings* settings; - -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::boxblur2(float** src, float** dst, float** temp, int H, int W, int box ) +namespace { +void boxblur2(float** src, float** dst, float** temp, int startY, int startX, int H, int W, int box ) { //box blur image channel; box size = 2*box+1 //horizontal blur @@ -45,23 +42,23 @@ void RawImageSource::boxblur2(float** src, float** dst, float** temp, int H, int for (int row = 0; row < H; row++) { int len = box + 1; - temp[row][0] = src[row][0] / len; + temp[row][0] = src[row + startY][startX] / len; for (int j = 1; j <= box; j++) { - temp[row][0] += src[row][j] / len; + temp[row][0] += src[row + startY][j + startX] / len; } for (int col = 1; col <= box; col++) { - temp[row][col] = (temp[row][col - 1] * len + src[row][col + box]) / (len + 1); + temp[row][col] = (temp[row][col - 1] * len + src[row + startY][col + box + startX]) / (len + 1); len ++; } for (int col = box + 1; col < W - box; col++) { - temp[row][col] = temp[row][col - 1] + (src[row][col + box] - src[row][col - box - 1]) / len; + temp[row][col] = temp[row][col - 1] + (src[row + startY][col + box + startX] - src[row + startY][col - box - 1 + startX]) / len; } for (int col = W - box; col < W; col++) { - temp[row][col] = (temp[row][col - 1] * len - src[row][col - box - 1]) / (len - 1); + temp[row][col] = (temp[row][col - 1] * len - src[row + startY][col - box - 1 + startX]) / (len - 1); len --; } } @@ -210,7 +207,7 @@ void RawImageSource::boxblur2(float** src, float** dst, float** temp, int H, int } -void RawImageSource::boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int box, int samp ) +void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int box, int samp ) { #ifdef _OPENMP @@ -386,8 +383,16 @@ void RawImageSource::boxblur_resamp(float **src, float **dst, float ** temp, int } +} +namespace rtengine +{ + +extern const Settings* settings; + + void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** blue) { + BENCHFUN double progress = 0.0; if (plistener) { @@ -477,28 +482,58 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b for (int c = 0; c < ColorCount; c++) { medFactor[c] = max(1.0f, max_f[c] / medpt) / (-blendpt); } + int minx = width - 1; + int maxx = 0; + int miny = height - 1; + int maxy = 0; - multi_array2D channelblur(width, height, 0, 48); - array2D temp(width, height); // allocate temporary buffer + #pragma omp parallel for reduction(min:minx,miny) reduction(max:maxx,maxy) schedule(dynamic, 16) + for (int i = 0; i < height; ++i) { + for (int j = 0; j< width; ++j) { + if(red[i][j] >= max_f[0] || green[i][j] >= max_f[1] || blue[i][j] >= max_f[2]) { + minx = std::min(minx, j); + maxx = std::max(maxx, j); + miny = std::min(miny, i); + maxy = std::max(maxy, i); + } + } + } + + std::cout << "minx : " << minx << std::endl; + std::cout << "maxx : " << maxx << std::endl; + std::cout << "miny : " << miny << std::endl; + std::cout << "maxy : " << maxy << std::endl; + + constexpr int blurBorder = 256; + minx = std::max(0, minx - blurBorder); + miny = std::max(0, miny - blurBorder); + maxx = std::min(width - 1, maxx + blurBorder); + maxy = std::min(height - 1, maxy + blurBorder); + const int blurWidth = maxx - minx + 1; + const int blurHeight = maxy - miny + 1; + + std::cout << "Corrected area reduced by factor: " << (((float)width * height) / (blurWidth * blurHeight)) << std::endl; + multi_array2D channelblur(blurWidth, blurHeight, 0, 48); + array2D temp(blurWidth, blurHeight); // allocate temporary buffer // blur RGB channels - boxblur2(red, channelblur[0], temp, height, width, 4); + boxblur2(red, channelblur[0], temp, miny, minx, blurHeight, blurWidth, 4); if(plistener) { progress += 0.05; plistener->setProgress(progress); } - boxblur2(green, channelblur[1], temp, height, width, 4); + boxblur2(green, channelblur[1], temp, miny, minx, blurHeight, blurWidth, 4); if(plistener) { progress += 0.05; plistener->setProgress(progress); } - boxblur2(blue, channelblur[2], temp, height, width, 4); - + boxblur2(blue, channelblur[2], temp, miny, minx, blurHeight, blurWidth, 4); + if(plistener) { progress += 0.05; plistener->setProgress(progress); @@ -509,9 +544,9 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b #pragma omp parallel for #endif - for(int i = 0; i < height; i++) - for(int j = 0; j < width; j++) { - channelblur[0][i][j] = fabsf(channelblur[0][i][j] - red[i][j]) + fabsf(channelblur[1][i][j] - green[i][j]) + fabsf(channelblur[2][i][j] - blue[i][j]); + for(int i = 0; i < blurHeight; i++) + for(int j = 0; j < blurWidth; j++) { + channelblur[0][i][j] = fabsf(channelblur[0][i][j] - red[i + miny][j + minx]) + fabsf(channelblur[1][i][j] - green[i + miny][j + minx]) + fabsf(channelblur[2][i][j] - blue[i + miny][j + minx]); } for (int c = 1; c < 3; c++) { @@ -523,7 +558,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b plistener->setProgress(progress); } - multi_array2D hilite_full(width, height, ARRAY2D_CLEAR_DATA, 32); + multi_array2D hilite_full(blurWidth, blurHeight, ARRAY2D_CLEAR_DATA, 32); if(plistener) { progress += 0.10; @@ -538,18 +573,18 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b #pragma omp parallel for reduction(+:hipass_sum,hipass_norm) schedule(dynamic,16) #endif - for (int i = 0; i < height; i++) { - for (int j = 0; j < width; j++) { + for (int i = 0; i < blurHeight; i++) { + for (int j = 0; j < blurWidth; j++) { //if one or more channels is highlight but none are blown, add to highlight accumulator - if ((red[i][j] > thresh[0] || green[i][j] > thresh[1] || blue[i][j] > thresh[2]) && - (red[i][j] < max_f[0] && green[i][j] < max_f[1] && blue[i][j] < max_f[2])) { + if ((red[i + miny][j + minx] > thresh[0] || green[i + miny][j + minx] > thresh[1] || blue[i + miny][j + minx] > thresh[2]) && + (red[i + miny][j + minx] < max_f[0] && green[i + miny][j + minx] < max_f[1] && blue[i + miny][j + minx] < max_f[2])) { hipass_sum += channelblur[0][i][j]; hipass_norm ++; - hilite_full[0][i][j] = red[i][j]; - hilite_full[1][i][j] = green[i][j]; - hilite_full[2][i][j] = blue[i][j]; + hilite_full[0][i][j] = red[i + miny][j + minx]; + hilite_full[1][i][j] = green[i + miny][j + minx]; + hilite_full[2][i][j] = blue[i + miny][j + minx]; hilite_full[3][i][j] = 1.f; } @@ -563,10 +598,10 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b plistener->setProgress(progress); } - array2D hilite_full4(width, height); + array2D hilite_full4(blurWidth, blurHeight); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //blur highlight data - boxblur2(hilite_full[3], hilite_full4, temp, height, width, 1); + boxblur2(hilite_full[3], hilite_full4, temp, 0, 0, blurHeight, blurWidth, 1); temp.free(); // free temporary buffer @@ -579,8 +614,8 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b #pragma omp parallel for schedule(dynamic,16) #endif - for (int i = 0; i < height; i++) { - for (int j = 0; j < width; j++) { + for (int i = 0; i < blurHeight; i++) { + for (int j = 0; j < blurWidth; j++) { if (channelblur[0][i][j] > hipass_ave) { //too much variation hilite_full[0][i][j] = hilite_full[1][i][j] = hilite_full[2][i][j] = hilite_full[3][i][j] = 0.f; @@ -597,18 +632,18 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b channelblur[0].free(); //free up some memory hilite_full4.free(); //free up some memory - int hfh = (height - (height % pitch)) / pitch; - int hfw = (width - (width % pitch)) / pitch; + int hfh = (blurHeight - (blurHeight % pitch)) / pitch; + int hfw = (blurWidth - (blurWidth % pitch)) / pitch; multi_array2D hilite(hfw + 1, hfh + 1, ARRAY2D_CLEAR_DATA, 48); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // blur and resample highlight data; range=size of blur, pitch=sample spacing - array2D temp2((width / pitch) + ((width % pitch) == 0 ? 0 : 1), height); + array2D temp2((blurWidth / pitch) + ((blurWidth % pitch) == 0 ? 0 : 1), blurHeight); for (int m = 0; m < 4; m++) { - boxblur_resamp(hilite_full[m], hilite[m], temp2, height, width, range, pitch); + boxblur_resamp(hilite_full[m], hilite[m], temp2, blurHeight, blurWidth, range, pitch); if(plistener) { progress += 0.05; @@ -953,12 +988,12 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b #pragma omp parallel for schedule(dynamic,16) #endif - for (int i = 0; i < height; i++) { + for (int i = 0; i < blurHeight; i++) { int i1 = min((i - (i % pitch)) / pitch, hfh - 1); - for (int j = 0; j < width; j++) { + for (int j = 0; j < blurWidth; j++) { - float pixel[3] = {red[i][j], green[i][j], blue[i][j]}; + float pixel[3] = {red[i + miny][j + minx], green[i + miny][j + minx], blue[i + miny][j + minx]}; if (pixel[0] < max_f[0] && pixel[1] < max_f[1] && pixel[2] < max_f[2]) { continue; //pixel not clipped @@ -1109,36 +1144,36 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b float Y = (0.299 * clipfix[0] + 0.587 * clipfix[1] + 0.114 * clipfix[2]); float factor = whitept / Y; - red[i][j] = clipfix[0] * factor; - green[i][j] = clipfix[1] * factor; - blue[i][j] = clipfix[2] * factor; + red[i + miny][j + minx] = clipfix[0] * factor; + green[i + miny][j + minx] = clipfix[1] * factor; + blue[i + miny][j + minx] = clipfix[2] * factor; } else {//some channels clipped float notclipped[3] = {pixel[0] <= max_f[0] ? 1.f : 0.f, pixel[1] <= max_f[1] ? 1.f : 0.f, pixel[2] <= max_f[2] ? 1.f : 0.f}; if (notclipped[0] == 0.f) { //red clipped - red[i][j] = max(red[i][j], (clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / + red[i + miny][j + minx] = max(red[i + miny][j + minx], (clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / (notclipped[1] * clipfix[1] + notclipped[2] * clipfix[2] + epsilon)))); } if (notclipped[1] == 0.f) { //green clipped - green[i][j] = max(green[i][j], (clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / + green[i + miny][j + minx] = max(green[i + miny][j + minx], (clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / (notclipped[2] * clipfix[2] + notclipped[0] * clipfix[0] + epsilon)))); } if (notclipped[2] == 0.f) { //blue clipped - blue[i][j] = max(blue[i][j], (clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / + blue[i + miny][j + minx] = max(blue[i + miny][j + minx], (clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / (notclipped[0] * clipfix[0] + notclipped[1] * clipfix[1] + epsilon)))); } } - Y = (0.299 * red[i][j] + 0.587 * green[i][j] + 0.114 * blue[i][j]); + Y = (0.299 * red[i + miny][j + minx] + 0.587 * green[i + miny][j + minx] + 0.114 * blue[i + miny][j + minx]); if (Y > whitept) { float factor = whitept / Y; - red[i][j] *= factor; - green[i][j] *= factor; - blue[i][j] *= factor; + red[i + miny][j + minx] *= factor; + green[i + miny][j + minx] *= factor; + blue[i + miny][j + minx] *= factor; } } } diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 4c7b0ba21..64018f354 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -195,8 +195,6 @@ public: } static void inverse33 (const double (*coeff)[3], double (*icoeff)[3]); - void boxblur2(float** src, float** dst, float** temp, int H, int W, int box ); - void boxblur_resamp(float **src, float **dst, float** temp, int H, int W, int box, int samp ); void MSR(float** luminance, float **originalLuminance, float **exLuminance, LUTf & mapcurve, bool &mapcontlutili, int width, int height, const RetinexParams &deh, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax); void HLRecovery_inpaint (float** red, float** green, float** blue) override; static void HLRecovery_Luminance (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval); From bcc727e1cf5e9fb6d0a85dba5d20059b82fa7440 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 7 Jul 2019 22:45:30 +0200 Subject: [PATCH 176/215] Sony DSC-R1 camconst.json entry, closes #5359 Confirmed wl in commit 9ea964f5d. Updating quality level to B thanks to sample set in #5359 (not A as sample set lacks LENR). --- rtengine/camconst.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 0ae967fc0..97a14f66e 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -2461,7 +2461,7 @@ Camera constants: "raw_crop": [ 0, 0, -8, 0 ] // 8 rightmost columns are garbage }, - { // Quality C + { // Quality B "make_model": [ "Sony DSC-R1" ], "raw_crop": [ 0, 0, 3924, 2608 ], "ranges": { "white": 16368 } From 54fdbe41ea361467ff90104e7183fc38aad42efb Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 8 Jul 2019 23:57:24 +0200 Subject: [PATCH 177/215] dump SSE code in boxblur2 because new code is faster with auto-vectorization, also pad bufferwidth for boxblur2 to a multiple of 16 --- rtengine/hilite_recon.cc | 189 +++++++++++---------------------------- 1 file changed, 52 insertions(+), 137 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 38da3ea26..b7c4d349c 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -22,6 +22,10 @@ // //////////////////////////////////////////////////////////////// +#ifndef NDEBUG +#include +#endif + #include #include #include "array2D.h" @@ -32,8 +36,11 @@ #include "StopWatch.h" namespace { -void boxblur2(float** src, float** dst, float** temp, int startY, int startX, int H, int W, int box ) +void boxblur2(const float* const* src, float** dst, float** temp, int startY, int startX, int H, int W, int box) { + constexpr int numCols = 16; + assert((W % numCols) == 0); + //box blur image channel; box size = 2*box+1 //horizontal blur #ifdef _OPENMP @@ -63,148 +70,52 @@ void boxblur2(float** src, float** dst, float** temp, int startY, int startX, in } } -#ifdef __SSE2__ //vertical blur #ifdef _OPENMP #pragma omp parallel #endif { - float len = box + 1; - vfloat lenv = F2V( len ); - vfloat lenp1v = F2V( len + 1.0f ); - vfloat onev = F2V( 1.0f ); - vfloat tempv, temp2v; + float tempvalN[numCols] ALIGNED64; #ifdef _OPENMP - #pragma omp for nowait + #pragma omp for #endif - - for (int col = 0; col < W - 7; col += 8) { - tempv = LVFU(temp[0][col]) / lenv; - temp2v = LVFU(temp[0][col + 4]) / lenv; - + for (int col = 0; col < W - numCols + 1; col += numCols) { + float len = box + 1; + for(int n = 0; n < numCols; n++) { + tempvalN[n] = temp[0][col + n] / len; + } for (int i = 1; i <= box; i++) { - tempv = tempv + LVFU(temp[i][col]) / lenv; - temp2v = temp2v + LVFU(temp[i][col + 4]) / lenv; + for(int n = 0; n < numCols; n++) { + tempvalN[n] += temp[i][col + n] / len; + } + } + for(int n = 0; n < numCols; n++) { + dst[0][col + n] = tempvalN[n]; } - - _mm_storeu_ps( &dst[0][col], tempv); - _mm_storeu_ps( &dst[0][col + 4], temp2v); - for (int row = 1; row <= box; row++) { - tempv = (tempv * lenv + LVFU(temp[(row + box)][col])) / lenp1v; - temp2v = (temp2v * lenv + LVFU(temp[(row + box)][col + 4])) / lenp1v; - _mm_storeu_ps( &dst[row][col], tempv); - _mm_storeu_ps( &dst[row][col + 4], temp2v); - lenv = lenp1v; - lenp1v = lenp1v + onev; + for(int n = 0; n < numCols; n++) { + tempvalN[n] = (tempvalN[n] * len + temp[(row + box)][col + n]) / (len + 1); + dst[row][col + n] = tempvalN[n]; + } + len ++; } - + const float rlen = 1.f / len; for (int row = box + 1; row < H - box; row++) { - tempv = tempv + (LVFU(temp[(row + box)][col]) - LVFU(temp[(row - box - 1)][col])) / lenv; - temp2v = temp2v + (LVFU(temp[(row + box)][col + 4]) - LVFU(temp[(row - box - 1)][col + 4])) / lenv; - _mm_storeu_ps( &dst[row][col], tempv); - _mm_storeu_ps( &dst[row][col + 4], temp2v); + for(int n = 0; n < numCols; n++) { + tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; + dst[row][col + n] = tempvalN[n]; + } } for (int row = H - box; row < H; row++) { - lenp1v = lenv; - lenv = lenv - onev; - tempv = (tempv * lenp1v - LVFU(temp[(row - box - 1)][col])) / lenv; - temp2v = (temp2v * lenp1v - LVFU(temp[(row - box - 1)][col + 4])) / lenv; - _mm_storeu_ps( &dst[row][col], tempv ); - _mm_storeu_ps( &dst[row][col + 4], temp2v ); - } - } - -#ifdef _OPENMP - #pragma omp single -#endif - { - for (int col = W - (W % 8); col < W - 3; col += 4) { - tempv = LVFU(temp[0][col]) / lenv; - - for (int i = 1; i <= box; i++) { - tempv = tempv + LVFU(temp[i][col]) / lenv; - } - - _mm_storeu_ps( &dst[0][col], tempv); - - for (int row = 1; row <= box; row++) { - tempv = (tempv * lenv + LVFU(temp[(row + box)][col])) / lenp1v; - _mm_storeu_ps( &dst[row][col], tempv); - lenv = lenp1v; - lenp1v = lenp1v + onev; - } - - for (int row = box + 1; row < H - box; row++) { - tempv = tempv + (LVFU(temp[(row + box)][col]) - LVFU(temp[(row - box - 1)][col])) / lenv; - _mm_storeu_ps( &dst[row][col], tempv); - } - - for (int row = H - box; row < H; row++) { - lenp1v = lenv; - lenv = lenv - onev; - tempv = (tempv * lenp1v - LVFU(temp[(row - box - 1)][col])) / lenv; - _mm_storeu_ps( &dst[row][col], tempv ); - } - } - - for (int col = W - (W % 4); col < W; col++) { - int len = box + 1; - dst[0][col] = temp[0][col] / len; - - for (int i = 1; i <= box; i++) { - dst[0][col] += temp[i][col] / len; - } - - for (int row = 1; row <= box; row++) { - dst[row][col] = (dst[(row - 1)][col] * len + temp[(row + box)][col]) / (len + 1); - len ++; - } - - for (int row = box + 1; row < H - box; row++) { - dst[row][col] = dst[(row - 1)][col] + (temp[(row + box)][col] - temp[(row - box - 1)][col]) / len; - } - - for (int row = H - box; row < H; row++) { - dst[row][col] = (dst[(row - 1)][col] * len - temp[(row - box - 1)][col]) / (len - 1); - len --; + for(int n = 0; n < numCols; n++) { + tempvalN[n] = (dst[(row - 1)][col + n] * len - temp[(row - box - 1)][col + n]) / (len - 1); + dst[row][col + n] = tempvalN[n]; } + len --; } } } - -#else - //vertical blur -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int col = 0; col < W; col++) { - int len = box + 1; - dst[0][col] = temp[0][col] / len; - - for (int i = 1; i <= box; i++) { - dst[0][col] += temp[i][col] / len; - } - - for (int row = 1; row <= box; row++) { - dst[row][col] = (dst[(row - 1)][col] * len + temp[(row + box)][col]) / (len + 1); - len ++; - } - - for (int row = box + 1; row < H - box; row++) { - dst[row][col] = dst[(row - 1)][col] + (temp[(row + box)][col] - temp[(row - box - 1)][col]) / len; - } - - for (int row = H - box; row < H; row++) { - dst[row][col] = (dst[(row - 1)][col] * len - temp[(row - box - 1)][col]) / (len - 1); - len --; - } - } - -#endif - } void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int box, int samp ) @@ -263,19 +174,19 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b } } - static const int numCols = 8; // process numCols columns at once for better L1 CPU cache usage + constexpr int numCols = 8; // process numCols columns at once for better L1 CPU cache usage #ifdef _OPENMP #pragma omp parallel #endif { - float tempvalN[numCols] ALIGNED16; + float tempvalN[numCols] ALIGNED64; #ifdef _OPENMP #pragma omp for nowait #endif //vertical blur for (int col = 0; col < (W / samp) - (numCols - 1); col += numCols) { - int len = box + 1; + float len = box + 1; for(int n = 0; n < numCols; n++) { tempvalN[n] = temp[0][col + n] / len; @@ -304,10 +215,10 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b len ++; } - + const float rlen = 1.f / len; for (int row = box + 1; row < H - box; row++) { for(int n = 0; n < numCols; n++) { - tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) / len; + tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; } if(row % samp == 0) { @@ -511,28 +422,32 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b maxy = std::min(height - 1, maxy + blurBorder); const int blurWidth = maxx - minx + 1; const int blurHeight = maxy - miny + 1; + const int bufferWidth = blurWidth + ((16 - (blurWidth % 16)) & 15); + + std::cout << "blurWidth : " << blurWidth << std::endl; + std::cout << "bufferWidth : " << bufferWidth << std::endl; std::cout << "Corrected area reduced by factor: " << (((float)width * height) / (blurWidth * blurHeight)) << std::endl; - multi_array2D channelblur(blurWidth, blurHeight, 0, 48); - array2D temp(blurWidth, blurHeight); // allocate temporary buffer + multi_array2D channelblur(bufferWidth, blurHeight, 0, 48); + array2D temp(bufferWidth, blurHeight); // allocate temporary buffer // blur RGB channels - boxblur2(red, channelblur[0], temp, miny, minx, blurHeight, blurWidth, 4); + boxblur2(red, channelblur[0], temp, miny, minx, blurHeight, bufferWidth, 4); if(plistener) { progress += 0.05; plistener->setProgress(progress); } - boxblur2(green, channelblur[1], temp, miny, minx, blurHeight, blurWidth, 4); + boxblur2(green, channelblur[1], temp, miny, minx, blurHeight, bufferWidth, 4); if(plistener) { progress += 0.05; plistener->setProgress(progress); } - boxblur2(blue, channelblur[2], temp, miny, minx, blurHeight, blurWidth, 4); + boxblur2(blue, channelblur[2], temp, miny, minx, blurHeight, bufferWidth, 4); if(plistener) { progress += 0.05; @@ -558,7 +473,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b plistener->setProgress(progress); } - multi_array2D hilite_full(blurWidth, blurHeight, ARRAY2D_CLEAR_DATA, 32); + multi_array2D hilite_full(bufferWidth, blurHeight, ARRAY2D_CLEAR_DATA, 32); if(plistener) { progress += 0.10; @@ -598,10 +513,10 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b plistener->setProgress(progress); } - array2D hilite_full4(blurWidth, blurHeight); + array2D hilite_full4(bufferWidth, blurHeight); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //blur highlight data - boxblur2(hilite_full[3], hilite_full4, temp, 0, 0, blurHeight, blurWidth, 1); + boxblur2(hilite_full[3], hilite_full4, temp, 0, 0, blurHeight, bufferWidth, 1); temp.free(); // free temporary buffer From 4f73e5bb3cb4cbdd5749a8b7614319b65567cee8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 9 Jul 2019 00:20:04 +0200 Subject: [PATCH 178/215] Fix oob access in last commit --- rtengine/hilite_recon.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index b7c4d349c..e78bd7365 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -36,10 +36,10 @@ #include "StopWatch.h" namespace { -void boxblur2(const float* const* src, float** dst, float** temp, int startY, int startX, int H, int W, int box) +void boxblur2(const float* const* src, float** dst, float** temp, int startY, int startX, int H, int W, int bufferW, int box) { constexpr int numCols = 16; - assert((W % numCols) == 0); + assert((bufferW % numCols) == 0); //box blur image channel; box size = 2*box+1 //horizontal blur @@ -79,7 +79,7 @@ void boxblur2(const float* const* src, float** dst, float** temp, int startY, in #ifdef _OPENMP #pragma omp for #endif - for (int col = 0; col < W - numCols + 1; col += numCols) { + for (int col = 0; col < bufferW - numCols + 1; col += numCols) { float len = box + 1; for(int n = 0; n < numCols; n++) { tempvalN[n] = temp[0][col + n] / len; @@ -433,21 +433,21 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b // blur RGB channels - boxblur2(red, channelblur[0], temp, miny, minx, blurHeight, bufferWidth, 4); + boxblur2(red, channelblur[0], temp, miny, minx, blurHeight, blurWidth, bufferWidth, 4); if(plistener) { progress += 0.05; plistener->setProgress(progress); } - boxblur2(green, channelblur[1], temp, miny, minx, blurHeight, bufferWidth, 4); + boxblur2(green, channelblur[1], temp, miny, minx, blurHeight, blurWidth, bufferWidth, 4); if(plistener) { progress += 0.05; plistener->setProgress(progress); } - boxblur2(blue, channelblur[2], temp, miny, minx, blurHeight, bufferWidth, 4); + boxblur2(blue, channelblur[2], temp, miny, minx, blurHeight, blurWidth, bufferWidth, 4); if(plistener) { progress += 0.05; @@ -516,7 +516,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b array2D hilite_full4(bufferWidth, blurHeight); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //blur highlight data - boxblur2(hilite_full[3], hilite_full4, temp, 0, 0, blurHeight, bufferWidth, 1); + boxblur2(hilite_full[3], hilite_full4, temp, 0, 0, blurHeight, blurWidth, bufferWidth, 1); temp.free(); // free temporary buffer From fe43bf1bf2df00d51826093cd09269c03a7ece03 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 9 Jul 2019 00:40:25 +0200 Subject: [PATCH 179/215] color propagation: use up to 4 cores where previously only up to 3 cores were used --- rtengine/hilite_recon.cc | 313 +++++++++++++++++++++------------------ 1 file changed, 169 insertions(+), 144 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index e78bd7365..a726481dd 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -617,192 +617,217 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - #ifdef _OPENMP - #pragma omp parallel for + #pragma omp parallel +#endif + { +#ifdef _OPENMP + #pragma omp for nowait #endif - for (int c = 0; c < 3; c++) { - for (int j = 1; j < hfw - 1; j++) { - for (int i = 2; i < hfh - 2; i++) { - //from left - if (hilite[3][i][j] > epsilon) { - hilite_dir0[c][j][i] = hilite[c][i][j] / hilite[3][i][j]; - } else { - hilite_dir0[c][j][i] = 0.1f * ((hilite_dir0[0 + c][j - 1][i - 2] + hilite_dir0[0 + c][j - 1][i - 1] + hilite_dir0[0 + c][j - 1][i] + hilite_dir0[0 + c][j - 1][i + 1] + hilite_dir0[0 + c][j - 1][i + 2]) / - (hilite_dir0[0 + 3][j - 1][i - 2] + hilite_dir0[0 + 3][j - 1][i - 1] + hilite_dir0[0 + 3][j - 1][i] + hilite_dir0[0 + 3][j - 1][i + 1] + hilite_dir0[0 + 3][j - 1][i + 2] + epsilon)); + for (int c = 0; c < 3; c++) { + for (int j = 1; j < hfw - 1; j++) { + for (int i = 2; i < hfh - 2; i++) { + //from left + if (hilite[3][i][j] > epsilon) { + hilite_dir0[c][j][i] = hilite[c][i][j] / hilite[3][i][j]; + } else { + hilite_dir0[c][j][i] = 0.1f * ((hilite_dir0[0 + c][j - 1][i - 2] + hilite_dir0[0 + c][j - 1][i - 1] + hilite_dir0[0 + c][j - 1][i] + hilite_dir0[0 + c][j - 1][i + 1] + hilite_dir0[0 + c][j - 1][i + 2]) / + (hilite_dir0[0 + 3][j - 1][i - 2] + hilite_dir0[0 + 3][j - 1][i - 1] + hilite_dir0[0 + 3][j - 1][i] + hilite_dir0[0 + 3][j - 1][i + 1] + hilite_dir0[0 + 3][j - 1][i + 2] + epsilon)); + } + } + + if(hilite[3][2][j] <= epsilon) { + hilite_dir[0 + c][0][j] = hilite_dir0[c][j][2]; + } + + if(hilite[3][3][j] <= epsilon) { + hilite_dir[0 + c][1][j] = hilite_dir0[c][j][3]; + } + + if(hilite[3][hfh - 3][j] <= epsilon) { + hilite_dir[4 + c][hfh - 1][j] = hilite_dir0[c][j][hfh - 3]; + } + + if(hilite[3][hfh - 4][j] <= epsilon) { + hilite_dir[4 + c][hfh - 2][j] = hilite_dir0[c][j][hfh - 4]; } } - if(hilite[3][2][j] <= epsilon) { - hilite_dir[0 + c][0][j] = hilite_dir0[c][j][2]; - } - - if(hilite[3][3][j] <= epsilon) { - hilite_dir[0 + c][1][j] = hilite_dir0[c][j][3]; - } - - if(hilite[3][hfh - 3][j] <= epsilon) { - hilite_dir[4 + c][hfh - 1][j] = hilite_dir0[c][j][hfh - 3]; - } - - if(hilite[3][hfh - 4][j] <= epsilon) { - hilite_dir[4 + c][hfh - 2][j] = hilite_dir0[c][j][hfh - 4]; + for (int i = 2; i < hfh - 2; i++) { + if(hilite[3][i][hfw - 2] <= epsilon) { + hilite_dir4[c][hfw - 1][i] = hilite_dir0[c][hfw - 2][i]; + } } } - for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][hfw - 2] <= epsilon) { - hilite_dir4[c][hfw - 1][i] = hilite_dir0[c][hfw - 2][i]; +#ifdef _OPENMP + #pragma omp single +#endif + { + for (int j = hfw - 2; j > 0; j--) { + for (int i = 2; i < hfh - 2; i++) { + //from right + if (hilite[3][i][j] > epsilon) { + hilite_dir4[3][j][i] = 1.f; + } else { + hilite_dir4[3][j][i] = (hilite_dir4[3][(j + 1)][(i - 2)] + hilite_dir4[3][(j + 1)][(i - 1)] + hilite_dir4[3][(j + 1)][(i)] + hilite_dir4[3][(j + 1)][(i + 1)] + hilite_dir4[3][(j + 1)][(i + 2)]) == 0.f ? 0.f : 0.1f; + } + } + + if(hilite[3][2][j] <= epsilon) { + hilite_dir[0 + 3][0][j] += hilite_dir4[3][j][2]; + } + + if(hilite[3][hfh - 3][j] <= epsilon) { + hilite_dir[4 + 3][hfh - 1][j] += hilite_dir4[3][j][hfh - 3]; + } + } + + for (int i = 2; i < hfh - 2; i++) { + if(hilite[3][i][0] <= epsilon) { + hilite_dir[0 + 3][i - 2][0] += hilite_dir4[3][0][i]; + hilite_dir[4 + 3][i + 2][0] += hilite_dir4[3][0][i]; + } + + if(hilite[3][i][1] <= epsilon) { + hilite_dir[0 + 3][i - 2][1] += hilite_dir4[3][1][i]; + hilite_dir[4 + 3][i + 2][1] += hilite_dir4[3][1][i]; + } + + if(hilite[3][i][hfw - 2] <= epsilon) { + hilite_dir[0 + 3][i - 2][hfw - 2] += hilite_dir4[3][hfw - 2][i]; + hilite_dir[4 + 3][i + 2][hfw - 2] += hilite_dir4[3][hfw - 2][i]; + } } } } - if(plistener) { progress += 0.05; plistener->setProgress(progress); } - for (int j = hfw - 2; j > 0; j--) { - for (int i = 2; i < hfh - 2; i++) { - //from right - if (hilite[3][i][j] > epsilon) { - hilite_dir4[3][j][i] = 1.f; - } else { - hilite_dir4[3][j][i] = (hilite_dir4[3][(j + 1)][(i - 2)] + hilite_dir4[3][(j + 1)][(i - 1)] + hilite_dir4[3][(j + 1)][(i)] + hilite_dir4[3][(j + 1)][(i + 1)] + hilite_dir4[3][(j + 1)][(i + 2)]) == 0.f ? 0.f : 0.1f; - } - } - - if(hilite[3][2][j] <= epsilon) { - hilite_dir[0 + 3][0][j] += hilite_dir4[3][j][2]; - } - - if(hilite[3][hfh - 3][j] <= epsilon) { - hilite_dir[4 + 3][hfh - 1][j] += hilite_dir4[3][j][hfh - 3]; - } - } - - for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][0] <= epsilon) { - hilite_dir[0 + 3][i - 2][0] += hilite_dir4[3][0][i]; - hilite_dir[4 + 3][i + 2][0] += hilite_dir4[3][0][i]; - } - - if(hilite[3][i][1] <= epsilon) { - hilite_dir[0 + 3][i - 2][1] += hilite_dir4[3][1][i]; - hilite_dir[4 + 3][i + 2][1] += hilite_dir4[3][1][i]; - } - - if(hilite[3][i][hfw - 2] <= epsilon) { - hilite_dir[0 + 3][i - 2][hfw - 2] += hilite_dir4[3][hfw - 2][i]; - hilite_dir[4 + 3][i + 2][hfw - 2] += hilite_dir4[3][hfw - 2][i]; - } - } - #ifdef _OPENMP - #pragma omp parallel for + #pragma omp parallel +#endif + { +#ifdef _OPENMP + #pragma omp for nowait #endif - for (int c = 0; c < 3; c++) { - for (int j = hfw - 2; j > 0; j--) { - for (int i = 2; i < hfh - 2; i++) { - //from right - if (hilite[3][i][j] > epsilon) { - hilite_dir4[c][j][i] = hilite[c][i][j] / hilite[3][i][j]; - } else { - hilite_dir4[c][j][i] = 0.1 * ((hilite_dir4[c][(j + 1)][(i - 2)] + hilite_dir4[c][(j + 1)][(i - 1)] + hilite_dir4[c][(j + 1)][(i)] + hilite_dir4[c][(j + 1)][(i + 1)] + hilite_dir4[c][(j + 1)][(i + 2)]) / - (hilite_dir4[3][(j + 1)][(i - 2)] + hilite_dir4[3][(j + 1)][(i - 1)] + hilite_dir4[3][(j + 1)][(i)] + hilite_dir4[3][(j + 1)][(i + 1)] + hilite_dir4[3][(j + 1)][(i + 2)] + epsilon)); + for (int c = 0; c < 3; c++) { + for (int j = hfw - 2; j > 0; j--) { + for (int i = 2; i < hfh - 2; i++) { + //from right + if (hilite[3][i][j] > epsilon) { + hilite_dir4[c][j][i] = hilite[c][i][j] / hilite[3][i][j]; + } else { + hilite_dir4[c][j][i] = 0.1f * ((hilite_dir4[c][(j + 1)][(i - 2)] + hilite_dir4[c][(j + 1)][(i - 1)] + hilite_dir4[c][(j + 1)][(i)] + hilite_dir4[c][(j + 1)][(i + 1)] + hilite_dir4[c][(j + 1)][(i + 2)]) / + (hilite_dir4[3][(j + 1)][(i - 2)] + hilite_dir4[3][(j + 1)][(i - 1)] + hilite_dir4[3][(j + 1)][(i)] + hilite_dir4[3][(j + 1)][(i + 1)] + hilite_dir4[3][(j + 1)][(i + 2)] + epsilon)); + } + } + + if(hilite[3][2][j] <= epsilon) { + hilite_dir[0 + c][0][j] += hilite_dir4[c][j][2]; + } + + if(hilite[3][hfh - 3][j] <= epsilon) { + hilite_dir[4 + c][hfh - 1][j] += hilite_dir4[c][j][hfh - 3]; } } - if(hilite[3][2][j] <= epsilon) { - hilite_dir[0 + c][0][j] += hilite_dir4[c][j][2]; - } + for (int i = 2; i < hfh - 2; i++) { + if(hilite[3][i][0] <= epsilon) { + hilite_dir[0 + c][i - 2][0] += hilite_dir4[c][0][i]; + hilite_dir[4 + c][i + 2][0] += hilite_dir4[c][0][i]; + } - if(hilite[3][hfh - 3][j] <= epsilon) { - hilite_dir[4 + c][hfh - 1][j] += hilite_dir4[c][j][hfh - 3]; + if(hilite[3][i][1] <= epsilon) { + hilite_dir[0 + c][i - 2][1] += hilite_dir4[c][1][i]; + hilite_dir[4 + c][i + 2][1] += hilite_dir4[c][1][i]; + } + + if(hilite[3][i][hfw - 2] <= epsilon) { + hilite_dir[0 + c][i - 2][hfw - 2] += hilite_dir4[c][hfw - 2][i]; + hilite_dir[4 + c][i + 2][hfw - 2] += hilite_dir4[c][hfw - 2][i]; + } } } - for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][0] <= epsilon) { - hilite_dir[0 + c][i - 2][0] += hilite_dir4[c][0][i]; - hilite_dir[4 + c][i + 2][0] += hilite_dir4[c][0][i]; - } - - if(hilite[3][i][1] <= epsilon) { - hilite_dir[0 + c][i - 2][1] += hilite_dir4[c][1][i]; - hilite_dir[4 + c][i + 2][1] += hilite_dir4[c][1][i]; - } - - if(hilite[3][i][hfw - 2] <= epsilon) { - hilite_dir[0 + c][i - 2][hfw - 2] += hilite_dir4[c][hfw - 2][i]; - hilite_dir[4 + c][i + 2][hfw - 2] += hilite_dir4[c][hfw - 2][i]; - } - } - } - - if(plistener) { - progress += 0.05; - plistener->setProgress(progress); - } - - - for (int i = 1; i < hfh - 1; i++) - for (int j = 2; j < hfw - 2; j++) { - //from top - if (hilite[3][i][j] > epsilon) { - hilite_dir[0 + 3][i][j] = 1.f; - } else { - hilite_dir[0 + 3][i][j] = (hilite_dir[0 + 3][i - 1][j - 2] + hilite_dir[0 + 3][i - 1][j - 1] + hilite_dir[0 + 3][i - 1][j] + hilite_dir[0 + 3][i - 1][j + 1] + hilite_dir[0 + 3][i - 1][j + 2]) == 0.f ? 0.f : 0.1f; - } - } - - for (int j = 2; j < hfw - 2; j++) { - if(hilite[3][hfh - 2][j] <= epsilon) { - hilite_dir[4 + 3][hfh - 1][j] += hilite_dir[0 + 3][hfh - 2][j]; - } - } - #ifdef _OPENMP - #pragma omp parallel for + #pragma omp single #endif + { + for (int i = 1; i < hfh - 1; i++) + for (int j = 2; j < hfw - 2; j++) { + //from top + if (hilite[3][i][j] > epsilon) { + hilite_dir[0 + 3][i][j] = 1.f; + } else { + hilite_dir[0 + 3][i][j] = (hilite_dir[0 + 3][i - 1][j - 2] + hilite_dir[0 + 3][i - 1][j - 1] + hilite_dir[0 + 3][i - 1][j] + hilite_dir[0 + 3][i - 1][j + 1] + hilite_dir[0 + 3][i - 1][j + 2]) == 0.f ? 0.f : 0.1f; + } + } - for (int c = 0; c < 3; c++) { - for (int i = 1; i < hfh - 1; i++) { for (int j = 2; j < hfw - 2; j++) { - //from top - if (hilite[3][i][j] > epsilon) { - hilite_dir[0 + c][i][j] = hilite[c][i][j] / hilite[3][i][j]; - } else { - hilite_dir[0 + c][i][j] = 0.1 * ((hilite_dir[0 + c][i - 1][j - 2] + hilite_dir[0 + c][i - 1][j - 1] + hilite_dir[0 + c][i - 1][j] + hilite_dir[0 + c][i - 1][j + 1] + hilite_dir[0 + c][i - 1][j + 2]) / - (hilite_dir[0 + 3][i - 1][j - 2] + hilite_dir[0 + 3][i - 1][j - 1] + hilite_dir[0 + 3][i - 1][j] + hilite_dir[0 + 3][i - 1][j + 1] + hilite_dir[0 + 3][i - 1][j + 2] + epsilon)); + if(hilite[3][hfh - 2][j] <= epsilon) { + hilite_dir[4 + 3][hfh - 1][j] += hilite_dir[0 + 3][hfh - 2][j]; } } } - - for (int j = 2; j < hfw - 2; j++) { - if(hilite[3][hfh - 2][j] <= epsilon) { - hilite_dir[4 + c][hfh - 1][j] += hilite_dir[0 + c][hfh - 2][j]; - } - } } - if(plistener) { progress += 0.05; plistener->setProgress(progress); } - for (int i = hfh - 2; i > 0; i--) - for (int j = 2; j < hfw - 2; j++) { - //from bottom - if (hilite[3][i][j] > epsilon) { - hilite_dir[4 + 3][i][j] = 1.f; - } else { - hilite_dir[4 + 3][i][j] = (hilite_dir[4 + 3][(i + 1)][(j - 2)] + hilite_dir[4 + 3][(i + 1)][(j - 1)] + hilite_dir[4 + 3][(i + 1)][(j)] + hilite_dir[4 + 3][(i + 1)][(j + 1)] + hilite_dir[4 + 3][(i + 1)][(j + 2)]) == 0.f ? 0.f : 0.1f; +#ifdef _OPENMP + #pragma omp parallel +#endif + { +#ifdef _OPENMP + #pragma omp for nowait +#endif + + for (int c = 0; c < 3; c++) { + for (int i = 1; i < hfh - 1; i++) { + for (int j = 2; j < hfw - 2; j++) { + //from top + if (hilite[3][i][j] > epsilon) { + hilite_dir[0 + c][i][j] = hilite[c][i][j] / hilite[3][i][j]; + } else { + hilite_dir[0 + c][i][j] = 0.1f * ((hilite_dir[0 + c][i - 1][j - 2] + hilite_dir[0 + c][i - 1][j - 1] + hilite_dir[0 + c][i - 1][j] + hilite_dir[0 + c][i - 1][j + 1] + hilite_dir[0 + c][i - 1][j + 2]) / + (hilite_dir[0 + 3][i - 1][j - 2] + hilite_dir[0 + 3][i - 1][j - 1] + hilite_dir[0 + 3][i - 1][j] + hilite_dir[0 + 3][i - 1][j + 1] + hilite_dir[0 + 3][i - 1][j + 2] + epsilon)); + } + } + } + + for (int j = 2; j < hfw - 2; j++) { + if(hilite[3][hfh - 2][j] <= epsilon) { + hilite_dir[4 + c][hfh - 1][j] += hilite_dir[0 + c][hfh - 2][j]; + } } } + +#ifdef _OPENMP + #pragma omp single +#endif + for (int i = hfh - 2; i > 0; i--) + for (int j = 2; j < hfw - 2; j++) { + //from bottom + if (hilite[3][i][j] > epsilon) { + hilite_dir[4 + 3][i][j] = 1.f; + } else { + hilite_dir[4 + 3][i][j] = (hilite_dir[4 + 3][(i + 1)][(j - 2)] + hilite_dir[4 + 3][(i + 1)][(j - 1)] + hilite_dir[4 + 3][(i + 1)][(j)] + hilite_dir[4 + 3][(i + 1)][(j + 1)] + hilite_dir[4 + 3][(i + 1)][(j + 2)]) == 0.f ? 0.f : 0.1f; + } + } + } + + if(plistener) { + progress += 0.05; + plistener->setProgress(progress); + } + #ifdef _OPENMP #pragma omp parallel for #endif @@ -814,7 +839,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b if (hilite[3][i][j] > epsilon) { hilite_dir[4 + c][i][j] = hilite[c][i][j] / hilite[3][i][j]; } else { - hilite_dir[4 + c][i][j] = 0.1 * ((hilite_dir[4 + c][(i + 1)][(j - 2)] + hilite_dir[4 + c][(i + 1)][(j - 1)] + hilite_dir[4 + c][(i + 1)][(j)] + hilite_dir[4 + c][(i + 1)][(j + 1)] + hilite_dir[4 + c][(i + 1)][(j + 2)]) / + hilite_dir[4 + c][i][j] = 0.1f * ((hilite_dir[4 + c][(i + 1)][(j - 2)] + hilite_dir[4 + c][(i + 1)][(j - 1)] + hilite_dir[4 + c][(i + 1)][(j)] + hilite_dir[4 + c][(i + 1)][(j + 1)] + hilite_dir[4 + c][(i + 1)][(j + 2)]) / (hilite_dir[4 + 3][(i + 1)][(j - 2)] + hilite_dir[4 + 3][(i + 1)][(j - 1)] + hilite_dir[4 + 3][(i + 1)][(j)] + hilite_dir[4 + 3][(i + 1)][(j + 1)] + hilite_dir[4 + 3][(i + 1)][(j + 2)] + epsilon)); } } From 3b78a5c22720f6128e15a34e81212b011d3f3eba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Tue, 9 Jul 2019 13:18:08 +0200 Subject: [PATCH 180/215] Minor cleanups after #5315 and #5368 --- rtengine/dfmanager.cc | 6 +++--- rtgui/mydiagonalcurve.cc | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc index 4696af1a1..c41c8a180 100644 --- a/rtengine/dfmanager.cc +++ b/rtengine/dfmanager.cc @@ -257,7 +257,7 @@ void dfInfo::updateBadPixelList( RawImage *df ) } if( df->data[row][3 * col] > m[0]*threshold || df->data[row][3 * col + 1] > m[1]*threshold || df->data[row][3 * col + 2] > m[2]*threshold) { - badPixels.push_back( badPix(col, row) ); + badPixels.emplace_back(col, row); } } } @@ -571,7 +571,7 @@ int DFManager::scanBadPixelsFile( Glib::ustring filename ) while( fgets(line, sizeof(line), file ) ) { if( sscanf(line, "%d %d", &x, &y) == 2 ) { - bp.push_back( badPix(x + offset, y + offset) ); + bp.emplace_back(x + offset, y + offset); } } } @@ -592,7 +592,7 @@ std::vector *DFManager::getBadPixels ( const std::string &mak, const std bool found = false; if( !serial.empty() ) { - // search with sreial number first + // search with serial number first std::ostringstream s; s << mak << " " << mod << " " << serial; iter = bpList.find( s.str() ); diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index 64da24607..a3e7b9375 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -25,8 +25,6 @@ #include "editcallbacks.h" #include "../rtengine/curves.h" -#include -#include MyDiagonalCurve::MyDiagonalCurve () : MyCurve(), From c56106beaee25a0bd370bc22e75de23258ae40f7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 9 Jul 2019 17:39:53 +0200 Subject: [PATCH 181/215] color propagation: small speedup, also some code formating --- rtengine/hilite_recon.cc | 273 +++++++++++++++++++-------------------- 1 file changed, 133 insertions(+), 140 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index a726481dd..7fe527a78 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -22,9 +22,7 @@ // //////////////////////////////////////////////////////////////// -#ifndef NDEBUG #include -#endif #include #include @@ -81,19 +79,19 @@ void boxblur2(const float* const* src, float** dst, float** temp, int startY, in #endif for (int col = 0; col < bufferW - numCols + 1; col += numCols) { float len = box + 1; - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = temp[0][col + n] / len; } for (int i = 1; i <= box; i++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] += temp[i][col + n] / len; } } - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { dst[0][col + n] = tempvalN[n]; } for (int row = 1; row <= box; row++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = (tempvalN[n] * len + temp[(row + box)][col + n]) / (len + 1); dst[row][col + n] = tempvalN[n]; } @@ -101,14 +99,14 @@ void boxblur2(const float* const* src, float** dst, float** temp, int startY, in } const float rlen = 1.f / len; for (int row = box + 1; row < H - box; row++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; dst[row][col + n] = tempvalN[n]; } } for (int row = H - box; row < H; row++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = (dst[(row - 1)][col + n] * len - temp[(row - box - 1)][col + n]) / (len - 1); dst[row][col + n] = tempvalN[n]; } @@ -118,7 +116,7 @@ void boxblur2(const float* const* src, float** dst, float** temp, int startY, in } } -void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int box, int samp ) +void boxblur_resamp(const float * const *src, float **dst, float ** temp, int H, int W, int box, int samp ) { #ifdef _OPENMP @@ -145,7 +143,7 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int col = 1; col <= box; col++) { tempval = (tempval * len + src[row][col + box]) / (len + 1); - if(col % samp == 0) { + if (col % samp == 0) { temp[row][col / samp] = tempval; } @@ -157,7 +155,7 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int col = box + 1; col < W - box; col++) { tempval = tempval + (src[row][col + box] - src[row][col - box - 1]) * oneByLen; - if(col % samp == 0) { + if (col % samp == 0) { temp[row][col / samp] = tempval; } } @@ -165,7 +163,7 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int col = W - box; col < W; col++) { tempval = (tempval * len - src[row][col - box - 1]) / (len - 1); - if(col % samp == 0) { + if (col % samp == 0) { temp[row][col / samp] = tempval; } @@ -188,27 +186,27 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int col = 0; col < (W / samp) - (numCols - 1); col += numCols) { float len = box + 1; - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = temp[0][col + n] / len; } for (int i = 1; i <= box; i++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] += temp[i][col + n] / len; } } - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { dst[0][col + n] = tempvalN[n]; } for (int row = 1; row <= box; row++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = (tempvalN[n] * len + temp[(row + box)][col + n]) / (len + 1); } - if(row % samp == 0) { - for(int n = 0; n < numCols; n++) { + if (row % samp == 0) { + for (int n = 0; n < numCols; n++) { dst[row / samp][col + n] = tempvalN[n]; } } @@ -217,24 +215,24 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b } const float rlen = 1.f / len; for (int row = box + 1; row < H - box; row++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; } - if(row % samp == 0) { - for(int n = 0; n < numCols; n++) { + if (row % samp == 0) { + for (int n = 0; n < numCols; n++) { dst[row / samp][col + n] = tempvalN[n]; } } } for (int row = H - box; row < H; row++) { - for(int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; n++) { tempvalN[n] = (tempvalN[n] * len - temp[(row - box - 1)][col + n]) / (len - 1); } - if(row % samp == 0) { - for(int n = 0; n < numCols; n++) { + if (row % samp == 0) { + for (int n = 0; n < numCols; n++) { dst[row / samp][col + n] = tempvalN[n]; } } @@ -263,7 +261,7 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int row = 1; row <= box; row++) { tempval = (tempval * len + temp[(row + box)][col]) / (len + 1); - if(row % samp == 0) { + if (row % samp == 0) { dst[row / samp][col] = tempval; } @@ -273,7 +271,7 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int row = box + 1; row < H - box; row++) { tempval = tempval + (temp[(row + box)][col] - temp[(row - box - 1)][col]) / len; - if(row % samp == 0) { + if (row % samp == 0) { dst[row / samp][col] = tempval; } } @@ -281,7 +279,7 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b for (int row = H - box; row < H; row++) { tempval = (tempval * len - temp[(row - box - 1)][col]) / (len - 1); - if(row % samp == 0) { + if (row % samp == 0) { dst[row / samp][col] = tempval; } @@ -290,8 +288,6 @@ void boxblur_resamp(float **src, float **dst, float ** temp, int H, int W, int b } } } - - } } @@ -301,7 +297,7 @@ namespace rtengine extern const Settings* settings; -void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** blue) +void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blue) { BENCHFUN double progress = 0.0; @@ -311,8 +307,8 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b plistener->setProgress (progress); } - int height = H; - int width = W; + const int height = H; + const int width = W; constexpr int range = 2; constexpr int pitch = 4; @@ -330,20 +326,20 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b constexpr float itrans[ColorCount][ColorCount] = { { 1.f, 0.8660254f, -0.5f }, { 1.f, -0.8660254f, -0.5f }, { 1.f, 0.f, 1.f } }; - if(settings->verbose) - for(int c = 0; c < 3; c++) { + if (settings->verbose) + for (int c = 0; c < 3; c++) { printf("chmax[%d] : %f\tclmax[%d] : %f\tratio[%d] : %f\n", c, chmax[c], c, clmax[c], c, chmax[c] / clmax[c]); } float factor[3]; - for(int c = 0; c < ColorCount; c++) { + for (int c = 0; c < ColorCount; c++) { factor[c] = chmax[c] / clmax[c]; } float minFactor = min(factor[0], factor[1], factor[2]); - if(minFactor > 1.f) { // all 3 channels clipped + if (minFactor > 1.f) { // all 3 channels clipped // calculate clip factor per channel for (int c = 0; c < ColorCount; c++) { factor[c] /= minFactor; @@ -354,15 +350,15 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b float maxValNew = 0.f; for (int c = 0; c < ColorCount; c++) { - if(chmax[c] / factor[c] > maxValNew) { + if (chmax[c] / factor[c] > maxValNew) { maxValNew = chmax[c] / factor[c]; maxpos = c; } } - float clipFactor = clmax[maxpos] / maxValNew; + const float clipFactor = clmax[maxpos] / maxValNew; - if(clipFactor < maxpct) + if (clipFactor < maxpct) // if max clipFactor < maxpct (0.95) adjust per channel factors for (int c = 0; c < ColorCount; c++) { @@ -372,7 +368,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b factor[0] = factor[1] = factor[2] = 1.f; } - if(settings->verbose) + if (settings->verbose) for (int c = 0; c < ColorCount; c++) { printf("correction factor[%d] : %f\n", c, factor[c]); } @@ -384,10 +380,10 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b max_f[c] = chmax[c] * maxpct / factor[c]; } - float whitept = max(max_f[0], max_f[1], max_f[2]); - float clippt = min(max_f[0], max_f[1], max_f[2]); - float medpt = max_f[0] + max_f[1] + max_f[2] - whitept - clippt; - float blendpt = blendthresh * clippt; + const float whitept = max(max_f[0], max_f[1], max_f[2]); + const float clippt = min(max_f[0], max_f[1], max_f[2]); + const float medpt = max_f[0] + max_f[1] + max_f[2] - whitept - clippt; + const float blendpt = blendthresh * clippt; float medFactor[3]; for (int c = 0; c < ColorCount; c++) { @@ -401,7 +397,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b #pragma omp parallel for reduction(min:minx,miny) reduction(max:maxx,maxy) schedule(dynamic, 16) for (int i = 0; i < height; ++i) { for (int j = 0; j< width; ++j) { - if(red[i][j] >= max_f[0] || green[i][j] >= max_f[1] || blue[i][j] >= max_f[2]) { + if (red[i][j] >= max_f[0] || green[i][j] >= max_f[1] || blue[i][j] >= max_f[2]) { minx = std::min(minx, j); maxx = std::max(maxx, j); miny = std::min(miny, i); @@ -410,10 +406,10 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - std::cout << "minx : " << minx << std::endl; - std::cout << "maxx : " << maxx << std::endl; - std::cout << "miny : " << miny << std::endl; - std::cout << "maxy : " << maxy << std::endl; + if (plistener) { + progress += 0.05; + plistener->setProgress(progress); + } constexpr int blurBorder = 256; minx = std::max(0, minx - blurBorder); @@ -424,10 +420,16 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b const int blurHeight = maxy - miny + 1; const int bufferWidth = blurWidth + ((16 - (blurWidth % 16)) & 15); + std::cout << "minx : " << minx << std::endl; + std::cout << "maxx : " << maxx << std::endl; + std::cout << "miny : " << miny << std::endl; + std::cout << "maxy : " << maxy << std::endl; + std::cout << "blurWidth : " << blurWidth << std::endl; std::cout << "bufferWidth : " << bufferWidth << std::endl; - std::cout << "Corrected area reduced by factor: " << (((float)width * height) / (blurWidth * blurHeight)) << std::endl; + std::cout << "Corrected area reduced by factor: " << (((float)width * height) / (bufferWidth * blurHeight)) << std::endl; + std::cout << "Peak memory usage reduced from ~" << (30ul * ((size_t)width * (size_t)height)) / (1024*1024) << " Mb to ~" << (30ul * ((size_t)bufferWidth * (size_t)blurHeight)) / (1024*1024) << " Mb" << std::endl; multi_array2D channelblur(bufferWidth, blurHeight, 0, 48); array2D temp(bufferWidth, blurHeight); // allocate temporary buffer @@ -435,22 +437,22 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b boxblur2(red, channelblur[0], temp, miny, minx, blurHeight, blurWidth, bufferWidth, 4); - if(plistener) { - progress += 0.05; + if (plistener) { + progress += 0.07; plistener->setProgress(progress); } boxblur2(green, channelblur[1], temp, miny, minx, blurHeight, blurWidth, bufferWidth, 4); - if(plistener) { - progress += 0.05; + if (plistener) { + progress += 0.07; plistener->setProgress(progress); } boxblur2(blue, channelblur[2], temp, miny, minx, blurHeight, blurWidth, bufferWidth, 4); - if(plistener) { - progress += 0.05; + if (plistener) { + progress += 0.07; plistener->setProgress(progress); } @@ -459,8 +461,8 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b #pragma omp parallel for #endif - for(int i = 0; i < blurHeight; i++) - for(int j = 0; j < blurWidth; j++) { + for (int i = 0; i < blurHeight; i++) + for (int j = 0; j < blurWidth; j++) { channelblur[0][i][j] = fabsf(channelblur[0][i][j] - red[i + miny][j + minx]) + fabsf(channelblur[1][i][j] - green[i + miny][j + minx]) + fabsf(channelblur[2][i][j] - blue[i + miny][j + minx]); } @@ -468,15 +470,15 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b channelblur[c].free(); //free up some memory } - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } multi_array2D hilite_full(bufferWidth, blurHeight, ARRAY2D_CLEAR_DATA, 32); - if(plistener) { - progress += 0.10; + if (plistener) { + progress += 0.05; plistener->setProgress(progress); } @@ -506,9 +508,9 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } }//end of filling highlight array - float hipass_ave = 2.f * hipass_sum / (hipass_norm + epsilon); + const float hipass_ave = 2.f * hipass_sum / (hipass_norm + epsilon); - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -520,8 +522,8 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b temp.free(); // free temporary buffer - if(plistener) { - progress += 0.05; + if (plistener) { + progress += 0.07; plistener->setProgress(progress); } @@ -560,7 +562,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b for (int m = 0; m < 4; m++) { boxblur_resamp(hilite_full[m], hilite[m], temp2, blurHeight, blurWidth, range, pitch); - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -577,7 +579,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b multi_array2D hilite_dir0(hfh, hfw, ARRAY2D_CLEAR_DATA, 64); multi_array2D hilite_dir4(hfh, hfw, ARRAY2D_CLEAR_DATA, 64); - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -594,25 +596,25 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(hilite[3][2][j] <= epsilon) { + if (hilite[3][2][j] <= epsilon) { hilite_dir[0 + 3][0][j] = hilite_dir0[3][j][2]; } - if(hilite[3][3][j] <= epsilon) { + if (hilite[3][3][j] <= epsilon) { hilite_dir[0 + 3][1][j] = hilite_dir0[3][j][3]; } - if(hilite[3][hfh - 3][j] <= epsilon) { + if (hilite[3][hfh - 3][j] <= epsilon) { hilite_dir[4 + 3][hfh - 1][j] = hilite_dir0[3][j][hfh - 3]; } - if(hilite[3][hfh - 4][j] <= epsilon) { + if (hilite[3][hfh - 4][j] <= epsilon) { hilite_dir[4 + 3][hfh - 2][j] = hilite_dir0[3][j][hfh - 4]; } } for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][hfw - 2] <= epsilon) { + if (hilite[3][i][hfw - 2] <= epsilon) { hilite_dir4[3][hfw - 1][i] = hilite_dir0[3][hfw - 2][i]; } } @@ -637,25 +639,25 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(hilite[3][2][j] <= epsilon) { + if (hilite[3][2][j] <= epsilon) { hilite_dir[0 + c][0][j] = hilite_dir0[c][j][2]; } - if(hilite[3][3][j] <= epsilon) { + if (hilite[3][3][j] <= epsilon) { hilite_dir[0 + c][1][j] = hilite_dir0[c][j][3]; } - if(hilite[3][hfh - 3][j] <= epsilon) { + if (hilite[3][hfh - 3][j] <= epsilon) { hilite_dir[4 + c][hfh - 1][j] = hilite_dir0[c][j][hfh - 3]; } - if(hilite[3][hfh - 4][j] <= epsilon) { + if (hilite[3][hfh - 4][j] <= epsilon) { hilite_dir[4 + c][hfh - 2][j] = hilite_dir0[c][j][hfh - 4]; } } for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][hfw - 2] <= epsilon) { + if (hilite[3][i][hfw - 2] <= epsilon) { hilite_dir4[c][hfw - 1][i] = hilite_dir0[c][hfw - 2][i]; } } @@ -675,34 +677,34 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(hilite[3][2][j] <= epsilon) { + if (hilite[3][2][j] <= epsilon) { hilite_dir[0 + 3][0][j] += hilite_dir4[3][j][2]; } - if(hilite[3][hfh - 3][j] <= epsilon) { + if (hilite[3][hfh - 3][j] <= epsilon) { hilite_dir[4 + 3][hfh - 1][j] += hilite_dir4[3][j][hfh - 3]; } } for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][0] <= epsilon) { + if (hilite[3][i][0] <= epsilon) { hilite_dir[0 + 3][i - 2][0] += hilite_dir4[3][0][i]; hilite_dir[4 + 3][i + 2][0] += hilite_dir4[3][0][i]; } - if(hilite[3][i][1] <= epsilon) { + if (hilite[3][i][1] <= epsilon) { hilite_dir[0 + 3][i - 2][1] += hilite_dir4[3][1][i]; hilite_dir[4 + 3][i + 2][1] += hilite_dir4[3][1][i]; } - if(hilite[3][i][hfw - 2] <= epsilon) { + if (hilite[3][i][hfw - 2] <= epsilon) { hilite_dir[0 + 3][i - 2][hfw - 2] += hilite_dir4[3][hfw - 2][i]; hilite_dir[4 + 3][i + 2][hfw - 2] += hilite_dir4[3][hfw - 2][i]; } } } } - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -727,27 +729,27 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(hilite[3][2][j] <= epsilon) { + if (hilite[3][2][j] <= epsilon) { hilite_dir[0 + c][0][j] += hilite_dir4[c][j][2]; } - if(hilite[3][hfh - 3][j] <= epsilon) { + if (hilite[3][hfh - 3][j] <= epsilon) { hilite_dir[4 + c][hfh - 1][j] += hilite_dir4[c][j][hfh - 3]; } } for (int i = 2; i < hfh - 2; i++) { - if(hilite[3][i][0] <= epsilon) { + if (hilite[3][i][0] <= epsilon) { hilite_dir[0 + c][i - 2][0] += hilite_dir4[c][0][i]; hilite_dir[4 + c][i + 2][0] += hilite_dir4[c][0][i]; } - if(hilite[3][i][1] <= epsilon) { + if (hilite[3][i][1] <= epsilon) { hilite_dir[0 + c][i - 2][1] += hilite_dir4[c][1][i]; hilite_dir[4 + c][i + 2][1] += hilite_dir4[c][1][i]; } - if(hilite[3][i][hfw - 2] <= epsilon) { + if (hilite[3][i][hfw - 2] <= epsilon) { hilite_dir[0 + c][i - 2][hfw - 2] += hilite_dir4[c][hfw - 2][i]; hilite_dir[4 + c][i + 2][hfw - 2] += hilite_dir4[c][hfw - 2][i]; } @@ -769,13 +771,13 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } for (int j = 2; j < hfw - 2; j++) { - if(hilite[3][hfh - 2][j] <= epsilon) { + if (hilite[3][hfh - 2][j] <= epsilon) { hilite_dir[4 + 3][hfh - 1][j] += hilite_dir[0 + 3][hfh - 2][j]; } } } } - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -802,7 +804,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } for (int j = 2; j < hfw - 2; j++) { - if(hilite[3][hfh - 2][j] <= epsilon) { + if (hilite[3][hfh - 2][j] <= epsilon) { hilite_dir[4 + c][hfh - 1][j] += hilite_dir[0 + c][hfh - 2][j]; } } @@ -823,7 +825,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -846,7 +848,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } @@ -911,38 +913,38 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b hilite_dir4[c][hfw - 1][hfh - 1] = hilite_dir4[c][hfw - 1][hfh - 2] = hilite_dir4[c][hfw - 2][hfh - 1] = hilite_dir4[c][hfw - 2][hfh - 2] = hilite_dir4[c][hfw - 3][hfh - 3]; } - if(plistener) { + if (plistener) { progress += 0.05; plistener->setProgress(progress); } //free up some memory - for(int c = 0; c < 4; c++) { + for (int c = 0; c < 4; c++) { hilite[c].free(); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // now reconstruct clipped channels using color ratios - +StopWatch Stop1("last loop"); #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif for (int i = 0; i < blurHeight; i++) { - int i1 = min((i - (i % pitch)) / pitch, hfh - 1); + const int i1 = min((i - (i % pitch)) / pitch, hfh - 1); for (int j = 0; j < blurWidth; j++) { - float pixel[3] = {red[i + miny][j + minx], green[i + miny][j + minx], blue[i + miny][j + minx]}; + const float pixel[3] = {red[i + miny][j + minx], green[i + miny][j + minx], blue[i + miny][j + minx]}; if (pixel[0] < max_f[0] && pixel[1] < max_f[1] && pixel[2] < max_f[2]) { continue; //pixel not clipped } - int j1 = min((j - (j % pitch)) / pitch, hfw - 1); + const int j1 = min((j - (j % pitch)) / pitch, hfw - 1); //estimate recovered values using modified HLRecovery_blend algorithm - float rgb[ColorCount], rgb_blend[ColorCount] = {}, cam[2][ColorCount], lab[2][ColorCount], sum[2], chratio; + float rgb[ColorCount], rgb_blend[ColorCount] = {}, cam[2][ColorCount], lab[2][ColorCount], sum[2]; // Copy input pixel to rgb so it's easier to access in loops rgb[0] = pixel[0]; @@ -972,12 +974,10 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - if(sum[0] == 0.f) { // avoid division by zero - sum[0] = epsilon; - } - - chratio = sqrtf(sum[1] / sum[0]); + // avoid division by zero + sum[0] = std::max(sum[0], epsilon); + const float chratio = sqrtf(sum[1] / sum[0]); // Apply ratio to lightness in lab space for (int c = 1; c < ColorCount; c++) { @@ -998,19 +998,18 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } // Copy converted pixel back - float rfrac = max(0.f, min(1.f, medFactor[0] * (pixel[0] - blendpt))); - float gfrac = max(0.f, min(1.f, medFactor[1] * (pixel[1] - blendpt))); - float bfrac = max(0.f, min(1.f, medFactor[2] * (pixel[2] - blendpt))); - if (pixel[0] > blendpt) { + const float rfrac = max(0.f, min(1.f, medFactor[0] * (pixel[0] - blendpt))); rgb_blend[0] = rfrac * rgb[0] + (1.f - rfrac) * pixel[0]; } if (pixel[1] > blendpt) { + const float gfrac = max(0.f, min(1.f, medFactor[1] * (pixel[1] - blendpt))); rgb_blend[1] = gfrac * rgb[1] + (1.f - gfrac) * pixel[1]; } if (pixel[2] > blendpt) { + const float bfrac = max(0.f, min(1.f, medFactor[2] * (pixel[2] - blendpt))); rgb_blend[2] = bfrac * rgb[2] + (1.f - bfrac) * pixel[2]; } @@ -1019,7 +1018,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b //there are clipped highlights //first, determine weighted average of unclipped extensions (weighting is by 'hue' proximity) - float totwt = 0.f; + bool totwt = false; float clipfix[3] = {0.f, 0.f, 0.f}; float Y = epsilon + rgb_blend[0] + rgb_blend[1] + rgb_blend[2]; @@ -1031,25 +1030,23 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b float Yhi = 1.f / (hilite_dir0[0][j1][i1] + hilite_dir0[1][j1][i1] + hilite_dir0[2][j1][i1]); if (Yhi < 2.f) { - float dirwt = 1.f / (1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir0[0][j1][i1] * Yhi) + + const float dirwt = 1.f / ((1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir0[0][j1][i1] * Yhi) + SQR(rgb_blend[1] - hilite_dir0[1][j1][i1] * Yhi) + - SQR(rgb_blend[2] - hilite_dir0[2][j1][i1] * Yhi))); - totwt = dirwt; - dirwt /= (hilite_dir0[3][j1][i1] + epsilon); + SQR(rgb_blend[2] - hilite_dir0[2][j1][i1] * Yhi))) * (hilite_dir0[3][j1][i1] + epsilon)); + totwt = true; clipfix[0] = dirwt * hilite_dir0[0][j1][i1]; clipfix[1] = dirwt * hilite_dir0[1][j1][i1]; clipfix[2] = dirwt * hilite_dir0[2][j1][i1]; } for (int dir = 0; dir < 2; dir++) { - float Yhi = 1.f / ( hilite_dir[dir * 4 + 0][i1][j1] + hilite_dir[dir * 4 + 1][i1][j1] + hilite_dir[dir * 4 + 2][i1][j1]); + const float Yhi = 1.f / ( hilite_dir[dir * 4 + 0][i1][j1] + hilite_dir[dir * 4 + 1][i1][j1] + hilite_dir[dir * 4 + 2][i1][j1]); if (Yhi < 2.f) { - float dirwt = 1.f / (1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir[dir * 4 + 0][i1][j1] * Yhi) + + const float dirwt = 1.f / ((1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir[dir * 4 + 0][i1][j1] * Yhi) + SQR(rgb_blend[1] - hilite_dir[dir * 4 + 1][i1][j1] * Yhi) + - SQR(rgb_blend[2] - hilite_dir[dir * 4 + 2][i1][j1] * Yhi))); - totwt += dirwt; - dirwt /= (hilite_dir[dir * 4 + 3][i1][j1] + epsilon); + SQR(rgb_blend[2] - hilite_dir[dir * 4 + 2][i1][j1] * Yhi))) * (hilite_dir[dir * 4 + 3][i1][j1] + epsilon)); + totwt = true; clipfix[0] += dirwt * hilite_dir[dir * 4 + 0][i1][j1]; clipfix[1] += dirwt * hilite_dir[dir * 4 + 1][i1][j1]; clipfix[2] += dirwt * hilite_dir[dir * 4 + 2][i1][j1]; @@ -1060,56 +1057,51 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b Yhi = 1.f / (hilite_dir4[0][j1][i1] + hilite_dir4[1][j1][i1] + hilite_dir4[2][j1][i1]); if (Yhi < 2.f) { - float dirwt = 1.f / (1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir4[0][j1][i1] * Yhi) + + const float dirwt = 1.f / ((1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir4[0][j1][i1] * Yhi) + SQR(rgb_blend[1] - hilite_dir4[1][j1][i1] * Yhi) + - SQR(rgb_blend[2] - hilite_dir4[2][j1][i1] * Yhi))); - totwt += dirwt; - dirwt /= (hilite_dir4[3][j1][i1] + epsilon); + SQR(rgb_blend[2] - hilite_dir4[2][j1][i1] * Yhi))) * (hilite_dir4[3][j1][i1] + epsilon)); + totwt = true; clipfix[0] += dirwt * hilite_dir4[0][j1][i1]; clipfix[1] += dirwt * hilite_dir4[1][j1][i1]; clipfix[2] += dirwt * hilite_dir4[2][j1][i1]; } - if(totwt == 0.f) { + if (UNLIKELY(!totwt)) { continue; } - clipfix[0] /= totwt; - clipfix[1] /= totwt; - clipfix[2] /= totwt; - //now correct clipped channels if (pixel[0] > max_f[0] && pixel[1] > max_f[1] && pixel[2] > max_f[2]) { //all channels clipped - float Y = (0.299 * clipfix[0] + 0.587 * clipfix[1] + 0.114 * clipfix[2]); + const float Y = 0.299f * clipfix[0] + 0.587f * clipfix[1] + 0.114f * clipfix[2]; - float factor = whitept / Y; + const float factor = whitept / Y; red[i + miny][j + minx] = clipfix[0] * factor; green[i + miny][j + minx] = clipfix[1] * factor; blue[i + miny][j + minx] = clipfix[2] * factor; } else {//some channels clipped - float notclipped[3] = {pixel[0] <= max_f[0] ? 1.f : 0.f, pixel[1] <= max_f[1] ? 1.f : 0.f, pixel[2] <= max_f[2] ? 1.f : 0.f}; + const float notclipped[3] = {pixel[0] <= max_f[0] ? 1.f : 0.f, pixel[1] <= max_f[1] ? 1.f : 0.f, pixel[2] <= max_f[2] ? 1.f : 0.f}; if (notclipped[0] == 0.f) { //red clipped - red[i + miny][j + minx] = max(red[i + miny][j + minx], (clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / - (notclipped[1] * clipfix[1] + notclipped[2] * clipfix[2] + epsilon)))); + red[i + miny][j + minx] = max(pixel[0], clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / + (notclipped[1] * clipfix[1] + notclipped[2] * clipfix[2] + epsilon))); } if (notclipped[1] == 0.f) { //green clipped - green[i + miny][j + minx] = max(green[i + miny][j + minx], (clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / - (notclipped[2] * clipfix[2] + notclipped[0] * clipfix[0] + epsilon)))); + green[i + miny][j + minx] = max(pixel[1], clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / + (notclipped[2] * clipfix[2] + notclipped[0] * clipfix[0] + epsilon))); } if (notclipped[2] == 0.f) { //blue clipped - blue[i + miny][j + minx] = max(blue[i + miny][j + minx], (clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / - (notclipped[0] * clipfix[0] + notclipped[1] * clipfix[1] + epsilon)))); + blue[i + miny][j + minx] = max(pixel[2], clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / + (notclipped[0] * clipfix[0] + notclipped[1] * clipfix[1] + epsilon))); } } - Y = (0.299 * red[i + miny][j + minx] + 0.587 * green[i + miny][j + minx] + 0.114 * blue[i + miny][j + minx]); + Y = 0.299f * red[i + miny][j + minx] + 0.587f * green[i + miny][j + minx] + 0.114f * blue[i + miny][j + minx]; if (Y > whitept) { - float factor = whitept / Y; + const float factor = whitept / Y; red[i + miny][j + minx] *= factor; green[i + miny][j + minx] *= factor; @@ -1117,8 +1109,9 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } } +std::cout << "progress : " << progress << std::endl; - if(plistener) { + if (plistener) { plistener->setProgress(1.00); } From 0b1ba37c759a7417a4fa88f5643f8a5466def6b8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 9 Jul 2019 19:40:08 +0200 Subject: [PATCH 182/215] color propagation: fix segfault whan there is nothing to reconstruct --- rtengine/hilite_recon.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 7fe527a78..15077b92a 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -406,6 +406,10 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } + if (minx > maxx || miny > maxy) { // nothing to reconstruct + return; + } + if (plistener) { progress += 0.05; plistener->setProgress(progress); From 3f9c232f18b172367e2e43501a1db18ff24513dc Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 9 Jul 2019 23:15:38 +0200 Subject: [PATCH 183/215] hilite_recon.cc --- rtengine/hilite_recon.cc | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 15077b92a..a0a8cb83d 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -3,9 +3,11 @@ // Highlight reconstruction // // copyright (c) 2008-2011 Emil Martinec +// copyright (c) 2019 Ingo Weyrich // // // code dated: June 16, 2011 +// code dated: July 09. 2019, speedups by Ingo Weyrich // // hilite_recon.cc is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -424,16 +426,6 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu const int blurHeight = maxy - miny + 1; const int bufferWidth = blurWidth + ((16 - (blurWidth % 16)) & 15); - std::cout << "minx : " << minx << std::endl; - std::cout << "maxx : " << maxx << std::endl; - std::cout << "miny : " << miny << std::endl; - std::cout << "maxy : " << maxy << std::endl; - - std::cout << "blurWidth : " << blurWidth << std::endl; - std::cout << "bufferWidth : " << bufferWidth << std::endl; - - std::cout << "Corrected area reduced by factor: " << (((float)width * height) / (bufferWidth * blurHeight)) << std::endl; - std::cout << "Peak memory usage reduced from ~" << (30ul * ((size_t)width * (size_t)height)) / (1024*1024) << " Mb to ~" << (30ul * ((size_t)bufferWidth * (size_t)blurHeight)) / (1024*1024) << " Mb" << std::endl; multi_array2D channelblur(bufferWidth, blurHeight, 0, 48); array2D temp(bufferWidth, blurHeight); // allocate temporary buffer @@ -929,7 +921,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // now reconstruct clipped channels using color ratios -StopWatch Stop1("last loop"); + #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif @@ -1113,7 +1105,6 @@ StopWatch Stop1("last loop"); } } } -std::cout << "progress : " << progress << std::endl; if (plistener) { plistener->setProgress(1.00); From 856b437983bbf26dea19a2f92989d898488715ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Wed, 10 Jul 2019 13:16:03 +0200 Subject: [PATCH 184/215] Some minor code cleanups --- rtengine/hilite_recon.cc | 423 ++++++++++++++++++++------------------- 1 file changed, 221 insertions(+), 202 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index a0a8cb83d..c6c540e10 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -7,7 +7,7 @@ // // // code dated: June 16, 2011 -// code dated: July 09. 2019, speedups by Ingo Weyrich +// code dated: July 09, 2019, speedups by Ingo Weyrich // // hilite_recon.cc is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -25,17 +25,20 @@ //////////////////////////////////////////////////////////////// #include - -#include #include +#include + #include "array2D.h" +#include "opthelper.h" #include "rawimagesource.h" #include "rt_math.h" -#include "opthelper.h" + #define BENCHMARK #include "StopWatch.h" -namespace { +namespace +{ + void boxblur2(const float* const* src, float** dst, float** temp, int startY, int startX, int H, int W, int bufferW, int box) { constexpr int numCols = 16; @@ -46,27 +49,24 @@ void boxblur2(const float* const* src, float** dst, float** temp, int startY, in #ifdef _OPENMP #pragma omp parallel for #endif - - for (int row = 0; row < H; row++) { + for (int row = 0; row < H; ++row) { int len = box + 1; temp[row][0] = src[row + startY][startX] / len; - for (int j = 1; j <= box; j++) { + for (int j = 1; j <= box; ++j) { temp[row][0] += src[row + startY][j + startX] / len; } - for (int col = 1; col <= box; col++) { + for (int col = 1; col <= box; ++col, ++len) { temp[row][col] = (temp[row][col - 1] * len + src[row + startY][col + box + startX]) / (len + 1); - len ++; } - for (int col = box + 1; col < W - box; col++) { + for (int col = box + 1; col < W - box; ++col) { temp[row][col] = temp[row][col - 1] + (src[row + startY][col + box + startX] - src[row + startY][col - box - 1 + startX]) / len; } - for (int col = W - box; col < W; col++) { + for (int col = W - box; col < W; ++col, --len) { temp[row][col] = (temp[row][col - 1] * len - src[row + startY][col - box - 1 + startX]) / (len - 1); - len --; } } @@ -81,45 +81,50 @@ void boxblur2(const float* const* src, float** dst, float** temp, int startY, in #endif for (int col = 0; col < bufferW - numCols + 1; col += numCols) { float len = box + 1; - for (int n = 0; n < numCols; n++) { + + for (int n = 0; n < numCols; ++n) { tempvalN[n] = temp[0][col + n] / len; } - for (int i = 1; i <= box; i++) { - for (int n = 0; n < numCols; n++) { + + for (int i = 1; i <= box; ++i) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] += temp[i][col + n] / len; } } - for (int n = 0; n < numCols; n++) { + + for (int n = 0; n < numCols; ++n) { dst[0][col + n] = tempvalN[n]; } - for (int row = 1; row <= box; row++) { - for (int n = 0; n < numCols; n++) { + + for (int row = 1; row <= box; ++row, ++len) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] = (tempvalN[n] * len + temp[(row + box)][col + n]) / (len + 1); dst[row][col + n] = tempvalN[n]; } - len ++; - } - const float rlen = 1.f / len; - for (int row = box + 1; row < H - box; row++) { - for (int n = 0; n < numCols; n++) { - tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; - dst[row][col + n] = tempvalN[n]; - } } - for (int row = H - box; row < H; row++) { - for (int n = 0; n < numCols; n++) { + const float rlen = 1.f / len; + + for (int row = box + 1; row < H - box; ++row) { + for (int n = 0; n < numCols; ++n) { + tempvalN[n] += (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; + dst[row][col + n] = tempvalN[n]; + } + } + + for (int row = H - box; row < H; ++row, --len) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] = (dst[(row - 1)][col + n] * len - temp[(row - box - 1)][col + n]) / (len - 1); dst[row][col + n] = tempvalN[n]; } - len --; } } } } -void boxblur_resamp(const float * const *src, float **dst, float ** temp, int H, int W, int box, int samp ) +void boxblur_resamp(const float* const* src, float** dst, float** temp, int H, int W, int box, int samp) { + assert(samp != 0); #ifdef _OPENMP #pragma omp parallel @@ -128,33 +133,29 @@ void boxblur_resamp(const float * const *src, float **dst, float ** temp, int H, #ifdef _OPENMP #pragma omp for #endif - //box blur image channel; box size = 2*box+1 //horizontal blur - for (int row = 0; row < H; row++) - { + for (int row = 0; row < H; ++row) { int len = box + 1; float tempval = src[row][0] / len; - for (int j = 1; j <= box; j++) { + for (int j = 1; j <= box; ++j) { tempval += src[row][j] / len; } temp[row][0] = tempval; - for (int col = 1; col <= box; col++) { + for (int col = 1; col <= box; ++col, ++len) { tempval = (tempval * len + src[row][col + box]) / (len + 1); if (col % samp == 0) { temp[row][col / samp] = tempval; } - - len ++; } - float oneByLen = 1.f / (float)len; + const float oneByLen = 1.f / static_cast(len); - for (int col = box + 1; col < W - box; col++) { + for (int col = box + 1; col < W - box; ++col) { tempval = tempval + (src[row][col + box] - src[row][col - box - 1]) * oneByLen; if (col % samp == 0) { @@ -162,84 +163,81 @@ void boxblur_resamp(const float * const *src, float **dst, float ** temp, int H, } } - for (int col = W - box; col < W; col++) { + for (int col = W - box; col < W; ++col, --len) { tempval = (tempval * len - src[row][col - box - 1]) / (len - 1); if (col % samp == 0) { temp[row][col / samp] = tempval; } - - len --; } } } constexpr int numCols = 8; // process numCols columns at once for better L1 CPU cache usage + #ifdef _OPENMP #pragma omp parallel #endif { float tempvalN[numCols] ALIGNED64; + #ifdef _OPENMP #pragma omp for nowait #endif - //vertical blur for (int col = 0; col < (W / samp) - (numCols - 1); col += numCols) { float len = box + 1; - for (int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] = temp[0][col + n] / len; } - for (int i = 1; i <= box; i++) { - for (int n = 0; n < numCols; n++) { + for (int i = 1; i <= box; ++i) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] += temp[i][col + n] / len; } } - for (int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; ++n) { dst[0][col + n] = tempvalN[n]; } - for (int row = 1; row <= box; row++) { - for (int n = 0; n < numCols; n++) { + for (int row = 1; row <= box; ++row, ++len) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] = (tempvalN[n] * len + temp[(row + box)][col + n]) / (len + 1); } if (row % samp == 0) { - for (int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; ++n) { dst[row / samp][col + n] = tempvalN[n]; } } - - len ++; } + const float rlen = 1.f / len; - for (int row = box + 1; row < H - box; row++) { - for (int n = 0; n < numCols; n++) { - tempvalN[n] = tempvalN[n] + (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; + + for (int row = box + 1; row < H - box; ++row) { + for (int n = 0; n < numCols; ++n) { + tempvalN[n] += (temp[(row + box)][col + n] - temp[(row - box - 1)][col + n]) * rlen; } if (row % samp == 0) { - for (int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; ++n) { dst[row / samp][col + n] = tempvalN[n]; } } } - for (int row = H - box; row < H; row++) { - for (int n = 0; n < numCols; n++) { + for (int row = H - box; row < H; ++row, --len) { + for (int n = 0; n < numCols; ++n) { tempvalN[n] = (tempvalN[n] * len - temp[(row - box - 1)][col + n]) / (len - 1); } if (row % samp == 0) { - for (int n = 0; n < numCols; n++) { + for (int n = 0; n < numCols; ++n) { dst[row / samp][col + n] = tempvalN[n]; } } - - len --; } } @@ -250,42 +248,38 @@ void boxblur_resamp(const float * const *src, float **dst, float ** temp, int H, { //vertical blur - for (int col = (W / samp) - ((W / samp) % numCols); col < W / samp; col++) { + for (int col = (W / samp) - ((W / samp) % numCols); col < W / samp; ++col) { int len = box + 1; float tempval = temp[0][col] / len; - for (int i = 1; i <= box; i++) { + for (int i = 1; i <= box; ++i) { tempval += temp[i][col] / len; } dst[0][col] = tempval; - for (int row = 1; row <= box; row++) { + for (int row = 1; row <= box; ++row, ++len) { tempval = (tempval * len + temp[(row + box)][col]) / (len + 1); if (row % samp == 0) { dst[row / samp][col] = tempval; } - - len ++; } - for (int row = box + 1; row < H - box; row++) { - tempval = tempval + (temp[(row + box)][col] - temp[(row - box - 1)][col]) / len; + for (int row = box + 1; row < H - box; ++row) { + tempval += (temp[(row + box)][col] - temp[(row - box - 1)][col]) / len; if (row % samp == 0) { dst[row / samp][col] = tempval; } } - for (int row = H - box; row < H; row++) { + for (int row = H - box; row < H; ++row, --len) { tempval = (tempval * len - temp[(row - box - 1)][col]) / (len - 1); if (row % samp == 0) { dst[row / samp][col] = tempval; } - - len --; } } } @@ -293,20 +287,20 @@ void boxblur_resamp(const float * const *src, float **dst, float ** temp, int H, } } + namespace rtengine { extern const Settings* settings; - -void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blue) +void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue) { BENCHFUN double progress = 0.0; if (plistener) { - plistener->setProgressStr ("PROGRESSBAR_HLREC"); - plistener->setProgress (progress); + plistener->setProgressStr("PROGRESSBAR_HLREC"); + plistener->setProgress(progress); } const int height = H; @@ -321,29 +315,35 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu //%%%%%%%%%%%%%%%%%%%% //for blend algorithm: constexpr float blendthresh = 1.0; - constexpr int ColorCount = 3; // Transform matrixes rgb>lab and back - constexpr float trans[ColorCount][ColorCount] = - { { 1.f, 1.f, 1.f }, { 1.7320508f, -1.7320508f, 0.f }, { -1.f, -1.f, 2.f } }; - constexpr float itrans[ColorCount][ColorCount] = - { { 1.f, 0.8660254f, -0.5f }, { 1.f, -0.8660254f, -0.5f }, { 1.f, 0.f, 1.f } }; + constexpr float trans[3][3] = { + {1.f, 1.f, 1.f}, + {1.7320508f, -1.7320508f, 0.f}, + {-1.f, -1.f, 2.f} + }; + constexpr float itrans[3][3] = { + {1.f, 0.8660254f, -0.5f}, + {1.f, -0.8660254f, -0.5f}, + {1.f, 0.f, 1.f} + }; - if (settings->verbose) - for (int c = 0; c < 3; c++) { + if (settings->verbose) { + for (int c = 0; c < 3; ++c) { printf("chmax[%d] : %f\tclmax[%d] : %f\tratio[%d] : %f\n", c, chmax[c], c, clmax[c], c, chmax[c] / clmax[c]); } + } float factor[3]; - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { factor[c] = chmax[c] / clmax[c]; } - float minFactor = min(factor[0], factor[1], factor[2]); + const float minFactor = min(factor[0], factor[1], factor[2]); if (minFactor > 1.f) { // all 3 channels clipped // calculate clip factor per channel - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { factor[c] /= minFactor; } @@ -351,7 +351,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu int maxpos = 0; float maxValNew = 0.f; - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { if (chmax[c] / factor[c] > maxValNew) { maxValNew = chmax[c] / factor[c]; maxpos = c; @@ -360,24 +360,26 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu const float clipFactor = clmax[maxpos] / maxValNew; - if (clipFactor < maxpct) - + if (clipFactor < maxpct) { // if max clipFactor < maxpct (0.95) adjust per channel factors - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { factor[c] *= (maxpct / clipFactor); } + } } else { factor[0] = factor[1] = factor[2] = 1.f; } - if (settings->verbose) - for (int c = 0; c < ColorCount; c++) { + if (settings->verbose) { + for (int c = 0; c < 3; ++c) { printf("correction factor[%d] : %f\n", c, factor[c]); } + } - float max_f[3], thresh[3]; + float max_f[3]; + float thresh[3]; - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { thresh[c] = chmax[c] * threshpct / factor[c]; max_f[c] = chmax[c] * maxpct / factor[c]; } @@ -386,11 +388,13 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu const float clippt = min(max_f[0], max_f[1], max_f[2]); const float medpt = max_f[0] + max_f[1] + max_f[2] - whitept - clippt; const float blendpt = blendthresh * clippt; + float medFactor[3]; - for (int c = 0; c < ColorCount; c++) { - medFactor[c] = max(1.0f, max_f[c] / medpt) / (-blendpt); + for (int c = 0; c < 3; ++c) { + medFactor[c] = max(1.0f, max_f[c] / medpt) / -blendpt; } + int minx = width - 1; int maxx = 0; int miny = height - 1; @@ -456,13 +460,13 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp parallel for #endif - - for (int i = 0; i < blurHeight; i++) - for (int j = 0; j < blurWidth; j++) { + for (int i = 0; i < blurHeight; ++i) { + for (int j = 0; j < blurWidth; ++j) { channelblur[0][i][j] = fabsf(channelblur[0][i][j] - red[i + miny][j + minx]) + fabsf(channelblur[1][i][j] - green[i + miny][j + minx]) + fabsf(channelblur[2][i][j] - blue[i + miny][j + minx]); } + } - for (int c = 1; c < 3; c++) { + for (int c = 1; c < 3; ++c) { channelblur[c].free(); //free up some memory } @@ -478,31 +482,36 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu plistener->setProgress(progress); } - double hipass_sum = 0.f; + double hipass_sum = 0.0; int hipass_norm = 0; // set up which pixels are clipped or near clipping #ifdef _OPENMP #pragma omp parallel for reduction(+:hipass_sum,hipass_norm) schedule(dynamic,16) #endif - - for (int i = 0; i < blurHeight; i++) { - for (int j = 0; j < blurWidth; j++) { - //if one or more channels is highlight but none are blown, add to highlight accumulator - if ((red[i + miny][j + minx] > thresh[0] || green[i + miny][j + minx] > thresh[1] || blue[i + miny][j + minx] > thresh[2]) && - (red[i + miny][j + minx] < max_f[0] && green[i + miny][j + minx] < max_f[1] && blue[i + miny][j + minx] < max_f[2])) { - + for (int i = 0; i < blurHeight; ++i) { + for (int j = 0; j < blurWidth; ++j) { + if ( + ( + red[i + miny][j + minx] > thresh[0] + || green[i + miny][j + minx] > thresh[1] + || blue[i + miny][j + minx] > thresh[2] + ) + && red[i + miny][j + minx] < max_f[0] + && green[i + miny][j + minx] < max_f[1] + && blue[i + miny][j + minx] < max_f[2] + ) { + // if one or more channels is highlight but none are blown, add to highlight accumulator hipass_sum += channelblur[0][i][j]; - hipass_norm ++; + ++hipass_norm; hilite_full[0][i][j] = red[i + miny][j + minx]; hilite_full[1][i][j] = green[i + miny][j + minx]; hilite_full[2][i][j] = blue[i + miny][j + minx]; hilite_full[3][i][j] = 1.f; - } } - }//end of filling highlight array + } const float hipass_ave = 2.f * hipass_sum / (hipass_norm + epsilon); @@ -526,9 +535,8 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif - - for (int i = 0; i < blurHeight; i++) { - for (int j = 0; j < blurWidth; j++) { + for (int i = 0; i < blurHeight; ++i) { + for (int j = 0; j < blurWidth; ++j) { if (channelblur[0][i][j] > hipass_ave) { //too much variation hilite_full[0][i][j] = hilite_full[1][i][j] = hilite_full[2][i][j] = hilite_full[3][i][j] = 0.f; @@ -545,17 +553,17 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu channelblur[0].free(); //free up some memory hilite_full4.free(); //free up some memory - int hfh = (blurHeight - (blurHeight % pitch)) / pitch; - int hfw = (blurWidth - (blurWidth % pitch)) / pitch; + const int hfh = (blurHeight - blurHeight % pitch) / pitch; + const int hfw = (blurWidth - blurWidth % pitch) / pitch; multi_array2D hilite(hfw + 1, hfh + 1, ARRAY2D_CLEAR_DATA, 48); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // blur and resample highlight data; range=size of blur, pitch=sample spacing - array2D temp2((blurWidth / pitch) + ((blurWidth % pitch) == 0 ? 0 : 1), blurHeight); + array2D temp2(blurWidth / pitch + (blurWidth % pitch == 0 ? 0 : 1), blurHeight); - for (int m = 0; m < 4; m++) { + for (int m = 0; m < 4; ++m) { boxblur_resamp(hilite_full[m], hilite[m], temp2, blurHeight, blurWidth, range, pitch); if (plistener) { @@ -566,7 +574,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu temp2.free(); - for (int c = 0; c < 4; c++) { + for (int c = 0; c < 4; ++c) { hilite_full[c].free(); //free up some memory } @@ -582,8 +590,8 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu //fill gaps in highlight map by directional extension //raster scan from four corners - for (int j = 1; j < hfw - 1; j++) { - for (int i = 2; i < hfh - 2; i++) { + for (int j = 1; j < hfw - 1; ++j) { + for (int i = 2; i < hfh - 2; ++i) { //from left if (hilite[3][i][j] > epsilon) { hilite_dir0[3][j][i] = 1.f; @@ -609,7 +617,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int i = 2; i < hfh - 2; i++) { + for (int i = 2; i < hfh - 2; ++i) { if (hilite[3][i][hfw - 2] <= epsilon) { hilite_dir4[3][hfw - 1][i] = hilite_dir0[3][hfw - 2][i]; } @@ -622,10 +630,9 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp for nowait #endif - - for (int c = 0; c < 3; c++) { - for (int j = 1; j < hfw - 1; j++) { - for (int i = 2; i < hfh - 2; i++) { + for (int c = 0; c < 3; ++c) { + for (int j = 1; j < hfw - 1; ++j) { + for (int i = 2; i < hfh - 2; ++i) { //from left if (hilite[3][i][j] > epsilon) { hilite_dir0[c][j][i] = hilite[c][i][j] / hilite[3][i][j]; @@ -652,7 +659,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int i = 2; i < hfh - 2; i++) { + for (int i = 2; i < hfh - 2; ++i) { if (hilite[3][i][hfw - 2] <= epsilon) { hilite_dir4[c][hfw - 1][i] = hilite_dir0[c][hfw - 2][i]; } @@ -663,8 +670,8 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #pragma omp single #endif { - for (int j = hfw - 2; j > 0; j--) { - for (int i = 2; i < hfh - 2; i++) { + for (int j = hfw - 2; j > 0; --j) { + for (int i = 2; i < hfh - 2; ++i) { //from right if (hilite[3][i][j] > epsilon) { hilite_dir4[3][j][i] = 1.f; @@ -682,7 +689,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int i = 2; i < hfh - 2; i++) { + for (int i = 2; i < hfh - 2; ++i) { if (hilite[3][i][0] <= epsilon) { hilite_dir[0 + 3][i - 2][0] += hilite_dir4[3][0][i]; hilite_dir[4 + 3][i + 2][0] += hilite_dir4[3][0][i]; @@ -712,10 +719,9 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp for nowait #endif - - for (int c = 0; c < 3; c++) { - for (int j = hfw - 2; j > 0; j--) { - for (int i = 2; i < hfh - 2; i++) { + for (int c = 0; c < 3; ++c) { + for (int j = hfw - 2; j > 0; --j) { + for (int i = 2; i < hfh - 2; ++i) { //from right if (hilite[3][i][j] > epsilon) { hilite_dir4[c][j][i] = hilite[c][i][j] / hilite[3][i][j]; @@ -734,7 +740,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int i = 2; i < hfh - 2; i++) { + for (int i = 2; i < hfh - 2; ++i) { if (hilite[3][i][0] <= epsilon) { hilite_dir[0 + c][i - 2][0] += hilite_dir4[c][0][i]; hilite_dir[4 + c][i + 2][0] += hilite_dir4[c][0][i]; @@ -756,8 +762,8 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #pragma omp single #endif { - for (int i = 1; i < hfh - 1; i++) - for (int j = 2; j < hfw - 2; j++) { + for (int i = 1; i < hfh - 1; ++i) + for (int j = 2; j < hfw - 2; ++j) { //from top if (hilite[3][i][j] > epsilon) { hilite_dir[0 + 3][i][j] = 1.f; @@ -766,7 +772,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int j = 2; j < hfw - 2; j++) { + for (int j = 2; j < hfw - 2; ++j) { if (hilite[3][hfh - 2][j] <= epsilon) { hilite_dir[4 + 3][hfh - 1][j] += hilite_dir[0 + 3][hfh - 2][j]; } @@ -785,10 +791,9 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp for nowait #endif - - for (int c = 0; c < 3; c++) { - for (int i = 1; i < hfh - 1; i++) { - for (int j = 2; j < hfw - 2; j++) { + for (int c = 0; c < 3; ++c) { + for (int i = 1; i < hfh - 1; ++i) { + for (int j = 2; j < hfw - 2; ++j) { //from top if (hilite[3][i][j] > epsilon) { hilite_dir[0 + c][i][j] = hilite[c][i][j] / hilite[3][i][j]; @@ -799,7 +804,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int j = 2; j < hfw - 2; j++) { + for (int j = 2; j < hfw - 2; ++j) { if (hilite[3][hfh - 2][j] <= epsilon) { hilite_dir[4 + c][hfh - 1][j] += hilite_dir[0 + c][hfh - 2][j]; } @@ -810,8 +815,8 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp single #endif - for (int i = hfh - 2; i > 0; i--) - for (int j = 2; j < hfw - 2; j++) { + for (int i = hfh - 2; i > 0; --i) { + for (int j = 2; j < hfw - 2; ++j) { //from bottom if (hilite[3][i][j] > epsilon) { hilite_dir[4 + 3][i][j] = 1.f; @@ -820,6 +825,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } } + } if (plistener) { progress += 0.05; @@ -829,10 +835,9 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp parallel for #endif - - for (int c = 0; c < 4; c++) { - for (int i = hfh - 2; i > 0; i--) { - for (int j = 2; j < hfw - 2; j++) { + for (int c = 0; c < 4; ++c) { + for (int i = hfh - 2; i > 0; --i) { + for (int j = 2; j < hfw - 2; ++j) { //from bottom if (hilite[3][i][j] > epsilon) { hilite_dir[4 + c][i][j] = hilite[c][i][j] / hilite[3][i][j]; @@ -850,20 +855,22 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } //fill in edges - for (int dir = 0; dir < 2; dir++) { - for (int i = 1; i < hfh - 1; i++) - for (int c = 0; c < 4; c++) { + for (int dir = 0; dir < 2; ++dir) { + for (int i = 1; i < hfh - 1; ++i) { + for (int c = 0; c < 4; ++c) { hilite_dir[dir * 4 + c][i][0] = hilite_dir[dir * 4 + c][i][1]; hilite_dir[dir * 4 + c][i][hfw - 1] = hilite_dir[dir * 4 + c][i][hfw - 2]; } + } - for (int j = 1; j < hfw - 1; j++) - for (int c = 0; c < 4; c++) { + for (int j = 1; j < hfw - 1; ++j) { + for (int c = 0; c < 4; ++c) { hilite_dir[dir * 4 + c][0][j] = hilite_dir[dir * 4 + c][1][j]; hilite_dir[dir * 4 + c][hfh - 1][j] = hilite_dir[dir * 4 + c][hfh - 2][j]; } + } - for (int c = 0; c < 4; c++) { + for (int c = 0; c < 4; ++c) { hilite_dir[dir * 4 + c][0][0] = hilite_dir[dir * 4 + c][1][0] = hilite_dir[dir * 4 + c][0][1] = hilite_dir[dir * 4 + c][1][1] = hilite_dir[dir * 4 + c][2][2]; hilite_dir[dir * 4 + c][0][hfw - 1] = hilite_dir[dir * 4 + c][1][hfw - 1] = hilite_dir[dir * 4 + c][0][hfw - 2] = hilite_dir[dir * 4 + c][1][hfw - 2] = hilite_dir[dir * 4 + c][2][hfw - 3]; hilite_dir[dir * 4 + c][hfh - 1][0] = hilite_dir[dir * 4 + c][hfh - 2][0] = hilite_dir[dir * 4 + c][hfh - 1][1] = hilite_dir[dir * 4 + c][hfh - 2][1] = hilite_dir[dir * 4 + c][hfh - 3][2]; @@ -871,38 +878,42 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } } - for (int i = 1; i < hfh - 1; i++) - for (int c = 0; c < 4; c++) { + for (int i = 1; i < hfh - 1; ++i) { + for (int c = 0; c < 4; ++c) { hilite_dir0[c][0][i] = hilite_dir0[c][1][i]; hilite_dir0[c][hfw - 1][i] = hilite_dir0[c][hfw - 2][i]; } + } - for (int j = 1; j < hfw - 1; j++) - for (int c = 0; c < 4; c++) { + for (int j = 1; j < hfw - 1; ++j) { + for (int c = 0; c < 4; ++c) { hilite_dir0[c][j][0] = hilite_dir0[c][j][1]; hilite_dir0[c][j][hfh - 1] = hilite_dir0[c][j][hfh - 2]; } + } - for (int c = 0; c < 4; c++) { + for (int c = 0; c < 4; ++c) { hilite_dir0[c][0][0] = hilite_dir0[c][0][1] = hilite_dir0[c][1][0] = hilite_dir0[c][1][1] = hilite_dir0[c][2][2]; hilite_dir0[c][hfw - 1][0] = hilite_dir0[c][hfw - 1][1] = hilite_dir0[c][hfw - 2][0] = hilite_dir0[c][hfw - 2][1] = hilite_dir0[c][hfw - 3][2]; hilite_dir0[c][0][hfh - 1] = hilite_dir0[c][0][hfh - 2] = hilite_dir0[c][1][hfh - 1] = hilite_dir0[c][1][hfh - 2] = hilite_dir0[c][2][hfh - 3]; hilite_dir0[c][hfw - 1][hfh - 1] = hilite_dir0[c][hfw - 1][hfh - 2] = hilite_dir0[c][hfw - 2][hfh - 1] = hilite_dir0[c][hfw - 2][hfh - 2] = hilite_dir0[c][hfw - 3][hfh - 3]; } - for (int i = 1; i < hfh - 1; i++) - for (int c = 0; c < 4; c++) { + for (int i = 1; i < hfh - 1; ++i) { + for (int c = 0; c < 4; ++c) { hilite_dir4[c][0][i] = hilite_dir4[c][1][i]; hilite_dir4[c][hfw - 1][i] = hilite_dir4[c][hfw - 2][i]; } + } - for (int j = 1; j < hfw - 1; j++) - for (int c = 0; c < 4; c++) { + for (int j = 1; j < hfw - 1; ++j) { + for (int c = 0; c < 4; ++c) { hilite_dir4[c][j][0] = hilite_dir4[c][j][1]; hilite_dir4[c][j][hfh - 1] = hilite_dir4[c][j][hfh - 2]; } + } - for (int c = 0; c < 4; c++) { + for (int c = 0; c < 4; ++c) { hilite_dir4[c][0][0] = hilite_dir4[c][0][1] = hilite_dir4[c][1][0] = hilite_dir4[c][1][1] = hilite_dir4[c][2][2]; hilite_dir4[c][hfw - 1][0] = hilite_dir4[c][hfw - 1][1] = hilite_dir4[c][hfw - 2][0] = hilite_dir4[c][hfw - 2][1] = hilite_dir4[c][hfw - 3][2]; hilite_dir4[c][0][hfh - 1] = hilite_dir4[c][0][hfh - 2] = hilite_dir4[c][1][hfh - 1] = hilite_dir4[c][1][hfh - 2] = hilite_dir4[c][2][hfh - 3]; @@ -915,7 +926,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu } //free up some memory - for (int c = 0; c < 4; c++) { + for (int c = 0; c < 4; ++c) { hilite[c].free(); } @@ -925,47 +936,52 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif + for (int i = 0; i < blurHeight; ++i) { + const int i1 = min((i - i % pitch) / pitch, hfh - 1); - for (int i = 0; i < blurHeight; i++) { - const int i1 = min((i - (i % pitch)) / pitch, hfh - 1); - - for (int j = 0; j < blurWidth; j++) { - - const float pixel[3] = {red[i + miny][j + minx], green[i + miny][j + minx], blue[i + miny][j + minx]}; + for (int j = 0; j < blurWidth; ++j) { + const float pixel[3] = { + red[i + miny][j + minx], + green[i + miny][j + minx], + blue[i + miny][j + minx] + }; if (pixel[0] < max_f[0] && pixel[1] < max_f[1] && pixel[2] < max_f[2]) { continue; //pixel not clipped } - const int j1 = min((j - (j % pitch)) / pitch, hfw - 1); + const int j1 = min((j - j % pitch) / pitch, hfw - 1); //estimate recovered values using modified HLRecovery_blend algorithm - float rgb[ColorCount], rgb_blend[ColorCount] = {}, cam[2][ColorCount], lab[2][ColorCount], sum[2]; - - // Copy input pixel to rgb so it's easier to access in loops - rgb[0] = pixel[0]; - rgb[1] = pixel[1]; - rgb[2] = pixel[2]; + float rgb[3] = { + pixel[0], + pixel[1], + pixel[2] + };// Copy input pixel to rgb so it's easier to access in loops + float rgb_blend[3] = {}; + float cam[2][3]; + float lab[2][3]; + float sum[2]; // Initialize cam with raw input [0] and potentially clipped input [1] - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { cam[0][c] = rgb[c]; cam[1][c] = min(cam[0][c], clippt); } // Calculate the lightness correction ratio (chratio) - for (int i2 = 0; i2 < 2; i2++) { - for (int c = 0; c < ColorCount; c++) { + for (int i2 = 0; i2 < 2; ++i2) { + for (int c = 0; c < 3; ++c) { lab[i2][c] = 0; - for (int j = 0; j < ColorCount; j++) { + for (int j = 0; j < 3; ++j) { lab[i2][c] += trans[c][j] * cam[i2][j]; } } sum[i2] = 0.f; - for (int c = 1; c < ColorCount; c++) { + for (int c = 1; c < 3; ++c) { sum[i2] += SQR(lab[i2][c]); } } @@ -976,36 +992,36 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu const float chratio = sqrtf(sum[1] / sum[0]); // Apply ratio to lightness in lab space - for (int c = 1; c < ColorCount; c++) { + for (int c = 1; c < 3; ++c) { lab[0][c] *= chratio; } // Transform back from lab to RGB - for (int c = 0; c < ColorCount; c++) { - cam[0][c] = 0; + for (int c = 0; c < 3; ++c) { + cam[0][c] = 0.f; - for (int j = 0; j < ColorCount; j++) { + for (int j = 0; j < 3; ++j) { cam[0][c] += itrans[c][j] * lab[0][j]; } } - for (int c = 0; c < ColorCount; c++) { - rgb[c] = cam[0][c] / ColorCount; + for (int c = 0; c < 3; ++c) { + rgb[c] = cam[0][c] / 3; } // Copy converted pixel back if (pixel[0] > blendpt) { - const float rfrac = max(0.f, min(1.f, medFactor[0] * (pixel[0] - blendpt))); + const float rfrac = LIM01(medFactor[0] * (pixel[0] - blendpt)); rgb_blend[0] = rfrac * rgb[0] + (1.f - rfrac) * pixel[0]; } if (pixel[1] > blendpt) { - const float gfrac = max(0.f, min(1.f, medFactor[1] * (pixel[1] - blendpt))); + const float gfrac = LIM01(medFactor[1] * (pixel[1] - blendpt)); rgb_blend[1] = gfrac * rgb[1] + (1.f - gfrac) * pixel[1]; } if (pixel[2] > blendpt) { - const float bfrac = max(0.f, min(1.f, medFactor[2] * (pixel[2] - blendpt))); + const float bfrac = LIM01(medFactor[2] * (pixel[2] - blendpt)); rgb_blend[2] = bfrac * rgb[2] + (1.f - bfrac) * pixel[2]; } @@ -1019,7 +1035,7 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu float Y = epsilon + rgb_blend[0] + rgb_blend[1] + rgb_blend[2]; - for (int c = 0; c < ColorCount; c++) { + for (int c = 0; c < 3; ++c) { rgb_blend[c] /= Y; } @@ -1035,13 +1051,13 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu clipfix[2] = dirwt * hilite_dir0[2][j1][i1]; } - for (int dir = 0; dir < 2; dir++) { - const float Yhi = 1.f / ( hilite_dir[dir * 4 + 0][i1][j1] + hilite_dir[dir * 4 + 1][i1][j1] + hilite_dir[dir * 4 + 2][i1][j1]); + for (int dir = 0; dir < 2; ++dir) { + const float Yhi2 = 1.f / ( hilite_dir[dir * 4 + 0][i1][j1] + hilite_dir[dir * 4 + 1][i1][j1] + hilite_dir[dir * 4 + 2][i1][j1]); - if (Yhi < 2.f) { - const float dirwt = 1.f / ((1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir[dir * 4 + 0][i1][j1] * Yhi) + - SQR(rgb_blend[1] - hilite_dir[dir * 4 + 1][i1][j1] * Yhi) + - SQR(rgb_blend[2] - hilite_dir[dir * 4 + 2][i1][j1] * Yhi))) * (hilite_dir[dir * 4 + 3][i1][j1] + epsilon)); + if (Yhi2 < 2.f) { + const float dirwt = 1.f / ((1.f + 65535.f * (SQR(rgb_blend[0] - hilite_dir[dir * 4 + 0][i1][j1] * Yhi2) + + SQR(rgb_blend[1] - hilite_dir[dir * 4 + 1][i1][j1] * Yhi2) + + SQR(rgb_blend[2] - hilite_dir[dir * 4 + 2][i1][j1] * Yhi2))) * (hilite_dir[dir * 4 + 3][i1][j1] + epsilon)); totwt = true; clipfix[0] += dirwt * hilite_dir[dir * 4 + 0][i1][j1]; clipfix[1] += dirwt * hilite_dir[dir * 4 + 1][i1][j1]; @@ -1076,7 +1092,11 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu green[i + miny][j + minx] = clipfix[1] * factor; blue[i + miny][j + minx] = clipfix[2] * factor; } else {//some channels clipped - const float notclipped[3] = {pixel[0] <= max_f[0] ? 1.f : 0.f, pixel[1] <= max_f[1] ? 1.f : 0.f, pixel[2] <= max_f[2] ? 1.f : 0.f}; + const float notclipped[3] = { + pixel[0] <= max_f[0] ? 1.f : 0.f, + pixel[1] <= max_f[1] ? 1.f : 0.f, + pixel[2] <= max_f[2] ? 1.f : 0.f + }; if (notclipped[0] == 0.f) { //red clipped red[i + miny][j + minx] = max(pixel[0], clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / @@ -1112,6 +1132,5 @@ void RawImageSource::HLRecovery_inpaint (float** red, float** green, float** blu }// end of HLReconstruction - } From 494aa99323086517a40e1618d7dc76eb46d890ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Fri, 12 Jul 2019 08:10:30 +0200 Subject: [PATCH 185/215] Fix missing include guards --- rtengine/dfmanager.h | 10 +++++++--- rtengine/ffmanager.h | 10 +++++++--- rtengine/iccjpeg.h | 1 + 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/rtengine/dfmanager.h b/rtengine/dfmanager.h index 2e55c3c22..541981492 100644 --- a/rtengine/dfmanager.h +++ b/rtengine/dfmanager.h @@ -16,10 +16,14 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include -#include -#include +#pragma once + #include +#include +#include + +#include + #include "pixelsmap.h" #include "rawimage.h" diff --git a/rtengine/ffmanager.h b/rtengine/ffmanager.h index 9068216ef..43fb2f368 100644 --- a/rtengine/ffmanager.h +++ b/rtengine/ffmanager.h @@ -16,10 +16,14 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include -#include -#include +#pragma once + #include +#include +#include + +#include + #include "rawimage.h" namespace rtengine diff --git a/rtengine/iccjpeg.h b/rtengine/iccjpeg.h index ce715948d..5197d1602 100644 --- a/rtengine/iccjpeg.h +++ b/rtengine/iccjpeg.h @@ -15,6 +15,7 @@ * with ICC profiles exceeding 64K bytes in size. See iccprofile.c * for details. */ +#pragma once #include /* needed to define "FILE", "NULL" */ #include "jpeglib.h" From 7257aee2351a71e768ab3cb4b94f75952ec181f5 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 12 Jul 2019 12:56:47 +0200 Subject: [PATCH 186/215] DCPStore: use std::string instead of slow Glib::ustring --- rtengine/dcp.cc | 28 +++++++++++----------------- rtengine/dcp.h | 4 ++-- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/rtengine/dcp.cc b/rtengine/dcp.cc index 1c99b682c..56855b604 100644 --- a/rtengine/dcp.cc +++ b/rtengine/dcp.cc @@ -1833,8 +1833,7 @@ void DCPStore::init(const Glib::ustring& rt_profile_dir, bool loadAll) && lastdot <= sname.size() - 4 && !sname.casefold().compare(lastdot, 4, ".dcp") ) { - const Glib::ustring cam_short_name = sname.substr(0, lastdot).uppercase(); - file_std_profiles[cam_short_name] = fname; // They will be loaded and cached on demand + file_std_profiles[sname.substr(0, lastdot).casefold_collate_key()] = fname; // They will be loaded and cached on demand } } else { // Directory @@ -1845,11 +1844,10 @@ void DCPStore::init(const Glib::ustring& rt_profile_dir, bool loadAll) for (const auto& alias : getAliases(rt_profile_dir)) { const Glib::ustring alias_name = Glib::ustring(alias.first).uppercase(); - const Glib::ustring real_name = Glib::ustring(alias.second).uppercase(); - const std::map::const_iterator real = file_std_profiles.find(real_name); + const std::map::const_iterator real = file_std_profiles.find(Glib::ustring(alias.second).casefold_collate_key()); if (real != file_std_profiles.end()) { - file_std_profiles[alias_name] = real->second; + file_std_profiles[alias_name.casefold_collate_key()] = real->second; } } } @@ -1871,19 +1869,19 @@ bool DCPStore::isValidDCPFileName(const Glib::ustring& filename) const DCPProfile* DCPStore::getProfile(const Glib::ustring& filename) const { + const auto key = filename.casefold_collate_key(); MyMutex::MyLock lock(mutex); + const std::map::const_iterator iter = profile_cache.find(key); - const std::map::iterator r = profile_cache.find(filename); - - if (r != profile_cache.end()) { - return r->second; + if (iter != profile_cache.end()) { + return iter->second; } DCPProfile* const res = new DCPProfile(filename); if (res->isValid()) { // Add profile - profile_cache[filename] = res; + profile_cache[key] = res; if (options.rtSettings.verbose) { printf("DCP profile '%s' loaded from disk\n", filename.c_str()); } @@ -1896,13 +1894,9 @@ DCPProfile* DCPStore::getProfile(const Glib::ustring& filename) const DCPProfile* DCPStore::getStdProfile(const Glib::ustring& requested_cam_short_name) const { - const Glib::ustring name = requested_cam_short_name.uppercase(); - - // Warning: do NOT use map.find(), since it does not seem to work reliably here - for (const auto& file_std_profile : file_std_profiles) { - if (file_std_profile.first == name) { - return getProfile(file_std_profile.second); - } + const std::map::const_iterator iter = file_std_profiles.find(requested_cam_short_name.casefold_collate_key()); + if (iter != file_std_profiles.end()) { + return getProfile(iter->second); } // profile not found, looking if we're in loadAll=false mode diff --git a/rtengine/dcp.h b/rtengine/dcp.h index dc6915d26..48b881661 100644 --- a/rtengine/dcp.h +++ b/rtengine/dcp.h @@ -169,10 +169,10 @@ private: std::vector profileDir; // these contain standard profiles from RT. keys are all in uppercase, file path is value - std::map file_std_profiles; + std::map file_std_profiles; // Maps file name to profile as cache - mutable std::map profile_cache; + mutable std::map profile_cache; }; } From d1c9a5f989629700f3fefa8aeb872f3cafbb54cc Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 12 Jul 2019 13:46:45 +0200 Subject: [PATCH 187/215] Removed timing code --- rtengine/hilite_recon.cc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index c6c540e10..b0a7e6229 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -33,9 +33,6 @@ #include "rawimagesource.h" #include "rt_math.h" -#define BENCHMARK -#include "StopWatch.h" - namespace { @@ -295,7 +292,6 @@ extern const Settings* settings; void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue) { - BENCHFUN double progress = 0.0; if (plistener) { From 72ae120bd101f636d301676503dbf2fd10f6c20c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 14 Jul 2019 15:03:08 +0200 Subject: [PATCH 188/215] FileCatalog::reparseDirectory(): speedup --- rtgui/filecatalog.cc | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index fcccaac3a..f00c50f3d 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -37,6 +37,9 @@ #include "batchqueue.h" #include "placesbrowser.h" +#define BENCHMARK +#include "../rtengine/StopWatch.h" + using namespace std; #define CHECKTIME 2000 @@ -1672,7 +1675,7 @@ void FileCatalog::filterChanged () void FileCatalog::reparseDirectory () { - +BENCHFUN if (selectedDirectory.empty()) { return; } @@ -1704,17 +1707,15 @@ void FileCatalog::reparseDirectory () } // check if a new file has been added + // build a set of collate-keys for faster search + std::set oldNames; + for (size_t j = 0; j < fileNameList.size(); j++) { + oldNames.insert(fileNameList[j].collate_key()); + } + for (size_t i = 0; i < nfileNameList.size(); i++) { - bool found = false; - - for (size_t j = 0; j < fileNameList.size(); j++) - if (nfileNameList[i] == fileNameList[j]) { - found = true; - break; - } - - if (!found) { - checkAndAddFile (Gio::File::create_for_parse_name (nfileNameList[i])); + if (oldNames.count(nfileNameList[i].collate_key()) == 0) { + checkAndAddFile (Gio::File::create_for_parse_name(nfileNameList[i])); _refreshProgressBar (); } } From 67e94e41c8f4435893d1b6405041c9a522594706 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 14 Jul 2019 15:23:28 +0200 Subject: [PATCH 189/215] FileCatalog::getFileList(): speedup --- rtgui/filecatalog.cc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index f00c50f3d..8070adc27 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -566,44 +566,44 @@ void FileCatalog::closeDir () redrawAll (); } -std::vector FileCatalog::getFileList () +std::vector FileCatalog::getFileList() { + BENCHFUN std::vector names; - std::set extensions; + std::set extensions; for (const auto& parsedExt : options.parsedExtensions) { - extensions.emplace (parsedExt.lowercase ()); + extensions.emplace(parsedExt.lowercase()); } try { - auto dir = Gio::File::create_for_path (selectedDirectory); + const auto dir = Gio::File::create_for_path(selectedDirectory); - auto enumerator = dir->enumerate_children ("standard::name"); + auto enumerator = dir->enumerate_children("standard::name"); while (true) { try { - auto file = enumerator->next_file (); + const auto file = enumerator->next_file(); if (!file) { break; } - const Glib::ustring fname = file->get_name (); + const Glib::ustring fname = file->get_name(); - auto lastdot = fname.find_last_of ('.'); + const auto lastdot = fname.find_last_of ('.'); if (lastdot >= fname.length () - 1) { continue; } - const auto fext = fname.substr (lastdot + 1).lowercase (); - if (extensions.count (fext) == 0) { + if (extensions.count(fname.substr(lastdot + 1).lowercase()) == 0) { continue; } - names.emplace_back (Glib::build_filename (selectedDirectory, fname)); + names.emplace_back(Glib::build_filename(selectedDirectory, fname)); } catch (Glib::Exception& exception) { if (options.rtSettings.verbose) { - std::cerr << exception.what () << std::endl; + std::cerr << exception.what() << std::endl; } } } From 42a9d8d404297307223dcee2ec47f791fbe67528 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 15 Jul 2019 21:43:51 +0200 Subject: [PATCH 190/215] Added a space to test LGTM --- rtgui/filebrowser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index b208a854d..60cf639ee 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -38,7 +38,7 @@ class FileBrowserEntry; class FileBrowserListener { public: - virtual ~FileBrowserListener() = default; + virtual ~FileBrowserListener() = default; virtual void filterApplied() = 0; virtual void openRequested(const std::vector& tbe) = 0; virtual void developRequested(const std::vector& tbe, bool fastmode) = 0; From 3130fe7ca30bcae1cce060fb743fac6176dbb0bc Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 15 Jul 2019 23:50:03 +0200 Subject: [PATCH 191/215] Remove the space I added with last commit to test LGTM --- rtgui/filebrowser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index 60cf639ee..b208a854d 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -38,7 +38,7 @@ class FileBrowserEntry; class FileBrowserListener { public: - virtual ~FileBrowserListener() = default; + virtual ~FileBrowserListener() = default; virtual void filterApplied() = 0; virtual void openRequested(const std::vector& tbe) = 0; virtual void developRequested(const std::vector& tbe, bool fastmode) = 0; From d68b33effcd4d999fc32eeef1ae448bfd6420cc8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 16 Jul 2019 20:07:29 +0200 Subject: [PATCH 192/215] filecatalog: further speedups; also remember last copy/move destination --- rtgui/filecatalog.cc | 214 +++++++++++++++++++------------------------ rtgui/filecatalog.h | 2 +- rtgui/options.cc | 33 ++----- rtgui/options.h | 7 +- 4 files changed, 112 insertions(+), 144 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 8070adc27..57555fd76 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -571,16 +571,13 @@ std::vector FileCatalog::getFileList() BENCHFUN std::vector names; - std::set extensions; - for (const auto& parsedExt : options.parsedExtensions) { - extensions.emplace(parsedExt.lowercase()); - } + const std::set& extensions = options.parsedExtensionsSet; try { const auto dir = Gio::File::create_for_path(selectedDirectory); - auto enumerator = dir->enumerate_children("standard::name"); + auto enumerator = dir->enumerate_children("standard::name,standard::type,standard::is-hidden"); while (true) { try { @@ -589,18 +586,26 @@ std::vector FileCatalog::getFileList() break; } + if (file->get_file_type() == Gio::FILE_TYPE_DIRECTORY) { + continue; + } + + if (!options.fbShowHidden && file->is_hidden()) { + continue; + } + const Glib::ustring fname = file->get_name(); + const auto lastdot = fname.find_last_of('.'); - const auto lastdot = fname.find_last_of ('.'); - if (lastdot >= fname.length () - 1) { + if (lastdot >= fname.length() - 1) { continue; } - if (extensions.count(fname.substr(lastdot + 1).lowercase()) == 0) { + if (extensions.find(fname.substr(lastdot + 1).lowercase()) == extensions.end()) { continue; } - names.emplace_back(Glib::build_filename(selectedDirectory, fname)); + names.push_back(Glib::build_filename(selectedDirectory, fname)); } catch (Glib::Exception& exception) { if (options.rtSettings.verbose) { std::cerr << exception.what() << std::endl; @@ -621,7 +626,7 @@ std::vector FileCatalog::getFileList() void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring& openfile) { - +BENCHFUN try { Glib::RefPtr dir = Gio::File::create_for_path (dirname); @@ -629,7 +634,7 @@ void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring return; } - closeDir (); + closeDir(); previewsToLoad = 0; previewsLoaded = 0; @@ -639,16 +644,14 @@ void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring } selectedDirectory = dir->get_parse_name(); - //printf("FileCatalog::dirSelected selectedDirectory = %s\n",selectedDirectory.c_str()); - BrowsePath->set_text (selectedDirectory); - buttonBrowsePath->set_image (*iRefreshWhite); - fileNameList = getFileList (); + + BrowsePath->set_text(selectedDirectory); + buttonBrowsePath->set_image(*iRefreshWhite); + fileNameList = getFileList(); for (unsigned int i = 0; i < fileNameList.size(); i++) { - Glib::RefPtr f = Gio::File::create_for_path(fileNameList[i]); - - if (f->get_parse_name() != openfile) { // if we opened a file at the beginning don't add it again - checkAndAddFile (f); + if (openfile.empty() || fileNameList[i] != openfile) { // if we opened a file at the beginning don't add it again + addFile(fileNameList[i]); } } @@ -699,34 +702,33 @@ void FileCatalog::_refreshProgressBar () // In tab mode, no progress bar at all // Also mention that this progress bar only measures the FIRST pass (quick thumbnails) // The second, usually longer pass is done multithreaded down in the single entries and is NOT measured by this - if (!inTabMode) { + if (!inTabMode && (!previewsToLoad || std::floor(100.f * previewsLoaded / previewsToLoad) != std::floor(100.f * (previewsLoaded - 1) / previewsToLoad))) { GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected - Gtk::Notebook *nb = (Gtk::Notebook *)(filepanel->get_parent()); - Gtk::Grid* grid = Gtk::manage (new Gtk::Grid ()); + Gtk::Grid* grid = Gtk::manage(new Gtk::Grid()); Gtk::Label *label = nullptr; - if (!previewsToLoad ) { - grid->attach_next_to(*Gtk::manage (new RTImage ("folder-closed.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + if (!previewsToLoad) { + grid->attach_next_to(*Gtk::manage(new RTImage("folder-closed.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); int filteredCount = min(fileBrowser->getNumFiltered(), previewsLoaded); - label = Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER") + - (filteredCount != previewsLoaded ? " [" + Glib::ustring::format(filteredCount) + "/" : " (") - + Glib::ustring::format(previewsLoaded) + - (filteredCount != previewsLoaded ? "]" : ")"))); + label = Gtk::manage(new Gtk::Label(M("MAIN_FRAME_FILEBROWSER") + + (filteredCount != previewsLoaded ? " [" + Glib::ustring::format(filteredCount) + "/" : " (") + + Glib::ustring::format(previewsLoaded) + + (filteredCount != previewsLoaded ? "]" : ")"))); } else { - grid->attach_next_to(*Gtk::manage (new RTImage ("magnifier.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); - label = Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER") + " [" + Glib::ustring::format(std::fixed, std::setprecision(0), std::setw(3), (double)previewsLoaded / previewsToLoad * 100 ) + "%]" )); + grid->attach_next_to(*Gtk::manage(new RTImage("magnifier.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + label = Gtk::manage(new Gtk::Label(M("MAIN_FRAME_FILEBROWSER") + " [" + Glib::ustring::format(std::fixed, std::setprecision(0), std::setw(3), (double)previewsLoaded / previewsToLoad * 100 ) + "%]" )); filepanel->loadingThumbs("", (double)previewsLoaded / previewsToLoad); } - if( options.mainNBVertical ) { + if (options.mainNBVertical) { label->set_angle(90); } grid->attach_next_to(*label, options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); - grid->set_tooltip_markup (M("MAIN_FRAME_FILEBROWSER_TOOLTIP")); - grid->show_all (); + grid->set_tooltip_markup(M("MAIN_FRAME_FILEBROWSER_TOOLTIP")); + grid->show_all(); if (nb) { nb->set_tab_label(*filepanel, *grid); @@ -1008,12 +1010,16 @@ void FileCatalog::copyMoveRequested(const std::vector& tbe, b Gtk::FileChooserDialog fc (getToplevelWindow (this), fc_title, Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER ); fc.add_button( M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); fc.add_button( M("GENERAL_OK"), Gtk::RESPONSE_OK); - // open dialog at the 1-st file's path - fc.set_filename(tbe[0]->filename); + if (!options.lastCopyMovePath.empty() && Glib::file_test(options.lastCopyMovePath, Glib::FILE_TEST_IS_DIR)) { + fc.set_current_folder(options.lastCopyMovePath); + } else { + // open dialog at the 1-st file's path + fc.set_current_folder(Glib::path_get_dirname(tbe[0]->filename)); + } //!!! TODO prevent dialog closing on "enter" key press if( fc.run() == Gtk::RESPONSE_OK ) { - Glib::ustring dest_Dir = fc.get_current_folder(); + options.lastCopyMovePath = fc.get_current_folder(); // iterate through selected files for (unsigned int i = 0; i < tbe.size(); i++) { @@ -1030,10 +1036,10 @@ void FileCatalog::copyMoveRequested(const std::vector& tbe, b Glib::ustring fname_Ext = getExtension(fname); // construct destination File Paths - Glib::ustring dest_fPath = Glib::build_filename (dest_Dir, fname); + Glib::ustring dest_fPath = Glib::build_filename (options.lastCopyMovePath, fname); Glib::ustring dest_fPath_param = dest_fPath + paramFileExtension; - if (moveRequested && (src_Dir == dest_Dir)) { + if (moveRequested && (src_Dir == options.lastCopyMovePath)) { continue; } @@ -1088,7 +1094,7 @@ void FileCatalog::copyMoveRequested(const std::vector& tbe, b // adjust destination fname to avoid conflicts (append "_", preserve extension) Glib::ustring dest_fname = Glib::ustring::compose("%1%2%3%4%5", fname_noExt, "_", i_copyindex, ".", fname_Ext); // re-construct destination File Paths - dest_fPath = Glib::build_filename (dest_Dir, dest_fname); + dest_fPath = Glib::build_filename (options.lastCopyMovePath, dest_fname); dest_fPath_param = dest_fPath + paramFileExtension; i_copyindex++; } @@ -1680,47 +1686,46 @@ BENCHFUN return; } - if (!Glib::file_test (selectedDirectory, Glib::FILE_TEST_IS_DIR)) { - closeDir (); + if (!Glib::file_test(selectedDirectory, Glib::FILE_TEST_IS_DIR)) { + closeDir(); return; } - std::vector nfileNameList = getFileList (); - // check if a thumbnailed file has been deleted - const std::vector& t = fileBrowser->getEntries (); + const std::vector& t = fileBrowser->getEntries(); std::vector fileNamesToDel; - for (size_t i = 0; i < t.size(); i++) - if (!Glib::file_test (t[i]->filename, Glib::FILE_TEST_EXISTS)) { - fileNamesToDel.push_back (t[i]->filename); + for (const auto& entry : t) { + if (!Glib::file_test(entry->filename, Glib::FILE_TEST_EXISTS)) { + fileNamesToDel.push_back(entry->filename); } - - for (size_t i = 0; i < fileNamesToDel.size(); i++) { - delete fileBrowser->delEntry (fileNamesToDel[i]); - cacheMgr->deleteEntry (fileNamesToDel[i]); - previewsLoaded--; } - if (!fileNamesToDel.empty ()) { + for (const auto& toDelete : fileNamesToDel) { + delete fileBrowser->delEntry(toDelete); + cacheMgr->deleteEntry(toDelete); + --previewsLoaded; + } + + if (!fileNamesToDel.empty()) { _refreshProgressBar(); } // check if a new file has been added // build a set of collate-keys for faster search std::set oldNames; - for (size_t j = 0; j < fileNameList.size(); j++) { - oldNames.insert(fileNameList[j].collate_key()); + for (const auto& oldName : fileNameList) { + oldNames.insert(oldName.collate_key()); } - for (size_t i = 0; i < nfileNameList.size(); i++) { - if (oldNames.count(nfileNameList[i].collate_key()) == 0) { - checkAndAddFile (Gio::File::create_for_parse_name(nfileNameList[i])); - _refreshProgressBar (); + fileNameList = getFileList(); + for (const auto& newName : fileNameList) { + if (oldNames.find(newName.collate_key()) == oldNames.end()) { + addFile(newName); + _refreshProgressBar(); } } - fileNameList = nfileNameList; } void FileCatalog::on_dir_changed (const Glib::RefPtr& file, const Glib::RefPtr& other_file, Gio::FileMonitorEvent event_type, bool internal) @@ -1737,85 +1742,55 @@ void FileCatalog::on_dir_changed (const Glib::RefPtr& file, const Gli } } -void FileCatalog::checkAndAddFile (Glib::RefPtr file) +void FileCatalog::addFile (const Glib::ustring& fName) { - - if (!file) { - return; - } - - try { - - const auto info = file->query_info("standard::*"); - - if (!info || info->get_file_type() == Gio::FILE_TYPE_DIRECTORY) { - return; - } - - if (!options.fbShowHidden && info->is_hidden()) { - return; - } - - Glib::ustring ext; - - const auto lastdot = info->get_name().find_last_of('.'); - - if (lastdot != Glib::ustring::npos) { - ext = info->get_name().substr(lastdot + 1); - } - - if (!options.is_extention_enabled(ext)) { - return; - } - - previewLoader->add(selectedDirectoryId, file->get_parse_name(), this); + if (!fName.empty()) { + previewLoader->add(selectedDirectoryId, fName, this); previewsToLoad++; - - } catch(Gio::Error&) {} + } } void FileCatalog::addAndOpenFile (const Glib::ustring& fname) { - auto file = Gio::File::create_for_path (fname); + auto file = Gio::File::create_for_path(fname); if (!file ) { return; } - if (!file->query_exists ()) { + if (!file->query_exists()) { return; } try { - auto info = file->query_info (); + const auto info = file->query_info(); if (!info) { return; } - Glib::ustring ext; - - auto lastdot = info->get_name().find_last_of ('.'); + const auto lastdot = info->get_name().find_last_of('.'); if (lastdot != Glib::ustring::npos) { - ext = info->get_name ().substr (lastdot + 1); - } - - if (!options.is_extention_enabled(ext)) { + if (!options.is_extention_enabled(info->get_name().substr(lastdot + 1))) { + return; + } + } else { return; } + // if supported, load thumbnail first - const auto tmb = cacheMgr->getEntry (file->get_parse_name ()); + const auto tmb = cacheMgr->getEntry(file->get_parse_name()); if (!tmb) { return; } - FileBrowserEntry* entry = new FileBrowserEntry (tmb, file->get_parse_name ()); - previewReady (selectedDirectoryId, entry); + FileBrowserEntry* entry = new FileBrowserEntry(tmb, file->get_parse_name()); + previewReady(selectedDirectoryId, entry); // open the file - tmb->increaseRef (); + tmb->increaseRef(); idle_register.add( [this, tmb]() -> bool { @@ -1830,27 +1805,30 @@ void FileCatalog::addAndOpenFile (const Glib::ustring& fname) void FileCatalog::emptyTrash () { - const std::vector t = fileBrowser->getEntries (); + const auto& t = fileBrowser->getEntries(); std::vector toDel; - for (size_t i = 0; i < t.size(); i++) - if ((static_cast(t[i]))->thumbnail->getStage() == 1) { - toDel.push_back (static_cast(t[i])); + for (const auto entry : t) { + if ((static_cast(entry))->thumbnail->getStage() == 1) { + toDel.push_back(static_cast(entry)); } - - deleteRequested (toDel, false, false); - trashChanged(); + } + if (toDel.size() > 0) { + deleteRequested(toDel, false, false); + trashChanged(); + } } bool FileCatalog::trashIsEmpty () { - const std::vector t = fileBrowser->getEntries (); - for (size_t i = 0; i < t.size(); i++) - if ((static_cast(t[i]))->thumbnail->getStage() == 1) { + const auto& t = fileBrowser->getEntries(); + + for (const auto entry : t) { + if ((static_cast(entry))->thumbnail->getStage() == 1) { return false; } - + } return true; } diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 4c0d13e51..2f3054bcf 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -141,7 +141,7 @@ private: IdleRegister idle_register; void addAndOpenFile (const Glib::ustring& fname); - void checkAndAddFile (Glib::RefPtr info); + void addFile (const Glib::ustring& fName); std::vector getFileList (); BrowserFilter getFilter (); void trashChanged (); diff --git a/rtgui/options.cc b/rtgui/options.cc index 2437f5313..640aa0243 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -369,6 +369,7 @@ void Options::setDefaults() multiUser = true; profilePath = "profiles"; loadSaveProfilePath = ""; // will be corrected in load as otherwise construction fails + lastCopyMovePath = ""; version = "0.0.0.0"; // temporary value; will be correctly set in RTWindow::on_realize thumbSize = 160; thumbSizeTab = 160; @@ -412,6 +413,7 @@ void Options::setDefaults() favorites.clear(); parseExtensionsEnabled.clear(); parsedExtensions.clear(); + parsedExtensionsSet.clear(); renameUseTemplates = false; renameTemplates.clear(); thumbnailZoomRatios.clear(); @@ -648,10 +650,12 @@ Options* Options::copyFrom(Options* other) void Options::filterOutParsedExtensions() { parsedExtensions.clear(); + parsedExtensionsSet.clear(); for (unsigned int i = 0; i < parseExtensions.size(); i++) if (parseExtensionsEnabled[i]) { parsedExtensions.push_back(parseExtensions[i].lowercase()); + parsedExtensionsSet.emplace(parseExtensions[i].lowercase()); } } @@ -1836,6 +1840,7 @@ void Options::readFromFile(Glib::ustring fname) safeDirGet(keyFile, "Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); safeDirGet(keyFile, "Dialogs", "LastLensProfileDir", lastLensProfileDir); safeDirGet(keyFile, "Dialogs", "LastICCProfCreatorDir", lastICCProfCreatorDir); + safeDirGet(keyFile, "Dialogs", "LastCopyMovePath", lastCopyMovePath); if (keyFile.has_key("Dialogs", "GimpPluginShowInfoDialog")) { gimpPluginShowInfoDialog = keyFile.get_boolean("Dialogs", "GimpPluginShowInfoDialog"); @@ -2229,6 +2234,7 @@ void Options::saveToFile(Glib::ustring fname) keyFile.set_string("Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); keyFile.set_string("Dialogs", "LastLensProfileDir", lastLensProfileDir); keyFile.set_string("Dialogs", "LastICCProfCreatorDir", lastICCProfCreatorDir); + keyFile.set_string("Dialogs", "LastCopyMovePath", lastCopyMovePath); keyFile.set_boolean("Dialogs", "GimpPluginShowInfoDialog", gimpPluginShowInfoDialog); keyFile.set_string("Lensfun", "DBDirectory", rtSettings.lensfunDbDirectory); @@ -2464,36 +2470,17 @@ bool Options::is_parse_extention(Glib::ustring fname) /* * return true if fname ends with one of the retained image file extensions */ -bool Options::has_retained_extention(Glib::ustring fname) +bool Options::has_retained_extention(const Glib::ustring& fname) { - - Glib::ustring ext = getExtension(fname).lowercase(); - - if (!ext.empty()) { - // there is an extension to the filename - - // look out if it has one of the retained extensions - for (unsigned int i = 0; i < parsedExtensions.size(); i++) { - if (ext == parsedExtensions[i]) { - return true; - } - } - } - - return false; + return parsedExtensionsSet.find(getExtension(fname).lowercase()) != parsedExtensionsSet.end(); } /* * return true if ext is an enabled extension */ -bool Options::is_extention_enabled(Glib::ustring ext) +bool Options::is_extention_enabled(const Glib::ustring& ext) { - for (int j = 0; j < (int)parseExtensions.size(); j++) - if (parseExtensions[j].casefold() == ext.casefold()) { - return j >= (int)parseExtensionsEnabled.size() || parseExtensionsEnabled[j]; - } - - return false; + return parsedExtensionsSet.find(ext.lowercase()) != parsedExtensionsSet.end(); } Glib::ustring Options::getUserProfilePath() diff --git a/rtgui/options.h b/rtgui/options.h index 304a1e220..d1d14a11f 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -19,6 +19,7 @@ #ifndef _OPTIONS_ #define _OPTIONS_ +#include #include #include "../rtengine/rtengine.h" #include @@ -174,6 +175,7 @@ public: Glib::ustring startupPath; Glib::ustring profilePath; // can be an absolute or relative path; depending on this value, bundled profiles may not be found bool useBundledProfiles; // only used if multiUser == true + Glib::ustring lastCopyMovePath; Glib::ustring loadSaveProfilePath; Glib::ustring lastSaveAsPath; int saveAsDialogWidth; @@ -259,6 +261,7 @@ public: std::vector parseExtensions; // List containing all extensions type std::vector parseExtensionsEnabled; // List of bool to retain extension or not std::vector parsedExtensions; // List containing all retained extensions (lowercase) + std::set parsedExtensionsSet; // Set containing all retained extensions (lowercase) std::vector tpOpen; bool autoSaveTpOpen; //std::vector crvOpen; @@ -422,8 +425,8 @@ public: Glib::ustring getGlobalProfilePath(); Glib::ustring findProfilePath (Glib::ustring &profName); bool is_parse_extention (Glib::ustring fname); - bool has_retained_extention (Glib::ustring fname); - bool is_extention_enabled (Glib::ustring ext); + bool has_retained_extention (const Glib::ustring& fname); + bool is_extention_enabled (const Glib::ustring& ext); bool is_defProfRawMissing(); bool is_bundledDefProfRawMissing(); bool is_defProfImgMissing(); From 85aacaddf285c7c8eb4cb60f4085457103e8e71e Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Wed, 17 Jul 2019 00:53:36 +0200 Subject: [PATCH 193/215] Minor whitespace fix --- rtengine/rtthumbnail.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 4b0baa685..2a35176e6 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1167,7 +1167,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT Imagefloat* baseImg = resizeTo (rwidth, rheight, interp, thumbImg); - if(isRaw && params.filmNegative.enabled) { + if (isRaw && params.filmNegative.enabled) { processFilmNegative(params, baseImg, rwidth, rheight, rmi, gmi, bmi); } From cd597ec3865a9e2df224a52ef9a5d1cb4179d54c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 17 Jul 2019 12:13:48 +0200 Subject: [PATCH 194/215] raw crop for Sony ILCE-7RM4 (Sony A7R IV) --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 97a14f66e..894414f8a 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -2437,6 +2437,11 @@ Camera constants: "pdaf_offset" : 31 }, + { // Quality C, + "make_model": "Sony ILCE-7RM4", + "raw_crop": [ 0, 0, 9568, 0 ] // full raw frame 9600x6376 - 32 rightmost columns are garbage + }, + { // Quality B, color matrix copied from a7rm2 "make_model": "Sony ILCE-9", "dcraw_matrix": [ 6389,-1703,-378,-4562,12265,2587,-670,1489,6550 ], // DNG_v9.12 D65 From a0f2040816d8c41d60efd43c3927e2a1eac60a84 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 17 Jul 2019 21:23:17 +0200 Subject: [PATCH 195/215] Small cleanup Removed unused key TP_FILMNEGATIVE_REF_SPOTS. Style fix in language string. generateTranslationDiffs Film Negative values in History use newlines to reduce required width. Removed benchmark code. --- rtdata/languages/Catala | 6 +++--- rtdata/languages/Chinese (Simplified) | 6 +++--- rtdata/languages/Czech | 9 +++++++++ rtdata/languages/Deutsch | 13 ++++++------- rtdata/languages/English (UK) | 6 +++--- rtdata/languages/English (US) | 6 +++--- rtdata/languages/Espanol | 9 +++++++++ rtdata/languages/Francais | 9 +++++++++ rtdata/languages/Italiano | 6 +++--- rtdata/languages/Japanese | 9 +++++++++ rtdata/languages/Magyar | 6 +++--- rtdata/languages/Nederlands | 6 +++--- rtdata/languages/Polish | 6 +++--- rtdata/languages/Portugues | 9 +++++++++ rtdata/languages/Portugues (Brasil) | 6 +++--- rtdata/languages/Russian | 6 +++--- rtdata/languages/Serbian (Cyrilic Characters) | 6 +++--- rtdata/languages/Swedish | 6 +++--- rtdata/languages/default | 5 ++--- rtengine/filmnegativeproc.cc | 2 +- rtengine/filmnegativethumb.cc | 3 +-- rtgui/filmnegative.cc | 2 +- 22 files changed, 92 insertions(+), 50 deletions(-) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index fb5104f95..8b2bc5992 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1449,6 +1449,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_GRADIENT;Graduated filter @@ -1854,12 +1855,11 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 34e87dc1e..b01c39d84 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1487,6 +1487,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !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_FILMNEGATIVE;Film Negative !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode !PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter @@ -1801,12 +1802,11 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 5df69dd3a..ce16e057f 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2323,4 +2323,13 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode +!TP_FILMNEGATIVE_BLUE;Blue ratio +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red ratio diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index cd62a8f3b..f2245cfff 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -241,6 +241,8 @@ FILEBROWSER_POPUPRANK2;Bewertung 2 ** FILEBROWSER_POPUPRANK3;Bewertung 3 *** FILEBROWSER_POPUPRANK4;Bewertung 4 **** FILEBROWSER_POPUPRANK5;Bewertung 5 ***** +FILEBROWSER_POPUPREMOVE;Unwiderruflich löschen +FILEBROWSER_POPUPREMOVEINCLPROC;Unwiderruflich löschen\n(einschl. aller Dateien der Stabelverarbeitung) FILEBROWSER_POPUPRENAME;Umbenennen FILEBROWSER_POPUPSELECTALL;Alle auswählen FILEBROWSER_POPUPTRASH;In den Papierkorb verschieben @@ -267,6 +269,7 @@ FILEBROWSER_SHOWDIRHINT;Alle Filter zurücksetzen.\nTaste: d FILEBROWSER_SHOWEDITEDHINT;Nur bearbeitete Bilder anzeigen.\nTaste: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Nur unbearbeitete Bilder anzeigen.\nTaste: 6 FILEBROWSER_SHOWEXIFINFO;Bildinformationen ein-/ausblenden.\n\nIm Multi-Reitermodus:\nTaste: i\nIm Ein-Reitermodus:\nTaste: Alt + i +FILEBROWSER_SHOWNOTTRASHHINT;Nur Bilder außerhalb des Papierkorbs anzeigen. FILEBROWSER_SHOWORIGINALHINT;Zeige nur das Originalbild.\n\nWenn mehrere Bilder mit dem gleichen Dateinamen und unterschiedlichen Dateitypen existieren, ist das Originalbild das Bild, welches in der Liste "Dateitypen anzeigen" unter Einstellungen > Dateiverwaltung als erstes gefunden wird. FILEBROWSER_SHOWRANK1HINT;Nur mit 1 Stern bewertete Bilder anzeigen.\nTaste: 1 FILEBROWSER_SHOWRANK2HINT;Nur mit 2 Sternen bewertete Bilder anzeigen.\nTaste: 2 @@ -2362,16 +2365,12 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -FILEBROWSER_POPUPREMOVE;Unwiderruflich löschen -FILEBROWSER_POPUPREMOVEINCLPROC;Unwiderruflich löschen\n(einschl. aller Dateien der Stabelverarbeitung) -FILEBROWSER_SHOWNOTTRASHHINT;Nur Bilder außerhalb des Papierkorbs anzeigen. - !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative !HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values +!PARTIALPASTE_FILMNEGATIVE;Film Negative !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index a8639c296..503e63860 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -1066,6 +1066,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PARTIALPASTE_EVERYTHING;Everything !PARTIALPASTE_EXIFCHANGES;Exif !PARTIALPASTE_EXPOSURE;Exposure +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection !PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius @@ -1668,12 +1669,11 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 19535166e..52caa23e4 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -985,6 +985,7 @@ !PARTIALPASTE_EVERYTHING;Everything !PARTIALPASTE_EXIFCHANGES;Exif !PARTIALPASTE_EXPOSURE;Exposure +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection !PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius @@ -1639,12 +1640,11 @@ !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 15a4d81f5..c91bd4a6b 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -2321,10 +2321,13 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !MAIN_FRAME_PLACES_DEL;Remove !MAIN_TAB_FAVORITES;Favorites !MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CHUNKSIZES;Tiles per thread !PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic @@ -2342,6 +2345,12 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !PROGRESSBAR_RAWCACORR;Raw CA correction... !QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI +!TP_FILMNEGATIVE_BLUE;Blue ratio +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red ratio !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index d7141f8b2..2c5017a6e 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -2266,7 +2266,10 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !MAIN_FRAME_PLACES_DEL;Remove +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... !PROGRESSBAR_HLREC;Highlight reconstruction... @@ -2275,6 +2278,12 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !PROGRESSBAR_RAWCACORR;Raw CA correction... !QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI +!TP_FILMNEGATIVE_BLUE;Blue ratio +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red ratio !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 63eb2bd66..977277a73 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1654,6 +1654,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_LOCALCONTRAST;Local contrast @@ -1906,12 +1907,11 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 2cec023e5..316133b3a 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -2312,5 +2312,14 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !QUEUE_LOCATION_TITLE;Output Location +!TP_FILMNEGATIVE_BLUE;Blue ratio +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red ratio diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 20b87789d..26f1b1aa0 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1387,6 +1387,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_GRADIENT;Graduated filter @@ -1819,12 +1820,11 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 04a270d49..43afc8efa 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2121,6 +2121,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_FILMNEGATIVE;Film Negative !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode !PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter @@ -2233,12 +2234,11 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !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_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_ICM_WORKING_TRC;Tone response curve: !TP_ICM_WORKING_TRC_CUSTOM;Custom !TP_ICM_WORKING_TRC_GAMMA;Gamma diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index ad3dc62ee..528b6a198 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1735,6 +1735,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_ADVANCEDGROUP;Advanced Settings !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode !PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter @@ -1932,12 +1933,11 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_EXPOSURE_TCMODE_LUMINANCE;Luminance !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !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. diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 7e5713093..e68f93e56 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -2264,7 +2264,10 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !MAIN_FRAME_PLACES_DEL;Remove +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... @@ -2274,6 +2277,12 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !PROGRESSBAR_RAWCACORR;Raw CA correction... !QUEUE_LOCATION_TITLE;Output Location !TP_CROP_PPI;PPI +!TP_FILMNEGATIVE_BLUE;Blue ratio +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_LABEL;Film Negative +!TP_FILMNEGATIVE_PICK;Pick white and black spots +!TP_FILMNEGATIVE_RED;Red ratio !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index eb9bfe56f..c7cc2dfe7 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2261,6 +2261,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative !HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values !MAIN_FRAME_PLACES_DEL;Remove +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PROGRESSBAR_DECODING;Decoding... @@ -2274,12 +2275,11 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !TP_COLORTONING_LABREGION_POWER;Power !TP_CROP_PPI;PPI !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !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. diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 653f41dce..a33458ef6 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1777,6 +1777,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter @@ -1977,12 +1978,11 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !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_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index f26e03350..98d74a5dd 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1638,6 +1638,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMSIMULATION;Film simulation !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_LOCALCONTRAST;Local contrast @@ -1905,12 +1906,11 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points !TP_EXPOS_WHITEPOINT_LABEL;Raw White Points !TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FILMSIMULATION_LABEL;Film Simulation !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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 22c1710b5..17bf0299f 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1974,6 +1974,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PARTIALPASTE_ADVANCEDGROUP;Advanced Settings !PARTIALPASTE_COLORTONING;Color toning !PARTIALPASTE_DEHAZE;Haze removal +!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode @@ -2120,12 +2121,11 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !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_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Green exponent -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) +!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick white and black spots !TP_FILMNEGATIVE_RED;Red ratio -!TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Employ the embedded DCP baseline exposure offset. The setting is only available if the selected DCP has one. diff --git a/rtdata/languages/default b/rtdata/languages/default index ab85f16e6..e8392db6b 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -984,8 +984,8 @@ PARTIALPASTE_EQUALIZER;Wavelet levels PARTIALPASTE_EVERYTHING;Everything PARTIALPASTE_EXIFCHANGES;Exif PARTIALPASTE_EXPOSURE;Exposure -PARTIALPASTE_FILMSIMULATION;Film simulation PARTIALPASTE_FILMNEGATIVE;Film Negative +PARTIALPASTE_FILMSIMULATION;Film simulation PARTIALPASTE_FLATFIELDAUTOSELECT;Flat-field auto-selection PARTIALPASTE_FLATFIELDBLURRADIUS;Flat-field blur radius PARTIALPASTE_FLATFIELDBLURTYPE;Flat-field blur type @@ -1640,11 +1640,10 @@ TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points TP_EXPOS_WHITEPOINT_LABEL;Raw White Points TP_FILMNEGATIVE_BLUE;Blue ratio TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) -TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking 2 neutral reference spots in the image; one white (light gray) and one black (dark gray).\nThe order does not matter. The exponents will be updated after the second spot is picked. +TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. TP_FILMNEGATIVE_LABEL;Film Negative TP_FILMNEGATIVE_PICK;Pick white and black spots TP_FILMNEGATIVE_RED;Red ratio -TP_FILMNEGATIVE_REF_SPOTS;Film negative reference spots TP_FILMSIMULATION_LABEL;Film Simulation 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_FILMSIMULATION_STRENGTH;Strength diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 58d87d103..12f19fba9 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -175,7 +175,7 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ static_cast(-params.greenExp), static_cast(-params.blueRatio * params.greenExp) }; - + MyTime t1, t2, t3,t4, t5; t1.set(); diff --git a/rtengine/filmnegativethumb.cc b/rtengine/filmnegativethumb.cc index 610781872..8c7564b86 100644 --- a/rtengine/filmnegativethumb.cc +++ b/rtengine/filmnegativethumb.cc @@ -41,7 +41,6 @@ void rtengine::Thumbnail::processFilmNegative( const int rwidth, const int rheight, float &rmi, float &gmi, float &bmi ) { - StopWatch stop1("Thumbnail film negative", true); // Channel exponents const float rexp = -params.filmNegative.redRatio * params.filmNegative.greenExp; @@ -128,4 +127,4 @@ void rtengine::Thumbnail::processFilmNegative( bline[j] = CLIP(bmult * pow_F(bline[j], bexp)); } } -} \ No newline at end of file +} diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 598c9463a..2145f46b1 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -189,7 +189,7 @@ void FilmNegative::adjusterChanged(Adjuster* a, double newval) listener->panelChanged( evFilmNegativeExponents, Glib::ustring::compose( - "Ref=%1 ; R=%2 ; B=%3", + "Ref=%1\nR=%2\nB=%3", greenExp->getValue(), redRatio->getValue(), blueRatio->getValue() From bbdd774afb0dcf5c6a8c7fe74eef1eda9ef0097d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 17 Jul 2019 21:29:24 +0200 Subject: [PATCH 196/215] Further speedups for filebrowser --- rtgui/filebrowser.cc | 19 ++++++++++--------- rtgui/thumbbrowserbase.cc | 26 +++++++++++++------------- rtgui/thumbbrowserbase.h | 4 ++-- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index a270e5af8..cc215e70a 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -592,15 +592,16 @@ void FileBrowser::addEntry_ (FileBrowserEntry* entry) { entry->selected = false; entry->drawable = false; - entry->framed = editedFiles.find (entry->filename) != editedFiles.end(); + entry->framed = editedFiles.find(entry->filename) != editedFiles.end(); // add button set to the thumbbrowserentry - entry->addButtonSet (new FileThumbnailButtonSet (entry)); - entry->getThumbButtonSet()->setRank (entry->thumbnail->getRank()); - entry->getThumbButtonSet()->setColorLabel (entry->thumbnail->getColorLabel()); - entry->getThumbButtonSet()->setInTrash (entry->thumbnail->getStage()); - entry->getThumbButtonSet()->setButtonListener (this); - entry->resize (getThumbnailHeight()); + entry->addButtonSet(new FileThumbnailButtonSet(entry)); + entry->getThumbButtonSet()->setRank(entry->thumbnail->getRank()); + entry->getThumbButtonSet()->setColorLabel(entry->thumbnail->getColorLabel()); + entry->getThumbButtonSet()->setInTrash(entry->thumbnail->getStage()); + entry->getThumbButtonSet()->setButtonListener(this); + entry->resize(getThumbnailHeight()); + entry->filtered = !checkFilter(entry); // find place in abc order { @@ -619,9 +620,9 @@ void FileBrowser::addEntry_ (FileBrowserEntry* entry) entry ); - initEntry (entry); + initEntry(entry); } - redraw (); + redraw(false); } FileBrowserEntry* FileBrowser::delEntry (const Glib::ustring& fname) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 334f00e51..1ae0cdf98 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -563,7 +563,7 @@ void ThumbBrowserBase::configScrollBars () } } -void ThumbBrowserBase::arrangeFiles() +void ThumbBrowserBase::arrangeFiles(bool checkfilter) { MYREADERLOCK(l, entryRW); @@ -572,17 +572,17 @@ void ThumbBrowserBase::arrangeFiles() //GThreadLock lock; int rowHeight = 0; - - for (unsigned int i = 0; i < fd.size(); i++) { - // apply filter - fd[i]->filtered = !checkFilter (fd[i]); + for (const auto entry : fd) { + if (checkfilter) { + // apply filter + entry->filtered = !checkFilter(entry); + } // compute size of the items - if (!fd[i]->filtered && fd[i]->getMinimalHeight() > rowHeight) { - rowHeight = fd[i]->getMinimalHeight (); + if (!entry->filtered) { + rowHeight = std::max(entry->getMinimalHeight(), rowHeight); } } - if (arrangement == TB_Horizontal) { numOfCols = 1; @@ -667,9 +667,9 @@ void ThumbBrowserBase::arrangeFiles() } if (ct < fd.size()) { - fd[ct]->setPosition(currx, curry, colWidths[i % numOfCols], rowHeight); + fd[ct]->setPosition(currx, curry, colWidths[i], rowHeight); fd[ct]->drawable = true; - currx += colWidths[i % numOfCols]; + currx += colWidths[i]; } } @@ -970,12 +970,12 @@ bool ThumbBrowserBase::Internal::on_scroll_event (GdkEventScroll* event) } -void ThumbBrowserBase::redraw () +void ThumbBrowserBase::redraw (bool checkfilter) { GThreadLock lock; - arrangeFiles (); - queue_draw (); + arrangeFiles(checkfilter); + queue_draw(); } void ThumbBrowserBase::zoomChanged (bool zoomIn) diff --git a/rtgui/thumbbrowserbase.h b/rtgui/thumbbrowserbase.h index dcda30f92..ae561db43 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -179,7 +179,7 @@ protected: std::set editedFiles; - void arrangeFiles (); + void arrangeFiles (bool checkfilter = true); void zoomChanged (bool zoomIn); public: @@ -201,7 +201,7 @@ public: return fd; } void on_style_updated () override; - void redraw (); // arrange files and draw area + void redraw (bool checkfilter = true); // arrange files and draw area void refreshThumbImages (); // refresh thumbnail sizes, re-generate thumbnail images, arrange and draw void refreshQuickThumbImages (); // refresh thumbnail sizes, re-generate thumbnail images, arrange and draw void refreshEditedState (const std::set& efiles); From 2ca9f7f94d94a808670fb81a13e3945084a023b9 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 17 Jul 2019 22:10:46 +0200 Subject: [PATCH 197/215] Further small speedup for filebrowser --- rtgui/lwbuttonset.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/rtgui/lwbuttonset.cc b/rtgui/lwbuttonset.cc index 6265c1039..1337c0ea5 100644 --- a/rtgui/lwbuttonset.cc +++ b/rtgui/lwbuttonset.cc @@ -18,7 +18,7 @@ */ #include "lwbuttonset.h" -LWButtonSet::LWButtonSet () : aw(0), ah(0), ax(0), ay(0) +LWButtonSet::LWButtonSet () : aw(0), ah(0), ax(-1), ay(-1) { } @@ -42,20 +42,21 @@ void LWButtonSet::getMinimalDimensions (int& w, int& h) w = 0; h = 0; - for (size_t i = 0; i < buttons.size(); i++) { + for (const auto entry : buttons) { int bw, bh; - buttons[i]->getSize (bw, bh); + entry->getSize(bw, bh); w += bw; - - if (bh > h) { - h = bh; - } + h = std::max(bh, h); } } void LWButtonSet::arrangeButtons (int x, int y, int w, int h) { + if (x == ax && y == ay && w == aw && ((h == -1 && ah == 0) || h == ah )) { + return; + } + int mw, mh; getMinimalDimensions (mw, mh); From 5f8799d48e8233ae13386e2c1b8942b8b1fa10c5 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 18 Jul 2019 11:18:45 +0200 Subject: [PATCH 198/215] Store buttonset tooltips in static memory, saves about 700 byte per thumbnail --- rtgui/batchqueuebuttonset.cc | 13 +++-- rtgui/batchqueuebuttonset.h | 4 ++ rtgui/cropwindow.cc | 24 ++++++++-- rtgui/cropwindow.h | 6 +++ rtgui/filethumbnailbuttonset.cc | 84 ++++++++++++++------------------- rtgui/filethumbnailbuttonset.h | 16 ++++--- rtgui/lwbutton.cc | 31 ++++++------ rtgui/lwbutton.h | 18 +++---- 8 files changed, 110 insertions(+), 86 deletions(-) diff --git a/rtgui/batchqueuebuttonset.cc b/rtgui/batchqueuebuttonset.cc index f5be480e8..b42d3c773 100644 --- a/rtgui/batchqueuebuttonset.cc +++ b/rtgui/batchqueuebuttonset.cc @@ -27,6 +27,10 @@ Cairo::RefPtr BatchQueueButtonSet::cancelIcon; Cairo::RefPtr BatchQueueButtonSet::headIcon; Cairo::RefPtr BatchQueueButtonSet::tailIcon; +Glib::ustring BatchQueueButtonSet::moveHeadToolTip; +Glib::ustring BatchQueueButtonSet::moveEndToolTip; +Glib::ustring BatchQueueButtonSet::cancelJobToolTip; + BatchQueueButtonSet::BatchQueueButtonSet (BatchQueueEntry* myEntry) { @@ -34,10 +38,13 @@ BatchQueueButtonSet::BatchQueueButtonSet (BatchQueueEntry* myEntry) cancelIcon = Cairo::RefPtr(new RTSurface("cancel-small.png")); headIcon = Cairo::RefPtr(new RTSurface("goto-start-small.png")); tailIcon = Cairo::RefPtr(new RTSurface("goto-end-small.png")); + moveHeadToolTip = M("FILEBROWSER_POPUPMOVEHEAD"); + moveEndToolTip = M("FILEBROWSER_POPUPMOVEEND"); + cancelJobToolTip = M("FILEBROWSER_POPUPCANCELJOB"); iconsLoaded = true; } - add (new LWButton (headIcon, 8, myEntry, LWButton::Left, LWButton::Center, M("FILEBROWSER_POPUPMOVEHEAD"))); - add (new LWButton (tailIcon, 9, myEntry, LWButton::Left, LWButton::Center, M("FILEBROWSER_POPUPMOVEEND"))); - add (new LWButton (cancelIcon, 10, myEntry, LWButton::Right, LWButton::Center, M("FILEBROWSER_POPUPCANCELJOB"))); + add(new LWButton(headIcon, 8, myEntry, LWButton::Left, LWButton::Center, &moveHeadToolTip)); + add(new LWButton(tailIcon, 9, myEntry, LWButton::Left, LWButton::Center, &moveEndToolTip)); + add(new LWButton(cancelIcon, 10, myEntry, LWButton::Right, LWButton::Center, &cancelJobToolTip)); } diff --git a/rtgui/batchqueuebuttonset.h b/rtgui/batchqueuebuttonset.h index 66dab91a1..e97819719 100644 --- a/rtgui/batchqueuebuttonset.h +++ b/rtgui/batchqueuebuttonset.h @@ -34,6 +34,10 @@ public: static Cairo::RefPtr headIcon; static Cairo::RefPtr tailIcon; + static Glib::ustring moveHeadToolTip; + static Glib::ustring moveEndToolTip; + static Glib::ustring cancelJobToolTip; + explicit BatchQueueButtonSet (BatchQueueEntry* myEntry); }; diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 4b2c1a6cc..b29aa5eeb 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -38,6 +38,13 @@ using namespace rtengine; +bool CropWindow::initialized = false; + +Glib::ustring CropWindow::zoomOuttt; +Glib::ustring CropWindow::zoomIntt; +Glib::ustring CropWindow::zoom100tt; +Glib::ustring CropWindow::closett; + CropWindow::CropWindow (ImageArea* parent, bool isLowUpdatePriority_, bool isDetailWindow) : ObjectMOBuffer(parent), state(SNormal), press_x(0), press_y(0), action_x(0), action_y(0), pickedObject(-1), pickModifierKey(0), rot_deg(0), onResizeArea(false), deleted(false), fitZoomEnabled(true), fitZoom(false), cursor_type(CSArrow), /*isLowUpdatePriority(isLowUpdatePriority_),*/ hoveredPicker(nullptr), cropLabel(Glib::ustring("100%")), @@ -61,11 +68,18 @@ CropWindow::CropWindow (ImageArea* parent, bool isLowUpdatePriority_, bool isDet titleHeight = ih; - bZoomOut = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-minus-small.png")), 0, nullptr, LWButton::Left, LWButton::Center, "Zoom Out"); - bZoomIn = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-plus-small.png")), 1, nullptr, LWButton::Left, LWButton::Center, "Zoom In"); - bZoom100 = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-1to1-small.png")), 2, nullptr, LWButton::Left, LWButton::Center, "Zoom 100/%"); - //bZoomFit = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-fit.png")), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit"); - bClose = new LWButton (Cairo::RefPtr(new RTSurface("cancel-small.png")), 4, nullptr, LWButton::Right, LWButton::Center, "Close"); + if (!initialized) { + zoomOuttt = "Zoom Out"; + zoomIntt = "Zoom In"; + zoom100tt = "Zoom 100/%"; + closett = "Close"; + initialized = true; + } + bZoomOut = new LWButton(Cairo::RefPtr(new RTSurface("magnifier-minus-small.png")), 0, nullptr, LWButton::Left, LWButton::Center, &zoomOuttt); + bZoomIn = new LWButton(Cairo::RefPtr(new RTSurface("magnifier-plus-small.png")), 1, nullptr, LWButton::Left, LWButton::Center, &zoomIntt); + bZoom100 = new LWButton(Cairo::RefPtr(new RTSurface("magnifier-1to1-small.png")), 2, nullptr, LWButton::Left, LWButton::Center, &zoom100tt); + //bZoomFit = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-fit.png")), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit"); + bClose = new LWButton(Cairo::RefPtr(new RTSurface("cancel-small.png")), 4, nullptr, LWButton::Right, LWButton::Center, &closett); buttonSet.add (bZoomOut); buttonSet.add (bZoomIn); diff --git a/rtgui/cropwindow.h b/rtgui/cropwindow.h index 287cbf1ef..6e2097d3b 100644 --- a/rtgui/cropwindow.h +++ b/rtgui/cropwindow.h @@ -47,6 +47,12 @@ public: class ImageArea; class CropWindow : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer { + static bool initialized; + + static Glib::ustring zoomOuttt; + static Glib::ustring zoomIntt; + static Glib::ustring zoom100tt; + static Glib::ustring closett; // state management ImgEditState state; // current state of user (see enum State) diff --git a/rtgui/filethumbnailbuttonset.cc b/rtgui/filethumbnailbuttonset.cc index 455ed8555..4c7d8743d 100644 --- a/rtgui/filethumbnailbuttonset.cc +++ b/rtgui/filethumbnailbuttonset.cc @@ -29,12 +29,14 @@ Cairo::RefPtr FileThumbnailButtonSet::unRankIcon; Cairo::RefPtr FileThumbnailButtonSet::trashIcon; Cairo::RefPtr FileThumbnailButtonSet::unTrashIcon; Cairo::RefPtr FileThumbnailButtonSet::processIcon; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_0; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_1; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_2; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_3; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_4; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_5; +std::array, 6> FileThumbnailButtonSet::colorLabelIcon; + +Glib::ustring FileThumbnailButtonSet::processToolTip; +Glib::ustring FileThumbnailButtonSet::unrankToolTip; +Glib::ustring FileThumbnailButtonSet::trashToolTip; +Glib::ustring FileThumbnailButtonSet::untrashToolTip; +Glib::ustring FileThumbnailButtonSet::colorLabelToolTip; +std::array FileThumbnailButtonSet::rankToolTip; FileThumbnailButtonSet::FileThumbnailButtonSet (FileBrowserEntry* myEntry) { @@ -46,73 +48,57 @@ FileThumbnailButtonSet::FileThumbnailButtonSet (FileBrowserEntry* myEntry) trashIcon = Cairo::RefPtr(new RTSurface("trash-small.png")); unTrashIcon = Cairo::RefPtr(new RTSurface("trash-remove-small.png")); processIcon = Cairo::RefPtr(new RTSurface("gears-small.png")); + colorLabelIcon[0] = Cairo::RefPtr(new RTSurface("circle-empty-gray-small.png")); + colorLabelIcon[1] = Cairo::RefPtr(new RTSurface("circle-red-small.png")); + colorLabelIcon[2] = Cairo::RefPtr(new RTSurface("circle-yellow-small.png")); + colorLabelIcon[3] = Cairo::RefPtr(new RTSurface("circle-green-small.png")); + colorLabelIcon[4] = Cairo::RefPtr(new RTSurface("circle-blue-small.png")); + colorLabelIcon[5] = Cairo::RefPtr(new RTSurface("circle-purple-small.png")); + + processToolTip = M("FILEBROWSER_POPUPPROCESS"); + unrankToolTip = M("FILEBROWSER_UNRANK_TOOLTIP"); + trashToolTip = M("FILEBROWSER_POPUPTRASH"); + untrashToolTip = M("FILEBROWSER_POPUPUNTRASH"); + colorLabelToolTip = M("FILEBROWSER_COLORLABEL_TOOLTIP"); + rankToolTip[0] = M("FILEBROWSER_RANK1_TOOLTIP"); + rankToolTip[1] = M("FILEBROWSER_RANK2_TOOLTIP"); + rankToolTip[2] = M("FILEBROWSER_RANK3_TOOLTIP"); + rankToolTip[3] = M("FILEBROWSER_RANK4_TOOLTIP"); + rankToolTip[4] = M("FILEBROWSER_RANK5_TOOLTIP"); - colorLabelIcon_0 = Cairo::RefPtr(new RTSurface("circle-empty-gray-small.png")); - colorLabelIcon_1 = Cairo::RefPtr(new RTSurface("circle-red-small.png")); - colorLabelIcon_2 = Cairo::RefPtr(new RTSurface("circle-yellow-small.png")); - colorLabelIcon_3 = Cairo::RefPtr(new RTSurface("circle-green-small.png")); - colorLabelIcon_4 = Cairo::RefPtr(new RTSurface("circle-blue-small.png")); - colorLabelIcon_5 = Cairo::RefPtr(new RTSurface("circle-purple-small.png"));; iconsLoaded = true; } - add (new LWButton (processIcon, 6, myEntry, LWButton::Left, LWButton::Center, M("FILEBROWSER_POPUPPROCESS"))); - add (new LWButton (unRankIcon, 0, myEntry, LWButton::Left, LWButton::Center, M("FILEBROWSER_UNRANK_TOOLTIP"))); + add(new LWButton(processIcon, 6, myEntry, LWButton::Left, LWButton::Center, &processToolTip)); + add(new LWButton(unRankIcon, 0, myEntry, LWButton::Left, LWButton::Center, &unrankToolTip)); for (int i = 0; i < 5; i++) { - add (new LWButton (rankIcon, i + 1, myEntry, LWButton::Left)); + add(new LWButton(rankIcon, i + 1, myEntry, LWButton::Left, LWButton::Center, &rankToolTip[i])); } - add (new LWButton (trashIcon, 7, myEntry, LWButton::Right, LWButton::Center, M("FILEBROWSER_POPUPTRASH"))); - - add (new LWButton (colorLabelIcon_0, 8, myEntry, LWButton::Right, LWButton::Center, M("FILEBROWSER_COLORLABEL_TOOLTIP"))); - - buttons[2]->setToolTip (M("FILEBROWSER_RANK1_TOOLTIP")); - buttons[3]->setToolTip (M("FILEBROWSER_RANK2_TOOLTIP")); - buttons[4]->setToolTip (M("FILEBROWSER_RANK3_TOOLTIP")); - buttons[5]->setToolTip (M("FILEBROWSER_RANK4_TOOLTIP")); - buttons[6]->setToolTip (M("FILEBROWSER_RANK5_TOOLTIP")); + add(new LWButton(trashIcon, 7, myEntry, LWButton::Right, LWButton::Center, &trashToolTip)); + add(new LWButton(colorLabelIcon[0], 8, myEntry, LWButton::Right, LWButton::Center, &colorLabelToolTip)); } void FileThumbnailButtonSet::setRank (int stars) { for (int i = 1; i <= 5; i++) { - buttons[i + 1]->setIcon (i <= stars ? rankIcon : gRankIcon); + buttons[i + 1]->setIcon(i <= stars ? rankIcon : gRankIcon); } } void FileThumbnailButtonSet::setColorLabel (int colorLabel) { - if (colorLabel == 0) { - buttons[8]->setIcon (colorLabelIcon_0); //transparent label - } - - if (colorLabel == 1) { - buttons[8]->setIcon (colorLabelIcon_1); - } - - if (colorLabel == 2) { - buttons[8]->setIcon (colorLabelIcon_2); - } - - if (colorLabel == 3) { - buttons[8]->setIcon (colorLabelIcon_3); - } - - if (colorLabel == 4) { - buttons[8]->setIcon (colorLabelIcon_4); - } - - if (colorLabel == 5) { - buttons[8]->setIcon (colorLabelIcon_5); + if (colorLabel >= 0 && colorLabel <= 5) { + buttons[8]->setIcon(colorLabelIcon[colorLabel]); } } void FileThumbnailButtonSet::setInTrash (bool inTrash) { - buttons[7]->setIcon (inTrash ? unTrashIcon : trashIcon); - buttons[7]->setToolTip (inTrash ? M("FILEBROWSER_POPUPUNTRASH") : M("FILEBROWSER_POPUPTRASH")); + buttons[7]->setIcon(inTrash ? unTrashIcon : trashIcon); + buttons[7]->setToolTip(inTrash ? &untrashToolTip : &trashToolTip); } diff --git a/rtgui/filethumbnailbuttonset.h b/rtgui/filethumbnailbuttonset.h index 57811addd..13265b8c0 100644 --- a/rtgui/filethumbnailbuttonset.h +++ b/rtgui/filethumbnailbuttonset.h @@ -19,6 +19,8 @@ #ifndef _FILETHUMBNAILBUTTONSET_ #define _FILETHUMBNAILBUTTONSET_ +#include + #include "lwbuttonset.h" #include #include "filebrowserentry.h" @@ -38,12 +40,14 @@ public: static Cairo::RefPtr unTrashIcon; static Cairo::RefPtr processIcon; - static Cairo::RefPtr colorLabelIcon_0; - static Cairo::RefPtr colorLabelIcon_1; - static Cairo::RefPtr colorLabelIcon_2; - static Cairo::RefPtr colorLabelIcon_3; - static Cairo::RefPtr colorLabelIcon_4; - static Cairo::RefPtr colorLabelIcon_5; + static std::array, 6> colorLabelIcon; + + static Glib::ustring processToolTip; + static Glib::ustring unrankToolTip; + static Glib::ustring trashToolTip; + static Glib::ustring untrashToolTip; + static Glib::ustring colorLabelToolTip; + static std::array rankToolTip; explicit FileThumbnailButtonSet (FileBrowserEntry* myEntry); void setRank (int stars); diff --git a/rtgui/lwbutton.cc b/rtgui/lwbutton.cc index 48843a02e..02041ea0c 100644 --- a/rtgui/lwbutton.cc +++ b/rtgui/lwbutton.cc @@ -19,7 +19,7 @@ #include "lwbutton.h" #include "guiutils.h" -LWButton::LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha, Alignment va, Glib::ustring tooltip) +LWButton::LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha, Alignment va, Glib::ustring* tooltip) : xpos(0), ypos(0), halign(ha), valign(va), icon(i), bgr(0.0), bgg(0.0), bgb(0.0), fgr(0.0), fgg(0.0), fgb(0.0), state(Normal), listener(nullptr), actionCode(aCode), actionData(aData), toolTip(tooltip) { @@ -31,7 +31,7 @@ LWButton::LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignmen } } -void LWButton::getSize (int& minw, int& minh) +void LWButton::getSize (int& minw, int& minh) const { minw = w; @@ -45,7 +45,7 @@ void LWButton::setPosition (int x, int y) ypos = y; } -void LWButton::getPosition (int& x, int& y) +void LWButton::getPosition (int& x, int& y) const { x = xpos; @@ -65,7 +65,7 @@ void LWButton::setIcon (Cairo::RefPtr i) } } -Cairo::RefPtr LWButton::getIcon () +Cairo::RefPtr LWButton::getIcon () const { return icon; @@ -82,7 +82,7 @@ void LWButton::setColors (const Gdk::RGBA& bg, const Gdk::RGBA& fg) fgb = fg.get_blue (); } -bool LWButton::inside (int x, int y) +bool LWButton::inside (int x, int y) const { return x > xpos && x < xpos + w && y > ypos && y < ypos + h; @@ -210,24 +210,27 @@ void LWButton::redraw (Cairo::RefPtr context) } } -void LWButton::getAlignment (Alignment& ha, Alignment& va) +void LWButton::getAlignment (Alignment& ha, Alignment& va) const { ha = halign; va = valign; } -Glib::ustring LWButton::getToolTip (int x, int y) +Glib::ustring LWButton::getToolTip (int x, int y) const { - - if (inside (x, y)) { - return toolTip; - } else { - return ""; - } + if (inside(x, y)) { + if (toolTip) { + return *toolTip; + } else { + return ""; + } + } else { + return ""; + } } -void LWButton::setToolTip (const Glib::ustring& tooltip) +void LWButton::setToolTip (Glib::ustring* tooltip) { toolTip = tooltip; diff --git a/rtgui/lwbutton.h b/rtgui/lwbutton.h index 4ab34f265..aec875d55 100644 --- a/rtgui/lwbutton.h +++ b/rtgui/lwbutton.h @@ -49,26 +49,26 @@ private: LWButtonListener* listener; int actionCode; void* actionData; - Glib::ustring toolTip; + Glib::ustring* toolTip; public: - LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha = Left, Alignment va = Center, Glib::ustring tooltip = ""); + LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha = Left, Alignment va = Center, Glib::ustring* tooltip = nullptr); - void getSize (int& minw, int& minh); - void getAlignment (Alignment& ha, Alignment& va); + void getSize (int& minw, int& minh) const; + void getAlignment (Alignment& ha, Alignment& va) const; void setPosition (int x, int y); - void getPosition (int& x, int& y); - bool inside (int x, int y); + void getPosition (int& x, int& y) const; + bool inside (int x, int y) const; void setIcon (Cairo::RefPtr i); - Cairo::RefPtr getIcon (); + Cairo::RefPtr getIcon () const; void setColors (const Gdk::RGBA& bg, const Gdk::RGBA& fg); - void setToolTip (const Glib::ustring& tooltip); + void setToolTip (Glib::ustring* tooltip); bool motionNotify (int x, int y); bool pressNotify (int x, int y); bool releaseNotify (int x, int y); - Glib::ustring getToolTip (int x, int y); + Glib::ustring getToolTip (int x, int y) const; void setButtonListener (LWButtonListener* bl) { From b4cb60567369a27c33201ab8e5e397103c7e39bd Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Thu, 18 Jul 2019 17:58:18 +0200 Subject: [PATCH 199/215] Update Deutsch locale --- rtdata/languages/Deutsch | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index f2245cfff..63595e328 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -82,6 +82,7 @@ #81 15.04.2019 Erweiterung (TooWaBoo) RT 5.6 #82 25.05.2019 Erweiterung (TooWaBoo) RT 5.6 #83 06.07.2019 Erweiterung (TooWaBoo) RT 5.6 +#84 18.07.2019 Erweiterung (TooWaBoo) RT 5.6 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -2365,12 +2366,12 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values -!PARTIALPASTE_FILMNEGATIVE;Film Negative -!TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. -!TP_FILMNEGATIVE_LABEL;Film Negative -!TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red ratio +HISTORY_MSG_FILMNEGATIVE_ENABLED;(Filmnegativ) +HISTORY_MSG_FILMNEGATIVE_VALUES;(Filmnegativ) - Werte +PARTIALPASTE_FILMNEGATIVE;Filmnegativ +TP_FILMNEGATIVE_BLUE;Blauverhältnis +TP_FILMNEGATIVE_GREEN;Bezugsexponent (Kontrast) +TP_FILMNEGATIVE_GUESS_TOOLTIP;Berechnet die Exponenten durch Auswahl zweier neutraler\nReferenzpunkte im Bild. Weiß (Hellgrau) und Schwarz (Dunkelgrau).\nDie Reihenfolge spielt keine Rolle. Die Exponenten werden aktualisiert,\nnachdem der zweite Punkt ausgewählt wurde. +TP_FILMNEGATIVE_LABEL;Filmnegativ +TP_FILMNEGATIVE_PICK;Weißen und schwarzen Bereich auswählen +TP_FILMNEGATIVE_RED;Rotverhältnis From 14025dd15fbce9a01b2826913b54dc2b9d2d921a Mon Sep 17 00:00:00 2001 From: TooWaBoo Date: Thu, 18 Jul 2019 18:07:09 +0200 Subject: [PATCH 200/215] Fix History view of values --- rtgui/filmnegative.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 2145f46b1..3464f7e46 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -269,7 +269,7 @@ bool FilmNegative::button1Pressed(int modifierKey) listener->panelChanged( evFilmNegativeExponents, Glib::ustring::compose( - "Ref=%1 ; R=%2 ; B=%3", + "Ref=%1\nR=%2\nB=%3", greenExp->getValue(), redRatio->getValue(), blueRatio->getValue() From 4d2807172c2097761d029474ec9fb19cf46adacf Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 19 Jul 2019 00:50:12 +0200 Subject: [PATCH 201/215] filecatalog/filebrowser: further speedup --- rtgui/lwbuttonset.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/lwbuttonset.cc b/rtgui/lwbuttonset.cc index 1337c0ea5..99d3dce7c 100644 --- a/rtgui/lwbuttonset.cc +++ b/rtgui/lwbuttonset.cc @@ -53,7 +53,7 @@ void LWButtonSet::getMinimalDimensions (int& w, int& h) void LWButtonSet::arrangeButtons (int x, int y, int w, int h) { - if (x == ax && y == ay && w == aw && ((h == -1 && ah == 0) || h == ah )) { + if (x == ax && y == ay && w == aw && (h == -1 || h == ah )) { return; } From d9c93e77ae9a29aedaf4ccd145eae97059e22d0a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 19 Jul 2019 23:45:02 +0200 Subject: [PATCH 202/215] filecatalog/filebrowser: further optimizations --- rtgui/batchqueueentry.cc | 6 +-- rtgui/batchqueueentry.h | 6 +-- rtgui/filebrowserentry.cc | 47 ++++++++---------- rtgui/filebrowserentry.h | 6 +-- rtgui/filecatalog.cc | 11 ++--- rtgui/inspector.h | 2 +- rtgui/rtimage.cc | 3 +- rtgui/thumbbrowserentrybase.cc | 34 +++++-------- rtgui/thumbbrowserentrybase.h | 90 ++++++++++++++++------------------ 9 files changed, 89 insertions(+), 116 deletions(-) diff --git a/rtgui/batchqueueentry.cc b/rtgui/batchqueueentry.cc index d52fe4305..a5dfb6dde 100644 --- a/rtgui/batchqueueentry.cc +++ b/rtgui/batchqueueentry.cc @@ -148,7 +148,7 @@ void BatchQueueEntry::removeButtonSet () buttonSet = nullptr; } -std::vector > BatchQueueEntry::getIconsOnImageArea () +std::vector> BatchQueueEntry::getIconsOnImageArea () { std::vector > ret; @@ -160,7 +160,7 @@ std::vector > BatchQueueEntry::getIconsOnImageArea () return ret; } -void BatchQueueEntry::getIconSize (int& w, int& h) +void BatchQueueEntry::getIconSize (int& w, int& h) const { w = savedAsIcon->get_width (); @@ -168,7 +168,7 @@ void BatchQueueEntry::getIconSize (int& w, int& h) } -Glib::ustring BatchQueueEntry::getToolTip (int x, int y) +Glib::ustring BatchQueueEntry::getToolTip (int x, int y) const { // get the parent class' tooltip first Glib::ustring tooltip = ThumbBrowserEntryBase::getToolTip(x, y); diff --git a/rtgui/batchqueueentry.h b/rtgui/batchqueueentry.h index f3e8c1336..d13dfe827 100644 --- a/rtgui/batchqueueentry.h +++ b/rtgui/batchqueueentry.h @@ -68,9 +68,9 @@ public: void removeButtonSet (); - std::vector > getIconsOnImageArea () override; - void getIconSize (int& w, int& h) override; - Glib::ustring getToolTip (int x, int y) override; + std::vector> getIconsOnImageArea () override; + void getIconSize (int& w, int& h) const override; + Glib::ustring getToolTip (int x, int y) const override; // bqentryupdatelistener interface void updateImage (guint8* img, int w, int h, int origw, int origh, guint8* newOPreview) override; diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index 0fa5694de..4b1764824 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -119,39 +119,37 @@ void FileBrowserEntry::calcThumbnailSize () } } -std::vector > FileBrowserEntry::getIconsOnImageArea () +std::vector> FileBrowserEntry::getIconsOnImageArea () { - - std::vector > ret; - if (!thumbnail) { - return ret; + return {}; } + std::vector> ret; + if (thumbnail->hasProcParams() && editedIcon) { - ret.push_back (editedIcon); + ret.push_back(editedIcon); } if (thumbnail->isRecentlySaved() && recentlySavedIcon) { - ret.push_back (recentlySavedIcon); + ret.push_back(recentlySavedIcon); } if (thumbnail->isEnqueued () && enqueuedIcon) { - ret.push_back (enqueuedIcon); + ret.push_back(enqueuedIcon); } return ret; } -std::vector > FileBrowserEntry::getSpecificityIconsOnImageArea () +std::vector> FileBrowserEntry::getSpecificityIconsOnImageArea () { - - std::vector > ret; - if (!thumbnail) { - return ret; + return {}; } + std::vector> ret; + if (thumbnail->isHDR() && hdr) { ret.push_back (hdr); } @@ -188,7 +186,7 @@ void FileBrowserEntry::customBackBufferUpdate (Cairo::RefPtr c) } } -void FileBrowserEntry::getIconSize (int& w, int& h) +void FileBrowserEntry::getIconSize (int& w, int& h) const { w = editedIcon->get_width (); @@ -286,34 +284,29 @@ void FileBrowserEntry::_updateImage(rtengine::IImage8* img, double s, const rten bool FileBrowserEntry::motionNotify (int x, int y) { - bool b = ThumbBrowserEntryBase::motionNotify (x, y); + const bool b = ThumbBrowserEntryBase::motionNotify(x, y); - int ix = x - startx - ofsX; - int iy = y - starty - ofsY; + const int ix = x - startx - ofsX; + const int iy = y - starty - ofsY; Inspector* inspector = parent->getInspector(); if (inspector && inspector->isActive() && !parent->isInTabMode()) { - rtengine::Coord2D coord(-1., -1.); - getPosInImgSpace(x, y, coord); + const rtengine::Coord2D coord(getPosInImgSpace(x, y)); if (coord.x != -1.) { if (!wasInside) { inspector->switchImage(filename); + wasInside = true; } - - wasInside = true; inspector->mouseMove(coord, 0); } else { - if (wasInside) { - wasInside = false; - rtengine::Coord2D coord(-1, -1); - } + wasInside = false; } } - if (inside (x, y)) { - updateCursor (ix, iy); + if (inside(x, y)) { + updateCursor(ix, iy); } if (state == SRotateSelecting) { diff --git a/rtgui/filebrowserentry.h b/rtgui/filebrowserentry.h index 3a3d32977..5122de55f 100644 --- a/rtgui/filebrowserentry.h +++ b/rtgui/filebrowserentry.h @@ -93,9 +93,9 @@ public: void refreshQuickThumbnailImage () override; void calcThumbnailSize () override; - std::vector > getIconsOnImageArea () override; - std::vector > getSpecificityIconsOnImageArea () override; - void getIconSize (int& w, int& h) override; + std::vector> getIconsOnImageArea () override; + std::vector> getSpecificityIconsOnImageArea () override; + void getIconSize (int& w, int& h) const override; // thumbnaillistener interface void procParamsChanged (Thumbnail* thm, int whoChangedIt) override; diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 57555fd76..dbe540cb4 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -37,9 +37,6 @@ #include "batchqueue.h" #include "placesbrowser.h" -#define BENCHMARK -#include "../rtengine/StopWatch.h" - using namespace std; #define CHECKTIME 2000 @@ -568,7 +565,7 @@ void FileCatalog::closeDir () std::vector FileCatalog::getFileList() { - BENCHFUN + std::vector names; const std::set& extensions = options.parsedExtensionsSet; @@ -626,9 +623,9 @@ std::vector FileCatalog::getFileList() void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring& openfile) { -BENCHFUN + try { - Glib::RefPtr dir = Gio::File::create_for_path (dirname); + const Glib::RefPtr dir = Gio::File::create_for_path(dirname); if (!dir) { return; @@ -1681,7 +1678,7 @@ void FileCatalog::filterChanged () void FileCatalog::reparseDirectory () { -BENCHFUN + if (selectedDirectory.empty()) { return; } diff --git a/rtgui/inspector.h b/rtgui/inspector.h index d5ed327b8..86ad9114e 100644 --- a/rtgui/inspector.h +++ b/rtgui/inspector.h @@ -87,7 +87,7 @@ public: /** @brief Get the on/off state */ - bool isActive() + bool isActive() const { return active; }; diff --git a/rtgui/rtimage.cc b/rtgui/rtimage.cc index 6a289ead6..cd687f252 100644 --- a/rtgui/rtimage.cc +++ b/rtgui/rtimage.cc @@ -197,8 +197,7 @@ void RTImage::updateImages() Glib::RefPtr RTImage::createPixbufFromFile (const Glib::ustring& fileName) { Cairo::RefPtr imgSurf = createImgSurfFromFile(fileName); - Glib::RefPtr pixbuf = Gdk::Pixbuf::create(imgSurf, 0, 0, imgSurf->get_width(), imgSurf->get_height()); - return pixbuf; + return Gdk::Pixbuf::create(imgSurf, 0, 0, imgSurf->get_width(), imgSurf->get_height()); } Cairo::RefPtr RTImage::createImgSurfFromFile (const Glib::ustring& fileName) diff --git a/rtgui/thumbbrowserentrybase.cc b/rtgui/thumbbrowserentrybase.cc index ed34c65c7..2960ccf70 100644 --- a/rtgui/thumbbrowserentrybase.cc +++ b/rtgui/thumbbrowserentrybase.cc @@ -157,9 +157,6 @@ ThumbBrowserEntryBase::ThumbBrowserEntryBase (const Glib::ustring& fname) : collate_name(getPaddedName(dispname).casefold_collate_key()), thumbnail(nullptr), filename(fname), - shortname(dispname), - exifline(""), - datetimeline(""), selected(false), drawable(false), filtered(false), @@ -439,7 +436,6 @@ void ThumbBrowserEntryBase::getTextSizes (int& infow, int& infoh) Gtk::Widget* w = parent->getDrawingArea (); // calculate dimensions of the text based fields - dispname = shortname; Glib::RefPtr context = w->get_pango_context () ; context->set_font_description (w->get_style_context()->get_font()); @@ -449,7 +445,7 @@ void ThumbBrowserEntryBase::getTextSizes (int& infow, int& infoh) Pango::FontDescription fontd = context->get_font_description (); fontd.set_weight (Pango::WEIGHT_BOLD); context->set_font_description (fontd); - Glib::RefPtr fn = w->create_pango_layout(shortname); + Glib::RefPtr fn = w->create_pango_layout(dispname); fn->get_pixel_size (fnlabw, fnlabh); // calculate cummulated height of all info fields @@ -672,16 +668,15 @@ void ThumbBrowserEntryBase::setOffset (int x, int y) } } -bool ThumbBrowserEntryBase::inside (int x, int y) +bool ThumbBrowserEntryBase::inside (int x, int y) const { return x > ofsX + startx && x < ofsX + startx + exp_width && y > ofsY + starty && y < ofsY + starty + exp_height; } -void ThumbBrowserEntryBase::getPosInImgSpace (int x, int y, rtengine::Coord2D &coord) +rtengine::Coord2D ThumbBrowserEntryBase::getPosInImgSpace (int x, int y) const { - - coord.x = coord.y = -1.; + rtengine::Coord2D coord(-1., -1.); if (preview) { x -= ofsX + startx; @@ -692,15 +687,16 @@ void ThumbBrowserEntryBase::getPosInImgSpace (int x, int y, rtengine::Coord2D &c coord.y = double(y - prey) / double(preh); } } + return coord; } -bool ThumbBrowserEntryBase::insideWindow (int x, int y, int w, int h) +bool ThumbBrowserEntryBase::insideWindow (int x, int y, int w, int h) const { return !(ofsX + startx > x + w || ofsX + startx + exp_width < x || ofsY + starty > y + h || ofsY + starty + exp_height < y); } -std::vector > ThumbBrowserEntryBase::getIconsOnImageArea() +std::vector> ThumbBrowserEntryBase::getIconsOnImageArea() { return std::vector >(); } @@ -710,12 +706,6 @@ std::vector > ThumbBrowserEntryBase::getSpecificityIco return std::vector >(); } -void ThumbBrowserEntryBase::getIconSize(int& w, int& h) -{ - w = 0; - h = 0; -} - bool ThumbBrowserEntryBase::motionNotify (int x, int y) { @@ -734,12 +724,12 @@ bool ThumbBrowserEntryBase::releaseNotify (int button, int type, int bstate, int return buttonSet ? buttonSet->releaseNotify (x, y) : false; } -Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) +Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) const { - Glib::ustring tooltip = ""; + Glib::ustring tooltip; if (buttonSet) { - tooltip = buttonSet->getToolTip (x, y); + tooltip = buttonSet->getToolTip(x, y); } // Always show the filename in the tooltip since the filename in the thumbnail could be truncated. @@ -748,11 +738,11 @@ Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) tooltip = dispname; if (withFilename < WFNAME_FULL) { - if (options.fbShowDateTime && datetimeline != "") { + if (options.fbShowDateTime && !datetimeline.empty()) { tooltip += Glib::ustring("\n") + datetimeline; } - if (options.fbShowBasicExif && exifline != "") { + if (options.fbShowBasicExif && !exifline.empty()) { tooltip += Glib::ustring("\n") + exifline; } } diff --git a/rtgui/thumbbrowserentrybase.h b/rtgui/thumbbrowserentrybase.h index 8237b7c6b..12e64c60d 100644 --- a/rtgui/thumbbrowserentrybase.h +++ b/rtgui/thumbbrowserentrybase.h @@ -16,8 +16,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _THUMBNAILBROWSERENTRYBASE_ -#define _THUMBNAILBROWSERENTRYBASE_ +#pragma once #include @@ -82,8 +81,8 @@ protected: Glib::RefPtr backBuffer; bool bbSelected, bbFramed; guint8* bbPreview; - std::vector > bbIcons; - std::vector > bbSpecificityIcons; + std::vector> bbIcons; + std::vector> bbSpecificityIcons; CursorShape cursor_type; void drawFrame (Cairo::RefPtr cr, const Gdk::RGBA& bg, const Gdk::RGBA& fg); @@ -101,7 +100,6 @@ public: // thumbnail preview properties: Glib::ustring filename; - Glib::ustring shortname; Glib::ustring exifline; Glib::ustring datetimeline; @@ -117,61 +115,61 @@ public: bool updatepriority; eWithFilename withFilename; - explicit ThumbBrowserEntryBase (const Glib::ustring& fname); - virtual ~ThumbBrowserEntryBase (); + explicit ThumbBrowserEntryBase (const Glib::ustring& fname); + virtual ~ThumbBrowserEntryBase (); void setParent (ThumbBrowserBase* l) { parent = l; } - void updateBackBuffer (); - void resize (int h); - virtual void draw (Cairo::RefPtr cc); + void updateBackBuffer (); + void resize (int h); + virtual void draw (Cairo::RefPtr cc); - void addButtonSet (LWButtonSet* bs); - int getMinimalHeight () + void addButtonSet (LWButtonSet* bs); + int getMinimalHeight () const { return height; } - int getMinimalWidth () + int getMinimalWidth () const { return width; } - int getEffectiveWidth () const + int getEffectiveWidth () const { return exp_width; } - int getEffectiveHeight () const + int getEffectiveHeight () const { return exp_height; } - int getPreviewHeight () const + int getPreviewHeight () const { return preh; } - int getStartX () const + int getStartX () const { return startx; } - int getStartY () const + int getStartY () const { return starty; } - int getX () const + int getX () const { return ofsX + startx; } - int getY () const + int getY () const { return ofsY + starty; } - bool inside (int x, int y); - void getPosInImgSpace (int x, int y, rtengine::Coord2D &coord); - bool insideWindow (int x, int y, int w, int h); - void setPosition (int x, int y, int w, int h); + bool inside (int x, int y) const; + rtengine::Coord2D getPosInImgSpace (int x, int y) const; + bool insideWindow (int x, int y, int w, int h) const; + void setPosition (int x, int y, int w, int h); void setOffset (int x, int y); bool operator <(const ThumbBrowserEntryBase& other) const @@ -179,33 +177,29 @@ public: return collate_name < other.collate_name; } - ThumbBrowserEntryBase* getOriginal () const; - void setOriginal (ThumbBrowserEntryBase* original); - - virtual void refreshThumbnailImage () {} + virtual void refreshThumbnailImage () = 0; virtual void refreshQuickThumbnailImage () {} - virtual void calcThumbnailSize () {} + virtual void calcThumbnailSize () = 0; virtual void drawProgressBar (Glib::RefPtr win, const Gdk::RGBA& foregr, const Gdk::RGBA& backgr, int x, int w, int y, int h) {} - virtual std::vector > getIconsOnImageArea (); - virtual std::vector > getSpecificityIconsOnImageArea (); - virtual void getIconSize (int& w, int& h); + virtual std::vector> getIconsOnImageArea (); + virtual std::vector> getSpecificityIconsOnImageArea (); + virtual void getIconSize (int& w, int& h) const = 0; + + virtual bool motionNotify (int x, int y); + virtual bool pressNotify (int button, int type, int bstate, int x, int y); + virtual bool releaseNotify (int button, int type, int bstate, int x, int y); + virtual Glib::ustring getToolTip (int x, int y) const; + + inline ThumbBrowserEntryBase* getOriginal() const + { + return original; + } + + inline void setOriginal(ThumbBrowserEntryBase* original) + { + this->original = original; + } - virtual bool motionNotify (int x, int y); - virtual bool pressNotify (int button, int type, int bstate, int x, int y); - virtual bool releaseNotify (int button, int type, int bstate, int x, int y); - virtual Glib::ustring getToolTip (int x, int y); }; - -inline ThumbBrowserEntryBase* ThumbBrowserEntryBase::getOriginal() const -{ - return original; -} - -inline void ThumbBrowserEntryBase::setOriginal(ThumbBrowserEntryBase* original) -{ - this->original = original; -} - -#endif From 0493e674741924bc10b5ecc1ff33966af2dc94e3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 20 Jul 2019 11:44:38 +0200 Subject: [PATCH 203/215] nuke empty adjusterAutoToggled functions --- rtgui/adjuster.h | 2 +- rtgui/bayerpreprocess.cc | 4 ---- rtgui/bayerpreprocess.h | 1 - rtgui/bayerrawexposure.cc | 4 ---- rtgui/bayerrawexposure.h | 1 - rtgui/blackwhite.cc | 4 ---- rtgui/blackwhite.h | 1 - rtgui/cacorrection.cc | 4 ---- rtgui/cacorrection.h | 1 - rtgui/chmixer.cc | 4 ---- rtgui/chmixer.h | 1 - rtgui/colortoning.cc | 4 ---- rtgui/colortoning.h | 1 - rtgui/defringe.cc | 4 ---- rtgui/defringe.h | 1 - rtgui/dehaze.h | 1 - rtgui/diagonalcurveeditorsubgroup.cc | 4 ---- rtgui/diagonalcurveeditorsubgroup.h | 1 - rtgui/dirpyrdenoise.cc | 4 ---- rtgui/dirpyrdenoise.h | 1 - rtgui/dirpyrequalizer.cc | 4 ---- rtgui/dirpyrequalizer.h | 1 - rtgui/distortion.cc | 4 ---- rtgui/distortion.h | 1 - rtgui/epd.cc | 4 ---- rtgui/epd.h | 1 - rtgui/fattaltonemap.cc | 4 ---- rtgui/fattaltonemap.h | 1 - rtgui/filmnegative.cc | 4 ---- rtgui/filmnegative.h | 1 - rtgui/filmsimulation.cc | 4 ---- rtgui/filmsimulation.h | 1 - rtgui/gradient.cc | 4 ---- rtgui/gradient.h | 1 - rtgui/iccprofilecreator.cc | 4 ---- rtgui/iccprofilecreator.h | 1 - rtgui/icmpanel.cc | 4 ---- rtgui/icmpanel.h | 1 - rtgui/impulsedenoise.cc | 4 ---- rtgui/impulsedenoise.h | 1 - rtgui/labcurve.cc | 4 ---- rtgui/labcurve.h | 1 - rtgui/localcontrast.cc | 4 ---- rtgui/localcontrast.h | 1 - rtgui/pcvignette.cc | 4 ---- rtgui/pcvignette.h | 1 - rtgui/perspective.cc | 4 ---- rtgui/perspective.h | 1 - rtgui/preprocess.cc | 4 ---- rtgui/preprocess.h | 1 - rtgui/prsharpening.cc | 4 ---- rtgui/prsharpening.h | 1 - rtgui/rawcacorrection.cc | 4 ---- rtgui/rawcacorrection.h | 1 - rtgui/rawexposure.cc | 4 ---- rtgui/rawexposure.h | 1 - rtgui/resize.cc | 4 ---- rtgui/resize.h | 1 - rtgui/retinex.cc | 4 ---- rtgui/retinex.h | 1 - rtgui/rotate.cc | 4 ---- rtgui/rotate.h | 1 - rtgui/saveformatpanel.cc | 4 ---- rtgui/saveformatpanel.h | 1 - rtgui/shadowshighlights.cc | 4 ---- rtgui/shadowshighlights.h | 1 - rtgui/sharpenedge.cc | 4 ---- rtgui/sharpenedge.h | 1 - rtgui/sharpening.cc | 4 ---- rtgui/sharpening.h | 1 - rtgui/sharpenmicro.cc | 4 ---- rtgui/sharpenmicro.h | 1 - rtgui/softlight.cc | 6 ------ rtgui/softlight.h | 1 - rtgui/tonecurve.cc | 4 ---- rtgui/tonecurve.h | 1 - rtgui/vibrance.cc | 4 ---- rtgui/vibrance.h | 1 - rtgui/vignetting.cc | 4 ---- rtgui/vignetting.h | 1 - rtgui/wavelet.cc | 4 ---- rtgui/wavelet.h | 1 - rtgui/whitebalance.cc | 4 ---- rtgui/whitebalance.h | 1 - rtgui/xtransrawexposure.cc | 4 ---- rtgui/xtransrawexposure.h | 1 - 86 files changed, 1 insertion(+), 214 deletions(-) diff --git a/rtgui/adjuster.h b/rtgui/adjuster.h index f57129bf1..f3f256940 100644 --- a/rtgui/adjuster.h +++ b/rtgui/adjuster.h @@ -30,7 +30,7 @@ class AdjusterListener public: virtual ~AdjusterListener() = default; virtual void adjusterChanged (Adjuster* a, double newval) = 0; - virtual void adjusterAutoToggled (Adjuster* a, bool newval) = 0; + virtual void adjusterAutoToggled (Adjuster* a, bool newval) {} }; typedef double(*double2double_fun)(double val); diff --git a/rtgui/bayerpreprocess.cc b/rtgui/bayerpreprocess.cc index 35f36e83e..0ba60d045 100644 --- a/rtgui/bayerpreprocess.cc +++ b/rtgui/bayerpreprocess.cc @@ -143,10 +143,6 @@ void BayerPreProcess::adjusterChanged(Adjuster* a, double newval) } } -void BayerPreProcess::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void BayerPreProcess::setBatchMode(bool batchMode) { ToolPanel::setBatchMode(batchMode); diff --git a/rtgui/bayerpreprocess.h b/rtgui/bayerpreprocess.h index e06a46d31..f50ac90bb 100644 --- a/rtgui/bayerpreprocess.h +++ b/rtgui/bayerpreprocess.h @@ -47,7 +47,6 @@ public: void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void hotDeadPixelChanged(); void setAdjusterBehavior (bool linedenoiseadd, bool greenequiladd); diff --git a/rtgui/bayerrawexposure.cc b/rtgui/bayerrawexposure.cc index f9027c09f..12158c774 100644 --- a/rtgui/bayerrawexposure.cc +++ b/rtgui/bayerrawexposure.cc @@ -152,10 +152,6 @@ void BayerRAWExposure::adjusterChanged(Adjuster* a, double newval) } } -void BayerRAWExposure::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void BayerRAWExposure::checkBoxToggled (CheckBox* c, CheckValue newval) { if (c == PextwoGreen) { diff --git a/rtgui/bayerrawexposure.h b/rtgui/bayerrawexposure.h index 08d415838..e955afc12 100644 --- a/rtgui/bayerrawexposure.h +++ b/rtgui/bayerrawexposure.h @@ -43,7 +43,6 @@ public: void setBatchMode (bool batchMode) override; void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void checkBoxToggled (CheckBox* c, CheckValue newval) override; void setAdjusterBehavior (bool pexblackadd); void trimValues (rtengine::procparams::ProcParams* pp) override; diff --git a/rtgui/blackwhite.cc b/rtgui/blackwhite.cc index 3d5deb8f2..2b97188e2 100644 --- a/rtgui/blackwhite.cc +++ b/rtgui/blackwhite.cc @@ -1150,10 +1150,6 @@ void BlackWhite::adjusterChanged(Adjuster* a, double newval) } } -void BlackWhite::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void BlackWhite::updateRGBLabel () { if (!batchMode) { diff --git a/rtgui/blackwhite.h b/rtgui/blackwhite.h index dd45a7729..242926924 100644 --- a/rtgui/blackwhite.h +++ b/rtgui/blackwhite.h @@ -55,7 +55,6 @@ public: void updateRGBLabel (); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool bwadd, bool bwgadd); void trimValues (rtengine::procparams::ProcParams* pp) override; void enabledcc_toggled (); diff --git a/rtgui/cacorrection.cc b/rtgui/cacorrection.cc index c91eec145..5b66dd6c3 100644 --- a/rtgui/cacorrection.cc +++ b/rtgui/cacorrection.cc @@ -101,10 +101,6 @@ void CACorrection::adjusterChanged (Adjuster* a, double newval) } } -void CACorrection::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void CACorrection::setAdjusterBehavior (bool badd) { diff --git a/rtgui/cacorrection.h b/rtgui/cacorrection.h index 198037060..4fa85038c 100644 --- a/rtgui/cacorrection.h +++ b/rtgui/cacorrection.h @@ -40,7 +40,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool badd); void trimValues (rtengine::procparams::ProcParams* pp) override; }; diff --git a/rtgui/chmixer.cc b/rtgui/chmixer.cc index 4a3411e8b..82e885f08 100644 --- a/rtgui/chmixer.cc +++ b/rtgui/chmixer.cc @@ -182,10 +182,6 @@ void ChMixer::adjusterChanged(Adjuster* a, double newval) } } -void ChMixer::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ChMixer::enabledChanged() { if (listener) { diff --git a/rtgui/chmixer.h b/rtgui/chmixer.h index 7e372cbc2..a0fff9b26 100644 --- a/rtgui/chmixer.h +++ b/rtgui/chmixer.h @@ -42,7 +42,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool rgbadd); void trimValues (rtengine::procparams::ProcParams* pp) override; void enabledChanged() override; diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index 7ca9a7305..e164739e5 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -1372,10 +1372,6 @@ void ColorToning::adjusterChanged(Adjuster* a, double newval) } } -void ColorToning::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ColorToning::setBatchMode (bool batchMode) { ToolPanel::setBatchMode (batchMode); diff --git a/rtgui/colortoning.h b/rtgui/colortoning.h index abb44d09c..faba1e383 100644 --- a/rtgui/colortoning.h +++ b/rtgui/colortoning.h @@ -33,7 +33,6 @@ public: void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void trimValues (rtengine::procparams::ProcParams* pp) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool splitAdd, bool satThresholdAdd, bool satOpacityAdd, bool strprotectAdd, bool balanceAdd); void neutral_pressed (); //void neutralCurves_pressed (); diff --git a/rtgui/defringe.cc b/rtgui/defringe.cc index 7d29b8c8f..03bf648dd 100644 --- a/rtgui/defringe.cc +++ b/rtgui/defringe.cc @@ -164,10 +164,6 @@ void Defringe::adjusterChanged(Adjuster* a, double newval) } } -void Defringe::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Defringe::enabledChanged () { diff --git a/rtgui/defringe.h b/rtgui/defringe.h index 1aa6cc303..c02fd8d6a 100644 --- a/rtgui/defringe.h +++ b/rtgui/defringe.h @@ -50,7 +50,6 @@ public: void curveChanged () override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; diff --git a/rtgui/dehaze.h b/rtgui/dehaze.h index 322e0bf0c..66720a9fd 100644 --- a/rtgui/dehaze.h +++ b/rtgui/dehaze.h @@ -48,6 +48,5 @@ public: void enabledChanged() override; void showDepthMapChanged(); void setAdjusterBehavior(bool strengthAdd); - void adjusterAutoToggled(Adjuster* a, bool newval) override {} }; diff --git a/rtgui/diagonalcurveeditorsubgroup.cc b/rtgui/diagonalcurveeditorsubgroup.cc index 86ff26bb4..9e2406309 100644 --- a/rtgui/diagonalcurveeditorsubgroup.cc +++ b/rtgui/diagonalcurveeditorsubgroup.cc @@ -1246,10 +1246,6 @@ void DiagonalCurveEditorSubGroup::adjusterChanged(Adjuster* a, double newval) parent->curveChanged (); } -void DiagonalCurveEditorSubGroup::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - /* * Listener called when the mouse is over a parametric curve's slider */ diff --git a/rtgui/diagonalcurveeditorsubgroup.h b/rtgui/diagonalcurveeditorsubgroup.h index 39cc86973..54f424dc6 100644 --- a/rtgui/diagonalcurveeditorsubgroup.h +++ b/rtgui/diagonalcurveeditorsubgroup.h @@ -105,7 +105,6 @@ protected: const std::vector getCurveFromGUI (int type) override; void shcChanged () override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; bool adjusterEntered (GdkEventCrossing* ev, int ac); bool adjusterLeft (GdkEventCrossing* ev, int ac); void setSubGroupRangeLabels(Glib::ustring r1, Glib::ustring r2, Glib::ustring r3, Glib::ustring r4); diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc index c60c06243..c3528d5dd 100644 --- a/rtgui/dirpyrdenoise.cc +++ b/rtgui/dirpyrdenoise.cc @@ -988,10 +988,6 @@ void DirPyrDenoise::adjusterChanged(Adjuster* a, double newval) } } -void DirPyrDenoise::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void DirPyrDenoise::enabledChanged () { diff --git a/rtgui/dirpyrdenoise.h b/rtgui/dirpyrdenoise.h index de7dee800..7bdaff853 100644 --- a/rtgui/dirpyrdenoise.h +++ b/rtgui/dirpyrdenoise.h @@ -51,7 +51,6 @@ public: void autoOpenCurve () override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void medianChanged (); void chromaChanged (double autchroma, double autred, double autblue) override; diff --git a/rtgui/dirpyrequalizer.cc b/rtgui/dirpyrequalizer.cc index 5f557c0f1..be6f9c97b 100644 --- a/rtgui/dirpyrequalizer.cc +++ b/rtgui/dirpyrequalizer.cc @@ -373,10 +373,6 @@ void DirPyrEqualizer::adjusterChanged(Adjuster* a, double newval) } } -void DirPyrEqualizer::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void DirPyrEqualizer::enabledChanged () { diff --git a/rtgui/dirpyrequalizer.h b/rtgui/dirpyrequalizer.h index d7903116b..4eb110428 100644 --- a/rtgui/dirpyrequalizer.h +++ b/rtgui/dirpyrequalizer.h @@ -65,7 +65,6 @@ public: void trimValues (rtengine::procparams::ProcParams* pp) override; void cbdlMethodChanged(); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged() override; void gamutlabToggled (); void lumaneutralPressed (); diff --git a/rtgui/distortion.cc b/rtgui/distortion.cc index 0ac067ba8..3620dbc21 100644 --- a/rtgui/distortion.cc +++ b/rtgui/distortion.cc @@ -95,10 +95,6 @@ void Distortion::adjusterChanged(Adjuster* a, double newval) } } -void Distortion::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Distortion::setBatchMode (bool batchMode) { diff --git a/rtgui/distortion.h b/rtgui/distortion.h index ce1e81046..a279913cb 100644 --- a/rtgui/distortion.h +++ b/rtgui/distortion.h @@ -43,7 +43,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool vadd); void trimValues (rtengine::procparams::ProcParams* pp) override; void idPressed (); diff --git a/rtgui/epd.cc b/rtgui/epd.cc index 4b7cca10a..ab6341866 100644 --- a/rtgui/epd.cc +++ b/rtgui/epd.cc @@ -159,10 +159,6 @@ void EdgePreservingDecompositionUI::adjusterChanged(Adjuster* a, double newval) } } -void EdgePreservingDecompositionUI::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void EdgePreservingDecompositionUI::enabledChanged () { if (listener) { diff --git a/rtgui/epd.h b/rtgui/epd.h index f2073a976..6b44d9147 100644 --- a/rtgui/epd.h +++ b/rtgui/epd.h @@ -42,7 +42,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void setAdjusterBehavior (bool stAdd, bool gAdd, bool esAdd, bool scAdd, bool rAdd); }; diff --git a/rtgui/fattaltonemap.cc b/rtgui/fattaltonemap.cc index 85d835cc7..032df6f40 100644 --- a/rtgui/fattaltonemap.cc +++ b/rtgui/fattaltonemap.cc @@ -119,10 +119,6 @@ void FattalToneMapping::adjusterChanged(Adjuster* a, double newval) } } -void FattalToneMapping::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void FattalToneMapping::enabledChanged () { if (listener) { diff --git a/rtgui/fattaltonemap.h b/rtgui/fattaltonemap.h index 76e850c4e..e6eafb605 100644 --- a/rtgui/fattaltonemap.h +++ b/rtgui/fattaltonemap.h @@ -42,7 +42,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void setAdjusterBehavior(bool amountAdd, bool thresholdAdd, bool anchorAdd); }; diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 3464f7e46..6e93b2364 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -200,10 +200,6 @@ void FilmNegative::adjusterChanged(Adjuster* a, double newval) } } -void FilmNegative::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void FilmNegative::enabledChanged() { if (listener) { diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index 7de1bd56a..e967f535c 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -55,7 +55,6 @@ public: void setBatchMode(bool batchMode) override; void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged() override; void setFilmNegProvider(FilmNegProvider* provider); diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index 734b46c34..6b40bb586 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -115,10 +115,6 @@ void FilmSimulation::adjusterChanged(Adjuster* a, double newval) } } -void FilmSimulation::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void FilmSimulation::setBatchMode( bool batchMode ) { ToolPanel::setBatchMode( batchMode ); diff --git a/rtgui/filmsimulation.h b/rtgui/filmsimulation.h index c55662757..b5c9ffa6b 100644 --- a/rtgui/filmsimulation.h +++ b/rtgui/filmsimulation.h @@ -56,7 +56,6 @@ public: FilmSimulation(); void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void setBatchMode(bool batchMode) override; void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; diff --git a/rtgui/gradient.cc b/rtgui/gradient.cc index 4961597bb..d7b2cb7c2 100644 --- a/rtgui/gradient.cc +++ b/rtgui/gradient.cc @@ -269,10 +269,6 @@ void Gradient::adjusterChanged(Adjuster* a, double newval) } } -void Gradient::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Gradient::enabledChanged () { diff --git a/rtgui/gradient.h b/rtgui/gradient.h index 8aa4a5339..05a267a0d 100644 --- a/rtgui/gradient.h +++ b/rtgui/gradient.h @@ -43,7 +43,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void setAdjusterBehavior (bool degreeadd, bool featheradd, bool strengthadd, bool centeradd); void trimValues (rtengine::procparams::ProcParams* pp) override; diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index e5172c7e7..0ab1ac61d 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -389,10 +389,6 @@ void ICCProfileCreator::adjusterChanged(Adjuster* a, double newval) } } -void ICCProfileCreator::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ICCProfileCreator::primariesChanged() { if (primaries->get_active_row_number() > 0) { diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h index 23e5b86c8..5265d5ab2 100644 --- a/rtgui/iccprofilecreator.h +++ b/rtgui/iccprofilecreator.h @@ -92,7 +92,6 @@ private: void illuminantChanged(); void trcPresetsChanged(); void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; static std::vector getGamma(); Glib::ustring getPrimariesPresetName(const Glib::ustring &preset); void getPrimaries(const Glib::ustring &preset, double *p, ColorTemp &temp); diff --git a/rtgui/icmpanel.cc b/rtgui/icmpanel.cc index ba8bf9cef..ca025ec75 100644 --- a/rtgui/icmpanel.cc +++ b/rtgui/icmpanel.cc @@ -701,10 +701,6 @@ void ICMPanel::adjusterChanged(Adjuster* a, double newval) } } -void ICMPanel::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ICMPanel::wpChanged() { if (listener) { diff --git a/rtgui/icmpanel.h b/rtgui/icmpanel.h index b1106b6e1..a03bd6fa7 100644 --- a/rtgui/icmpanel.h +++ b/rtgui/icmpanel.h @@ -126,7 +126,6 @@ public: void setBatchMode(bool batchMode) override; void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void wpChanged(); void wtrcinChanged(); diff --git a/rtgui/impulsedenoise.cc b/rtgui/impulsedenoise.cc index 9203ce8a7..d4ecebfb5 100644 --- a/rtgui/impulsedenoise.cc +++ b/rtgui/impulsedenoise.cc @@ -88,10 +88,6 @@ void ImpulseDenoise::adjusterChanged(Adjuster* a, double newval) } } -void ImpulseDenoise::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ImpulseDenoise::enabledChanged () { if (listener) { diff --git a/rtgui/impulsedenoise.h b/rtgui/impulsedenoise.h index 79484dc65..ae6aaa6a8 100644 --- a/rtgui/impulsedenoise.h +++ b/rtgui/impulsedenoise.h @@ -40,7 +40,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void setAdjusterBehavior (bool threshadd); diff --git a/rtgui/labcurve.cc b/rtgui/labcurve.cc index f458fa717..4b25c1e4f 100644 --- a/rtgui/labcurve.cc +++ b/rtgui/labcurve.cc @@ -567,10 +567,6 @@ void LCurve::adjusterChanged(Adjuster* a, double newval) } } -void LCurve::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void LCurve::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) { diff --git a/rtgui/labcurve.h b/rtgui/labcurve.h index b727cca84..db75a686a 100644 --- a/rtgui/labcurve.h +++ b/rtgui/labcurve.h @@ -77,7 +77,6 @@ public: void curveChanged (CurveEditor* ce) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void avoidcolorshift_toggled (); void lcredsk_toggled(); diff --git a/rtgui/localcontrast.cc b/rtgui/localcontrast.cc index 93b67657d..cc4922a65 100644 --- a/rtgui/localcontrast.cc +++ b/rtgui/localcontrast.cc @@ -134,10 +134,6 @@ void LocalContrast::adjusterChanged(Adjuster* a, double newval) } } -void LocalContrast::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void LocalContrast::enabledChanged () { if (listener) { diff --git a/rtgui/localcontrast.h b/rtgui/localcontrast.h index efe7a18f0..529c95c89 100644 --- a/rtgui/localcontrast.h +++ b/rtgui/localcontrast.h @@ -47,7 +47,6 @@ public: void setBatchMode(bool batchMode) override; void adjusterChanged(Adjuster *a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged() override; void setAdjusterBehavior(bool radiusAdd, bool amountAdd, bool darknessAdd, bool lightnessAdd); }; diff --git a/rtgui/pcvignette.cc b/rtgui/pcvignette.cc index 303ae5cfb..9c141d618 100644 --- a/rtgui/pcvignette.cc +++ b/rtgui/pcvignette.cc @@ -93,10 +93,6 @@ void PCVignette::adjusterChanged(Adjuster* a, double newval) } } -void PCVignette::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void PCVignette::enabledChanged () { diff --git a/rtgui/pcvignette.h b/rtgui/pcvignette.h index 98d42a477..ce41ab75f 100644 --- a/rtgui/pcvignette.h +++ b/rtgui/pcvignette.h @@ -26,7 +26,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void setAdjusterBehavior (bool strengthadd, bool featheradd, bool roundnessadd); void trimValues (rtengine::procparams::ProcParams* pp) override; diff --git a/rtgui/perspective.cc b/rtgui/perspective.cc index db2f32248..752b2289b 100644 --- a/rtgui/perspective.cc +++ b/rtgui/perspective.cc @@ -98,10 +98,6 @@ void PerspCorrection::adjusterChanged(Adjuster* a, double newval) } } -void PerspCorrection::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void PerspCorrection::setAdjusterBehavior (bool badd) { diff --git a/rtgui/perspective.h b/rtgui/perspective.h index 8038120fa..77fedc84a 100644 --- a/rtgui/perspective.h +++ b/rtgui/perspective.h @@ -40,7 +40,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool badd); void trimValues (rtengine::procparams::ProcParams* pp) override; }; diff --git a/rtgui/preprocess.cc b/rtgui/preprocess.cc index 92cd06bc1..07e378832 100644 --- a/rtgui/preprocess.cc +++ b/rtgui/preprocess.cc @@ -101,10 +101,6 @@ void PreProcess::adjusterChanged(Adjuster* a, double newval) } } -void PreProcess::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void PreProcess::hotPixelChanged () { if (batchMode) { diff --git a/rtgui/preprocess.h b/rtgui/preprocess.h index 58cc2c2de..ced119d7d 100644 --- a/rtgui/preprocess.h +++ b/rtgui/preprocess.h @@ -48,7 +48,6 @@ public: void hotPixelChanged(); void deadPixelChanged(); void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; //void adjusterChanged (Adjuster* a, double newval); diff --git a/rtgui/prsharpening.cc b/rtgui/prsharpening.cc index c7c2ddf9f..b12da977d 100644 --- a/rtgui/prsharpening.cc +++ b/rtgui/prsharpening.cc @@ -350,10 +350,6 @@ void PrSharpening::adjusterChanged (Adjuster* a, double newval) } } -void PrSharpening::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void PrSharpening::enabledChanged () { if (listener) { diff --git a/rtgui/prsharpening.h b/rtgui/prsharpening.h index 0bceca856..d8a27c188 100644 --- a/rtgui/prsharpening.h +++ b/rtgui/prsharpening.h @@ -65,7 +65,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void edgesonly_toggled (); void halocontrol_toggled (); diff --git a/rtgui/rawcacorrection.cc b/rtgui/rawcacorrection.cc index a6b624562..003d8b629 100644 --- a/rtgui/rawcacorrection.cc +++ b/rtgui/rawcacorrection.cc @@ -144,10 +144,6 @@ void RAWCACorr::adjusterChanged(Adjuster* a, double newval) } } -void RAWCACorr::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void RAWCACorr::checkBoxToggled (CheckBox* c, CheckValue newval) { if (c == caAutocorrect) { diff --git a/rtgui/rawcacorrection.h b/rtgui/rawcacorrection.h index 13db1d1e3..ab80bd3ea 100644 --- a/rtgui/rawcacorrection.h +++ b/rtgui/rawcacorrection.h @@ -50,7 +50,6 @@ public: void trimValues (rtengine::procparams::ProcParams* pp) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void checkBoxToggled (CheckBox* c, CheckValue newval) override; }; diff --git a/rtgui/rawexposure.cc b/rtgui/rawexposure.cc index 599c8fd12..f8885eb76 100644 --- a/rtgui/rawexposure.cc +++ b/rtgui/rawexposure.cc @@ -76,10 +76,6 @@ void RAWExposure::adjusterChanged(Adjuster* a, double newval) } } -void RAWExposure::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void RAWExposure::setBatchMode(bool batchMode) { ToolPanel::setBatchMode (batchMode); diff --git a/rtgui/rawexposure.h b/rtgui/rawexposure.h index f34776d19..95a15ade2 100644 --- a/rtgui/rawexposure.h +++ b/rtgui/rawexposure.h @@ -41,7 +41,6 @@ public: void setBatchMode (bool batchMode) override; void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool pexposadd); void trimValues (rtengine::procparams::ProcParams* pp) override; }; diff --git a/rtgui/resize.cc b/rtgui/resize.cc index 106715a17..3789d4693 100644 --- a/rtgui/resize.cc +++ b/rtgui/resize.cc @@ -273,10 +273,6 @@ void Resize::adjusterChanged(Adjuster* a, double newval) } } -void Resize::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - int Resize::getComputedWidth() { diff --git a/rtgui/resize.h b/rtgui/resize.h index 3c599808d..3bcfe3f84 100644 --- a/rtgui/resize.h +++ b/rtgui/resize.h @@ -46,7 +46,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void entryWChanged (); void entryHChanged (); void appliesToChanged (); diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index 544ace535..e074d7e9c 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -1362,10 +1362,6 @@ void Retinex::adjusterChanged(Adjuster* a, double newval) } } -void Retinex::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Retinex::autoOpenCurve () { cdshape->openIfNonlinear(); diff --git a/rtgui/retinex.h b/rtgui/retinex.h index 8703ec607..1be511cb3 100644 --- a/rtgui/retinex.h +++ b/rtgui/retinex.h @@ -104,7 +104,6 @@ public: void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void trimValues (rtengine::procparams::ProcParams* pp) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void autoOpenCurve () override; void medianmapChanged (); void minmaxChanged (double cdma, double cdmin, double mini, double maxi, double Tmean, double Tsigma, double Tmin, double Tmax) override; diff --git a/rtgui/rotate.cc b/rtgui/rotate.cc index 9f5d665d5..822443cf8 100644 --- a/rtgui/rotate.cc +++ b/rtgui/rotate.cc @@ -96,10 +96,6 @@ void Rotate::adjusterChanged(Adjuster* a, double newval) } } -void Rotate::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Rotate::straighten (double deg) { diff --git a/rtgui/rotate.h b/rtgui/rotate.h index c23807361..c3d18fecb 100644 --- a/rtgui/rotate.h +++ b/rtgui/rotate.h @@ -44,7 +44,6 @@ public: void straighten (double deg); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool rotadd); void trimValues (rtengine::procparams::ProcParams* pp) override; void selectStraightPressed (); diff --git a/rtgui/saveformatpanel.cc b/rtgui/saveformatpanel.cc index de2240fc6..483565446 100644 --- a/rtgui/saveformatpanel.cc +++ b/rtgui/saveformatpanel.cc @@ -218,7 +218,3 @@ void SaveFormatPanel::adjusterChanged(Adjuster* a, double newval) listener->formatChanged(sf_templates[act].second.format); } } - -void SaveFormatPanel::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} diff --git a/rtgui/saveformatpanel.h b/rtgui/saveformatpanel.h index 48fa97e13..e25210b97 100644 --- a/rtgui/saveformatpanel.h +++ b/rtgui/saveformatpanel.h @@ -60,7 +60,6 @@ public: void formatChanged (); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; }; #endif diff --git a/rtgui/shadowshighlights.cc b/rtgui/shadowshighlights.cc index 6fdf6f2f3..f58790051 100644 --- a/rtgui/shadowshighlights.cc +++ b/rtgui/shadowshighlights.cc @@ -172,10 +172,6 @@ void ShadowsHighlights::adjusterChanged (Adjuster* a, double newval) } } -void ShadowsHighlights::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ShadowsHighlights::enabledChanged () { diff --git a/rtgui/shadowshighlights.h b/rtgui/shadowshighlights.h index e04e2000a..5e56e0766 100644 --- a/rtgui/shadowshighlights.h +++ b/rtgui/shadowshighlights.h @@ -46,7 +46,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void setAdjusterBehavior (bool hadd, bool sadd); diff --git a/rtgui/sharpenedge.cc b/rtgui/sharpenedge.cc index 968cb75ad..9d6466543 100644 --- a/rtgui/sharpenedge.cc +++ b/rtgui/sharpenedge.cc @@ -147,10 +147,6 @@ void SharpenEdge::adjusterChanged(Adjuster* a, double newval) } } -void SharpenEdge::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void SharpenEdge::setBatchMode(bool batchMode) { passes->showEditedCB (); diff --git a/rtgui/sharpenedge.h b/rtgui/sharpenedge.h index 8bf5647ed..a08c63b8a 100644 --- a/rtgui/sharpenedge.h +++ b/rtgui/sharpenedge.h @@ -51,7 +51,6 @@ public: void trimValues (rtengine::procparams::ProcParams* pp) override; void setAdjusterBehavior (bool amountadd, bool passadd); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void enabledChanged () override; void chanthree_toggled (); diff --git a/rtgui/sharpening.cc b/rtgui/sharpening.cc index 8a7b8e591..e698872dd 100644 --- a/rtgui/sharpening.cc +++ b/rtgui/sharpening.cc @@ -356,10 +356,6 @@ void Sharpening::adjusterChanged(Adjuster* a, double newval) } } -void Sharpening::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Sharpening::adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) { } diff --git a/rtgui/sharpening.h b/rtgui/sharpening.h index 75ea083c9..b9f093aae 100644 --- a/rtgui/sharpening.h +++ b/rtgui/sharpening.h @@ -68,7 +68,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged () override; void edgesonly_toggled (); void halocontrol_toggled (); diff --git a/rtgui/sharpenmicro.cc b/rtgui/sharpenmicro.cc index 0b4142677..1d765652b 100644 --- a/rtgui/sharpenmicro.cc +++ b/rtgui/sharpenmicro.cc @@ -156,10 +156,6 @@ void SharpenMicro::adjusterChanged(Adjuster* a, double newval) } } -void SharpenMicro::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void SharpenMicro::setBatchMode(bool batchMode) { amount->showEditedCB (); diff --git a/rtgui/sharpenmicro.h b/rtgui/sharpenmicro.h index 6dfccea85..8cb95b806 100644 --- a/rtgui/sharpenmicro.h +++ b/rtgui/sharpenmicro.h @@ -54,7 +54,6 @@ public: void trimValues (rtengine::procparams::ProcParams* pp) override; void setAdjusterBehavior (bool amountadd, bool contrastadd, bool uniformityadd); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void enabledChanged () override; void matrix_toggled (); diff --git a/rtgui/softlight.cc b/rtgui/softlight.cc index 0054f8f6d..90c3890cd 100644 --- a/rtgui/softlight.cc +++ b/rtgui/softlight.cc @@ -89,12 +89,6 @@ void SoftLight::adjusterChanged(Adjuster* a, double newval) } } - -void SoftLight::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - - void SoftLight::enabledChanged () { if (listener) { diff --git a/rtgui/softlight.h b/rtgui/softlight.h index a036592e4..f6ed8370d 100644 --- a/rtgui/softlight.h +++ b/rtgui/softlight.h @@ -41,7 +41,6 @@ public: void setBatchMode(bool batchMode) override; void adjusterChanged(Adjuster *a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void enabledChanged() override; void setAdjusterBehavior(bool strengthAdd); }; diff --git a/rtgui/tonecurve.cc b/rtgui/tonecurve.cc index 91b268e9c..e0e475b4e 100644 --- a/rtgui/tonecurve.cc +++ b/rtgui/tonecurve.cc @@ -645,10 +645,6 @@ void ToneCurve::adjusterChanged(Adjuster* a, double newval) } } -void ToneCurve::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void ToneCurve::neutral_pressed () { // This method deselects auto levels and HL reconstruction auto diff --git a/rtgui/tonecurve.h b/rtgui/tonecurve.h index 29b484137..512dd4d5f 100644 --- a/rtgui/tonecurve.h +++ b/rtgui/tonecurve.h @@ -104,7 +104,6 @@ public: float blendPipetteValues (CurveEditor *ce, float chan1, float chan2, float chan3) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void neutral_pressed (); void autolevels_toggled (); void clip_changed (); diff --git a/rtgui/vibrance.cc b/rtgui/vibrance.cc index 0069576e0..82944bb81 100644 --- a/rtgui/vibrance.cc +++ b/rtgui/vibrance.cc @@ -290,10 +290,6 @@ void Vibrance::adjusterChanged(Adjuster* a, double newval) } } -void Vibrance::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Vibrance::adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) { } diff --git a/rtgui/vibrance.h b/rtgui/vibrance.h index ed3e10059..81d811f14 100644 --- a/rtgui/vibrance.h +++ b/rtgui/vibrance.h @@ -61,7 +61,6 @@ public: void trimValues (rtengine::procparams::ProcParams* pp) override; void setAdjusterBehavior (bool pastelsadd, bool saturatedadd); void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void curveChanged () override; void autoOpenCurve () override; diff --git a/rtgui/vignetting.cc b/rtgui/vignetting.cc index 799a4cff7..87a835625 100644 --- a/rtgui/vignetting.cc +++ b/rtgui/vignetting.cc @@ -129,10 +129,6 @@ void Vignetting::adjusterChanged(Adjuster* a, double newval) } } -void Vignetting::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Vignetting::setAdjusterBehavior (bool amountadd, bool radiusadd, bool strengthadd, bool centeradd) { diff --git a/rtgui/vignetting.h b/rtgui/vignetting.h index 5432b6178..edd818431 100644 --- a/rtgui/vignetting.h +++ b/rtgui/vignetting.h @@ -43,7 +43,6 @@ public: void setBatchMode (bool batchMode) override; void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void setAdjusterBehavior (bool amountadd, bool radiusadd, bool strengthadd, bool centeradd); void trimValues (rtengine::procparams::ProcParams* pp) override; }; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 942608414..bc59de087 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -2513,10 +2513,6 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) } } -void Wavelet::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void Wavelet::enabledUpdateUI () { if (!batchMode) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 90a72f623..4df743fa7 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -46,7 +46,6 @@ public: bool wavComputed_ (); void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; void autoOpenCurve () override; void curveChanged (CurveEditor* ce) override; void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 3c3382bc3..761dc5e04 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -434,10 +434,6 @@ void WhiteBalance::adjusterChanged(Adjuster* a, double newval) } } -void WhiteBalance::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void WhiteBalance::optChanged () { Gtk::TreeModel::Row row = getActiveMethod(); diff --git a/rtgui/whitebalance.h b/rtgui/whitebalance.h index 2db46b7af..52c4b7f8c 100644 --- a/rtgui/whitebalance.h +++ b/rtgui/whitebalance.h @@ -107,7 +107,6 @@ public: void spotPressed (); void spotSizeChanged (); void adjusterChanged(Adjuster* a, double newval) override; - void adjusterAutoToggled(Adjuster* a, bool newval) override; int getSize (); void setWBProvider (WBProvider* p) { diff --git a/rtgui/xtransrawexposure.cc b/rtgui/xtransrawexposure.cc index 93f6ee202..c4f7d7059 100644 --- a/rtgui/xtransrawexposure.cc +++ b/rtgui/xtransrawexposure.cc @@ -110,10 +110,6 @@ void XTransRAWExposure::adjusterChanged(Adjuster* a, double newval) } } -void XTransRAWExposure::adjusterAutoToggled(Adjuster* a, bool newval) -{ -} - void XTransRAWExposure::setBatchMode(bool batchMode) { ToolPanel::setBatchMode (batchMode); diff --git a/rtgui/xtransrawexposure.h b/rtgui/xtransrawexposure.h index 75bdbd0e2..54b3de767 100644 --- a/rtgui/xtransrawexposure.h +++ b/rtgui/xtransrawexposure.h @@ -43,7 +43,6 @@ public: void setBatchMode (bool batchMode) override; void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void adjusterChanged (Adjuster* a, double newval) override; - void adjusterAutoToggled (Adjuster* a, bool newval) override; void setAdjusterBehavior (bool pexblackadd); void trimValues (rtengine::procparams::ProcParams* pp) override; }; From 2dee88428fe5b002c6c8304883aaa6a57f384086 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 21 Jul 2019 13:18:31 +0200 Subject: [PATCH 204/215] Japanese localization updated by Yz2house, closes #5384 --- rtdata/languages/Deutsch | 22 +++++++++------------ rtdata/languages/Japanese | 40 ++++++++++++++++++--------------------- 2 files changed, 27 insertions(+), 35 deletions(-) diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 63595e328..7967786dd 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -829,6 +829,8 @@ HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;(Bildschleier entfernen)\nMaske anzeigen HISTORY_MSG_DEHAZE_STRENGTH;(Bildschleier entfernen)\nIntensität HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;(Sensor—Matrix)\nFarbinterpolation\nAuto-Kontrastschwelle HISTORY_MSG_DUALDEMOSAIC_CONTRAST;(Sensor-Matrix)\nFarbinterpolation\nKontrastschwelle +HISTORY_MSG_FILMNEGATIVE_ENABLED;(Filmnegativ) +HISTORY_MSG_FILMNEGATIVE_VALUES;(Filmnegativ) - Werte HISTORY_MSG_HISTMATCHING;(Belichtung)\nAuto-Tonwertkurve HISTORY_MSG_ICM_OUTPUT_PRIMARIES;(Farbmanagement)\nAusgabeprofil\nVorlagen HISTORY_MSG_ICM_OUTPUT_TEMP;(Farbmanagement)\nAusgabeprofil\nIccV4-Illuminant D @@ -1065,6 +1067,7 @@ PARTIALPASTE_EQUALIZER;Wavelet PARTIALPASTE_EVERYTHING;Alle Parameter aktivieren / deaktivieren PARTIALPASTE_EXIFCHANGES;Änderungen an Exif-Daten PARTIALPASTE_EXPOSURE;Belichtung +PARTIALPASTE_FILMNEGATIVE;Filmnegativ PARTIALPASTE_FILMSIMULATION;Filmsimulation PARTIALPASTE_FLATFIELDAUTOSELECT;Weißbild: Automatische Auswahl PARTIALPASTE_FLATFIELDBLURRADIUS;Weißbild: Unschärferadius @@ -1718,6 +1721,12 @@ TP_EXPOSURE_TCMODE_STANDARD;Standard TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Gewichteter Standard TP_EXPOS_BLACKPOINT_LABEL;Schwarzpunkt TP_EXPOS_WHITEPOINT_LABEL;Weißpunkt +TP_FILMNEGATIVE_BLUE;Blauverhältnis +TP_FILMNEGATIVE_GREEN;Bezugsexponent (Kontrast) +TP_FILMNEGATIVE_GUESS_TOOLTIP;Berechnet die Exponenten durch Auswahl zweier neutraler\nReferenzpunkte im Bild. Weiß (Hellgrau) und Schwarz (Dunkelgrau).\nDie Reihenfolge spielt keine Rolle. Die Exponenten werden aktualisiert,\nnachdem der zweite Punkt ausgewählt wurde. +TP_FILMNEGATIVE_LABEL;Filmnegativ +TP_FILMNEGATIVE_PICK;Weißen und schwarzen Bereich auswählen +TP_FILMNEGATIVE_RED;Rotverhältnis TP_FILMSIMULATION_LABEL;Filmsimulation TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee sucht nach Hald-CLUT-Bildern, die für die Filmsimulation benötigt werden, in einem Ordner, der viel Zeit benötigt.\nGehen Sie zu\n< Einstellungen > Bildbearbeitung > Filmsimulation >\nund prüfen Sie welcher Order benutzt wird. Wählen Sie den Ordner aus, der nur die Hald-CLUT-Bilder beinhaltet, oder einen leeren Ordner, wenn Sie die Filsimulation nicht verwenden möchten.\n\nWeitere Informationen über die Filmsimulation finden Sie auf RawPedia.\n\nMöchten Sie die Suche beenden? TP_FILMSIMULATION_STRENGTH;Intensität @@ -2362,16 +2371,3 @@ 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_FILMNEGATIVE_ENABLED;(Filmnegativ) -HISTORY_MSG_FILMNEGATIVE_VALUES;(Filmnegativ) - Werte -PARTIALPASTE_FILMNEGATIVE;Filmnegativ -TP_FILMNEGATIVE_BLUE;Blauverhältnis -TP_FILMNEGATIVE_GREEN;Bezugsexponent (Kontrast) -TP_FILMNEGATIVE_GUESS_TOOLTIP;Berechnet die Exponenten durch Auswahl zweier neutraler\nReferenzpunkte im Bild. Weiß (Hellgrau) und Schwarz (Dunkelgrau).\nDie Reihenfolge spielt keine Rolle. Die Exponenten werden aktualisiert,\nnachdem der zweite Punkt ausgewählt wurde. -TP_FILMNEGATIVE_LABEL;Filmnegativ -TP_FILMNEGATIVE_PICK;Weißen und schwarzen Bereich auswählen -TP_FILMNEGATIVE_RED;Rotverhältnis diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 316133b3a..96ffea174 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -152,8 +152,12 @@ FILEBROWSER_COLORLABEL_TOOLTIP;カラー・ラベル\n\nドロップダウン・ FILEBROWSER_COPYPROFILE;プロファイルをコピー FILEBROWSER_CURRENT_NAME;現在の名前: FILEBROWSER_DARKFRAME;ダークフレーム +FILEBROWSER_DELETEDIALOG_ALL;ゴミ箱の中にある%1枚のファイル全てを完全に削除しますか? FILEBROWSER_DELETEDIALOG_HEADER;ファイル削除確認 +FILEBROWSER_DELETEDIALOG_SELECTED;選択した%1枚のファイルを完全に削除しますか? +FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;キュー処理に保持されているファイルを含め、選択した%1枚のファイルを完全に削除しますか? FILEBROWSER_EMPTYTRASH;ゴミ箱を空にする +FILEBROWSER_EMPTYTRASHHINT;ゴミ箱の中のファイルを全て完全に 削除します FILEBROWSER_EXTPROGMENU;..で開く FILEBROWSER_FLATFIELD;フラットフィールド FILEBROWSER_MOVETODARKFDIR;ダークフレーム・ディレクトリに移動 @@ -187,6 +191,8 @@ FILEBROWSER_POPUPRANK2;ランク 2 ** FILEBROWSER_POPUPRANK3;ランク 3 *** FILEBROWSER_POPUPRANK4;ランク 4 **** FILEBROWSER_POPUPRANK5;ランク 5 ***** +FILEBROWSER_POPUPREMOVE;完全に削除 +FILEBROWSER_POPUPREMOVEINCLPROC;キュー処理に保持されているファイルを含めて完全に削除 FILEBROWSER_POPUPRENAME;名前変更 FILEBROWSER_POPUPSELECTALL;全選択 FILEBROWSER_POPUPTRASH;ゴミ箱へ移動 @@ -213,6 +219,7 @@ FILEBROWSER_SHOWDIRHINT;全ての絞り込みをクリア\nショートカット FILEBROWSER_SHOWEDITEDHINT;編集済み画像を表示\nショートカット: 7 FILEBROWSER_SHOWEDITEDNOTHINT;未編集画像を表示\nショートカット: 6 FILEBROWSER_SHOWEXIFINFO;EXIF情報を表示\nショートカット: i\n\nシングル・エディタ・タブのショートカット: Alt-i +FILEBROWSER_SHOWNOTTRASHHINT;ゴミ箱の中にある画像だけを表示 FILEBROWSER_SHOWORIGINALHINT;元画像だけを表示\n\nファイル名は同じだが拡張子が異なる画像がある場合は、環境設定の中のファイルブラウザタブにある拡張子リストの上位に位置する拡張子を持った画像を元画像とする。 FILEBROWSER_SHOWRANK1HINT;1つ星ランクを表示\nショートカット: 1 FILEBROWSER_SHOWRANK2HINT;2つ星ランクを表示\nショートカット: 2 @@ -771,6 +778,8 @@ HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;霞除去 - 深度マップの表示 HISTORY_MSG_DEHAZE_STRENGTH;霞除去 - 強さ HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;デュアルデモザイク - 自動しきい値 HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - コントラストのしきい値 +HISTORY_MSG_FILMNEGATIVE_ENABLED;ネガフィルム +HISTORY_MSG_FILMNEGATIVE_VALUES;ネガフィルムの値 HISTORY_MSG_HISTMATCHING;トーンカーブの自動調節 HISTORY_MSG_ICM_OUTPUT_PRIMARIES;出力 - プライマリ HISTORY_MSG_ICM_OUTPUT_TEMP;出力 - ICC-v4 光源 D @@ -1007,6 +1016,7 @@ PARTIALPASTE_EQUALIZER;ウェーブレット PARTIALPASTE_EVERYTHING;すべて PARTIALPASTE_EXIFCHANGES;exifデータを変える PARTIALPASTE_EXPOSURE;露光量 +PARTIALPASTE_FILMNEGATIVE;ネガフィルム PARTIALPASTE_FILMSIMULATION;フィルムシミュレーション PARTIALPASTE_FLATFIELDAUTOSELECT;フラットフィールド 自動選択 PARTIALPASTE_FLATFIELDBLURRADIUS;フラットフィールド ぼかし半径 @@ -1065,6 +1075,7 @@ PREFERENCES_APPEARANCE_COLORPICKERFONT;カラーピッカーのフォント PREFERENCES_APPEARANCE_CROPMASKCOLOR;切り抜きのマスクカラー PREFERENCES_APPEARANCE_MAINFONT;メインフォント PREFERENCES_APPEARANCE_NAVGUIDECOLOR;ナビゲーターのガイドカラー +PREFERENCES_APPEARANCE_PSEUDOHIDPI;擬似HiDPIモード PREFERENCES_APPEARANCE_THEME;テーマ PREFERENCES_APPLNEXTSTARTUP;要再起動 PREFERENCES_AUTOMONPROFILE;OSのメインモニター・プロファイルを使用 @@ -1284,6 +1295,7 @@ QUEUE_FORMAT_TITLE;ファイル形式 QUEUE_LOCATION_FOLDER;フォルダに保存 QUEUE_LOCATION_TEMPLATE;テンプレートを使う QUEUE_LOCATION_TEMPLATE_TOOLTIP;次の書式文字を使用することができます:\n%f, %d1, %d2, ..., %p1, %p2, ...%r\n\nこれらの書式文字は画像パス名のそれぞれ別々の部分、画像の属性を参照します\n\n例えば、次の画像を処理中の場合は:\n\n/home/tom/photos/2010-10-31/dsc0042.nef\n書式文字の意味するものは:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/tom/photos/\n%p3 = /home/tom/\n%p4 = /home/\n\n%rは写真のランクに置き換えられます。評価なしは%rは'0 'に置換されます。画像がごみ箱にある場合、%rは'X'に置換されます\n\n元画像と同じ場所に出力したい場合はこのように書きます:\n%p1/%f\n\n処理画像のディレクトリ下 "converted" という名前のディレクトリに出力画像を保存したい場合このように書きます:\n%p1/converted/%f\n\n"/home/tom/photos/converted/2010-10-31" という名前のディレクトリに出力画像を保存したい場合はこのように書きます:\n%p2/converted/%d1/%f +QUEUE_LOCATION_TITLE;出力の場所 QUEUE_STARTSTOP_TOOLTIP;キューにある画像の現像を始める、或いは中止する\n\nショートカット: Ctrl+s SAMPLEFORMAT_0;データ形式不明 SAMPLEFORMAT_1;符号なし8ビット @@ -1658,6 +1670,12 @@ TP_EXPOSURE_TCMODE_STANDARD;標準 TP_EXPOSURE_TCMODE_WEIGHTEDSTD;加重平均 TP_EXPOS_BLACKPOINT_LABEL;raw ブラック・ポイント TP_EXPOS_WHITEPOINT_LABEL;raw ホワイト・ポイント +TP_FILMNEGATIVE_BLUE;ブルーの比率 +TP_FILMNEGATIVE_GREEN;参考指数(コントラスト) +TP_FILMNEGATIVE_GUESS_TOOLTIP;画像の中でニュートラルな参考ポイントを2点選んで指数を計算します;白い(明るいグレー)1点と黒い(暗いグレー)1点を選びます。順番は関係ありません。2つ目のポイントが選択されると指数が更新されます。 +TP_FILMNEGATIVE_LABEL;ネガフィルム +TP_FILMNEGATIVE_PICK;白と黒のポイントをピックアップする +TP_FILMNEGATIVE_RED;レッドの比率 TP_FILMSIMULATION_LABEL;フィルムシミュレーション TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapeeはフィルムシミュレーション機能に使う画像をHald CLUTフォルダーの中から探すよう設計されています(プログラムに組み込むにはフォルダーが大き過ぎるため)。\n変更するには、環境設定 > 画像処理 > フィルムシミュレーションと進み\nどのフォルダーが使われているか確認します。機能を利用する場合は、Hald CLUTだけが入っているフォルダーを指定するか、 この機能を使わない場合はそのフォルダーを空にしておきます。\n\n詳しくはRawPediaを参照して下さい。\n\nフィルム画像のスキャンを止めますか? TP_FILMSIMULATION_STRENGTH;強さ @@ -2301,25 +2319,3 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? -!FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? -!FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. -!FILEBROWSER_POPUPREMOVE;Delete permanently -!FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version -!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. -!HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative -!HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values -!PARTIALPASTE_FILMNEGATIVE;Film Negative -!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode -!QUEUE_LOCATION_TITLE;Output Location -!TP_FILMNEGATIVE_BLUE;Blue ratio -!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) -!TP_FILMNEGATIVE_GUESS_TOOLTIP;Calculate exponents by picking two neutral reference spots in the image; one white (light gray) and one black (dark gray). The order does not matter. The exponents will be updated after the second spot is picked. -!TP_FILMNEGATIVE_LABEL;Film Negative -!TP_FILMNEGATIVE_PICK;Pick white and black spots -!TP_FILMNEGATIVE_RED;Red ratio From cbb3f05b7e51faf3af16022c616d04e7b9926d9b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 22 Jul 2019 13:49:08 +0200 Subject: [PATCH 205/215] use empty() instead of comparison with an empty string --- rtengine/improcfun.cc | 2 +- rtengine/procparams.cc | 6 +- rtengine/rawimagesource.cc | 4 +- rtengine/simpleprocess.cc | 2 +- rtengine/stdimagesource.cc | 2 +- rtexif/nikonattribs.cc | 67 +++----------- rtgui/batchqueue.cc | 4 +- rtgui/darkframe.cc | 2 +- rtgui/exifpanel.cc | 4 +- rtgui/favoritbrowser.cc | 2 +- rtgui/filepanel.cc | 2 +- rtgui/flatfield.cc | 2 +- rtgui/icmpanel.cc | 6 +- rtgui/imagearea.cc | 2 +- rtgui/inspector.cc | 2 +- rtgui/lwbutton.cc | 20 +++-- rtgui/lwbutton.h | 1 + rtgui/lwbuttonset.cc | 79 ++++++----------- rtgui/lwbuttonset.h | 13 ++- rtgui/placesbrowser.cc | 2 +- rtgui/renamedlg.cc | 156 --------------------------------- rtgui/renamedlg.h | 43 --------- rtgui/thumbbrowserbase.cc | 2 +- rtgui/thumbbrowserentrybase.cc | 4 +- rtgui/thumbnail.cc | 12 +-- 25 files changed, 85 insertions(+), 356 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index c164abc0d..85954abfa 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -5653,7 +5653,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double double ImProcFunctions::getAutoDistor (const Glib::ustring &fname, int thumb_size) { - if (fname != "") { + if (!fname.empty()) { rtengine::RawMetaDataLocation ri; int w_raw = -1, h_raw = thumb_size; int w_thumb = -1, h_thumb = thumb_size; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 81de080bd..cb27fc2b3 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -39,11 +39,11 @@ namespace Glib::ustring expandRelativePath(const Glib::ustring &procparams_fname, const Glib::ustring &prefix, Glib::ustring embedded_fname) { - if (embedded_fname == "" || !Glib::path_is_absolute(procparams_fname)) { + if (embedded_fname.empty() || !Glib::path_is_absolute(procparams_fname)) { return embedded_fname; } - if (prefix != "") { + if (!prefix.empty()) { if (embedded_fname.length() < prefix.length() || embedded_fname.substr(0, prefix.length()) != prefix) { return embedded_fname; } @@ -61,7 +61,7 @@ Glib::ustring expandRelativePath(const Glib::ustring &procparams_fname, const Gl Glib::ustring relativePathIfInside(const Glib::ustring &procparams_fname, bool fnameAbsolute, Glib::ustring embedded_fname) { - if (fnameAbsolute || embedded_fname == "" || !Glib::path_is_absolute(procparams_fname)) { + if (fnameAbsolute || embedded_fname.empty() || !Glib::path_is_absolute(procparams_fname)) { return embedded_fname; } diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 3b2738405..9f310508f 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3824,7 +3824,7 @@ bool RawImageSource::findInputProfile(Glib::ustring inProfile, cmsHPROFILE embed return false; } - if (inProfile == "(embedded)" && embedded) { + if (embedded && inProfile == "(embedded)") { in = embedded; } else if (inProfile == "(cameraICC)") { // DCPs have higher quality, so use them first @@ -3833,7 +3833,7 @@ bool RawImageSource::findInputProfile(Glib::ustring inProfile, cmsHPROFILE embed if (*dcpProf == nullptr) { in = ICCStore::getInstance()->getStdProfile(camName); } - } else if (inProfile != "(camera)" && inProfile != "") { + } else if (inProfile != "(camera)" && !inProfile.empty()) { Glib::ustring normalName = inProfile; if (!inProfile.compare (0, 5, "file:")) { diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 4bdaa6ff1..2d594e0af 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1326,7 +1326,7 @@ private: } else { // use the selected output profile if present, otherwise use LCMS2 profile generate by lab2rgb16 w/ gamma - if (params.icm.outputProfile != "" && params.icm.outputProfile != ColorManagementParams::NoICMString) { + if (!params.icm.outputProfile.empty() && params.icm.outputProfile != ColorManagementParams::NoICMString) { // if ICCStore::getInstance()->getProfile send back an object, then ICCStore::getInstance()->getContent will do too cmsHPROFILE jprof = ICCStore::getInstance()->getProfile (params.icm.outputProfile); //get outProfile diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 6ca3091a3..e5c98a93a 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -224,7 +224,7 @@ void StdImageSource::colorSpaceConversion (Imagefloat* im, const ColorManagement cmsHPROFILE in = nullptr; cmsHPROFILE out = ICCStore::getInstance()->workingSpace (cmp.workingProfile); - if (cmp.inputProfile == "(embedded)" || cmp.inputProfile == "" || cmp.inputProfile == "(camera)" || cmp.inputProfile == "(cameraICC)") { + if (cmp.inputProfile == "(embedded)" || cmp.inputProfile.empty() || cmp.inputProfile == "(camera)" || cmp.inputProfile == "(cameraICC)") { if (embedded) { in = embedded; } else { diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index b2066150d..1c6ead006 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -257,65 +257,18 @@ public: std::ostringstream af; - if (aff & 1) - if (af.str() == "") { - af << "Center"; - } else { - af << ", Center"; - } else if (aff & 2) - if (af.str() == "") { - af << "Top"; - } else { - af << ", Top"; - } else if (aff & 4) - if (af.str() == "") { - af << "Bottom"; - } else { - af << ", Bottom"; - } else if (aff & 8) - if (af.str() == "") { - af << "Left"; - } else { - af << ", Left"; - } else if (aff & 16) - if (af.str() == "") { - af << "Right"; - } else { - af << ", Right"; - } else if (aff & 32) - if (af.str() == "") { - af << "Upper-left"; - } else { - af << ", Upper-left"; - } else if (aff & 64) - if (af.str() == "") { - af << "Upper-right"; - } else { - af << ", Upper-right"; - } else if (aff & 128) - if (af.str() == "") { - af << " Lower-left"; - } else { - af << ", Lower-left"; - } else if (aff & 256) - if (af.str() == "") { - af << "Lower-right"; - } else { - af << ", Lower-right"; - } else if (aff & 512) - if (af.str() == "") { - af << "Far Left"; - } else { - af << ", Far Left"; - } else if (aff & 1024) { - if (af.str() == "") { - af << "Far Right"; - } else { - af << ", Far Right"; + if (aff) { + for (size_t i = 0; i < afpchoices.size(); ++i) { + if (aff & (1 << i)) { + if (!af.str().empty()) { + af << ", "; + } + af << afpchoices.at(i); + } } } - str << "AFPointsInFocus = " << af.str(); + str << "AFPointsInFocus = " << (af.str().empty() ? "None" : af.str()); return str.str(); } }; @@ -553,7 +506,7 @@ public: std::map::const_iterator r = lenses.find (lid.str()); if (r != lenses.end()) { - if (r == lenses.begin() && EffectiveMaxApertureString != "") { // first entry is for unchipped lenses + if (r == lenses.begin() && !EffectiveMaxApertureString.empty()) { // first entry is for unchipped lenses Tag *FLTag = t->getParent()->getRoot()->findTag ("FocalLength"); ld << "Lens = MF "; diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index 7222be05d..239057b87 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -667,7 +667,7 @@ rtengine::ProcessingJob* BatchQueue::imageReady(rtengine::IImagefloat* img) Glib::ustring fname; SaveFormat saveFormat; - if (processing->outFileName == "") { // auto file name + if (processing->outFileName.empty()) { // auto file name Glib::ustring s = calcAutoFileNameBase (processing->filename, processing->sequence); saveFormat = options.saveFormatBatch; fname = autoCompleteFileName (s, saveFormat.format); @@ -686,7 +686,7 @@ rtengine::ProcessingJob* BatchQueue::imageReady(rtengine::IImagefloat* img) //printf ("fname=%s, %s\n", fname.c_str(), removeExtension(fname).c_str()); - if (img && fname != "") { + if (img && !fname.empty()) { int err = 0; if (saveFormat.format == "tif") { diff --git a/rtgui/darkframe.cc b/rtgui/darkframe.cc index 77e9c53a6..8ffca7544 100644 --- a/rtgui/darkframe.cc +++ b/rtgui/darkframe.cc @@ -125,7 +125,7 @@ void DarkFrame::read(const rtengine::procparams::ProcParams* pp, const ParamsEdi Glib::ustring fname = Glib::path_get_basename(dfp->GetCurrentImageFilePath()); Glib::ustring filetype; - if (fname != "") { + if (!fname.empty()) { // get image filetype, set filter to the same as current image's filetype std::string::size_type idx; idx = fname.rfind('.'); diff --git a/rtgui/exifpanel.cc b/rtgui/exifpanel.cc index c5036798e..6c196e575 100644 --- a/rtgui/exifpanel.cc +++ b/rtgui/exifpanel.cc @@ -496,7 +496,7 @@ void ExifPanel::addPressed () Glib::ustring sel = getSelection (true); - if (sel == "") { + if (sel.empty()) { tcombo->set_active_text ("Exif.UserComment"); } else { tcombo->set_active_text (sel); @@ -658,7 +658,7 @@ Glib::ustring ExifPanel::getSelection (bool onlyeditable) void ExifPanel::updateChangeList (Gtk::TreeModel::Children root, std::string prefix) { - if (prefix != "") { + if (!prefix.empty()) { prefix = prefix + "."; } diff --git a/rtgui/favoritbrowser.cc b/rtgui/favoritbrowser.cc index 379ce26e6..0e1b4490b 100644 --- a/rtgui/favoritbrowser.cc +++ b/rtgui/favoritbrowser.cc @@ -97,7 +97,7 @@ void FavoritBrowser::dirSelected (const Glib::ustring& dirname, const Glib::ustr void FavoritBrowser::addPressed () { - if (lastSelectedDir == "") { + if (lastSelectedDir.empty()) { return; } diff --git a/rtgui/filepanel.cc b/rtgui/filepanel.cc index 5a344c8ba..da33caddf 100644 --- a/rtgui/filepanel.cc +++ b/rtgui/filepanel.cc @@ -358,7 +358,7 @@ void FilePanel::saveOptions () options.browserToolPanelWidth = winW - get_position(); options.browserToolPanelHeight = tpcPaned->get_position (); - if (options.startupDir == STARTUPDIR_LAST && fileCatalog->lastSelectedDir () != "") { + if (options.startupDir == STARTUPDIR_LAST && !fileCatalog->lastSelectedDir().empty()) { options.startupPath = fileCatalog->lastSelectedDir (); } diff --git a/rtgui/flatfield.cc b/rtgui/flatfield.cc index 3cbd7acf1..25482909e 100644 --- a/rtgui/flatfield.cc +++ b/rtgui/flatfield.cc @@ -192,7 +192,7 @@ void FlatField::read(const rtengine::procparams::ProcParams* pp, const ParamsEdi Glib::ustring fname = Glib::path_get_basename(ffp->GetCurrentImageFilePath()); Glib::ustring filetype; - if (fname != "") { + if (!fname.empty()) { // get image filetype, set filter to the same as current image's filetype std::string::size_type idx; idx = fname.rfind('.'); diff --git a/rtgui/icmpanel.cc b/rtgui/icmpanel.cc index ca025ec75..e7efa20e9 100644 --- a/rtgui/icmpanel.cc +++ b/rtgui/icmpanel.cc @@ -504,7 +504,7 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited) if (pp->icm.inputProfile == "(none)") { inone->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); - } else if (pp->icm.inputProfile == "(embedded)" || ((pp->icm.inputProfile == "(camera)" || pp->icm.inputProfile == "") && icamera->get_state() == Gtk::STATE_INSENSITIVE)) { + } else if (pp->icm.inputProfile == "(embedded)" || ((pp->icm.inputProfile == "(camera)" || pp->icm.inputProfile.empty()) && icamera->get_state() == Gtk::STATE_INSENSITIVE)) { iembedded->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); } else if ((pp->icm.inputProfile == "(cameraICC)") && icameraICC->get_state() != Gtk::STATE_INSENSITIVE) { @@ -519,7 +519,7 @@ void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited) // If neither (camera) nor (cameraICC) are available, as is the case when loading a non-raw, activate (embedded). iembedded->set_active(true); updateDCP(pp->icm.dcpIlluminant, "(cameraICC)"); - } else if ((pp->icm.inputProfile == "(camera)" || pp->icm.inputProfile == "") && icamera->get_state() != Gtk::STATE_INSENSITIVE) { + } else if ((pp->icm.inputProfile == "(camera)" || pp->icm.inputProfile.empty()) && icamera->get_state() != Gtk::STATE_INSENSITIVE) { icamera->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); } else { @@ -949,7 +949,7 @@ void ICMPanel::setRawMeta(bool raw, const rtengine::FramesData* pMeta) void ICMPanel::ipSelectionChanged() { - if (ipDialog->get_filename() == "") { + if (ipDialog->get_filename().empty()) { return; } diff --git a/rtgui/imagearea.cc b/rtgui/imagearea.cc index dd891b351..886d9ff5b 100644 --- a/rtgui/imagearea.cc +++ b/rtgui/imagearea.cc @@ -247,7 +247,7 @@ bool ImageArea::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) (*i)->expose (cr); } - if (options.showInfo && infotext != "") { + if (options.showInfo && !infotext.empty()) { iBackBuffer.copySurface(cr); } diff --git a/rtgui/inspector.cc b/rtgui/inspector.cc index 06e2272e7..a183a3419 100644 --- a/rtgui/inspector.cc +++ b/rtgui/inspector.cc @@ -34,7 +34,7 @@ InspectorBuffer::InspectorBuffer(const Glib::ustring &imagePath) : currTransform // generate thumbnail image Glib::ustring ext = getExtension (imagePath); - if (ext == "") { + if (ext.empty()) { imgPath.clear(); return; } diff --git a/rtgui/lwbutton.cc b/rtgui/lwbutton.cc index 02041ea0c..3c97ff6bb 100644 --- a/rtgui/lwbutton.cc +++ b/rtgui/lwbutton.cc @@ -45,6 +45,12 @@ void LWButton::setPosition (int x, int y) ypos = y; } +void LWButton::addPosition (int x, int y) +{ + xpos += x; + ypos += y; +} + void LWButton::getPosition (int& x, int& y) const { @@ -219,15 +225,11 @@ void LWButton::getAlignment (Alignment& ha, Alignment& va) const Glib::ustring LWButton::getToolTip (int x, int y) const { - if (inside(x, y)) { - if (toolTip) { - return *toolTip; - } else { - return ""; - } - } else { - return ""; - } + if (inside(x, y) && toolTip) { + return *toolTip; + } else { + return {}; + } } void LWButton::setToolTip (Glib::ustring* tooltip) diff --git a/rtgui/lwbutton.h b/rtgui/lwbutton.h index aec875d55..12dbb6346 100644 --- a/rtgui/lwbutton.h +++ b/rtgui/lwbutton.h @@ -57,6 +57,7 @@ public: void getSize (int& minw, int& minh) const; void getAlignment (Alignment& ha, Alignment& va) const; void setPosition (int x, int y); + void addPosition (int x, int y); void getPosition (int& x, int& y) const; bool inside (int x, int y) const; void setIcon (Cairo::RefPtr i); diff --git a/rtgui/lwbuttonset.cc b/rtgui/lwbuttonset.cc index 99d3dce7c..d4d39bfe3 100644 --- a/rtgui/lwbuttonset.cc +++ b/rtgui/lwbuttonset.cc @@ -24,21 +24,18 @@ LWButtonSet::LWButtonSet () : aw(0), ah(0), ax(-1), ay(-1) LWButtonSet::~LWButtonSet () { - - for (size_t i = 0; i < buttons.size(); i++) { - delete buttons[i]; + for (const auto entry : buttons) { + delete entry; } } void LWButtonSet::add (LWButton* b) { - buttons.push_back (b); } -void LWButtonSet::getMinimalDimensions (int& w, int& h) +void LWButtonSet::getMinimalDimensions (int& w, int& h) const { - w = 0; h = 0; @@ -104,108 +101,86 @@ void LWButtonSet::arrangeButtons (int x, int y, int w, int h) void LWButtonSet::move (int nx, int ny) { - - for (size_t i = 0; i < buttons.size(); i++) { - int x, y; - buttons[i]->getPosition (x, y); - buttons[i]->setPosition (x + nx - ax, y + ny - ay); + for (const auto entry : buttons) { + entry->addPosition(nx - ax, ny - ay); } - ax = nx; ay = ny; } void LWButtonSet::redraw (Cairo::RefPtr context) { - - for (size_t i = 0; i < buttons.size(); i++) { - buttons[i]->redraw (context); + for (const auto entry : buttons) { + entry->redraw(context); } } bool LWButtonSet::motionNotify (int x, int y) { - bool res = false; - - for (size_t i = 0; i < buttons.size(); i++) { - bool handled = buttons[i]->motionNotify (x, y); - res = res || handled; + for (const auto entry : buttons) { + res = entry->motionNotify(x, y) || res; } - return res; } bool LWButtonSet::pressNotify (int x, int y) { - bool res = false; - - for (size_t i = 0; i < buttons.size(); i++) { - bool handled = buttons[i]->pressNotify (x, y); - res = res || handled; + for (const auto entry : buttons) { + res = entry->pressNotify(x, y) || res; } - return res; } bool LWButtonSet::releaseNotify (int x, int y) { - bool res = false; - - for (size_t i = 0; i < buttons.size(); i++) { - bool handled = buttons[i]->releaseNotify (x, y); - res = res || handled; + for (const auto entry : buttons) { + res = entry->releaseNotify(x, y) || res; } - return res; } -bool LWButtonSet::inside (int x, int y) +bool LWButtonSet::inside (int x, int y) const { - for (size_t i = 0; i < buttons.size(); i++) - if (buttons[i]->inside (x, y)) { + for (const auto entry : buttons) { + if (entry->inside(x, y)) { return true; } - + } return false; } void LWButtonSet::setButtonListener (LWButtonListener* bl) { - - for (size_t i = 0; i < buttons.size(); i++) { - buttons[i]->setButtonListener (bl); + for (const auto entry : buttons) { + entry->setButtonListener(bl); } } -void LWButtonSet::getAllocatedDimensions (int& w, int& h) +void LWButtonSet::getAllocatedDimensions (int& w, int& h) const { - w = aw; h = ah; } void LWButtonSet::setColors (const Gdk::RGBA& bg, const Gdk::RGBA& fg) { - - for (size_t i = 0; i < buttons.size(); i++) { - buttons[i]->setColors (bg, fg); + for (const auto entry : buttons) { + entry->setColors(bg, fg); } } -Glib::ustring LWButtonSet::getToolTip (int x, int y) +Glib::ustring LWButtonSet::getToolTip (int x, int y) const { + for (const auto entry : buttons) { + const auto ttip = entry->getToolTip(x, y); - for (size_t i = 0; i < buttons.size(); i++) { - Glib::ustring ttip = buttons[i]->getToolTip (x, y); - - if (ttip != "") { + if (!ttip.empty()) { return ttip; } } - - return ""; + return {}; } diff --git a/rtgui/lwbuttonset.h b/rtgui/lwbuttonset.h index 5452fa434..fa33620ae 100644 --- a/rtgui/lwbuttonset.h +++ b/rtgui/lwbuttonset.h @@ -16,8 +16,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _LWBUTTONSET_ -#define _LWBUTTONSET_ +#pragma once #include #include "lwbutton.h" @@ -35,20 +34,18 @@ public: void add (LWButton* b); - void getMinimalDimensions (int& w, int& h); - void getAllocatedDimensions (int& w, int& h); + void getMinimalDimensions (int& w, int& h) const; + void getAllocatedDimensions (int& w, int& h) const; void arrangeButtons (int x, int y, int w, int h); void setColors (const Gdk::RGBA& bg, const Gdk::RGBA& fg); bool motionNotify (int x, int y); bool pressNotify (int x, int y); bool releaseNotify (int x, int y); void move (int nx, int ny); - bool inside (int x, int y); + bool inside (int x, int y) const; - Glib::ustring getToolTip (int x, int y); + Glib::ustring getToolTip (int x, int y) const; void setButtonListener (LWButtonListener* bl); void redraw (Cairo::RefPtr context); }; - -#endif diff --git a/rtgui/placesbrowser.cc b/rtgui/placesbrowser.cc index 0d20e9bad..9935064ee 100644 --- a/rtgui/placesbrowser.cc +++ b/rtgui/placesbrowser.cc @@ -309,7 +309,7 @@ void PlacesBrowser::dirSelected (const Glib::ustring& dirname, const Glib::ustri void PlacesBrowser::addPressed () { - if (lastSelectedDir == "") { + if (lastSelectedDir.empty()) { return; } diff --git a/rtgui/renamedlg.cc b/rtgui/renamedlg.cc index f03df455f..14931817f 100644 --- a/rtgui/renamedlg.cc +++ b/rtgui/renamedlg.cc @@ -88,159 +88,3 @@ Glib::ustring RenameDialog::getNewName () return newName->get_text (); } -//void RenameDialog::fillTemplateList () -//{ -// -// templateModel->clear (); -// -// for (size_t i = 0; i < options.renameTemplates.size(); i++) { -// Gtk::TreeModel::iterator iter = templateModel->append (); -// iter->set_value (templateColumns.tmplName, options.renameTemplates[i]); -// iter->set_value (templateColumns.rowSeparator, false); -// } -// -// // append separator and the manage... item -// Gtk::TreeModel::iterator iter = templateModel->append (); -// iter->set_value (templateColumns.tmplName, Glib::ustring("")); -// iter->set_value (templateColumns.rowSeparator, true); -// iter = templateModel->append (); -// iter->set_value (templateColumns.tmplName, Glib::ustring(M("FILEBROWSER_ADDDELTEMPLATE"))); -// iter->set_value (templateColumns.rowSeparator, false); -//} - -//bool RenameDialog::rowSeparatorFunc (const Glib::RefPtr& model, const Gtk::TreeModel::iterator& iter) -//{ -// -// return iter->get_value (templateColumns.rowSeparator); -//} - -//void RenameDialog::useTemplToggled () -//{ -// -// templates->set_sensitive (useTmpl->get_active ()); -// -// if (useTmpl->get_active () && isTemplSelected ()) { -// all->set_sensitive (true); -// newName->set_text (applyTemplate (oldName->get_text(), imageData, getActiveTemplate())); -// } else { -// all->set_sensitive (false); -// } -// -// newName->select_region (0, newName->get_text().size()); -//} - -//bool RenameDialog::isTemplSelected () -//{ -// -// Gtk::TreeModel::iterator iter = templates->get_active(); -// return iter && iter->get_value (templateColumns.tmplName) != M("FILEBROWSER_ADDDELTEMPLATE"); -//} - -//Glib::ustring RenameDialog::getActiveTemplate () -//{ -// -// Gtk::TreeModel::iterator iter = templates->get_active(); -// -// if (iter && iter->get_value (templateColumns.tmplName) != M("FILEBROWSER_ADDDELTEMPLATE")) { -// return iter->get_value (templateColumns.tmplName); -// } else { -// return ""; -// } -//} - -//void RenameDialog::tmplSelectionChanged () -//{ -// -// Gtk::TreeModel::iterator iter = templates->get_active(); -// -// if (iter && iter->get_value (templateColumns.tmplName) == M("FILEBROWSER_ADDDELTEMPLATE")) { -// RenameTemplateEditor* rte = new RenameTemplateEditor (p); -// -// if (rte->run() == Gtk::RESPONSE_OK) { -// fillTemplateList (); -// } -// -// delete rte; -// // show add/del template dialog -// } else { -// useTemplToggled (); -// } -//} - -//RenameTemplateEditor::RenameTemplateEditor (Gtk::Window* parent) -// : Gtk::Dialog ("Edit rename templates", *parent, true) -//{ -// -// list = Gtk::manage (new Gtk::ListViewText (1, false, Gtk::SELECTION_MULTIPLE)); -// list->set_headers_visible (false); -// get_content_area ()->pack_start (*list); -// -// Gtk::HBox* hb = Gtk::manage (new Gtk::HBox ()); -// templ = Gtk::manage (new Gtk::Entry ()); -// Gtk::Button* add = Gtk::manage (new Gtk::Button ()); -// Gtk::Button* del = Gtk::manage (new Gtk::Button ()); -// add->add (*Gtk::manage (new RTImage ("add-small.png"))); -// del->add (*Gtk::manage (new RTImage ("remove-small.png"))); -// hb->pack_start (*templ); -// hb->pack_start (*add, Gtk::PACK_SHRINK, 2); -// hb->pack_start (*del, Gtk::PACK_SHRINK, 2); -// -// get_content_area ()->pack_start (*hb, Gtk::PACK_SHRINK, 4); -// -// add_button (Gtk::Stock::OK, Gtk::RESPONSE_OK); -// -// refreshTemplateList (); -// -// add->signal_pressed().connect( sigc::mem_fun(*this, &RenameTemplateEditor::addPressed) ); -// del->signal_pressed().connect( sigc::mem_fun(*this, &RenameTemplateEditor::delPressed) ); -// -// show_all_children (); -// -// set_size_request (-1, 250); -//} -// -//void RenameTemplateEditor::refreshTemplateList () -//{ -// -// list->remove_all_columns(); -// -// for (size_t i = 0; i < options.renameTemplates.size(); i++) { -// list->append (options.renameTemplates[i]); -// } -//} -// -//void RenameTemplateEditor::addPressed () -//{ -// -// if (templ->get_text() != "") { -// options.renameTemplates.push_back (templ->get_text ()); -// refreshTemplateList (); -// templ->set_text(""); -// } -//} -// -//void RenameTemplateEditor::delPressed () -//{ -// -// std::vector sel = list->get_selected (); -// -// for (size_t i = 0; i < sel.size(); i++) { -// Glib::ustring toDel = list->get_text (sel[i]); -// std::vector::iterator f = std::find (options.renameTemplates.begin(), options.renameTemplates.end(), toDel); -// -// if (f != options.renameTemplates.end()) { -// options.renameTemplates.erase (f); -// } -// } -// -// refreshTemplateList (); -//} - -//Glib::ustring RenameDialog::applyTemplate (const Glib::ustring& oName, const CacheImageData* cid, const Glib::ustring& templ) -//{ -// -// return Glib::ustring ("szeva"); -// -//} - - diff --git a/rtgui/renamedlg.h b/rtgui/renamedlg.h index 94972d575..ab51a43c6 100644 --- a/rtgui/renamedlg.h +++ b/rtgui/renamedlg.h @@ -30,62 +30,19 @@ class RenameDialog : public Gtk::Dialog protected: -// class TemplateColumns : public Gtk::TreeModel::ColumnRecord -// { -// public: -// Gtk::TreeModelColumn tmplName; -// Gtk::TreeModelColumn rowSeparator; -// TemplateColumns() -// { -// add(tmplName); -// add(rowSeparator); -// } -// }; -// TemplateColumns templateColumns; -// Glib::RefPtr templateModel; Gtk::Window* p; Gtk::Label* oldName; Gtk::Entry* newName; -// Gtk::CheckButton* useTmpl; -// MyComboBox* templates; -// Gtk::Button* all; const CacheImageData* imageData; -// void fillTemplateList (); - public: explicit RenameDialog (Gtk::Window* parent); void initName (const Glib::ustring& iname, const CacheImageData* cid); Glib::ustring getNewName (); -// bool rowSeparatorFunc (const Glib::RefPtr& model, const Gtk::TreeModel::iterator& iter); -// void tmplSelectionChanged (); -// void useTemplToggled (); - -// bool isTemplSelected (); -// Glib::ustring getActiveTemplate (); - -// static Glib::ustring applyTemplate (const Glib::ustring& oName, const CacheImageData* cid, const Glib::ustring& templ); }; -//class RenameTemplateEditor : public Gtk::Dialog -//{ -// -//protected: -// Gtk::ListViewText* list; -// Gtk::Entry* templ; -// -// void refreshTemplateList (); -//public: -// explicit RenameTemplateEditor (Gtk::Window* parent); -// -// Glib::ustring getSelectedTemplate (); -// -// void addPressed (); -// void delPressed (); -//}; - #endif diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 1ae0cdf98..cf3b36d03 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -748,7 +748,7 @@ bool ThumbBrowserBase::Internal::on_query_tooltip (int x, int y, bool keyboard_t } } - if (ttip != "") { + if (!ttip.empty()) { tooltip->set_markup (ttip); return true; } else { diff --git a/rtgui/thumbbrowserentrybase.cc b/rtgui/thumbbrowserentrybase.cc index 2960ccf70..f9e2b41b5 100644 --- a/rtgui/thumbbrowserentrybase.cc +++ b/rtgui/thumbbrowserentrybase.cc @@ -401,7 +401,7 @@ void ThumbBrowserEntryBase::updateBackBuffer () // draw date/time label int tpos = fnlabh; - if (options.fbShowDateTime && datetimeline != "") { + if (options.fbShowDateTime && !datetimeline.empty()) { fn = w->create_pango_layout (datetimeline); fn->set_width (textw * Pango::SCALE); fn->set_ellipsize (Pango::ELLIPSIZE_MIDDLE); @@ -412,7 +412,7 @@ void ThumbBrowserEntryBase::updateBackBuffer () } // draw basic exif info - if (options.fbShowBasicExif && exifline != "") { + if (options.fbShowBasicExif && !exifline.empty()) { fn = w->create_pango_layout (exifline); fn->set_width (textw * Pango::SCALE); fn->set_ellipsize (Pango::ELLIPSIZE_MIDDLE); diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 39f4ca093..55e69ab21 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -117,9 +117,9 @@ void Thumbnail::_generateThumbnailImage () imgRatio = -1.; // generate thumbnail image - Glib::ustring ext = getExtension (fname); + const std::string ext = getExtension(fname).lowercase(); - if (ext == "") { + if (ext.empty()) { return; } @@ -127,20 +127,20 @@ void Thumbnail::_generateThumbnailImage () cfs.exifValid = false; cfs.timeValid = false; - if (ext.lowercase() == "jpg" || ext.lowercase() == "jpeg") { + if (ext == "jpg" || ext == "jpeg") { infoFromImage (fname); tpp = rtengine::Thumbnail::loadFromImage (fname, tw, th, 1, pparams->wb.equal); if (tpp) { cfs.format = FT_Jpeg; } - } else if (ext.lowercase() == "png") { + } else if (ext == "png") { tpp = rtengine::Thumbnail::loadFromImage (fname, tw, th, 1, pparams->wb.equal); if (tpp) { cfs.format = FT_Png; } - } else if (ext.lowercase() == "tif" || ext.lowercase() == "tiff") { + } else if (ext == "tif" || ext == "tiff") { infoFromImage (fname); tpp = rtengine::Thumbnail::loadFromImage (fname, tw, th, 1, pparams->wb.equal); @@ -716,7 +716,7 @@ void Thumbnail::generateExifDateTimeStrings () exifString = Glib::ustring::compose ("f/%1 %2s %3%4 %5mm", Glib::ustring(rtengine::FramesData::apertureToString(cfs.fnumber)), Glib::ustring(rtengine::FramesData::shutterToString(cfs.shutter)), M("QINFO_ISO"), cfs.iso, Glib::ustring::format(std::setw(3), std::fixed, std::setprecision(2), cfs.focalLen)); - if (options.fbShowExpComp && cfs.expcomp != "0.00" && cfs.expcomp != "") { // don't show exposure compensation if it is 0.00EV;old cache iles do not have ExpComp, so value will not be displayed. + if (options.fbShowExpComp && cfs.expcomp != "0.00" && !cfs.expcomp.empty()) { // don't show exposure compensation if it is 0.00EV;old cache iles do not have ExpComp, so value will not be displayed. exifString = Glib::ustring::compose ("%1 %2EV", exifString, cfs.expcomp); // append exposure compensation to exifString } From 6604755c6b9341a676e75c713ef84fa27ad7cd72 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 22 Jul 2019 14:58:22 +0200 Subject: [PATCH 206/215] Fix a typo --- rtgui/thumbnail.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 55e69ab21..1ec10aacc 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -716,7 +716,7 @@ void Thumbnail::generateExifDateTimeStrings () exifString = Glib::ustring::compose ("f/%1 %2s %3%4 %5mm", Glib::ustring(rtengine::FramesData::apertureToString(cfs.fnumber)), Glib::ustring(rtengine::FramesData::shutterToString(cfs.shutter)), M("QINFO_ISO"), cfs.iso, Glib::ustring::format(std::setw(3), std::fixed, std::setprecision(2), cfs.focalLen)); - if (options.fbShowExpComp && cfs.expcomp != "0.00" && !cfs.expcomp.empty()) { // don't show exposure compensation if it is 0.00EV;old cache iles do not have ExpComp, so value will not be displayed. + if (options.fbShowExpComp && cfs.expcomp != "0.00" && !cfs.expcomp.empty()) { // don't show exposure compensation if it is 0.00EV;old cache files do not have ExpComp, so value will not be displayed. exifString = Glib::ustring::compose ("%1 %2EV", exifString, cfs.expcomp); // append exposure compensation to exifString } From a6b1eb46fd415e31dfad5c97f6893c3d17966889 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 25 Jul 2019 11:49:17 +0200 Subject: [PATCH 207/215] Filmstrip horizontal scroll rate When scrolling with the mouse scroll-wheel while hovering over a thumbnail in the Filmstrip, now it scrolls by an amount equal to the first thumb's width. Previously it used the height. Spotted by Ingo. --- rtgui/thumbbrowserbase.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index cf3b36d03..b7170856a 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -542,7 +542,7 @@ void ThumbBrowserBase::configScrollBars () vscroll.get_adjustment()->set_upper (inH); hscroll.get_adjustment()->set_lower (0); vscroll.get_adjustment()->set_lower (0); - hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); + hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveWidth() : 0); vscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); hscroll.get_adjustment()->set_page_increment (iw); vscroll.get_adjustment()->set_page_increment (ih); From 4cbc2a9091273abd17e535950984a74dc2204c02 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 25 Jul 2019 12:04:45 +0200 Subject: [PATCH 208/215] Fix missing filename tooltip When hovering over a thumb which has characters in its filename which are used in markup, such as '&', the tooltip was missing, due to the ampersand being parsed as markup. Now the filename is treated as plain text. --- rtgui/thumbbrowserbase.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index b7170856a..5129620e1 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -749,7 +749,7 @@ bool ThumbBrowserBase::Internal::on_query_tooltip (int x, int y, bool keyboard_t } if (!ttip.empty()) { - tooltip->set_markup (ttip); + tooltip->set_text(ttip); return true; } else { return false; From a9edbcf47bf9120f7e6a73ce4ff9d4d556638d5c Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 25 Jul 2019 14:11:40 +0200 Subject: [PATCH 209/215] Improve page-up/down scrolling in File Browser Patch by Ingo --- rtgui/thumbbrowserbase.cc | 43 ++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 5129620e1..8392e1b61 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -534,28 +534,33 @@ void ThumbBrowserBase::configScrollBars () GThreadLock tLock; // Acquire the GUI if (inW > 0 && inH > 0) { - - int iw = internal.get_width (); - int ih = internal.get_height (); - - hscroll.get_adjustment()->set_upper (inW); - vscroll.get_adjustment()->set_upper (inH); - hscroll.get_adjustment()->set_lower (0); - vscroll.get_adjustment()->set_lower (0); - hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveWidth() : 0); - vscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); - hscroll.get_adjustment()->set_page_increment (iw); - vscroll.get_adjustment()->set_page_increment (ih); - hscroll.get_adjustment()->set_page_size (iw); - vscroll.get_adjustment()->set_page_size (ih); - - if(iw >= inW) { - hscroll.hide(); + int ih = internal.get_height(); + if (arrangement == TB_Horizontal) { + auto ha = hscroll.get_adjustment(); + int iw = internal.get_width(); + ha->set_upper(inW); + ha->set_lower(0); + ha->set_step_increment(!fd.empty() ? fd[0]->getEffectiveWidth() : 0); + ha->set_page_increment(iw); + ha->set_page_size(iw); + if (iw >= inW) { + hscroll.hide(); + } else { + hscroll.show(); + } } else { - hscroll.show(); + hscroll.hide(); } - if(ih >= inH) { + auto va = vscroll.get_adjustment(); + va->set_upper(inH); + va->set_lower(0); + const auto height = !fd.empty() ? fd[0]->getEffectiveHeight() : 0; + va->set_step_increment(height); + va->set_page_increment(height == 0 ? ih : (ih / height) * height); + va->set_page_size(ih); + + if (ih >= inH) { vscroll.hide(); } else { vscroll.show(); From 13207910528e2f553f3f875503b20f104941d958 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 27 Jul 2019 11:40:01 +0200 Subject: [PATCH 210/215] Backwards thumbnail selection using Shift-key unexpectedly shifts starting point of selection, fixes #5389 --- rtgui/thumbbrowserbase.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 8392e1b61..dba5390c1 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -178,15 +178,19 @@ void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additio if (!additional || !lastClicked) { // Extend the current range w.r.t to first selected entry. ThumbIterator front = std::find(fd.begin(), fd.end(), selected.front()); + ThumbIterator back; ThumbIterator current = std::find(fd.begin(), fd.end(), clicked); if (front > current) { - std::swap(front, current); + front = current; + back = std::find(fd.begin(), fd.end(), selected.back()); + } else { + back = current; } clearSelection(selected); - for (; front <= current && front != fd.end(); ++front) { + for (; front <= back && front != fd.end(); ++front) { addToSelection(*front, selected); } } else { From f523149582af993b814aa7804c13b3cac79fa4e1 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 29 Jul 2019 13:56:38 +0200 Subject: [PATCH 211/215] Clear processing profile is broken, fixes #5392 --- rtengine/procparams.cc | 2 +- rtgui/thumbnail.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index cb27fc2b3..2118213d5 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2878,7 +2878,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo keyFile.set_string("Version", "AppVersion", RTVERSION); keyFile.set_integer("Version", "Version", PPVERSION); - saveToKeyfile(!pedited || pedited->general.rank, "General", "Rank", rank, keyFile); + saveToKeyfile(!pedited || pedited->general.rank, "General", "Rank", std::max(rank, 0), keyFile); saveToKeyfile(!pedited || pedited->general.colorlabel, "General", "ColorLabel", colorlabel, keyFile); saveToKeyfile(!pedited || pedited->general.intrash, "General", "InTrash", inTrash, keyFile); diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 1ec10aacc..6ac3d629b 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -399,6 +399,7 @@ void Thumbnail::clearProcParams (int whoClearedIt) // and restore rank and inTrash setRank(rank); + pparamsValid = cfs.rating != rank; setColorLabel(colorlabel); setStage(inTrash); From 0f0dc03849b7d4c8b50f2d121d23e205f1db5845 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 29 Jul 2019 15:21:23 +0200 Subject: [PATCH 212/215] Fix broken thumbnail butto tooltips --- rtgui/batchqueueentry.cc | 8 +++++--- rtgui/batchqueueentry.h | 2 +- rtgui/thumbbrowserbase.cc | 12 ++++++++---- rtgui/thumbbrowserentrybase.cc | 5 +++-- rtgui/thumbbrowserentrybase.h | 4 ++-- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/rtgui/batchqueueentry.cc b/rtgui/batchqueueentry.cc index a5dfb6dde..23982095c 100644 --- a/rtgui/batchqueueentry.cc +++ b/rtgui/batchqueueentry.cc @@ -168,10 +168,12 @@ void BatchQueueEntry::getIconSize (int& w, int& h) const } -Glib::ustring BatchQueueEntry::getToolTip (int x, int y) const +std::tuple BatchQueueEntry::getToolTip (int x, int y) const { // get the parent class' tooltip first - Glib::ustring tooltip = ThumbBrowserEntryBase::getToolTip(x, y); + Glib::ustring tooltip; + bool useMarkup; + std::tie(tooltip, useMarkup) = ThumbBrowserEntryBase::getToolTip(x, y); // add the saving param options if (!outFileName.empty()) { @@ -198,7 +200,7 @@ Glib::ustring BatchQueueEntry::getToolTip (int x, int y) const } } - return tooltip; + return std::make_tuple(std::move(tooltip), useMarkup); } diff --git a/rtgui/batchqueueentry.h b/rtgui/batchqueueentry.h index d13dfe827..0ea56e403 100644 --- a/rtgui/batchqueueentry.h +++ b/rtgui/batchqueueentry.h @@ -70,7 +70,7 @@ public: std::vector> getIconsOnImageArea () override; void getIconSize (int& w, int& h) const override; - Glib::ustring getToolTip (int x, int y) const override; + std::tuple getToolTip (int x, int y) const override; // bqentryupdatelistener interface void updateImage (guint8* img, int w, int h, int origw, int origh, guint8* newOPreview) override; diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index dba5390c1..f637015bc 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -745,20 +745,24 @@ void ThumbBrowserBase::Internal::on_realize() bool ThumbBrowserBase::Internal::on_query_tooltip (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip) { // Gtk signals automatically acquire the GUI (i.e. this method is enclosed by gdk_thread_enter and gdk_thread_leave) - Glib::ustring ttip = ""; - + Glib::ustring ttip; + boolean useMarkup = false; { MYREADERLOCK(l, parent->entryRW); for (size_t i = 0; i < parent->fd.size(); i++) if (parent->fd[i]->drawable && parent->fd[i]->inside (x, y)) { - ttip = parent->fd[i]->getToolTip (x, y); + std::tie(ttip, useMarkup) = parent->fd[i]->getToolTip (x, y); break; } } if (!ttip.empty()) { - tooltip->set_text(ttip); + if (useMarkup) { + tooltip->set_markup(ttip); + } else { + tooltip->set_text(ttip); + } return true; } else { return false; diff --git a/rtgui/thumbbrowserentrybase.cc b/rtgui/thumbbrowserentrybase.cc index f9e2b41b5..e660e794b 100644 --- a/rtgui/thumbbrowserentrybase.cc +++ b/rtgui/thumbbrowserentrybase.cc @@ -724,7 +724,7 @@ bool ThumbBrowserEntryBase::releaseNotify (int button, int type, int bstate, int return buttonSet ? buttonSet->releaseNotify (x, y) : false; } -Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) const +std::tuple ThumbBrowserEntryBase::getToolTip (int x, int y) const { Glib::ustring tooltip; @@ -734,6 +734,7 @@ Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) const // Always show the filename in the tooltip since the filename in the thumbnail could be truncated. // If "Show Exif info" is disabled, also show Exif info in the tooltip. + bool useMarkup = !tooltip.empty(); if (inside(x, y) && tooltip.empty()) { tooltip = dispname; @@ -748,7 +749,7 @@ Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) const } } - return tooltip; + return std::make_tuple(std::move(tooltip), useMarkup); } diff --git a/rtgui/thumbbrowserentrybase.h b/rtgui/thumbbrowserentrybase.h index 12e64c60d..6cbcb37d0 100644 --- a/rtgui/thumbbrowserentrybase.h +++ b/rtgui/thumbbrowserentrybase.h @@ -19,7 +19,7 @@ #pragma once #include - +#include #include #include "cursormanager.h" @@ -190,7 +190,7 @@ public: virtual bool motionNotify (int x, int y); virtual bool pressNotify (int button, int type, int bstate, int x, int y); virtual bool releaseNotify (int button, int type, int bstate, int x, int y); - virtual Glib::ustring getToolTip (int x, int y) const; + virtual std::tuple getToolTip (int x, int y) const; inline ThumbBrowserEntryBase* getOriginal() const { From 287bd5bbe31d5e7595c06c16434aa0dc995cdf35 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 29 Jul 2019 23:05:01 +0200 Subject: [PATCH 213/215] boolean > bool --- rtgui/thumbbrowserbase.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index f637015bc..53b5828aa 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -746,7 +746,7 @@ bool ThumbBrowserBase::Internal::on_query_tooltip (int x, int y, bool keyboard_t { // Gtk signals automatically acquire the GUI (i.e. this method is enclosed by gdk_thread_enter and gdk_thread_leave) Glib::ustring ttip; - boolean useMarkup = false; + bool useMarkup = false; { MYREADERLOCK(l, parent->entryRW); From 6b868a8d4d7b9f0ac1efbb19284dfd2cb91aba84 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 30 Jul 2019 13:22:15 +0200 Subject: [PATCH 214/215] Make thumbnail range-selection more similar to OS behaviour, fixes #5393 --- rtgui/filebrowser.cc | 1 + rtgui/thumbbrowserbase.cc | 26 +++++++++++++------------- rtgui/thumbbrowserbase.h | 1 + 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index cc215e70a..b968a285e 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -667,6 +667,7 @@ void FileBrowser::close () MYWRITERLOCK(l, entryRW); selected.clear (); + anchor = nullptr; MYWRITERLOCK_RELEASE(l); // notifySelectionListener will need read access! diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 53b5828aa..71f9e4a04 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -28,7 +28,7 @@ using namespace std; ThumbBrowserBase::ThumbBrowserBase () - : location(THLOC_FILEBROWSER), inspector(nullptr), isInspectorActive(false), eventTime(0), lastClicked(nullptr), previewHeight(options.thumbSize), numOfCols(1), arrangement(TB_Horizontal) + : location(THLOC_FILEBROWSER), inspector(nullptr), isInspectorActive(false), eventTime(0), lastClicked(nullptr), anchor(nullptr), previewHeight(options.thumbSize), numOfCols(1), arrangement(TB_Horizontal) { inW = -1; inH = -1; @@ -162,30 +162,29 @@ inline void removeFromSelection (const ThumbIterator& iterator, ThumbVector& sel void ThumbBrowserBase::selectSingle (ThumbBrowserEntryBase* clicked) { - clearSelection (selected); + clearSelection(selected); + anchor = clicked; - if (clicked) - addToSelection (clicked, selected); + if (clicked) { + addToSelection(clicked, selected); + } } void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additional) { - if (selected.empty()) { + if (selected.empty() && !anchor) { addToSelection(clicked, selected); + anchor = clicked; return; } if (!additional || !lastClicked) { // Extend the current range w.r.t to first selected entry. - ThumbIterator front = std::find(fd.begin(), fd.end(), selected.front()); - ThumbIterator back; - ThumbIterator current = std::find(fd.begin(), fd.end(), clicked); + ThumbIterator back = std::find(fd.begin(), fd.end(), clicked); + ThumbIterator front = std::find(fd.begin(), fd.end(), anchor); - if (front > current) { - front = current; - back = std::find(fd.begin(), fd.end(), selected.back()); - } else { - back = current; + if (front > back) { + std::swap(front, back); } clearSelection(selected); @@ -217,6 +216,7 @@ void ThumbBrowserBase::selectSet (ThumbBrowserEntryBase* clicked) } else { addToSelection (clicked, selected); } + anchor = clicked; } static void scrollToEntry (double& h, double& v, int iw, int ih, ThumbBrowserEntryBase* entry) diff --git a/rtgui/thumbbrowserbase.h b/rtgui/thumbbrowserbase.h index ae561db43..953ec44ec 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -171,6 +171,7 @@ protected: std::vector fd; std::vector selected; ThumbBrowserEntryBase* lastClicked; + ThumbBrowserEntryBase* anchor; int previewHeight; int numOfCols; From f85de946e63b4668716bceddade50b772037d6c3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 30 Jul 2019 14:44:18 +0200 Subject: [PATCH 215/215] Fix some corner cases in thumb selection, #5393 --- rtgui/filebrowser.cc | 25 ++++++++++++++++--------- rtgui/thumbbrowserbase.cc | 20 +++++++++++--------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index b968a285e..eb85613ee 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -783,16 +783,20 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m) { MYWRITERLOCK(l, entryRW); - selected.clear (); + selected.clear(); - for (size_t i = 0; i < fd.size(); i++) - if (checkFilter (fd[i])) { + for (size_t i = 0; i < fd.size(); ++i) { + if (checkFilter(fd[i])) { fd[i]->selected = true; - selected.push_back (fd[i]); + selected.push_back(fd[i]); } + } + if (!anchor && !selected.empty()) { + anchor = selected[0]; + } } queue_draw (); - notifySelectionListener (); + notifySelectionListener(); } else if( m == copyTo) { tbl->copyMoveRequested (mselected, false); } @@ -1438,12 +1442,12 @@ void FileBrowser::applyFilter (const BrowserFilter& filter) } for (size_t i = 0; i < fd.size(); i++) { - if (checkFilter (fd[i])) { + if (checkFilter(fd[i])) { numFiltered++; - } else if (fd[i]->selected ) { + } else if (fd[i]->selected) { fd[i]->selected = false; - std::vector::iterator j = std::find (selected.begin(), selected.end(), fd[i]); - selected.erase (j); + std::vector::iterator j = std::find(selected.begin(), selected.end(), fd[i]); + selected.erase(j); if (lastClicked == fd[i]) { lastClicked = nullptr; @@ -1452,6 +1456,9 @@ void FileBrowser::applyFilter (const BrowserFilter& filter) selchanged = true; } } + if (selected.empty() || (anchor && std::find(selected.begin(), selected.end(), anchor) == selected.end())) { + anchor = nullptr; + } } if (selchanged) { diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 71f9e4a04..20a7d3e44 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -172,16 +172,18 @@ void ThumbBrowserBase::selectSingle (ThumbBrowserEntryBase* clicked) void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additional) { - if (selected.empty() && !anchor) { - addToSelection(clicked, selected); + if (!anchor) { anchor = clicked; - return; + if (selected.empty()) { + addToSelection(clicked, selected); + return; + } } if (!additional || !lastClicked) { // Extend the current range w.r.t to first selected entry. ThumbIterator back = std::find(fd.begin(), fd.end(), clicked); - ThumbIterator front = std::find(fd.begin(), fd.end(), anchor); + ThumbIterator front = anchor == clicked ? back : std::find(fd.begin(), fd.end(), anchor); if (front > back) { std::swap(front, back); @@ -195,7 +197,7 @@ void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additio } else { // Add an additional range w.r.t. the last clicked entry. ThumbIterator last = std::find(fd.begin(), fd.end(), lastClicked); - ThumbIterator current = std::find (fd.begin(), fd.end(), clicked); + ThumbIterator current = std::find(fd.begin(), fd.end(), clicked); if (last > current) { std::swap(last, current); @@ -209,12 +211,12 @@ void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additio void ThumbBrowserBase::selectSet (ThumbBrowserEntryBase* clicked) { - const ThumbIterator iterator = std::find (selected.begin (), selected.end (), clicked); + const ThumbIterator iterator = std::find(selected.begin(), selected.end(), clicked); - if (iterator != selected.end ()) { - removeFromSelection (iterator, selected); + if (iterator != selected.end()) { + removeFromSelection(iterator, selected); } else { - addToSelection (clicked, selected); + addToSelection(clicked, selected); } anchor = clicked; }