File indexing completed on 2025-04-27 03:58:40

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2023-08-16
0007  * Description : Spell-check and localize Settings Container.
0008  *
0009  * SPDX-FileCopyrightText: 2021-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0010  *
0011  * SPDX-License-Identifier: GPL-2.0-or-later
0012  *
0013  * ============================================================ */
0014 
0015 #include "localizecontainer.h"
0016 
0017 // KDE includes
0018 
0019 #include <kconfiggroup.h>
0020 
0021 // Local includes
0022 
0023 #include "localizesettings.h"
0024 #include "digikam_debug.h"
0025 
0026 namespace Digikam
0027 {
0028 
0029 LocalizeContainer::LocalizeContainer()
0030     : enableSpellCheck(false),
0031       translatorEngine(DOnlineTranslator::Google)
0032 {
0033 }
0034 
0035 LocalizeContainer::~LocalizeContainer()
0036 {
0037 }
0038 
0039 void LocalizeContainer::readFromConfig(KConfigGroup& group)
0040 {
0041     enableSpellCheck = group.readEntry("EnableSpellCheck", false);
0042     defaultLanguage  = group.readEntry("DefaultLanguage",  QString());      // empty for auto-detect
0043 
0044     ignoredWords     = group.readEntry("IgnoredWords", QStringList() << QLatin1String("digiKam")
0045                                                                      << QLatin1String("Showfoto")
0046                                                                      << QLatin1String("Apple")
0047                                                                      << QLatin1String("Nikon")
0048                                                                      << QLatin1String("Android")
0049                                                                      << QLatin1String("Canon")
0050                                                                      << QLatin1String("Sony")
0051                                                                      << QLatin1String("Samsung")
0052                                                                      << QLatin1String("Panasonic")
0053                                                                      << QLatin1String("Olympus")
0054                                                                      << QLatin1String("Exif")
0055                                                                      << QLatin1String("IPTC")
0056                                                                      << QLatin1String("Xmp"));
0057     ignoredWords.removeDuplicates();
0058 
0059     translatorEngine = (DOnlineTranslator::Engine)group.readEntry("TranslatorEngine", (int)DOnlineTranslator::Engine::Google);
0060     translatorLang   = group.readEntry("TranslatorLang", QStringList() << QLatin1String("en-US")
0061                                                                        << QLatin1String("fr-FR")
0062                                                                        << QLatin1String("es-ES")
0063                                                                        << QLatin1String("it-IT")
0064                                                                        << QLatin1String("de-DE")
0065                                                                        << QLatin1String("pt-PT")
0066     );
0067 
0068     alternativeLang  = group.readEntry("AlternativeLang", QStringList() << QLatin1String("x-default")
0069                                                                         << QLatin1String("en-US")
0070                                                                         << QLatin1String("fr-FR")
0071                                                                         << QLatin1String("es-ES")
0072                                                                         << QLatin1String("it-IT")
0073                                                                         << QLatin1String("de-DE")
0074                                                                         << QLatin1String("pt-PT")
0075     );
0076 }
0077 
0078 void LocalizeContainer::writeToConfig(KConfigGroup& group) const
0079 {
0080     group.writeEntry("EnableSpellCheck", enableSpellCheck);
0081     group.writeEntry("DefaultLanguage",  defaultLanguage);
0082     group.writeEntry("IgnoredWords",     ignoredWords);
0083     group.writeEntry("TranslatorEngine", (int)translatorEngine);
0084     group.writeEntry("TranslatorLang",   translatorLang);
0085     group.writeEntry("AlternativeLang",  alternativeLang);
0086     group.sync();
0087 }
0088 
0089 QDebug operator<<(QDebug dbg, const LocalizeContainer& inf)
0090 {
0091     dbg.nospace() << "[LocalizeContainer] enableSpellCheck("
0092                   << inf.enableSpellCheck << "), "
0093                   << "defaultLanguage("
0094                   << inf.defaultLanguage << "), "
0095                   << "ignoredWords("
0096                   << inf.ignoredWords << "), "
0097                   << "translatorEngine("
0098                   << inf.translatorEngine << "), "
0099                   << "translatorLang("
0100                   << inf.translatorLang << "), "
0101                   << "alternativeLang("
0102                   << inf.alternativeLang << "), ";
0103     return dbg.space();
0104 }
0105 
0106 } // namespace Digikam