File indexing completed on 2025-12-07 04:08:38
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2018-02-22 0007 * Description : A text translator using web-services - Private members. 0008 * 0009 * SPDX-FileCopyrightText: 2018-2022 by Hennadii Chernyshchyk <genaloner at gmail dot com> 0010 * SPDX-FileCopyrightText: 2021-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0011 * 0012 * SPDX-License-Identifier: GPL-2.0-or-later 0013 * 0014 * ============================================================ */ 0015 0016 #include "donlinetranslator_p.h" 0017 0018 namespace Digikam 0019 { 0020 0021 const QMap<DOnlineTranslator::Language, QString> DOnlineTranslator::Private::s_genericLanguageCodes = 0022 { 0023 { DOnlineTranslator::Auto, QStringLiteral("auto") }, 0024 { DOnlineTranslator::Afrikaans, QStringLiteral("af") }, 0025 { DOnlineTranslator::Albanian, QStringLiteral("sq") }, 0026 { DOnlineTranslator::Amharic, QStringLiteral("am") }, 0027 { DOnlineTranslator::Arabic, QStringLiteral("ar") }, 0028 { DOnlineTranslator::Armenian, QStringLiteral("hy") }, 0029 { DOnlineTranslator::Azerbaijani, QStringLiteral("az") }, 0030 { DOnlineTranslator::Bashkir, QStringLiteral("ba") }, 0031 { DOnlineTranslator::Basque, QStringLiteral("eu") }, 0032 { DOnlineTranslator::Belarusian, QStringLiteral("be") }, 0033 { DOnlineTranslator::Bengali, QStringLiteral("bn") }, 0034 { DOnlineTranslator::Bosnian, QStringLiteral("bs") }, 0035 { DOnlineTranslator::Bulgarian, QStringLiteral("bg") }, 0036 { DOnlineTranslator::Cantonese, QStringLiteral("yue") }, 0037 { DOnlineTranslator::Catalan, QStringLiteral("ca") }, 0038 { DOnlineTranslator::Cebuano, QStringLiteral("ceb") }, 0039 { DOnlineTranslator::Chichewa, QStringLiteral("ny") }, 0040 { DOnlineTranslator::Corsican, QStringLiteral("co") }, 0041 { DOnlineTranslator::Croatian, QStringLiteral("hr") }, 0042 { DOnlineTranslator::Czech, QStringLiteral("cs") }, 0043 { DOnlineTranslator::Danish, QStringLiteral("da") }, 0044 { DOnlineTranslator::Dutch, QStringLiteral("nl") }, 0045 { DOnlineTranslator::English, QStringLiteral("en") }, 0046 { DOnlineTranslator::Esperanto, QStringLiteral("eo") }, 0047 { DOnlineTranslator::Estonian, QStringLiteral("et") }, 0048 { DOnlineTranslator::Fijian, QStringLiteral("fj") }, 0049 { DOnlineTranslator::Filipino, QStringLiteral("fil") }, 0050 { DOnlineTranslator::Finnish, QStringLiteral("fi") }, 0051 { DOnlineTranslator::French, QStringLiteral("fr") }, 0052 { DOnlineTranslator::Frisian, QStringLiteral("fy") }, 0053 { DOnlineTranslator::Galician, QStringLiteral("gl") }, 0054 { DOnlineTranslator::Georgian, QStringLiteral("ka") }, 0055 { DOnlineTranslator::German, QStringLiteral("de") }, 0056 { DOnlineTranslator::Greek, QStringLiteral("el") }, 0057 { DOnlineTranslator::Gujarati, QStringLiteral("gu") }, 0058 { DOnlineTranslator::HaitianCreole, QStringLiteral("ht") }, 0059 { DOnlineTranslator::Hausa, QStringLiteral("ha") }, 0060 { DOnlineTranslator::Hawaiian, QStringLiteral("haw") }, 0061 { DOnlineTranslator::Hebrew, QStringLiteral("he") }, 0062 { DOnlineTranslator::HillMari, QStringLiteral("mrj") }, 0063 { DOnlineTranslator::Hindi, QStringLiteral("hi") }, 0064 { DOnlineTranslator::Hmong, QStringLiteral("hmn") }, 0065 { DOnlineTranslator::Hungarian, QStringLiteral("hu") }, 0066 { DOnlineTranslator::Icelandic, QStringLiteral("is") }, 0067 { DOnlineTranslator::Igbo, QStringLiteral("ig") }, 0068 { DOnlineTranslator::Indonesian, QStringLiteral("id") }, 0069 { DOnlineTranslator::Irish, QStringLiteral("ga") }, 0070 { DOnlineTranslator::Italian, QStringLiteral("it") }, 0071 { DOnlineTranslator::Japanese, QStringLiteral("ja") }, 0072 { DOnlineTranslator::Javanese, QStringLiteral("jw") }, 0073 { DOnlineTranslator::Kannada, QStringLiteral("kn") }, 0074 { DOnlineTranslator::Kazakh, QStringLiteral("kk") }, 0075 { DOnlineTranslator::Khmer, QStringLiteral("km") }, 0076 { DOnlineTranslator::Kinyarwanda, QStringLiteral("rw") }, 0077 { DOnlineTranslator::Klingon, QStringLiteral("tlh") }, 0078 { DOnlineTranslator::KlingonPlqaD, QStringLiteral("tlh-Qaak") }, 0079 { DOnlineTranslator::Korean, QStringLiteral("ko") }, 0080 { DOnlineTranslator::Kurdish, QStringLiteral("ku") }, 0081 { DOnlineTranslator::Kyrgyz, QStringLiteral("ky") }, 0082 { DOnlineTranslator::Lao, QStringLiteral("lo") }, 0083 { DOnlineTranslator::Latin, QStringLiteral("la") }, 0084 { DOnlineTranslator::Latvian, QStringLiteral("lv") }, 0085 { DOnlineTranslator::LevantineArabic, QStringLiteral("apc") }, 0086 { DOnlineTranslator::Lithuanian, QStringLiteral("lt") }, 0087 { DOnlineTranslator::Luxembourgish, QStringLiteral("lb") }, 0088 { DOnlineTranslator::Macedonian, QStringLiteral("mk") }, 0089 { DOnlineTranslator::Malagasy, QStringLiteral("mg") }, 0090 { DOnlineTranslator::Malay, QStringLiteral("ms") }, 0091 { DOnlineTranslator::Malayalam, QStringLiteral("ml") }, 0092 { DOnlineTranslator::Maltese, QStringLiteral("mt") }, 0093 { DOnlineTranslator::Maori, QStringLiteral("mi") }, 0094 { DOnlineTranslator::Marathi, QStringLiteral("mr") }, 0095 { DOnlineTranslator::Mari, QStringLiteral("mhr") }, 0096 { DOnlineTranslator::Mongolian, QStringLiteral("mn") }, 0097 { DOnlineTranslator::Myanmar, QStringLiteral("my") }, 0098 { DOnlineTranslator::Nepali, QStringLiteral("ne") }, 0099 { DOnlineTranslator::Norwegian, QStringLiteral("no") }, 0100 { DOnlineTranslator::Oriya, QStringLiteral("or") }, 0101 { DOnlineTranslator::Papiamento, QStringLiteral("pap") }, 0102 { DOnlineTranslator::Pashto, QStringLiteral("ps") }, 0103 { DOnlineTranslator::Persian, QStringLiteral("fa") }, 0104 { DOnlineTranslator::Polish, QStringLiteral("pl") }, 0105 { DOnlineTranslator::Portuguese, QStringLiteral("pt") }, 0106 { DOnlineTranslator::Punjabi, QStringLiteral("pa") }, 0107 { DOnlineTranslator::QueretaroOtomi, QStringLiteral("otq") }, 0108 { DOnlineTranslator::Romanian, QStringLiteral("ro") }, 0109 { DOnlineTranslator::Russian, QStringLiteral("ru") }, 0110 { DOnlineTranslator::Samoan, QStringLiteral("sm") }, 0111 { DOnlineTranslator::ScotsGaelic, QStringLiteral("gd") }, 0112 { DOnlineTranslator::SerbianCyrillic, QStringLiteral("sr") }, 0113 { DOnlineTranslator::SerbianLatin, QStringLiteral("sr-Latin") }, 0114 { DOnlineTranslator::Sesotho, QStringLiteral("st") }, 0115 { DOnlineTranslator::Shona, QStringLiteral("sn") }, 0116 { DOnlineTranslator::SimplifiedChinese, QStringLiteral("zh-CN") }, 0117 { DOnlineTranslator::Sindhi, QStringLiteral("sd") }, 0118 { DOnlineTranslator::Sinhala, QStringLiteral("si") }, 0119 { DOnlineTranslator::Slovak, QStringLiteral("sk") }, 0120 { DOnlineTranslator::Slovenian, QStringLiteral("sl") }, 0121 { DOnlineTranslator::Somali, QStringLiteral("so") }, 0122 { DOnlineTranslator::Spanish, QStringLiteral("es") }, 0123 { DOnlineTranslator::Sundanese, QStringLiteral("su") }, 0124 { DOnlineTranslator::Swahili, QStringLiteral("sw") }, 0125 { DOnlineTranslator::Swedish, QStringLiteral("sv") }, 0126 { DOnlineTranslator::Tagalog, QStringLiteral("tl") }, 0127 { DOnlineTranslator::Tahitian, QStringLiteral("ty") }, 0128 { DOnlineTranslator::Tajik, QStringLiteral("tg") }, 0129 { DOnlineTranslator::Tamil, QStringLiteral("ta") }, 0130 { DOnlineTranslator::Tatar, QStringLiteral("tt") }, 0131 { DOnlineTranslator::Telugu, QStringLiteral("te") }, 0132 { DOnlineTranslator::Thai, QStringLiteral("th") }, 0133 { DOnlineTranslator::Tongan, QStringLiteral("to") }, 0134 { DOnlineTranslator::TraditionalChinese, QStringLiteral("zh-TW") }, 0135 { DOnlineTranslator::Turkish, QStringLiteral("tr") }, 0136 { DOnlineTranslator::Turkmen, QStringLiteral("tk") }, 0137 { DOnlineTranslator::Udmurt, QStringLiteral("udm") }, 0138 { DOnlineTranslator::Uighur, QStringLiteral("ug") }, 0139 { DOnlineTranslator::Ukrainian, QStringLiteral("uk") }, 0140 { DOnlineTranslator::Urdu, QStringLiteral("ur") }, 0141 { DOnlineTranslator::Uzbek, QStringLiteral("uz") }, 0142 { DOnlineTranslator::Vietnamese, QStringLiteral("vi") }, 0143 { DOnlineTranslator::Welsh, QStringLiteral("cy") }, 0144 { DOnlineTranslator::Xhosa, QStringLiteral("xh") }, 0145 { DOnlineTranslator::Yiddish, QStringLiteral("yi") }, 0146 { DOnlineTranslator::Yoruba, QStringLiteral("yo") }, 0147 { DOnlineTranslator::YucatecMaya, QStringLiteral("yua") }, 0148 { DOnlineTranslator::Zulu, QStringLiteral("zu") } 0149 }; 0150 0151 const QMap<DOnlineTranslator::Language, QString> DOnlineTranslator::Private::s_googleLanguageCodes = 0152 { 0153 { DOnlineTranslator::Hebrew, QStringLiteral("iw") } 0154 }; 0155 0156 const QMap<DOnlineTranslator::Language, QString> DOnlineTranslator::Private::s_yandexLanguageCodes = 0157 { 0158 { DOnlineTranslator::SimplifiedChinese, QStringLiteral("zn") }, 0159 { DOnlineTranslator::Javanese, QStringLiteral("jv") } 0160 }; 0161 0162 const QMap<DOnlineTranslator::Language, QString> DOnlineTranslator::Private::s_bingLanguageCodes = 0163 { 0164 { DOnlineTranslator::Auto, QStringLiteral("auto-detect") }, 0165 { DOnlineTranslator::Bosnian, QStringLiteral("bs-Latn") }, 0166 { DOnlineTranslator::SerbianCyrillic, QStringLiteral("sr-Cyrl") }, 0167 { DOnlineTranslator::SimplifiedChinese, QStringLiteral("zh-Hans") }, 0168 { DOnlineTranslator::TraditionalChinese, QStringLiteral("zh-Hant") }, 0169 { DOnlineTranslator::Hmong, QStringLiteral("mww") } 0170 }; 0171 0172 const QMap<DOnlineTranslator::Language, QString> DOnlineTranslator::Private::s_lingvaLanguageCodes = 0173 { 0174 { DOnlineTranslator::SimplifiedChinese, QStringLiteral("zh") }, 0175 { DOnlineTranslator::TraditionalChinese, QStringLiteral("zh_HANT") } 0176 }; 0177 0178 // -------------------------------------------------------------------------------------------- 0179 0180 /* 0181 * NOTE: these lists of RFC3066 conversion map are mostly usee in AltLangStrEdit class. 0182 * Any changes here must be also backported to the list used by AltLangStrEdit class. 0183 */ 0184 0185 const QMap<QString, QString> DOnlineTranslator::Private::s_rfc3066LanguageCodesGeneric = 0186 { 0187 { QLatin1String("af-ZA"), QLatin1String("af") }, 0188 { QLatin1String("am-ET"), QLatin1String("am") }, 0189 { QLatin1String("apc-TR"), QLatin1String("apc") }, 0190 { QLatin1String("ar-AE"), QLatin1String("ar") }, 0191 { QLatin1String("ar-BH"), QLatin1String("ar") }, 0192 { QLatin1String("ar-DZ"), QLatin1String("ar") }, 0193 { QLatin1String("ar-EG"), QLatin1String("ar") }, 0194 { QLatin1String("ar-IL"), QLatin1String("ar") }, 0195 { QLatin1String("ar-IQ"), QLatin1String("ar") }, 0196 { QLatin1String("ar-JO"), QLatin1String("ar") }, 0197 { QLatin1String("ar-KW"), QLatin1String("ar") }, 0198 { QLatin1String("ar-LB"), QLatin1String("ar") }, 0199 { QLatin1String("ar-LY"), QLatin1String("ar") }, 0200 { QLatin1String("ar-MA"), QLatin1String("ar") }, 0201 { QLatin1String("ar-MR"), QLatin1String("ar") }, 0202 { QLatin1String("ar-OM"), QLatin1String("ar") }, 0203 { QLatin1String("ar-PS"), QLatin1String("ar") }, 0204 { QLatin1String("ar-QA"), QLatin1String("ar") }, 0205 { QLatin1String("ar-SA"), QLatin1String("ar") }, 0206 { QLatin1String("ar-SD"), QLatin1String("ar") }, 0207 { QLatin1String("ar-SO"), QLatin1String("ar") }, 0208 { QLatin1String("ar-SY"), QLatin1String("ar") }, 0209 { QLatin1String("ar-TD"), QLatin1String("ar") }, 0210 { QLatin1String("ar-TN"), QLatin1String("ar") }, 0211 { QLatin1String("ar-YE"), QLatin1String("ar") }, 0212 // { QLatin1String("as-IN"), QLatin1String("") }, 0213 { QLatin1String("az-AZ"), QLatin1String("az") }, 0214 { QLatin1String("ba-RU"), QLatin1String("ba") }, 0215 { QLatin1String("be-BY"), QLatin1String("be") }, 0216 { QLatin1String("bn-BD"), QLatin1String("bn") }, 0217 { QLatin1String("bn-IN"), QLatin1String("bn") }, 0218 { QLatin1String("bn-SG"), QLatin1String("bn") }, 0219 // { QLatin1String("bo-BT"), QLatin1String("") }, 0220 // { QLatin1String("bo-CN"), QLatin1String("") }, 0221 { QLatin1String("bs-BA"), QLatin1String("bs") }, 0222 { QLatin1String("bg-BG"), QLatin1String("bg") }, 0223 // { QLatin1String("br-FR"), QLatin1String("") }, 0224 { QLatin1String("ca-ES"), QLatin1String("ca") }, 0225 { QLatin1String("ca-AD"), QLatin1String("ca") }, 0226 { QLatin1String("ca-FR"), QLatin1String("ca") }, 0227 { QLatin1String("ceb-PH"), QLatin1String("ceb") }, 0228 // { QLatin1String("ch-GU"), QLatin1String("") }, 0229 // { QLatin1String("ch-MP"), QLatin1String("") }, 0230 { QLatin1String("co-FR"), QLatin1String("co") }, 0231 { QLatin1String("cs-CZ"), QLatin1String("cs") }, 0232 { QLatin1String("cy-GB"), QLatin1String("cy") }, 0233 { QLatin1String("da-DK"), QLatin1String("da") }, 0234 { QLatin1String("da-GL"), QLatin1String("da") }, 0235 { QLatin1String("de-DE"), QLatin1String("de") }, 0236 { QLatin1String("de-DK"), QLatin1String("de") }, 0237 { QLatin1String("de-LI"), QLatin1String("de") }, 0238 { QLatin1String("de-AT"), QLatin1String("de") }, 0239 { QLatin1String("de-LU"), QLatin1String("de") }, 0240 { QLatin1String("de-CH"), QLatin1String("de") }, 0241 { QLatin1String("el-CY"), QLatin1String("el") }, 0242 { QLatin1String("el-GR"), QLatin1String("el") }, 0243 { QLatin1String("en-AG"), QLatin1String("en") }, 0244 { QLatin1String("en-AI"), QLatin1String("en") }, 0245 { QLatin1String("en-AS"), QLatin1String("en") }, 0246 { QLatin1String("en-AU"), QLatin1String("en") }, 0247 { QLatin1String("en-BB"), QLatin1String("en") }, 0248 { QLatin1String("en-BM"), QLatin1String("en") }, 0249 { QLatin1String("en-BN"), QLatin1String("en") }, 0250 { QLatin1String("en-BS"), QLatin1String("en") }, 0251 { QLatin1String("en-BW"), QLatin1String("en") }, 0252 { QLatin1String("en-BZ"), QLatin1String("en") }, 0253 { QLatin1String("en-CA"), QLatin1String("en") }, 0254 { QLatin1String("en-CB"), QLatin1String("en") }, 0255 { QLatin1String("en-CK"), QLatin1String("en") }, 0256 { QLatin1String("en-CM"), QLatin1String("en") }, 0257 { QLatin1String("en-DM"), QLatin1String("en") }, 0258 { QLatin1String("en-ER"), QLatin1String("en") }, 0259 { QLatin1String("en-ET"), QLatin1String("en") }, 0260 { QLatin1String("en-FJ"), QLatin1String("en") }, 0261 { QLatin1String("en-FK"), QLatin1String("en") }, 0262 { QLatin1String("en-FM"), QLatin1String("en") }, 0263 { QLatin1String("en-GD"), QLatin1String("en") }, 0264 { QLatin1String("en-GH"), QLatin1String("en") }, 0265 { QLatin1String("en-GI"), QLatin1String("en") }, 0266 { QLatin1String("en-GM"), QLatin1String("en") }, 0267 { QLatin1String("en-GU"), QLatin1String("en") }, 0268 { QLatin1String("en-GY"), QLatin1String("en") }, 0269 { QLatin1String("en-IE"), QLatin1String("en") }, 0270 { QLatin1String("en-IL"), QLatin1String("en") }, 0271 { QLatin1String("en-IN"), QLatin1String("en") }, 0272 { QLatin1String("en-IO"), QLatin1String("en") }, 0273 { QLatin1String("en-JM"), QLatin1String("en") }, 0274 { QLatin1String("en-KR"), QLatin1String("en") }, 0275 { QLatin1String("en-KI"), QLatin1String("en") }, 0276 { QLatin1String("en-KN"), QLatin1String("en") }, 0277 { QLatin1String("en-KY"), QLatin1String("en") }, 0278 { QLatin1String("en-LC"), QLatin1String("en") }, 0279 { QLatin1String("en-LR"), QLatin1String("en") }, 0280 { QLatin1String("en-LS"), QLatin1String("en") }, 0281 { QLatin1String("en-MP"), QLatin1String("en") }, 0282 { QLatin1String("en-MS"), QLatin1String("en") }, 0283 { QLatin1String("en-MT"), QLatin1String("en") }, 0284 { QLatin1String("en-MU"), QLatin1String("en") }, 0285 { QLatin1String("en-MW"), QLatin1String("en") }, 0286 { QLatin1String("en-MY"), QLatin1String("en") }, 0287 { QLatin1String("en-NA"), QLatin1String("en") }, 0288 { QLatin1String("en-NF"), QLatin1String("en") }, 0289 { QLatin1String("en-NG"), QLatin1String("en") }, 0290 { QLatin1String("en-NR"), QLatin1String("en") }, 0291 { QLatin1String("en-NU"), QLatin1String("en") }, 0292 { QLatin1String("en-NZ"), QLatin1String("en") }, 0293 { QLatin1String("en-PG"), QLatin1String("en") }, 0294 { QLatin1String("en-PH"), QLatin1String("en") }, 0295 { QLatin1String("en-PK"), QLatin1String("en") }, 0296 { QLatin1String("en-PN"), QLatin1String("en") }, 0297 { QLatin1String("en-PR"), QLatin1String("en") }, 0298 { QLatin1String("en-PW"), QLatin1String("en") }, 0299 { QLatin1String("en-RW"), QLatin1String("en") }, 0300 { QLatin1String("en-SB"), QLatin1String("en") }, 0301 { QLatin1String("en-SC"), QLatin1String("en") }, 0302 { QLatin1String("en-SG"), QLatin1String("en") }, 0303 { QLatin1String("en-SH"), QLatin1String("en") }, 0304 { QLatin1String("en-SL"), QLatin1String("en") }, 0305 { QLatin1String("en-SO"), QLatin1String("en") }, 0306 { QLatin1String("en-SZ"), QLatin1String("en") }, 0307 { QLatin1String("en-TC"), QLatin1String("en") }, 0308 { QLatin1String("en-TK"), QLatin1String("en") }, 0309 { QLatin1String("en-TO"), QLatin1String("en") }, 0310 { QLatin1String("en-TT"), QLatin1String("en") }, 0311 { QLatin1String("en-UG"), QLatin1String("en") }, 0312 { QLatin1String("en-US"), QLatin1String("en") }, 0313 { QLatin1String("en-VC"), QLatin1String("en") }, 0314 { QLatin1String("en-VG"), QLatin1String("en") }, 0315 { QLatin1String("en-VI"), QLatin1String("en") }, 0316 { QLatin1String("en-VU"), QLatin1String("en") }, 0317 { QLatin1String("en-WS"), QLatin1String("en") }, 0318 { QLatin1String("en-ZA"), QLatin1String("en") }, 0319 { QLatin1String("en-ZM"), QLatin1String("en") }, 0320 { QLatin1String("en-ZW"), QLatin1String("en") }, 0321 { QLatin1String("eo-FR"), QLatin1String("eo") }, 0322 { QLatin1String("et-EE"), QLatin1String("et") }, 0323 { QLatin1String("es-AR"), QLatin1String("es") }, 0324 { QLatin1String("es-BO"), QLatin1String("es") }, 0325 { QLatin1String("es-CL"), QLatin1String("es") }, 0326 { QLatin1String("es-CQ"), QLatin1String("es") }, 0327 { QLatin1String("es-CR"), QLatin1String("es") }, 0328 { QLatin1String("es-CU"), QLatin1String("es") }, 0329 { QLatin1String("es-DO"), QLatin1String("es") }, 0330 { QLatin1String("es-EC"), QLatin1String("es") }, 0331 { QLatin1String("es-ES"), QLatin1String("es") }, 0332 { QLatin1String("es-GT"), QLatin1String("es") }, 0333 { QLatin1String("es-HN"), QLatin1String("es") }, 0334 { QLatin1String("es-MX"), QLatin1String("es") }, 0335 { QLatin1String("es-NI"), QLatin1String("es") }, 0336 { QLatin1String("es-PA"), QLatin1String("es") }, 0337 { QLatin1String("es-PE"), QLatin1String("es") }, 0338 { QLatin1String("es-PR"), QLatin1String("es") }, 0339 { QLatin1String("es-PY"), QLatin1String("es") }, 0340 { QLatin1String("es-SV"), QLatin1String("es") }, 0341 { QLatin1String("es-US"), QLatin1String("es") }, 0342 { QLatin1String("es-UY"), QLatin1String("es") }, 0343 { QLatin1String("es-VE"), QLatin1String("es") }, 0344 { QLatin1String("eu-ES"), QLatin1String("eu") }, 0345 { QLatin1String("fa-IR"), QLatin1String("fa") }, 0346 { QLatin1String("fil-PH"), QLatin1String("fil") }, 0347 { QLatin1String("fi-FI"), QLatin1String("fi") }, 0348 { QLatin1String("fj-FJ"), QLatin1String("fj") }, 0349 { QLatin1String("fr-AD"), QLatin1String("fr") }, 0350 { QLatin1String("fr-BF"), QLatin1String("fr") }, 0351 { QLatin1String("fr-BI"), QLatin1String("fr") }, 0352 { QLatin1String("fr-BJ"), QLatin1String("fr") }, 0353 { QLatin1String("fr-BE"), QLatin1String("fr") }, 0354 { QLatin1String("fr-CA"), QLatin1String("fr") }, 0355 { QLatin1String("fr-CD"), QLatin1String("fr") }, 0356 { QLatin1String("fr-CH"), QLatin1String("fr") }, 0357 { QLatin1String("fr-CI"), QLatin1String("fr") }, 0358 { QLatin1String("fr-CM"), QLatin1String("fr") }, 0359 { QLatin1String("fr-DJ"), QLatin1String("fr") }, 0360 { QLatin1String("fr-FR"), QLatin1String("fr") }, 0361 { QLatin1String("fr-GA"), QLatin1String("fr") }, 0362 { QLatin1String("fr-GB"), QLatin1String("fr") }, 0363 { QLatin1String("fr-GF"), QLatin1String("fr") }, 0364 { QLatin1String("fr-GN"), QLatin1String("fr") }, 0365 { QLatin1String("fr-GP"), QLatin1String("fr") }, 0366 { QLatin1String("fr-HT"), QLatin1String("fr") }, 0367 { QLatin1String("fr-IT"), QLatin1String("fr") }, 0368 { QLatin1String("fr-KM"), QLatin1String("fr") }, 0369 { QLatin1String("fr-LB"), QLatin1String("fr") }, 0370 { QLatin1String("fr-LU"), QLatin1String("fr") }, 0371 { QLatin1String("fr-MC"), QLatin1String("fr") }, 0372 { QLatin1String("fr-MG"), QLatin1String("fr") }, 0373 { QLatin1String("fr-ML"), QLatin1String("fr") }, 0374 { QLatin1String("fr-MQ"), QLatin1String("fr") }, 0375 { QLatin1String("fr-NC"), QLatin1String("fr") }, 0376 { QLatin1String("fr-PF"), QLatin1String("fr") }, 0377 { QLatin1String("fr-PM"), QLatin1String("fr") }, 0378 { QLatin1String("fr-RE"), QLatin1String("fr") }, 0379 { QLatin1String("fr-RW"), QLatin1String("fr") }, 0380 { QLatin1String("fr-SC"), QLatin1String("fr") }, 0381 { QLatin1String("fr-TD"), QLatin1String("fr") }, 0382 { QLatin1String("fr-TG"), QLatin1String("fr") }, 0383 { QLatin1String("fr-VU"), QLatin1String("fr") }, 0384 { QLatin1String("fr-WF"), QLatin1String("fr") }, 0385 { QLatin1String("fr-YT"), QLatin1String("fr") }, 0386 { QLatin1String("fy-NL"), QLatin1String("fy") }, 0387 { QLatin1String("ga-GB"), QLatin1String("ga") }, 0388 { QLatin1String("ga-IE"), QLatin1String("ga") }, 0389 { QLatin1String("gd-GB"), QLatin1String("gd") }, 0390 { QLatin1String("gl-ES"), QLatin1String("gl") }, 0391 // { QLatin1String("gv-GB"), QLatin1String("") }, 0392 { QLatin1String("gu-IN"), QLatin1String("gu") }, 0393 { QLatin1String("ha-TD"), QLatin1String("ha") }, 0394 { QLatin1String("haw-US"), QLatin1String("haw") }, 0395 { QLatin1String("he-IL"), QLatin1String("he") }, 0396 { QLatin1String("hi-IN"), QLatin1String("hi") }, 0397 { QLatin1String("hr-HR"), QLatin1String("hr") }, 0398 { QLatin1String("hr-BA"), QLatin1String("hr") }, 0399 { QLatin1String("hmn-LA"), QLatin1String("hmn") }, 0400 { QLatin1String("ht-FR"), QLatin1String("ht") }, 0401 { QLatin1String("hu-HU"), QLatin1String("hu") }, 0402 { QLatin1String("hu-SI"), QLatin1String("hu") }, 0403 { QLatin1String("hy-AM"), QLatin1String("hy") }, 0404 { QLatin1String("id-ID"), QLatin1String("id") }, 0405 { QLatin1String("ig-NG"), QLatin1String("ig") }, 0406 { QLatin1String("is-IS"), QLatin1String("is") }, 0407 // { QLatin1String("ii-CN"), QLatin1String("") }, 0408 { QLatin1String("it-CH"), QLatin1String("it") }, 0409 { QLatin1String("it-HR"), QLatin1String("it") }, 0410 { QLatin1String("it-IT"), QLatin1String("it") }, 0411 { QLatin1String("it-SI"), QLatin1String("it") }, 0412 { QLatin1String("it-SM"), QLatin1String("it") }, 0413 { QLatin1String("ja-JP"), QLatin1String("ja") }, 0414 { QLatin1String("jw-ID"), QLatin1String("jw") }, 0415 { QLatin1String("ka-GE"), QLatin1String("ka") }, 0416 { QLatin1String("kn-IN"), QLatin1String("kn") }, 0417 { QLatin1String("kk-KZ"), QLatin1String("kk") }, 0418 // { QLatin1String("kl-GL"), QLatin1String("") }, 0419 { QLatin1String("km-KH"), QLatin1String("km") }, 0420 { QLatin1String("ko-KR"), QLatin1String("ko") }, 0421 { QLatin1String("ko-KP"), QLatin1String("ko") }, 0422 { QLatin1String("ku-IR"), QLatin1String("ku") }, 0423 { QLatin1String("ky-KG"), QLatin1String("ky") }, 0424 // { QLatin1String("kw-GB"), QLatin1String("") }, 0425 { QLatin1String("la-IT"), QLatin1String("la") }, 0426 // { QLatin1String("ln-CD"), QLatin1String("") }, 0427 // { QLatin1String("ln-CG"), QLatin1String("") }, 0428 { QLatin1String("lo-LA"), QLatin1String("lo") }, 0429 { QLatin1String("lb-LU"), QLatin1String("lb") }, 0430 { QLatin1String("lt-LT"), QLatin1String("lt") }, 0431 { QLatin1String("lv-LV"), QLatin1String("lv") }, 0432 { QLatin1String("mg-MG"), QLatin1String("mg") }, 0433 { QLatin1String("mi-NZ"), QLatin1String("mi") }, 0434 { QLatin1String("mk-MK"), QLatin1String("mk") }, 0435 { QLatin1String("ml-IN"), QLatin1String("ml") }, 0436 { QLatin1String("mhr-RU"), QLatin1String("mhr") }, 0437 { QLatin1String("mn-MN"), QLatin1String("mn") }, 0438 { QLatin1String("mn-CN"), QLatin1String("mn") }, 0439 { QLatin1String("mr-IN"), QLatin1String("mr") }, 0440 { QLatin1String("mrj-RU"), QLatin1String("mrj") }, 0441 { QLatin1String("ms-BN"), QLatin1String("ms") }, 0442 { QLatin1String("ms-MY"), QLatin1String("ms") }, 0443 { QLatin1String("ms-SG"), QLatin1String("ms") }, 0444 { QLatin1String("mt-MT"), QLatin1String("mt") }, 0445 { QLatin1String("my-MM"), QLatin1String("my") }, 0446 // { QLatin1String("nb-NO"), QLatin1String("") }, 0447 { QLatin1String("ne-NP"), QLatin1String("ne") }, 0448 { QLatin1String("nl-AN"), QLatin1String("nl") }, 0449 { QLatin1String("nl-AW"), QLatin1String("nl") }, 0450 { QLatin1String("nl-NL"), QLatin1String("nl") }, 0451 { QLatin1String("nl-BE"), QLatin1String("nl") }, 0452 { QLatin1String("nl-SR"), QLatin1String("nl") }, 0453 // { QLatin1String("nn-NO"), QLatin1String("") }, 0454 { QLatin1String("no-NO"), QLatin1String("no") }, 0455 // { QLatin1String("ns-ZA"), QLatin1String("") }, 0456 { QLatin1String("ny-ZM"), QLatin1String("ny") }, 0457 // { QLatin1String("oc-FR"), QLatin1String("") }, 0458 { QLatin1String("or-IN"), QLatin1String("or") }, 0459 { QLatin1String("pap-AW"), QLatin1String("pap") }, 0460 { QLatin1String("pa-IN"), QLatin1String("pa") }, 0461 { QLatin1String("pl-PL"), QLatin1String("pl") }, 0462 { QLatin1String("pt-AO"), QLatin1String("pt") }, 0463 { QLatin1String("pt-BR"), QLatin1String("pt") }, 0464 { QLatin1String("pt-CV"), QLatin1String("pt") }, 0465 { QLatin1String("pt-GW"), QLatin1String("pt") }, 0466 { QLatin1String("pt-MZ"), QLatin1String("pt") }, 0467 { QLatin1String("pt-PT"), QLatin1String("pt") }, 0468 { QLatin1String("pt-ST"), QLatin1String("pt") }, 0469 { QLatin1String("ps-AF"), QLatin1String("ps") }, 0470 { QLatin1String("otq-MX"), QLatin1String("otq") }, 0471 { QLatin1String("ro-RO"), QLatin1String("ro") }, 0472 { QLatin1String("ru-RU"), QLatin1String("ru") }, 0473 { QLatin1String("rw-RW"), QLatin1String("rw") }, 0474 // { QLatin1String("sa-IN"), QLatin1String("") }, 0475 { QLatin1String("sd-PK"), QLatin1String("sd") }, 0476 // { QLatin1String("se-FI"), QLatin1String("") }, 0477 // { QLatin1String("se-NO"), QLatin1String("") }, 0478 // { QLatin1String("se-SE"), QLatin1String("") }, 0479 { QLatin1String("si-LK"), QLatin1String("si") }, 0480 { QLatin1String("sk-SK"), QLatin1String("sk") }, 0481 { QLatin1String("sl-SI"), QLatin1String("sl") }, 0482 { QLatin1String("sm-WS"), QLatin1String("sm") }, 0483 { QLatin1String("sn-ZW"), QLatin1String("sn") }, 0484 { QLatin1String("so-SO"), QLatin1String("so") }, 0485 { QLatin1String("sq-AL"), QLatin1String("sq") }, 0486 { QLatin1String("sr-BA"), QLatin1String("sr") }, 0487 { QLatin1String("sr-YU"), QLatin1String("sr") }, 0488 { QLatin1String("sr-SP"), QLatin1String("sr-Latin") }, 0489 // { QLatin1String("ss-SZ") , QLatin1String("") }, 0490 // { QLatin1String("ss-ZA") , QLatin1String("") }, 0491 { QLatin1String("st-LS"), QLatin1String("st") }, 0492 { QLatin1String("su-ID"), QLatin1String("su") }, 0493 { QLatin1String("sv-FI"), QLatin1String("sv") }, 0494 { QLatin1String("sv-SE"), QLatin1String("sv") }, 0495 { QLatin1String("sw-KE"), QLatin1String("sw") }, 0496 { QLatin1String("sw-TZ"), QLatin1String("sw") }, 0497 { QLatin1String("ta-IN"), QLatin1String("ta") }, 0498 { QLatin1String("ta-SG"), QLatin1String("ta") }, 0499 { QLatin1String("te-IN"), QLatin1String("te") }, 0500 { QLatin1String("tg-TJ"), QLatin1String("tg") }, 0501 { QLatin1String("th-TH"), QLatin1String("th") }, 0502 { QLatin1String("tk-TM"), QLatin1String("tk") }, 0503 { QLatin1String("tl-PH"), QLatin1String("tl") }, 0504 { QLatin1String("to-TO"), QLatin1String("to") }, 0505 { QLatin1String("tlh-US"), QLatin1String("tlh") }, 0506 // { QLatin1String(""), QLatin1String("tlh-Qaak") }, // Klingon native language tlhIngan-Hol (star-trek): do not exists as 2 letters code 0507 // { QLatin1String("tn-ZA"), QLatin1String("") }, 0508 { QLatin1String("tr-BG"), QLatin1String("tr") }, 0509 { QLatin1String("tr-CY"), QLatin1String("tr") }, 0510 { QLatin1String("tr-TR"), QLatin1String("tr") }, 0511 { QLatin1String("tt-RU"), QLatin1String("tt") }, 0512 { QLatin1String("ty-PF"), QLatin1String("ty") }, 0513 { QLatin1String("udm-RU"), QLatin1String("udm") }, 0514 { QLatin1String("ug-CN"), QLatin1String("ug") }, 0515 { QLatin1String("uk-UA"), QLatin1String("uk") }, 0516 { QLatin1String("ur-IN"), QLatin1String("ur") }, 0517 { QLatin1String("ur-PK"), QLatin1String("ur") }, 0518 { QLatin1String("uz-UZ"), QLatin1String("uz") }, 0519 { QLatin1String("vi-VN"), QLatin1String("vi") }, 0520 // { QLatin1String("wo-SN"), QLatin1String("") }, 0521 { QLatin1String("xh-ZA"), QLatin1String("xh") }, 0522 { QLatin1String("yi-DE"), QLatin1String("yi") }, 0523 { QLatin1String("yo-NG"), QLatin1String("yo") }, 0524 { QLatin1String("yua-MX"), QLatin1String("yua") }, 0525 { QLatin1String("yue-CN"), QLatin1String("yue") }, 0526 { QLatin1String("zh-CN"), QLatin1String("zh-CN") }, // Chinese (Simplified, PRC) 0527 { QLatin1String("zh-TW"), QLatin1String("zh-TW") }, // Chinese (Traditional, Taiwan) 0528 { QLatin1String("zu-ZA"), QLatin1String("zu") } 0529 }; 0530 0531 // -------------------------------------------------------------------------------------------- 0532 0533 const QMap<QString, QString> DOnlineTranslator::Private::s_rfc3066LanguageCodesGoogle = 0534 { 0535 { QLatin1String("iw-IL"), QLatin1String("iw") } // NOTE: Google translator only. 0536 }; 0537 0538 // -------------------------------------------------------------------------------------------- 0539 0540 const QMap<QString, QString> DOnlineTranslator::Private::s_rfc3066LanguageCodesYandex = 0541 { 0542 { QLatin1String("jv-ID"), QLatin1String("jv") }, // NOTE: Yandex translator only 0543 { QLatin1String("zn-CN"), QLatin1String("zn") } // NOTE: Yandex translator only 0544 }; 0545 0546 // -------------------------------------------------------------------------------------------- 0547 0548 const QMap<QString, QString> DOnlineTranslator::Private::s_rfc3066LanguageCodesBing = 0549 { 0550 { QLatin1String("bs-BG"), QLatin1String("bs-Latn") }, // NOTE: Bing translator only 0551 // { QLatin1String("") , QLatin1String("mww") }, // Hmong: do not exists as 2 letters code ; NOTE: Bing translator only 0552 { QLatin1String("sr-RS"), QLatin1String("sr-Cyrl") }, // NOTE: Bing translator only 0553 { QLatin1String("zh-CN"), QLatin1String("zh-Hans") }, // SimplifiedChinese ; NOTE: Bing translator only 0554 { QLatin1String("zh-TW"), QLatin1String("zh-Hant") } // TraditionalChinese ; NOTE: Bing translator only 0555 }; 0556 0557 // -------------------------------------------------------------------------------------------- 0558 0559 const QMap<QString, QString> DOnlineTranslator::Private::s_rfc3066LanguageCodesLingva = 0560 { 0561 { QLatin1String("zh-TW"), QLatin1String("zh_HANT") }, // TraditionalChinese ; NOTE: Lingva translator only 0562 { QLatin1String("zh-MO"), QLatin1String("zh") }, // Chinese (Traditional, Macao S.A.R.) ; NOTE: Lingva translator only 0563 { QLatin1String("zh-HK"), QLatin1String("zh") }, // Chinese (Traditional, Hong Kong S.A.R.) ; NOTE: Lingva translator only 0564 { QLatin1String("zh-SG"), QLatin1String("zh") } // Chinese (Simplified, Singapore) ; NOTE: Lingva translator only 0565 }; 0566 0567 // -------------------------------------------------------------------------------------------- 0568 0569 DOnlineTranslator::Private::Private(DOnlineTranslator* const parent) 0570 : stateMachine (new QStateMachine(parent)), 0571 networkManager(NetworkManager::instance()->getNetworkManager(parent)), 0572 libreUrl (QLatin1String("https://translate.argosopentech.com")), 0573 lingvaUrl (QLatin1String("https://lingva.ml")) 0574 { 0575 } 0576 0577 // -------------------------------------------------------------------------------------------- 0578 0579 const QMap<DOnlineTts::Emotion, QString> DOnlineTts::Private::s_emotionCodes = 0580 { 0581 { Neutral, QStringLiteral("neutral") }, 0582 { Good, QStringLiteral("good") }, 0583 { Evil, QStringLiteral("evil") } 0584 }; 0585 0586 const QMap<DOnlineTts::Voice, QString> DOnlineTts::Private::s_voiceCodes = 0587 { 0588 { Zahar, QStringLiteral("zahar") }, 0589 { Ermil, QStringLiteral("ermil") }, 0590 { Jane, QStringLiteral("jane") }, 0591 { Oksana, QStringLiteral("oksana") }, 0592 { Alyss, QStringLiteral("alyss") }, 0593 { Omazh, QStringLiteral("omazh") } 0594 }; 0595 0596 } // namespace Digikam