merge with Dev
This commit is contained in:
@@ -48,6 +48,7 @@
|
||||
#47 19.11.2017 HDR-Dynamikkompression (TooWaBoo) RT 5.3
|
||||
#48 13.12.2017 Erweiterung (TooWaBoo) RT 5.3
|
||||
#49 21.12.2017 Lokaler Kontrast (TooWaBoo) RT 5.3
|
||||
#50 07.01.2018 Crop Settings (TooWaBoo) RT 5.3
|
||||
|
||||
ABOUT_TAB_BUILD;Version
|
||||
ABOUT_TAB_CREDITS;Danksagungen
|
||||
@@ -572,9 +573,9 @@ HISTORY_MSG_281;(Farbanpassungen)\nSättigung schützen\nIntensität
|
||||
HISTORY_MSG_282;(Farbanpassungen)\nSättigung schützen\nSchwelle
|
||||
HISTORY_MSG_283;(Farbanpassungen)\nIntensität
|
||||
HISTORY_MSG_284;(Farbanpassungen)\nSättigung schützen\nAutomatisch
|
||||
HISTORY_MSG_285;(Rauschreduzierung)\nMedianmethode
|
||||
HISTORY_MSG_285;(Rauschreduzierung)\nMedianfilter - Methode
|
||||
HISTORY_MSG_286;(Rauschreduzierung)\nMediantyp
|
||||
HISTORY_MSG_287;(Rauschreduzierung)\nMedianiterationen
|
||||
HISTORY_MSG_287;(Rauschreduzierung)\nMedianfilter - Iterationen
|
||||
HISTORY_MSG_288;(Weißbild)\nKontrolle zu heller Bereiche
|
||||
HISTORY_MSG_289;(Weißbild)\nAuto-Kontrolle zu\nheller Bereiche
|
||||
HISTORY_MSG_290;(Sensor-Matrix)\nSchwarzpunkt - Rot
|
||||
@@ -1151,7 +1152,7 @@ PREFERENCES_REMEMBERZOOMPAN;Zoom und Bildposition merken
|
||||
PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Öffnen eines neuen Bildes mit den Zoom- und Positionswerten\ndes vorangegangenen Bildes.\n\nFunktioniert nur unter folgenden Bedingungen:\nEin-Reitermodus aktiv\n“Demosaikmethode für 100%-Ansicht“ muss auf “Wie im Bild-\nverarbeitungsprofil vorgegeben“ eingestellt sein.
|
||||
PREFERENCES_RGBDTL_LABEL;Maximale Anzahl Threads für Rauschreduzierung
|
||||
PREFERENCES_RGBDTL_TOOLTIP;Die Rauschreduzierung benötigt mindestens 128MB RAM für ein 10 Megapixel-Bild oder 512MB für ein 40 Megapixel-Bild, und zusätzlich 128MB RAM pro Thread. Je mehr Threads parallel ablaufen, desto schneller ist die Berechnung. Bei Einstellung "0" werden so viele Threads wie möglich benutzt.
|
||||
PREFERENCES_SAVE_TP_OPEN_NOW;Werkzeugstatus jetzt sichern
|
||||
PREFERENCES_SAVE_TP_OPEN_NOW;Werkzeugstatus jetzt speichern
|
||||
PREFERENCES_SELECTFONT;Schriftart
|
||||
PREFERENCES_SELECTFONT_COLPICKER;Schriftart für die Farbwähler
|
||||
PREFERENCES_SELECTLANG;Sprache
|
||||
@@ -1513,7 +1514,7 @@ TP_DIRPYRDENOISE_LUMINANCE_CURVE;Luminanzkurve
|
||||
TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Luminanzdetails
|
||||
TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminanz
|
||||
TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminanz
|
||||
TP_DIRPYRDENOISE_MAIN_COLORSPACE;Methode
|
||||
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
|
||||
@@ -1524,7 +1525,7 @@ TP_DIRPYRDENOISE_MAIN_MODE;Qualität
|
||||
TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Hoch
|
||||
TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standard
|
||||
TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Einstellung der Qualität der Rauschreduzierung.\nDie Einstellung “Hoch“ verbessert die Rausch-\nreduzierung auf Kosten der Verarbeitungszeit.
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD;Medianmethode
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD;Methode
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Nur Farbe
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b*
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Medianfilter
|
||||
@@ -1532,7 +1533,7 @@ TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Nur Luminanz
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;Bei der Methode “Nur Luminanz“ und “L*a*b*“,\nwird der Medianfilter nach den Waveletschritten\nverarbeitet.\nBei RGB wird der Medianfilter am Ende der\nRauschreduzierung verarbeitet.
|
||||
TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Gewichtet L* (wenig) + a*b* (normal)
|
||||
TP_DIRPYRDENOISE_MEDIAN_PASSES;Medianiterationen
|
||||
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.
|
||||
@@ -2226,25 +2227,25 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: <b>-</b>
|
||||
! Untranslated keys follow; remove the ! prefix after an entry is translated.
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
!BATCHQUEUE_STARTSTOPHINT;Start or stop processing the images in the queue.\n\nShortcut: <b>Ctrl</b>+<b>s</b>
|
||||
!GENERAL_SLIDER;Slider
|
||||
!HISTORY_MSG_173;NR - Detail recovery
|
||||
!HISTORY_MSG_203;NR - Color space
|
||||
!HISTORY_MSG_256;NR - Median - Type
|
||||
!HISTORY_MSG_297;NR - Mode
|
||||
!HISTORY_MSG_METADATA_MODE;Metadata copy mode
|
||||
!PREFERENCES_CROP;Crop editing
|
||||
!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area
|
||||
!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop
|
||||
!PREFERENCES_CROP_GUIDES_FRAME;Frame
|
||||
!PREFERENCES_CROP_GUIDES_FULL;Original
|
||||
!PREFERENCES_CROP_GUIDES_NONE;None
|
||||
!PREFERENCES_EDITORCMDLINE;Custom command line
|
||||
!TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation.
|
||||
!TP_DIRPYRDENOISE_LABEL;Noise Reduction
|
||||
!TP_METADATA_EDIT;Apply modifications
|
||||
!TP_METADATA_MODE;Metadata copy mode
|
||||
!TP_METADATA_STRIP;Strip all metadata
|
||||
!TP_METADATA_TUNNEL;Copy unchanged
|
||||
!TP_RAW_PIXELSHIFTONEGREEN;Use one green instead of average
|
||||
!TP_RAW_PIXELSHIFTONEGREEN_TOOLTIP;Use one green instead of averaging two greens for regions without motion.
|
||||
BATCHQUEUE_STARTSTOPHINT;Startet / Stoppt die Verarbeitung\nder Warteschlange.\n\nTaste: <b>Strg</b> + <b>s</b>
|
||||
GENERAL_SLIDER;Regler
|
||||
HISTORY_MSG_173;(Rauschreduzierung)\nLuminanzdetails
|
||||
HISTORY_MSG_203;(Rauschreduzierung)\nFarbraum
|
||||
HISTORY_MSG_256;(Rauschreduzierung)\nMedianfilter - Mediantyp
|
||||
HISTORY_MSG_297;(Rauschreduzierung)\nQualität
|
||||
HISTORY_MSG_METADATA_MODE;(Metadaten)\nKopiermodus
|
||||
PREFERENCES_CROP;Einstellung des Ausschnittswerkzeuges
|
||||
PREFERENCES_CROP_AUTO_FIT;Automatischer Zoom des Ausschnitts
|
||||
PREFERENCES_CROP_GUIDES;Hilfslinien anzeigen wenn Ausschnitt nicht verändert wird
|
||||
PREFERENCES_CROP_GUIDES_FRAME;Rahmen
|
||||
PREFERENCES_CROP_GUIDES_FULL;Vorgabe des Ausschnittswerkzeuges
|
||||
PREFERENCES_CROP_GUIDES_NONE;Keine
|
||||
PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile
|
||||
TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Erhöht / Reduziert die Intensität der\nChrominanz-Rauschreduzierung in\nAbhängigkeit der Farbsättigung.
|
||||
TP_DIRPYRDENOISE_LABEL;Rauschreduzierung
|
||||
TP_METADATA_EDIT;Veränderte Daten
|
||||
TP_METADATA_MODE;Kopiermodus
|
||||
TP_METADATA_STRIP;Keine
|
||||
TP_METADATA_TUNNEL;Unveränderte Daten
|
||||
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.
|
||||
|
@@ -2444,7 +2444,7 @@ TP_WBALANCE_WATER_HEADER;UnderWater
|
||||
ZOOMPANEL_100;(100%)
|
||||
ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
|
||||
ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: <b>z</b>
|
||||
ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>Alt</b>-<b>f</b>
|
||||
ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: <b>f</b>
|
||||
ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>f</b>
|
||||
ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: <b>Alt</b>-<b>f</b>
|
||||
ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: <b>+</b>
|
||||
ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: <b>-</b>
|
||||
|
@@ -2,7 +2,7 @@
|
||||
This file is part of RawTherapee.
|
||||
|
||||
Copyright (c) 2016-2017 TooWaBoo
|
||||
Version 2.60
|
||||
Version 2.61
|
||||
|
||||
RawTherapee is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -213,10 +213,6 @@ dialog frame > label {
|
||||
padding-left: 0.91667em;
|
||||
}
|
||||
|
||||
#BatchQueueButtons {
|
||||
margin-top: 0.66667em;
|
||||
}
|
||||
|
||||
frame > label {
|
||||
margin: 0;
|
||||
padding: 0.5em 0;
|
||||
@@ -637,6 +633,11 @@ scale:disabled trough {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
#BatchQueueButtonsMainContainer scale:disabled slider,
|
||||
#BatchQueueButtonsMainContainer scale:disabled trough {
|
||||
background-color: shade(@bg-light-grey,.85);
|
||||
}
|
||||
|
||||
/*** end ***************************************************************************************/
|
||||
|
||||
/*** Progressbar *******************************************************************************/
|
||||
@@ -1225,6 +1226,51 @@ popover.background modelbutton:hover {
|
||||
}
|
||||
/** end ****************************************************************************************/
|
||||
|
||||
/*** Switch ***********************************************************************************/
|
||||
switch {
|
||||
min-height: 2.16667em;
|
||||
min-width: 11em;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-radius: 0.2em;
|
||||
background-image: none;
|
||||
box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, 0.08), 0 0.08334em rgba(242, 242, 242, 0.1);
|
||||
border: 0.08334em solid @bg-entry-border;
|
||||
background-color: @bg-scale-entry;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
switch slider {
|
||||
border: 0.08334em solid @bg-entry-border;
|
||||
background-image: linear-gradient(to bottom, shade (@accent-color2,1.15), shade (@accent-color2,.85));
|
||||
border: 0.08334em solid @bg-entry-border;
|
||||
box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.1);
|
||||
border-radius: 0.2em 0 0 0.2em;
|
||||
}
|
||||
switch:checked slider{
|
||||
border-radius: 0 0.2em 0.2em 0;
|
||||
}
|
||||
|
||||
switch:hover slider {
|
||||
background-image: linear-gradient(to bottom, shade (@accent-color2,1.20), shade (@accent-color2,.90));
|
||||
}
|
||||
|
||||
switch:checked {
|
||||
background-color: rgb(140,0,20);
|
||||
color: @headline-big;
|
||||
}
|
||||
|
||||
switch:disabled:not(:checked) {
|
||||
box-shadow: none;
|
||||
background-image: none;
|
||||
background-color: shade (@bg-light-grey, .85);
|
||||
}
|
||||
switch:disabled slider {
|
||||
background-image: linear-gradient(to bottom, rgba(125,125,125,.4), rgba(60,60,60,.4));
|
||||
background-color: shade (@bg-light-grey, .85);
|
||||
}
|
||||
/** end ****************************************************************************************/
|
||||
|
||||
/*** Buttons ***********************************************************************************/
|
||||
button {
|
||||
min-height: 2.16667em;
|
||||
@@ -1355,6 +1401,7 @@ button.MiddleH {
|
||||
/**/
|
||||
|
||||
/* Button base format for Toolbox and dialogs */
|
||||
#ToolPanelNotebook > stack > box > box > combobox .combo,
|
||||
dialog button,
|
||||
#MyExpander button,
|
||||
#BatchQueueButtonsMainContainer button {
|
||||
@@ -1371,7 +1418,7 @@ combobox .combo,
|
||||
dialog combobox .combo,
|
||||
#ToolPanelNotebook combobox .combo,
|
||||
#BatchQueueButtonsMainContainer combobox .combo {
|
||||
padding: 0 0.208334em;
|
||||
padding: 0 0.26667em;
|
||||
}
|
||||
/**/
|
||||
|
||||
@@ -1386,6 +1433,7 @@ dialog combobox .combo,
|
||||
#MyExpander combobox + label */ {
|
||||
margin-left: 0.16667em;
|
||||
}
|
||||
|
||||
#MyExpander label + * > button:not(.flat).Left,
|
||||
#MyExpander label + combobox:not(:first-child):not(:only-child),
|
||||
#MyExpander label + button:not(.flat):not(spinbutton) {
|
||||
@@ -1455,13 +1503,6 @@ messagedialog .dialog-action-area button:not(:only-child):nth-child(2) {
|
||||
}
|
||||
/**/
|
||||
|
||||
/* Queue */
|
||||
#BatchQueueButtons button {
|
||||
min-height: 2.16667em;
|
||||
min-width: 10em;
|
||||
}
|
||||
/**/
|
||||
|
||||
/* View & Filechooser Buttons */
|
||||
dialog .view button,
|
||||
window .view button {
|
||||
|
@@ -1277,6 +1277,10 @@ inline void SatAndValueBlendingToneCurve::Apply(float& r, float& g, float& b) co
|
||||
const float lum = (r + g + b) / 3.f;
|
||||
const float newLum = lutToneCurve[lum];
|
||||
|
||||
if (newLum == lum) {
|
||||
return;
|
||||
}
|
||||
|
||||
float h, s, v;
|
||||
Color::rgb2hsvtc(r, g, b, h, s, v);
|
||||
|
||||
|
@@ -25,6 +25,8 @@ constexpr double RT_NAN = std::numeric_limits<double>::quiet_NaN();
|
||||
constexpr float RT_PI_F = RT_PI;
|
||||
constexpr float RT_PI_F_2 = RT_PI_2;
|
||||
constexpr float RT_PI_F_180 = RT_PI_180;
|
||||
constexpr float RT_1_PI_F = RT_1_PI;
|
||||
constexpr float RT_2_PI_F = RT_2_PI;
|
||||
|
||||
constexpr float RT_INFINITY_F = std::numeric_limits<float>::infinity();
|
||||
constexpr float RT_NAN_F = std::numeric_limits<float>::quiet_NaN();
|
||||
|
@@ -923,9 +923,8 @@ __inline float mulsignf(float x, float y) {
|
||||
return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31)));
|
||||
}
|
||||
|
||||
__inline float signf(float d) { return mulsignf(1, d); }
|
||||
__inline float signf(float d) { return copysign(1, d); }
|
||||
__inline float mlaf(float x, float y, float z) { return x * y + z; }
|
||||
__inline float xrintf(float x) { return x < 0 ? (int)(x - 0.5f) : (int)(x + 0.5f); }
|
||||
|
||||
__inline int xisnanf(float x) { return x != x; }
|
||||
__inline int xisinff(float x) { return x == rtengine::RT_INFINITY_F || x == -rtengine::RT_INFINITY_F; }
|
||||
@@ -984,7 +983,7 @@ __inline float xsinf(float d) {
|
||||
int q;
|
||||
float u, s;
|
||||
|
||||
q = (int)xrintf(d * (float)rtengine::RT_1_PI);
|
||||
q = rint(d * rtengine::RT_1_PI_F);
|
||||
|
||||
d = mlaf(q, -PI4_Af*4, d);
|
||||
d = mlaf(q, -PI4_Bf*4, d);
|
||||
@@ -1009,7 +1008,7 @@ __inline float xcosf(float d) {
|
||||
int q;
|
||||
float u, s;
|
||||
|
||||
q = 1 + 2*(int)xrintf(d * (float)rtengine::RT_1_PI - 0.5f);
|
||||
q = 1 + 2*rint(d * rtengine::RT_1_PI_F - 0.5f);
|
||||
|
||||
d = mlaf(q, -PI4_Af*2, d);
|
||||
d = mlaf(q, -PI4_Bf*2, d);
|
||||
@@ -1035,7 +1034,7 @@ __inline float2 xsincosf(float d) {
|
||||
float u, s, t;
|
||||
float2 r;
|
||||
|
||||
q = (int)rint(d * ((float)(2 * rtengine::RT_1_PI)));
|
||||
q = rint(d * rtengine::RT_2_PI_F);
|
||||
|
||||
s = d;
|
||||
|
||||
@@ -1076,7 +1075,7 @@ __inline float xtanf(float d) {
|
||||
int q;
|
||||
float u, s, x;
|
||||
|
||||
q = (int)xrintf(d * (float)(2 * rtengine::RT_1_PI));
|
||||
q = rint(d * (float)(2 * rtengine::RT_1_PI));
|
||||
|
||||
x = d;
|
||||
|
||||
@@ -1202,7 +1201,7 @@ __inline float xlogf(float d) {
|
||||
__inline float xexpf(float d) {
|
||||
if(d<=-104.0f) return 0.0f;
|
||||
|
||||
int q = (int)xrintf(d * R_LN2f);
|
||||
int q = rint(d * R_LN2f);
|
||||
float s, u;
|
||||
|
||||
s = mlaf(q, -L2Uf, d);
|
||||
|
@@ -1643,7 +1643,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
|
||||
return true;
|
||||
|
||||
case GDK_KEY_f:
|
||||
iareapanel->imageArea->zoomPanel->zoomFitClicked();
|
||||
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
|
||||
return true;
|
||||
|
||||
case GDK_KEY_F5:
|
||||
@@ -1718,7 +1718,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event)
|
||||
return true;
|
||||
|
||||
case GDK_KEY_f:
|
||||
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
|
||||
iareapanel->imageArea->zoomPanel->zoomFitClicked();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -94,10 +94,34 @@ struct LocaleToLang : private std::map<std::pair<Glib::ustring, Glib::ustring>,
|
||||
|
||||
return "default";
|
||||
}
|
||||
|
||||
std::string getLocale(const Glib::ustring &language) const
|
||||
{
|
||||
for (auto &p : *this) {
|
||||
if (p.second == language) {
|
||||
std::string ret = p.first.first;
|
||||
if (!p.first.second.empty()) {
|
||||
ret += "_" + p.first.second;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return "C";
|
||||
}
|
||||
};
|
||||
|
||||
const LocaleToLang localeToLang;
|
||||
|
||||
void setGtkLanguage(const Glib::ustring &language)
|
||||
{
|
||||
auto l = localeToLang.getLocale(language);
|
||||
#ifdef WIN32
|
||||
putenv(("LANG=" + l).c_str());
|
||||
#else
|
||||
setenv("LANG", l.c_str(), true);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
MultiLangMgr langMgr;
|
||||
@@ -106,8 +130,10 @@ MultiLangMgr::MultiLangMgr ()
|
||||
{
|
||||
}
|
||||
|
||||
void MultiLangMgr::load (const std::vector<Glib::ustring> &fnames)
|
||||
void MultiLangMgr::load(const Glib::ustring &language, const std::vector<Glib::ustring> &fnames)
|
||||
{
|
||||
setGtkLanguage(language);
|
||||
|
||||
translations.clear();
|
||||
|
||||
for (const auto& fname : fnames) {
|
||||
|
@@ -30,7 +30,7 @@ class MultiLangMgr
|
||||
public:
|
||||
MultiLangMgr ();
|
||||
|
||||
void load(const std::vector<Glib::ustring> &fnames);
|
||||
void load(const Glib::ustring &language, const std::vector<Glib::ustring> &fnames);
|
||||
Glib::ustring getStr(const std::string& key) const;
|
||||
static bool isOSLanguageDetectSupported();
|
||||
static Glib::ustring getOSUserLanguage();
|
||||
|
@@ -2386,7 +2386,7 @@ void Options::load (bool lightweight)
|
||||
}
|
||||
}
|
||||
|
||||
langMgr.load ({localeTranslation, languageTranslation, defaultTranslation});
|
||||
langMgr.load (options.language, {localeTranslation, languageTranslation, defaultTranslation});
|
||||
|
||||
rtengine::init (&options.rtSettings, argv0, rtdir, !lightweight);
|
||||
}
|
||||
|
Reference in New Issue
Block a user