richardphibel / rpms / libdnf

Forked from rpms/libdnf 2 years ago
Clone
Blob Blame History Raw
From 552eaed4597f161784d508ff20bc31c8f42c9d2e Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Mon, 8 Mar 2021 16:11:10 +0100
Subject: [PATCH] Update translations

---
 po/CMakeLists.txt |   1 +
 po/fr.po          | 289 +++++++++++++++++++++-------
 po/ja.po          | 291 ++++++++++++++++++++--------
 po/ko.po          | 469 ++++++++++++++++++++++++++++++----------------
 po/libdnf.pot     | 261 +++++++++++++++++++-------
 po/zh_CN.po       | 436 +++++++++++++++++++++++++++---------------
 6 files changed, 1221 insertions(+), 526 deletions(-)

diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 4f106fc3..1ef50556 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -15,6 +15,7 @@ if (GIT_FOUND)
         OUTPUT_VARIABLE CURRENT_BRANCH
         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
         )
+    set(CURRENT_BRANCH "rhel-8")
 
     # output _weblate-clone is never created so the clonning of weblate repo is always processed
     # and fresh *.po files are used
diff --git a/po/fr.po b/po/fr.po
index 055cdaff..7fa62f14 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,20 +5,21 @@
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
 # Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>, 2019. #zanata
 # Julien Humbert <julroy67@gmail.com>, 2020.
+# Sundeep Anand <suanand@redhat.com>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-06-29 02:40+0000\n"
-"Last-Translator: Julien Humbert <julroy67@gmail.com>\n"
-"Language-Team: French <https://translate.fedoraproject.org/projects/dnf/libdnf-dnf-4-master/fr/>\n"
+"POT-Creation-Date: 2021-02-22 09:52+0100\n"
+"PO-Revision-Date: 2021-03-08 11:09+0000\n"
+"Last-Translator: Sundeep Anand <suanand@redhat.com>\n"
+"Language-Team: French <https://translate.fedoraproject.org/projects/dnf/libdnf-rhel-8/fr/>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.5.1\n"
 
 #: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
 msgid "no value specified"
@@ -39,17 +40,17 @@ msgstr "n’a pu convertir « %s » en octets"
 msgid "unknown unit '%s'"
 msgstr "unité « %s » inconnue"
 
-#: libdnf/conf/ConfigMain.cpp:332
+#: libdnf/conf/ConfigMain.cpp:334
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "le pourcentage « %s » est en dehors des limites"
 
-#: libdnf/conf/OptionBinds.cpp:76
+#: libdnf/conf/OptionBinds.cpp:85
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" does not exist"
 msgstr "Configuration : OptionBinding ayant pour id « %s » n’existe pas"
 
-#: libdnf/conf/OptionBinds.cpp:88
+#: libdnf/conf/OptionBinds.cpp:97
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" already exists"
 msgstr "Configuration : OptionBinding ayant pour « %s » n’existe pas"
@@ -60,7 +61,7 @@ msgid "invalid boolean value '%s'"
 msgstr "valeur booléenne invalide : « %s »"
 
 #: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
-#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+#: libdnf/conf/OptionString.cpp:64 libdnf/conf/OptionStringList.cpp:59
 #, c-format
 msgid "'%s' is not an allowed value"
 msgstr "la valeur « %s » n’est pas autorisée"
@@ -94,10 +95,111 @@ msgstr "le chemin fourni « %s » n’existe pas."
 msgid "could not convert '%s' to seconds"
 msgstr "n’a pu convertir « %s » en secondes"
 
-#: libdnf/conf/OptionString.cpp:74
+#: libdnf/conf/OptionString.cpp:79
 msgid "GetValue(): Value not set"
 msgstr "GetValue() : valeur non définie"
 
+#: libdnf/dnf-context.cpp:3033 libdnf/dnf-context.cpp:3042
+#, c-format
+msgid "Cannot enable more streams from module '%s' at the same time"
+msgstr "Ne peut pas activer plus de flux du module '%s' en même temps"
+
+#: libdnf/dnf-context.cpp:3051 libdnf/dnf-context.cpp:3069
+#, c-format
+msgid ""
+"Cannot enable module '%1$s' stream '%2$s': State of module already modified"
+msgstr ""
+"Impossible d'activer le flux de module '%1$s' stream '%2$s' : état du module"
+" déjà modifié"
+
+#: libdnf/dnf-context.cpp:3116
+#, c-format
+msgid "Modular dependency problem with Defaults: %s"
+msgstr "Problème de dépendance modulaire avec les valeurs par défaut : %s"
+
+#: libdnf/dnf-context.cpp:3119
+#, c-format
+msgid "Modular dependency problem: %s"
+msgstr "Problème de dépendance modulaire : %s"
+
+#: libdnf/dnf-context.cpp:3153 libdnf/dnf-context.cpp:3177
+#: libdnf/dnf-context.cpp:3188 libdnf/dnf-context.cpp:3227
+#: libdnf/dnf-context.cpp:3243 libdnf/dnf-context.cpp:3275
+#, c-format
+msgid "Unable to resolve argument '%s'"
+msgstr "Impossible de résoudre le paramètre ’%s’"
+
+#: libdnf/dnf-context.cpp:3160
+#, c-format
+msgid ""
+"Only module name is required. Ignoring unneeded information in argument: "
+"'%s'"
+msgstr ""
+"Seul le nom du module est nécessaire. Les paramètres inutiles ont été "
+"ignorés : ’%s’"
+
+#: libdnf/dnf-context.cpp:3174
+#, c-format
+msgid "Cannot reset module '%s': State of module already modified"
+msgstr ""
+"Impossible de réinitialiser le module '%s' : État du module déjà modifié"
+
+#: libdnf/dnf-context.cpp:3185
+#, c-format
+msgid "Cannot disable module '%s': State of module already modified"
+msgstr "Impossible de désactiver le module '%s' : État du module déjà modifié"
+
+#: libdnf/dnf-context.cpp:3216 libdnf/dnf-context.cpp:3307
+msgid "No modular data available"
+msgstr "Aucune donnée modulaire disponible"
+
+#: libdnf/dnf-context.cpp:3233
+#, c-format
+msgid "Ignoring unneeded information in argument: '%s'"
+msgstr "Ignorer les informations inutiles dans l'argumentation : '%s'"
+
+#: libdnf/dnf-context.cpp:3271
+#, c-format
+msgid ""
+"Problem during enablement of dependency tree for moduele '%1$s' stream "
+"'%2$s': %3$s"
+msgstr ""
+"Problème lors de l'activation de l'arbre des dépendances pour le flux de "
+"module '%1$s' stream '%2$s' : %3$s"
+
+#: libdnf/dnf-context.cpp:3283
+msgid "Problems appeared for module enable request"
+msgstr "Des problèmes sont apparus pour la demande d'activation du module"
+
+#: libdnf/dnf-context.cpp:3338
+msgid "Problems appeared for module reset request"
+msgstr ""
+"Des problèmes sont apparus pour la demande de réinitialisation des modules"
+
+#: libdnf/dnf-context.cpp:3340
+msgid "Problems appeared for module disable request"
+msgstr "Des problèmes sont apparus pour la demande de désactivation du module"
+
+#: libdnf/dnf-context.cpp:3376
+#, c-format
+msgid ""
+"The operation would result in switching of module '%s' stream '%s' to stream"
+" '%s'"
+msgstr ""
+"Le résultat de l’opération sera le basculement du flux « %s » du module « %s"
+" » vers le flux « %s »"
+
+#: libdnf/dnf-context.cpp:3380
+msgid ""
+"It is not possible to switch enabled streams of a module.\n"
+"It is recommended to remove all installed content from the module, and reset the module using 'microdnf module reset <module_name>' command. After you reset the module, you can install the other stream."
+msgstr ""
+"Il n’est pas possible de basculer les flux actifs d’un module. Il est "
+"recommandé de retirer tout contenu installé par le module, et de "
+"réinitialiser le mode en utilisant la commande 'microdnf module reset "
+"<module_name>’. Après la réinitialisation du module, vous pouvez installer "
+"les autres flux."
+
 #: libdnf/dnf-goal.cpp:68
 msgid "Could not depsolve transaction; "
 msgstr "Impossible de depsolve la transaction ; "
@@ -181,84 +283,84 @@ msgstr "n’a pas pu trouver le package %s"
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "n’a pas pu ajouter d’élément pour effacer %1$s(%2$i)"
 
-#: libdnf/dnf-sack.cpp:381
+#: libdnf/dnf-sack.cpp:395
+msgid "failed to add solv"
+msgstr "n’a pu ajouter solv"
+
+#: libdnf/dnf-sack.cpp:414
 #, c-format
 msgid "no %1$s string for %2$s"
 msgstr "aucune chaine %1$s pour %2$s"
 
-#: libdnf/dnf-sack.cpp:404
-msgid "failed to add solv"
-msgstr "n’a pu ajouter solv"
-
-#: libdnf/dnf-sack.cpp:422
+#: libdnf/dnf-sack.cpp:424
 #, c-format
 msgid "failed to open: %s"
 msgstr "n’a pas pu ouvrir : %s"
 
-#: libdnf/dnf-sack.cpp:501
+#: libdnf/dnf-sack.cpp:503
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "n’a pas pu créer le fichier temporaire : %s"
 
-#: libdnf/dnf-sack.cpp:511
+#: libdnf/dnf-sack.cpp:513
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "n’a pas pu ouvrir le fichier tmp : %s"
 
-#: libdnf/dnf-sack.cpp:523
+#: libdnf/dnf-sack.cpp:525
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() n’a pu écrire les données : %i"
 
-#: libdnf/dnf-sack.cpp:540
+#: libdnf/dnf-sack.cpp:542
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() n’a pas pu charger à nouveau le fichier solv"
 
-#: libdnf/dnf-sack.cpp:605
+#: libdnf/dnf-sack.cpp:607
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "n’a pas pu créer le fichier temporaire %s"
 
-#: libdnf/dnf-sack.cpp:623
+#: libdnf/dnf-sack.cpp:625
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) a échoué : %2$d"
 
-#: libdnf/dnf-sack.cpp:678
+#: libdnf/dnf-sack.cpp:680
 msgid "null repo md file"
 msgstr "null repo md file"
 
-#: libdnf/dnf-sack.cpp:687
+#: libdnf/dnf-sack.cpp:689
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "n’a pu lire le fichier %1$s : %2$s"
 
-#: libdnf/dnf-sack.cpp:701
+#: libdnf/dnf-sack.cpp:703
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() a échoué."
 
-#: libdnf/dnf-sack.cpp:714
+#: libdnf/dnf-sack.cpp:716
 msgid "loading of MD_TYPE_PRIMARY has failed."
 msgstr "échec du chargement du MD_TYPE_PRIMARY."
 
-#: libdnf/dnf-sack.cpp:727
+#: libdnf/dnf-sack.cpp:729
 msgid "repo_add_repomdxml/rpmmd() has failed."
 msgstr "repo_add_repomdxml/rpmmd() a échoué."
 
-#: libdnf/dnf-sack.cpp:794
+#: libdnf/dnf-sack.cpp:796
 msgid "failed to auto-detect architecture"
 msgstr "n’a pu auto-détecter l’architecture"
 
-#: libdnf/dnf-sack.cpp:919
+#: libdnf/dnf-sack.cpp:961
 #, c-format
 msgid "failed creating cachedir %s"
 msgstr "n’a pu créer le cachedir %s"
 
-#: libdnf/dnf-sack.cpp:1696
+#: libdnf/dnf-sack.cpp:1738
 msgid "failed loading RPMDB"
 msgstr "n’a pu télécharger RPMDB"
 
-#: libdnf/dnf-sack.cpp:2403
+#: libdnf/dnf-sack.cpp:2461
 #, c-format
 msgid "No module defaults found: %s"
 msgstr "Aucun module par défaut n’a été trouvé : %s"
@@ -348,7 +450,7 @@ msgstr "Erreur %i lors du test transactionnel"
 msgid "Error %i running transaction"
 msgstr "Erreur %i pendant la transaction"
 
-#: libdnf/dnf-transaction.cpp:1473
+#: libdnf/dnf-transaction.cpp:1474
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -589,7 +691,16 @@ msgstr "aucune solution, n’a pas pu supprimer le package protégé"
 msgid "no solution possible"
 msgstr "aucune solution n’est possible"
 
-#: libdnf/goal/Goal.cpp:1479
+#: libdnf/goal/Goal.cpp:1193
+msgid "Problem: "
+msgstr "Problème : "
+
+#: libdnf/goal/Goal.cpp:1198
+#, c-format
+msgid "Problem %d: "
+msgstr "Probléme %d : "
+
+#: libdnf/goal/Goal.cpp:1525
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
@@ -655,32 +766,56 @@ msgstr "Impossible d’activer les flux pour le module « %s »"
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr "Valeurs par défaut en conflit avec le dépôt « %s » : %s"
 
-#: libdnf/module/ModulePackageContainer.cpp:1569
+#: libdnf/module/ModulePackageContainer.cpp:829
+msgid "Installing module profiles:\n"
+msgstr "Installation des profils de module :\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:844
+msgid "Disabling module profiles:\n"
+msgstr "Désactivation des profils de module :\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:859
+msgid "Enabling module streams:\n"
+msgstr "Activation des flux de modules :\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:873
+msgid "Switching module streams:\n"
+msgstr "Basculement des flux de modules :\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:891
+msgid "Disabling modules:\n"
+msgstr "Désactivation des modules :\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:902
+msgid "Resetting modules:\n"
+msgstr "Réinitialisation des modules :\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:1586
 #, c-format
 msgid "Unable to load modular Fail-Safe data at '%s'"
 msgstr "Impossible de charger les données de sécurité à « %s »"
 
-#: libdnf/module/ModulePackageContainer.cpp:1575
+#: libdnf/module/ModulePackageContainer.cpp:1592
 #, c-format
 msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
 msgstr ""
 "Impossible de charger les données de sécurité modulaires pour le module "
 "« %s : %s »"
 
-#: libdnf/module/ModulePackageContainer.cpp:1639
+#: libdnf/module/ModulePackageContainer.cpp:1656
 #, c-format
 msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
 msgstr ""
 "Impossible de créer le dossier « %s » pour les données de sécurité "
 "modulaires : %s"
 
-#: libdnf/module/ModulePackageContainer.cpp:1661
+#: libdnf/module/ModulePackageContainer.cpp:1678
 #, c-format
 msgid "Unable to save a modular Fail Safe data to '%s'"
 msgstr ""
 "Impossible d’enregistrer les données de sécurité modulaires vers « %s »"
 
-#: libdnf/module/ModulePackageContainer.cpp:1686
+#: libdnf/module/ModulePackageContainer.cpp:1703
 #, c-format
 msgid "Unable to remove a modular Fail Safe data in '%s'"
 msgstr ""
@@ -769,12 +904,18 @@ msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 "Le dépôt « %s » n’a pas de type pris en charge : « type=%s », passer outre."
 
-#: libdnf/repo/Repo.cpp:546
+#: libdnf/repo/Repo.cpp:489 libdnf/repo/Repo.cpp:534 libdnf/repo/Repo.cpp:581
+#: libdnf/repo/Repo.cpp:1368
+#, c-format
+msgid "repo '%s': 'basecachedir' is not set"
+msgstr "repo '%s' : 'basecachedir' n'est pas fixé"
+
+#: libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Impossible de trouver une adresse de base pour le dépôt : %s"
 
-#: libdnf/repo/Repo.cpp:583 libdnf/repo/Repo.cpp:1672
+#: libdnf/repo/Repo.cpp:594 libdnf/repo/Repo.cpp:1693
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
@@ -782,139 +923,150 @@ msgstr ""
 "La vitesse de téléchargement maximale est plus basse que le minimum. "
 "Veuillez modifier les paramètres minrate ou throttle"
 
-#: libdnf/repo/Repo.cpp:633 libdnf/repo/Repo.cpp:655
+#: libdnf/repo/Repo.cpp:625
+#, c-format
+msgid "repo '%s': 'proxy_username' is set but not 'proxy_password'"
+msgstr "repo '%s' : 'proxy_username' est défini mais pas 'proxy_password'."
+
+#: libdnf/repo/Repo.cpp:647 libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s : gpgme_data_new_from_fd() : %s"
 
-#: libdnf/repo/Repo.cpp:641 libdnf/repo/Repo.cpp:663
+#: libdnf/repo/Repo.cpp:655 libdnf/repo/Repo.cpp:677
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s : gpgme_op_import() : %s"
 
-#: libdnf/repo/Repo.cpp:686 libdnf/repo/Repo.cpp:752 libdnf/repo/Repo.cpp:880
+#: libdnf/repo/Repo.cpp:700 libdnf/repo/Repo.cpp:766 libdnf/repo/Repo.cpp:894
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s : gpgme_ctx_set_engine_info() : %s"
 
-#: libdnf/repo/Repo.cpp:713 libdnf/repo/Repo.cpp:777
+#: libdnf/repo/Repo.cpp:727 libdnf/repo/Repo.cpp:791
 #, c-format
 msgid "can not list keys: %s"
 msgstr "n’a pas pu lister les clés : %s"
 
-#: libdnf/repo/Repo.cpp:806
+#: libdnf/repo/Repo.cpp:820
 #, c-format
 msgid "Failed to retrieve GPG key for repo '%s': %s"
 msgstr "Impossible de récupérer la clé GPG pour le dépôt « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:859
+#: libdnf/repo/Repo.cpp:873
 #, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "dépôt %s : 0x%s déjà importé"
 
-#: libdnf/repo/Repo.cpp:887
+#: libdnf/repo/Repo.cpp:901
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "dépôt %s : clé importée 0x%s."
 
-#: libdnf/repo/Repo.cpp:1131
+#: libdnf/repo/Repo.cpp:1149
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "relance : dépôt « %s » ignoré, pas de méta-lien."
 
-#: libdnf/repo/Repo.cpp:1150
+#: libdnf/repo/Repo.cpp:1168
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "relance : dépôt « %s » ignoré, pas de hachage utilisable."
 
-#: libdnf/repo/Repo.cpp:1173
+#: libdnf/repo/Repo.cpp:1191
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "relance : échec pour « %s », la somme de %s ne correspond pas."
 
-#: libdnf/repo/Repo.cpp:1179
+#: libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "relance : « %s » peut être relancé - la somme de contrôle du méta-lien "
 "correspond."
 
-#: libdnf/repo/Repo.cpp:1204
+#: libdnf/repo/Repo.cpp:1222
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "relance : « %s » peut être relancé - le repomd correspond."
 
-#: libdnf/repo/Repo.cpp:1206
+#: libdnf/repo/Repo.cpp:1224
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "relance : échec pour « %s », le repomd ne correspond pas."
 
-#: libdnf/repo/Repo.cpp:1224
+#: libdnf/repo/Repo.cpp:1242
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr "Impossible de créer le répertoire de destination du dépôt « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:1230
+#: libdnf/repo/Repo.cpp:1248
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Impossible de créer le répertoire temporaire du dépôt « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:1244
+#: libdnf/repo/Repo.cpp:1262
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Impossible de créer le répertoire « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:1267
+#: libdnf/repo/Repo.cpp:1285
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Impossible de renommer le répertoire « %s » en « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:1290
+#: libdnf/repo/Repo.cpp:1308
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "dépôt : utilisation du cache pour : %s"
 
-#: libdnf/repo/Repo.cpp:1302
+#: libdnf/repo/Repo.cpp:1320
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "« cache uniquement » activé, mais pas de cache pour « %s »"
 
-#: libdnf/repo/Repo.cpp:1306
+#: libdnf/repo/Repo.cpp:1324
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "dépôt : téléchargement à distance en provenance de : %s"
 
-#: libdnf/repo/Repo.cpp:1312
+#: libdnf/repo/Repo.cpp:1330
 #, c-format
 msgid "Failed to download metadata for repo '%s': %s"
 msgstr "Échec du téléchargement des métadonnées pour le dépôt « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:1338
+#: libdnf/repo/Repo.cpp:1356
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir() : échec du calcul de SHA256"
 
-#: libdnf/repo/Repo.cpp:1363
+#: libdnf/repo/Repo.cpp:1384
 #, c-format
 msgid "Cannot create persistdir \"%s\": %s"
 msgstr "Impossible de créer le dossier persistant « %s » : %s"
 
-#: libdnf/repo/Repo.cpp:1763
+#: libdnf/repo/Repo.cpp:1715
+msgid "'proxy_username' is set but not 'proxy_password'"
+msgstr ""
+"Le nom d'utilisateur \"proxy_username\" est défini mais pas le mot de passe "
+"\"proxy_password\""
+
+#: libdnf/repo/Repo.cpp:1787
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 "« resume » (reprise) ne peut pas être utilisé avec le paramètre "
 "byterangestart"
 
-#: libdnf/repo/Repo.cpp:1780
+#: libdnf/repo/Repo.cpp:1804
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "L’initialisation de Package Target a échoué : %s"
 
-#: libdnf/repo/Repo.cpp:1886
+#: libdnf/repo/Repo.cpp:1910
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "impossible d’ouvrir %s : %s"
 
-#: libdnf/repo/Repo.cpp:1930
+#: libdnf/repo/Repo.cpp:1954
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Log handler ayant pour id %ld n’existe pas"
@@ -975,6 +1127,3 @@ msgstr ""
 
 #~ msgid "Bad id for repo: %s, byte = %s %d"
 #~ msgstr "ID erroné pour le dépôt : %s, byte = %s %d"
-
-#~ msgid "failed calculating RPMDB checksum"
-#~ msgstr "n’a pu calculer la somme de contrôle RPMDB"
diff --git a/po/ja.po b/po/ja.po
index b9064ee6..923b190c 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,20 +1,21 @@
 # Casey Jones <nahareport@live.com>, 2018. #zanata
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
 # Casey Jones <nahareport@yahoo.com>, 2020.
+# Sundeep Anand <suanand@redhat.com>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-05-05 09:40+0000\n"
-"Last-Translator: Casey Jones <nahareport@yahoo.com>\n"
-"Language-Team: Japanese <https://translate.fedoraproject.org/projects/dnf/libdnf-dnf-4-master/ja/>\n"
+"POT-Creation-Date: 2021-02-22 09:52+0100\n"
+"PO-Revision-Date: 2021-03-08 11:09+0000\n"
+"Last-Translator: Sundeep Anand <suanand@redhat.com>\n"
+"Language-Team: Japanese <https://translate.fedoraproject.org/projects/dnf/libdnf-rhel-8/ja/>\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0.3\n"
+"X-Generator: Weblate 4.5.1\n"
 
 #: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
 msgid "no value specified"
@@ -35,17 +36,17 @@ msgstr "'%s' を バイトへ変換できませんでした"
 msgid "unknown unit '%s'"
 msgstr "不明な単位 '%s'"
 
-#: libdnf/conf/ConfigMain.cpp:332
+#: libdnf/conf/ConfigMain.cpp:334
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "パーセンテージ '%s' が範囲外にあります"
 
-#: libdnf/conf/OptionBinds.cpp:76
+#: libdnf/conf/OptionBinds.cpp:85
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" does not exist"
 msgstr "設定: id \"%s\" を伴う OptionBinding は存在しません"
 
-#: libdnf/conf/OptionBinds.cpp:88
+#: libdnf/conf/OptionBinds.cpp:97
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" already exists"
 msgstr "設定: id \"%s\" を伴う OptionBinding はすでに存在します"
@@ -56,7 +57,7 @@ msgid "invalid boolean value '%s'"
 msgstr "無効な boolean 値 '%s'"
 
 #: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
-#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+#: libdnf/conf/OptionString.cpp:64 libdnf/conf/OptionStringList.cpp:59
 #, c-format
 msgid "'%s' is not an allowed value"
 msgstr "'%s' 値は許可されていない値です"
@@ -68,12 +69,12 @@ msgstr "無効な値"
 #: libdnf/conf/OptionNumber.cpp:73
 #, c-format
 msgid "given value [%d] should be less than allowed value [%d]."
-msgstr "指定された値 [%d] は許可された値 [%d]より小さくしてください"
+msgstr "指定された値 [%d] は許可された値 [%d]より小さくしてください。"
 
 #: libdnf/conf/OptionNumber.cpp:76
 #, c-format
 msgid "given value [%d] should be greater than allowed value [%d]."
-msgstr "指定された値 [%d] は許可された値 [%d]より大きくしてください"
+msgstr "指定された値 [%d] は許可された値 [%d]より大きくしてください。"
 
 #: libdnf/conf/OptionPath.cpp:78
 #, c-format
@@ -90,10 +91,98 @@ msgstr "指定されたパス '%s' が存在しません。"
 msgid "could not convert '%s' to seconds"
 msgstr "'%s' を 秒に変換できません"
 
-#: libdnf/conf/OptionString.cpp:74
+#: libdnf/conf/OptionString.cpp:79
 msgid "GetValue(): Value not set"
 msgstr "GetValue(): 値は設定されていません"
 
+#: libdnf/dnf-context.cpp:3033 libdnf/dnf-context.cpp:3042
+#, c-format
+msgid "Cannot enable more streams from module '%s' at the same time"
+msgstr "モジュール '%s' から、さらにストリームを同時に有効にできません"
+
+#: libdnf/dnf-context.cpp:3051 libdnf/dnf-context.cpp:3069
+#, c-format
+msgid ""
+"Cannot enable module '%1$s' stream '%2$s': State of module already modified"
+msgstr "モジュール '%1$s' ストリーム '%2$s' を有効にできません。モジュールの状態はすでに変更されています"
+
+#: libdnf/dnf-context.cpp:3116
+#, c-format
+msgid "Modular dependency problem with Defaults: %s"
+msgstr "デフォルトのモジュラー依存問題: %s"
+
+#: libdnf/dnf-context.cpp:3119
+#, c-format
+msgid "Modular dependency problem: %s"
+msgstr "モジュラーの依存に関する問題: %s"
+
+#: libdnf/dnf-context.cpp:3153 libdnf/dnf-context.cpp:3177
+#: libdnf/dnf-context.cpp:3188 libdnf/dnf-context.cpp:3227
+#: libdnf/dnf-context.cpp:3243 libdnf/dnf-context.cpp:3275
+#, c-format
+msgid "Unable to resolve argument '%s'"
+msgstr "引数 '%s' を解決できません"
+
+#: libdnf/dnf-context.cpp:3160
+#, c-format
+msgid ""
+"Only module name is required. Ignoring unneeded information in argument: "
+"'%s'"
+msgstr "モジュール名のみが必要です。引数の不必要な情報は無視します: '%s'"
+
+#: libdnf/dnf-context.cpp:3174
+#, c-format
+msgid "Cannot reset module '%s': State of module already modified"
+msgstr "モジュール '%s' をリセットできません。モジュールの状態はすでに変更されています"
+
+#: libdnf/dnf-context.cpp:3185
+#, c-format
+msgid "Cannot disable module '%s': State of module already modified"
+msgstr "モジュール '%s' を無効にできません。モジュールの状態はすでに変更されています"
+
+#: libdnf/dnf-context.cpp:3216 libdnf/dnf-context.cpp:3307
+msgid "No modular data available"
+msgstr "モジュールデータは利用できません"
+
+#: libdnf/dnf-context.cpp:3233
+#, c-format
+msgid "Ignoring unneeded information in argument: '%s'"
+msgstr "引数の不要な情報は無視します: '%s'"
+
+#: libdnf/dnf-context.cpp:3271
+#, c-format
+msgid ""
+"Problem during enablement of dependency tree for moduele '%1$s' stream "
+"'%2$s': %3$s"
+msgstr "モジュール '%1$s' ストリーム '%2$s' の依存関係ツリーの有効化中に問題: %3$s"
+
+#: libdnf/dnf-context.cpp:3283
+msgid "Problems appeared for module enable request"
+msgstr "モジュール有効リクエストに発生する問題"
+
+#: libdnf/dnf-context.cpp:3338
+msgid "Problems appeared for module reset request"
+msgstr "モジュールリセットリクエストに発生する問題"
+
+#: libdnf/dnf-context.cpp:3340
+msgid "Problems appeared for module disable request"
+msgstr "モジュール無効化リクエストに発生する問題"
+
+#: libdnf/dnf-context.cpp:3376
+#, c-format
+msgid ""
+"The operation would result in switching of module '%s' stream '%s' to stream"
+" '%s'"
+msgstr "オペレーションは、モジュール '%s' ストリーム '%s' を ストリーム '%s' へと切り替える結果となります"
+
+#: libdnf/dnf-context.cpp:3380
+msgid ""
+"It is not possible to switch enabled streams of a module.\n"
+"It is recommended to remove all installed content from the module, and reset the module using 'microdnf module reset <module_name>' command. After you reset the module, you can install the other stream."
+msgstr ""
+"有効化されたモジュールのストリームの切り替えはできません。\n"
+"モジュールからすべてのインストールされたコンテンツを削除し、'microdnf module reset <module_name>' コマンドを使用してモジュールをリセットすることを推奨します。モジュールのリセット後に、別のストリームをインストールできます。"
+
 #: libdnf/dnf-goal.cpp:68
 msgid "Could not depsolve transaction; "
 msgstr "トランザクションを depsolve できませんでした; "
@@ -174,87 +263,87 @@ msgstr "パッケージ %s を見つけることができませんでした"
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "erase 要素 %1$s(%2$i) を追加することができません"
 
-#: libdnf/dnf-sack.cpp:381
+#: libdnf/dnf-sack.cpp:395
+msgid "failed to add solv"
+msgstr "solv の追加に失敗しました"
+
+#: libdnf/dnf-sack.cpp:414
 #, c-format
 msgid "no %1$s string for %2$s"
 msgstr "%2$s の %1$s 文字列はありません"
 
-#: libdnf/dnf-sack.cpp:404
-msgid "failed to add solv"
-msgstr "solv の追加に失敗しました"
-
-#: libdnf/dnf-sack.cpp:422
+#: libdnf/dnf-sack.cpp:424
 #, c-format
 msgid "failed to open: %s"
 msgstr "開くことに失敗しました: %s"
 
-#: libdnf/dnf-sack.cpp:501
+#: libdnf/dnf-sack.cpp:503
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "一時ファイルを作成できません: %s"
 
-#: libdnf/dnf-sack.cpp:511
+#: libdnf/dnf-sack.cpp:513
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "tmp ファイルを開くことに失敗しました: %s"
 
-#: libdnf/dnf-sack.cpp:523
+#: libdnf/dnf-sack.cpp:525
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() はデータの書き込みに失敗しました: %i"
 
-#: libdnf/dnf-sack.cpp:540
+#: libdnf/dnf-sack.cpp:542
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() は、書き込みされた solv ファイルの再ロードに失敗しました"
 
-#: libdnf/dnf-sack.cpp:605
+#: libdnf/dnf-sack.cpp:607
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "一時ファイル %s を作成できません"
 
-#: libdnf/dnf-sack.cpp:623
+#: libdnf/dnf-sack.cpp:625
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) は失敗しました: %2$d"
 
-#: libdnf/dnf-sack.cpp:678
+#: libdnf/dnf-sack.cpp:680
 msgid "null repo md file"
 msgstr "null repo md ファイル"
 
-#: libdnf/dnf-sack.cpp:687
+#: libdnf/dnf-sack.cpp:689
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "ファイル %1$s を読み込みできません: %2$s"
 
-#: libdnf/dnf-sack.cpp:701
+#: libdnf/dnf-sack.cpp:703
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() は失敗しました。"
 
-#: libdnf/dnf-sack.cpp:714
+#: libdnf/dnf-sack.cpp:716
 msgid "loading of MD_TYPE_PRIMARY has failed."
 msgstr "MD_TYPE_PRIMARY のロードに失敗しました。"
 
-#: libdnf/dnf-sack.cpp:727
+#: libdnf/dnf-sack.cpp:729
 msgid "repo_add_repomdxml/rpmmd() has failed."
 msgstr "repo_add_repomdxml/rpmmd() は失敗しました。"
 
-#: libdnf/dnf-sack.cpp:794
+#: libdnf/dnf-sack.cpp:796
 msgid "failed to auto-detect architecture"
 msgstr "アーキテクチャーの自動検出に失敗しました"
 
-#: libdnf/dnf-sack.cpp:919
+#: libdnf/dnf-sack.cpp:961
 #, c-format
 msgid "failed creating cachedir %s"
 msgstr "cachedir %s の作成に失敗しました"
 
-#: libdnf/dnf-sack.cpp:1696
+#: libdnf/dnf-sack.cpp:1738
 msgid "failed loading RPMDB"
 msgstr "RPMDB のロードに失敗しました"
 
-#: libdnf/dnf-sack.cpp:2403
+#: libdnf/dnf-sack.cpp:2461
 #, c-format
 msgid "No module defaults found: %s"
-msgstr ""
+msgstr "モジュールのデフォルトは見つかりませんでした: %s"
 
 #: libdnf/dnf-state.cpp:1184
 #, c-format
@@ -337,7 +426,7 @@ msgstr "トランザクションテストの実行中にエラー %i"
 msgid "Error %i running transaction"
 msgstr "トランザクションの実行中にエラー %i"
 
-#: libdnf/dnf-transaction.cpp:1473
+#: libdnf/dnf-transaction.cpp:1474
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "トランザクションは書き込みフェーズまで行きませんでしたが、エラー(%i) は返しませんでした"
@@ -569,7 +658,16 @@ msgstr "ソリューションがなく、保護されたパッケージを削除
 msgid "no solution possible"
 msgstr "可能なソリューションがありません"
 
-#: libdnf/goal/Goal.cpp:1479
+#: libdnf/goal/Goal.cpp:1193
+msgid "Problem: "
+msgstr "問題: "
+
+#: libdnf/goal/Goal.cpp:1198
+#, c-format
+msgid "Problem %d: "
+msgstr "問題 %d: "
+
+#: libdnf/goal/Goal.cpp:1525
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "操作は結果的に以下の保護されたパッケージを削除します: "
@@ -631,27 +729,51 @@ msgstr "モジュール '%s' の複数ストリームを有効化できません
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr "repo '%s' のデフォルトが競合: %s"
 
-#: libdnf/module/ModulePackageContainer.cpp:1569
+#: libdnf/module/ModulePackageContainer.cpp:829
+msgid "Installing module profiles:\n"
+msgstr "モジュールプロファイルのインストール中:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:844
+msgid "Disabling module profiles:\n"
+msgstr "モジュールプロファイルの無効化中:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:859
+msgid "Enabling module streams:\n"
+msgstr "モジュールストリームの有効化中:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:873
+msgid "Switching module streams:\n"
+msgstr "モジュールストリームの切り替え中:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:891
+msgid "Disabling modules:\n"
+msgstr "モジュールの無効化:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:902
+msgid "Resetting modules:\n"
+msgstr "モジュールの再設定中:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:1586
 #, c-format
 msgid "Unable to load modular Fail-Safe data at '%s'"
 msgstr "'%s' のモジュラーフェイルセーフデータをロードできません"
 
-#: libdnf/module/ModulePackageContainer.cpp:1575
+#: libdnf/module/ModulePackageContainer.cpp:1592
 #, c-format
 msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
 msgstr "モジュール '%s:%s' のモジュラーフェイルセーフデータをロードできません"
 
-#: libdnf/module/ModulePackageContainer.cpp:1639
+#: libdnf/module/ModulePackageContainer.cpp:1656
 #, c-format
 msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
 msgstr "ディレクトリー \"%s\" を作成できません。対象モジュラーフェイルセーフデータ: %s"
 
-#: libdnf/module/ModulePackageContainer.cpp:1661
+#: libdnf/module/ModulePackageContainer.cpp:1678
 #, c-format
 msgid "Unable to save a modular Fail Safe data to '%s'"
 msgstr "'%s' のモジュラーフェイルセーフデータを保存できません"
 
-#: libdnf/module/ModulePackageContainer.cpp:1686
+#: libdnf/module/ModulePackageContainer.cpp:1703
 #, c-format
 msgid "Unable to remove a modular Fail Safe data in '%s'"
 msgstr "'%s' のモジュラーフェイルセーフデータを削除できません"
@@ -669,7 +791,7 @@ msgstr "名前解決に失敗しました: %s"
 #: libdnf/module/modulemd/ModuleMetadata.cpp:115
 #, c-format
 msgid "There were errors while resolving modular defaults: %s"
-msgstr ""
+msgstr "モジュラーデフォルトの解決中にエラーが発生しました: %s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:120
 #, c-format
@@ -722,6 +844,9 @@ msgid ""
 "deprecated and the support will be dropped in future versions. Use '=' "
 "operator instead."
 msgstr ""
+"reldeps で '==' "
+"演算子を使用すると、未定義の動作が発生する可能性があります。これは非推奨で、将来のバージョンではサポートされなくなります。代わりに '=' "
+"演算子を使用してください。"
 
 #: libdnf/repo/Repo.cpp:321
 #, c-format
@@ -733,146 +858,161 @@ msgstr "リポジトリー %s にはミラーまたは baseurl セットがあ
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr "リポジトリー '%s' にはサポートされていないタイプがあります: 'type=%s'、スキッピング。"
 
-#: libdnf/repo/Repo.cpp:546
+#: libdnf/repo/Repo.cpp:489 libdnf/repo/Repo.cpp:534 libdnf/repo/Repo.cpp:581
+#: libdnf/repo/Repo.cpp:1368
+#, c-format
+msgid "repo '%s': 'basecachedir' is not set"
+msgstr "repo '%s': 'basecachedir' が設定されていません"
+
+#: libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "repo に対して有効な baseurl を見つけられません: %s"
 
-#: libdnf/repo/Repo.cpp:583 libdnf/repo/Repo.cpp:1672
+#: libdnf/repo/Repo.cpp:594 libdnf/repo/Repo.cpp:1693
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
-msgstr "ダウンロードの最高速度は、最低速度よりも低いです。minrate またはスロットルの設定を変更してください。"
+msgstr "ダウンロードの最高速度は、最低速度よりも低いです。minrate またはスロットルの設定を変更してください"
 
-#: libdnf/repo/Repo.cpp:633 libdnf/repo/Repo.cpp:655
+#: libdnf/repo/Repo.cpp:625
+#, c-format
+msgid "repo '%s': 'proxy_username' is set but not 'proxy_password'"
+msgstr "repo '%s': 'proxy_username' は設定済みですが、'proxy_password' は設定されていません"
+
+#: libdnf/repo/Repo.cpp:647 libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: libdnf/repo/Repo.cpp:641 libdnf/repo/Repo.cpp:663
+#: libdnf/repo/Repo.cpp:655 libdnf/repo/Repo.cpp:677
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: libdnf/repo/Repo.cpp:686 libdnf/repo/Repo.cpp:752 libdnf/repo/Repo.cpp:880
+#: libdnf/repo/Repo.cpp:700 libdnf/repo/Repo.cpp:766 libdnf/repo/Repo.cpp:894
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: libdnf/repo/Repo.cpp:713 libdnf/repo/Repo.cpp:777
+#: libdnf/repo/Repo.cpp:727 libdnf/repo/Repo.cpp:791
 #, c-format
 msgid "can not list keys: %s"
 msgstr "キーを一覧表示できません: %s"
 
-#: libdnf/repo/Repo.cpp:806
+#: libdnf/repo/Repo.cpp:820
 #, c-format
 msgid "Failed to retrieve GPG key for repo '%s': %s"
 msgstr "repo '%s' のGPG鍵の回収に失敗しました : %s"
 
-#: libdnf/repo/Repo.cpp:859
+#: libdnf/repo/Repo.cpp:873
 #, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repo %s: 0x%s はインポート済みです"
 
-#: libdnf/repo/Repo.cpp:887
+#: libdnf/repo/Repo.cpp:901
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repo %s: インポート済みのキー 0x%s。"
 
-#: libdnf/repo/Repo.cpp:1131
+#: libdnf/repo/Repo.cpp:1149
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "復元中: repo '%s' はスキップされました、metalink はありません。"
 
-#: libdnf/repo/Repo.cpp:1150
+#: libdnf/repo/Repo.cpp:1168
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "復元中: repo '%s' はスキップされました、使用可能なハッシュはありません。"
 
-#: libdnf/repo/Repo.cpp:1173
+#: libdnf/repo/Repo.cpp:1191
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "復元中: '%s' は失敗しました、%s の合計は一致しません。"
 
-#: libdnf/repo/Repo.cpp:1179
+#: libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "復元中: '%s' は復元できます - metalink チェックサムが一致します。"
 
-#: libdnf/repo/Repo.cpp:1204
+#: libdnf/repo/Repo.cpp:1222
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "復元中: '%s' は復元できます - repomd が一致します。"
 
-#: libdnf/repo/Repo.cpp:1206
+#: libdnf/repo/Repo.cpp:1224
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
-msgstr "復元中:  '%s' に失敗しました、repomd が一致しません。"
+msgstr "復元中: '%s' に失敗しました、repomd が一致しません。"
 
-#: libdnf/repo/Repo.cpp:1224
+#: libdnf/repo/Repo.cpp:1242
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr "repo 送信先ディレクトリ \"%s\" を作成できません : %s"
 
-#: libdnf/repo/Repo.cpp:1230
+#: libdnf/repo/Repo.cpp:1248
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "repo 一時ディレクトリー \"%s\" を作成できません: %s"
 
-#: libdnf/repo/Repo.cpp:1244
+#: libdnf/repo/Repo.cpp:1262
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "ディレクトリー \"%s\" を作成できません: %s"
 
-#: libdnf/repo/Repo.cpp:1267
+#: libdnf/repo/Repo.cpp:1285
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "ディレクトリー名を \"%s\" から \"%s\" へと変更できません: %s"
 
-#: libdnf/repo/Repo.cpp:1290
+#: libdnf/repo/Repo.cpp:1308
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo: キャッシュを使用: %s"
 
-#: libdnf/repo/Repo.cpp:1302
+#: libdnf/repo/Repo.cpp:1320
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "キャッシュオンリーが有効になっていますが、'%s' に対するキャッシュはありません"
 
-#: libdnf/repo/Repo.cpp:1306
+#: libdnf/repo/Repo.cpp:1324
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: リモートからダウンロード中: %s"
 
-#: libdnf/repo/Repo.cpp:1312
+#: libdnf/repo/Repo.cpp:1330
 #, c-format
 msgid "Failed to download metadata for repo '%s': %s"
 msgstr "repo '%s' のメタデータのダウンロードに失敗しました : %s"
 
-#: libdnf/repo/Repo.cpp:1338
+#: libdnf/repo/Repo.cpp:1356
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): SHA256 のコンピュテーションに失敗しました"
 
-#: libdnf/repo/Repo.cpp:1363
+#: libdnf/repo/Repo.cpp:1384
 #, c-format
 msgid "Cannot create persistdir \"%s\": %s"
 msgstr "persistdir \"%s\" を作成できません : %s"
 
-#: libdnf/repo/Repo.cpp:1763
+#: libdnf/repo/Repo.cpp:1715
+msgid "'proxy_username' is set but not 'proxy_password'"
+msgstr "'proxy_username' は設定済みですが、'proxy_password' は設定されていません"
+
+#: libdnf/repo/Repo.cpp:1787
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume は byterangestart param と同時に使用できません"
 
-#: libdnf/repo/Repo.cpp:1780
+#: libdnf/repo/Repo.cpp:1804
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget の初期化に失敗しました: %s"
 
-#: libdnf/repo/Repo.cpp:1886
+#: libdnf/repo/Repo.cpp:1910
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "%s を開くことができません: %s"
 
-#: libdnf/repo/Repo.cpp:1930
+#: libdnf/repo/Repo.cpp:1954
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "id %ld を伴うログハンドラーは存在しません"
@@ -901,7 +1041,7 @@ msgstr "完了したトランザクションにトランザクションアイテ
 
 #: libdnf/transaction/Transformer.cpp:76
 msgid "Database Corrupted: no row 'version' in table 'config'"
-msgstr ""
+msgstr "データベースが破損しています。テーブル 'config' の行 'version' がありません"
 
 #: libdnf/transaction/Transformer.cpp:681
 msgid "Transformer: can't open history persist dir"
@@ -926,6 +1066,3 @@ msgstr "未保存のトランザクションにコンソールの出力を追加
 
 #~ msgid "Bad id for repo: %s, byte = %s %d"
 #~ msgstr "repo に対する不正な id: %s, byte = %s %d"
-
-#~ msgid "failed calculating RPMDB checksum"
-#~ msgstr "RPMDB チェックサムの計算に失敗しました"
diff --git a/po/ko.po b/po/ko.po
index 48094831..60e9f735 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
+"POT-Creation-Date: 2021-02-22 09:52+0100\n"
 "PO-Revision-Date: 2018-11-02 05:26+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Korean\n"
@@ -37,17 +37,17 @@ msgstr "변환 할 수 없습니다 '%s'~ 바이트"
 msgid "unknown unit '%s'"
 msgstr "알 수없는 단위 '%s'"
 
-#: libdnf/conf/ConfigMain.cpp:332
+#: libdnf/conf/ConfigMain.cpp:334
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "백분율 '%s'범위를 벗어났습니다."
 
-#: libdnf/conf/OptionBinds.cpp:76
+#: libdnf/conf/OptionBinds.cpp:85
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" does not exist"
 msgstr "구성 : ID가 \"%s\" 존재하지 않는다"
 
-#: libdnf/conf/OptionBinds.cpp:88
+#: libdnf/conf/OptionBinds.cpp:97
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" already exists"
 msgstr "구성 : ID가 \"%s\" 이미 존재 함"
@@ -58,7 +58,7 @@ msgid "invalid boolean value '%s'"
 msgstr "유효하지 않은 부울 값 '%s'"
 
 #: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
-#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+#: libdnf/conf/OptionString.cpp:64 libdnf/conf/OptionStringList.cpp:59
 #, c-format
 msgid "'%s' is not an allowed value"
 msgstr "'%s'은 (는) 허용 된 값이 아닙니다."
@@ -92,36 +92,125 @@ msgstr "주어진 경로 '%s' 존재하지 않는다."
 msgid "could not convert '%s' to seconds"
 msgstr "변환 할 수 없습니다 '%s'초까지"
 
-#: libdnf/conf/OptionString.cpp:74
+#: libdnf/conf/OptionString.cpp:79
 msgid "GetValue(): Value not set"
 msgstr "GetValue () : 값이 설정되지 않았습니다."
 
+#: libdnf/dnf-context.cpp:3033 libdnf/dnf-context.cpp:3042
+#, fuzzy, c-format
+#| msgid "Cannot enable multiple streams for module '%s'"
+msgid "Cannot enable more streams from module '%s' at the same time"
+msgstr "모듈 '%s’에 여러 스트림을 활성화할 수 없습니다"
+
+#: libdnf/dnf-context.cpp:3051 libdnf/dnf-context.cpp:3069
+#, c-format
+msgid ""
+"Cannot enable module '%1$s' stream '%2$s': State of module already modified"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3116
+#, c-format
+msgid "Modular dependency problem with Defaults: %s"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3119
+#, fuzzy, c-format
+#| msgid "some dependency problem"
+msgid "Modular dependency problem: %s"
+msgstr "일부 의존성 문제"
+
+#: libdnf/dnf-context.cpp:3153 libdnf/dnf-context.cpp:3177
+#: libdnf/dnf-context.cpp:3188 libdnf/dnf-context.cpp:3227
+#: libdnf/dnf-context.cpp:3243 libdnf/dnf-context.cpp:3275
+#, fuzzy, c-format
+#| msgid "Failed to resolve: %s"
+msgid "Unable to resolve argument '%s'"
+msgstr "분석하지 못했습니다: %s"
+
+#: libdnf/dnf-context.cpp:3160
+#, c-format
+msgid ""
+"Only module name is required. Ignoring unneeded information in argument: "
+"'%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3174
+#, c-format
+msgid "Cannot reset module '%s': State of module already modified"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3185
+#, c-format
+msgid "Cannot disable module '%s': State of module already modified"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3216 libdnf/dnf-context.cpp:3307
+msgid "No modular data available"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3233
+#, c-format
+msgid "Ignoring unneeded information in argument: '%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3271
+#, c-format
+msgid ""
+"Problem during enablement of dependency tree for moduele '%1$s' stream "
+"'%2$s': %3$s"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3283
+msgid "Problems appeared for module enable request"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3338
+msgid "Problems appeared for module reset request"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3340
+msgid "Problems appeared for module disable request"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3376
+#, c-format
+msgid ""
+"The operation would result in switching of module '%s' stream '%s' to stream"
+" '%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3380
+msgid ""
+"It is not possible to switch enabled streams of a module.\n"
+"It is recommended to remove all installed content from the module, and reset the module using 'microdnf module reset <module_name>' command. After you reset the module, you can install the other stream."
+msgstr ""
+
 #: libdnf/dnf-goal.cpp:68
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "트랜잭션을 해석 할 수 없습니다. "
 
 #: libdnf/dnf-goal.cpp:70
-#, c-format
+#, fuzzy, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i 발견 된 문제 :\n"
 
 #: libdnf/dnf-goal.cpp:78
-#, c-format
+#, fuzzy, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " 문제\n"
 
 #: libdnf/dnf-goal.cpp:80
-#, c-format
+#, fuzzy, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " 문제\n"
 
 #: libdnf/dnf-rpmts.cpp:79
 #, c-format
 msgid ""
 "No available modular metadata for modular package '%s'; cannot be installed "
 "on the system"
-msgstr ""
+msgstr "모듈 패키지 '%s'에 사용 가능한 모듈식 메타 데이터가 없으므로 시스템에 설치할 수 없습니다"
 
 #: libdnf/dnf-rpmts.cpp:121 libdnf/dnf-rpmts.cpp:166
 #, c-format
@@ -176,87 +265,87 @@ msgstr "꾸러미를 찾지 못했습니다. %s"
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "요소 지우기를 추가 할 수 없습니다. %1$s(%2$i)"
 
-#: libdnf/dnf-sack.cpp:381
-#, c-format
-msgid "no %1$s string for %2$s"
-msgstr ""
-
-#: libdnf/dnf-sack.cpp:404
+#: libdnf/dnf-sack.cpp:395
 msgid "failed to add solv"
 msgstr "solv를 추가하지 못했습니다."
 
-#: libdnf/dnf-sack.cpp:422
+#: libdnf/dnf-sack.cpp:414
+#, c-format
+msgid "no %1$s string for %2$s"
+msgstr "%2$s에 %1$s 문자열이 없습니다"
+
+#: libdnf/dnf-sack.cpp:424
 #, c-format
 msgid "failed to open: %s"
 msgstr "열지 못했습니다 : %s"
 
-#: libdnf/dnf-sack.cpp:501
+#: libdnf/dnf-sack.cpp:503
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "임시 파일을 만들 수 없습니다. %s"
 
-#: libdnf/dnf-sack.cpp:511
+#: libdnf/dnf-sack.cpp:513
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "여는 tmp 파일을 열지 못했습니다. %s"
 
-#: libdnf/dnf-sack.cpp:523
+#: libdnf/dnf-sack.cpp:525
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() failed writing data: %i"
 
-#: libdnf/dnf-sack.cpp:540
+#: libdnf/dnf-sack.cpp:542
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main ()이 작성된 solv 파일을 다시로드하지 못했습니다."
 
-#: libdnf/dnf-sack.cpp:605
+#: libdnf/dnf-sack.cpp:607
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "임시 파일을 만들 수 없습니다. %s"
 
-#: libdnf/dnf-sack.cpp:623
+#: libdnf/dnf-sack.cpp:625
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) has failed: %2$d"
 
-#: libdnf/dnf-sack.cpp:678
+#: libdnf/dnf-sack.cpp:680
 msgid "null repo md file"
 msgstr "null repo md 파일"
 
-#: libdnf/dnf-sack.cpp:687
+#: libdnf/dnf-sack.cpp:689
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "파일을 읽을 수 없습니다. %1$s: %2$s"
 
-#: libdnf/dnf-sack.cpp:701
+#: libdnf/dnf-sack.cpp:703
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() has failed."
 
-#: libdnf/dnf-sack.cpp:714
+#: libdnf/dnf-sack.cpp:716
 msgid "loading of MD_TYPE_PRIMARY has failed."
-msgstr ""
+msgstr "MD_TYPE_PRIMARY를 로드하지 못했습니다."
 
-#: libdnf/dnf-sack.cpp:727
+#: libdnf/dnf-sack.cpp:729
 msgid "repo_add_repomdxml/rpmmd() has failed."
 msgstr "repo_add_repomdxml/rpmmd() has failed."
 
-#: libdnf/dnf-sack.cpp:794
+#: libdnf/dnf-sack.cpp:796
 msgid "failed to auto-detect architecture"
 msgstr "아키텍처 자동 검색에 실패했습니다."
 
-#: libdnf/dnf-sack.cpp:919
+#: libdnf/dnf-sack.cpp:961
 #, c-format
 msgid "failed creating cachedir %s"
 msgstr "캐시 된 생성 실패 %s"
 
-#: libdnf/dnf-sack.cpp:1696
+#: libdnf/dnf-sack.cpp:1738
 msgid "failed loading RPMDB"
 msgstr "RPMDB로드 실패"
 
-#: libdnf/dnf-sack.cpp:2403
+#: libdnf/dnf-sack.cpp:2461
 #, c-format
 msgid "No module defaults found: %s"
-msgstr ""
+msgstr "모듈 기본 설정을 찾을 수 없습니다. %s"
 
 #: libdnf/dnf-state.cpp:1184
 #, c-format
@@ -339,7 +428,7 @@ msgstr "오류 %i 실행중인 트랜잭션 테스트"
 msgid "Error %i running transaction"
 msgstr "오류 %i 실행중인 거래"
 
-#: libdnf/dnf-transaction.cpp:1473
+#: libdnf/dnf-transaction.cpp:1474
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "트랜잭션이 쓰기 단계로 이동하지 않았지만 오류를 반환하지 않았습니다 (%i)"
@@ -356,367 +445,401 @@ msgstr "제거하지 못했습니다. %s"
 
 #: libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
-msgstr ""
+msgstr "잘못된 형식의 선택기, 필터에 일치하는 개체가 여러 개 있음"
 
 #: libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
-msgstr ""
+msgstr "조작에 잘못 형성된 선택자, 잘못된 비교 유형"
 
 #: libdnf/goal/Goal.cpp:67 libdnf/goal/Goal.cpp:94
 msgid " does not belong to a distupgrade repository"
-msgstr ""
+msgstr " distupgrade 리포지토리에 속하지 않습니다"
 
 #: libdnf/goal/Goal.cpp:68 libdnf/goal/Goal.cpp:95
 msgid " has inferior architecture"
-msgstr ""
+msgstr " 열등한 아키텍처"
 
 #: libdnf/goal/Goal.cpp:69
 msgid "problem with installed package "
-msgstr ""
+msgstr "설치된 패키지 문제 "
 
 #: libdnf/goal/Goal.cpp:70 libdnf/goal/Goal.cpp:97
 msgid "conflicting requests"
-msgstr ""
+msgstr "충돌하는 요청"
 
 #: libdnf/goal/Goal.cpp:71 libdnf/goal/Goal.cpp:98
 msgid "unsupported request"
-msgstr ""
+msgstr "지원되지 않는 요청"
 
 #: libdnf/goal/Goal.cpp:72 libdnf/goal/Goal.cpp:99
 msgid "nothing provides requested "
-msgstr ""
+msgstr "요청이 없습니다 "
 
 #: libdnf/goal/Goal.cpp:73
 #, c-format
 msgid "package %s does not exist"
-msgstr ""
+msgstr "패키지 %s이/가 존재하지 않습니다"
 
 #: libdnf/goal/Goal.cpp:74 libdnf/goal/Goal.cpp:101
 msgid " is provided by the system"
-msgstr ""
+msgstr " 시스템에서 제공"
 
 #: libdnf/goal/Goal.cpp:75 libdnf/goal/Goal.cpp:102
 msgid "some dependency problem"
-msgstr ""
+msgstr "일부 의존성 문제"
 
 #: libdnf/goal/Goal.cpp:76
 msgid "cannot install the best update candidate for package "
-msgstr ""
+msgstr "패키지에 가장 적합한 업데이트 옵션을 설치할 수 없습니다 "
 
 #: libdnf/goal/Goal.cpp:77 libdnf/goal/Goal.cpp:104
 msgid "cannot install the best candidate for the job"
-msgstr ""
+msgstr "작업에 가장 적합한 옵션을 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:78
 #, c-format
 msgid "package %s is filtered out by modular filtering"
-msgstr ""
+msgstr "패키지 %s이/가 모듈식 필터링으로 필터링됩니다"
 
 #: libdnf/goal/Goal.cpp:79
 #, c-format
 msgid "package %s does not have a compatible architecture"
-msgstr ""
+msgstr "패키지 %s에 호환되는 아키텍처가 없습니다"
 
 #: libdnf/goal/Goal.cpp:80
 #, c-format
 msgid "package %s is not installable"
-msgstr ""
+msgstr "패키지 %s을/를 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:81
 #, c-format
 msgid "package %s is filtered out by exclude filtering"
-msgstr ""
+msgstr "패키지 %s이/가 필터링에서 제외되었습니다"
 
 #: libdnf/goal/Goal.cpp:82
 #, c-format
 msgid "nothing provides %s needed by %s"
-msgstr ""
+msgstr "%s에 필요한 %s이/가 제공되지 않았습니다"
 
 #: libdnf/goal/Goal.cpp:83
 #, c-format
 msgid "cannot install both %s and %s"
-msgstr ""
+msgstr "%s 및 %s 모두 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:84
 #, c-format
 msgid "package %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "패키지 %s이/가 %s와 충돌합니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:85
 #, c-format
 msgid "package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "패키지 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:86
 #, c-format
 msgid "installed package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "설치된 패키지 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:87
 #, c-format
 msgid "package %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "패키지 %s이/가 %s 에서 암시적으로 폐지되었습니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:88
 #, c-format
 msgid "package %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "패키지 %s에 %s이/가 필요하지만 공급 업체가 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:89
 #, c-format
 msgid "package %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "패키지 %s이/가 %s와 충돌합니다 (자체적으로 제공)"
 
 #: libdnf/goal/Goal.cpp:90
 #, c-format
 msgid "both package %s and %s obsolete %s"
-msgstr ""
+msgstr "패키지 %s 및 %s 모두 %s에서 폐지되었습니다"
 
 #: libdnf/goal/Goal.cpp:96
 msgid "problem with installed module "
-msgstr ""
+msgstr "설치된 모듈 문제 "
 
 #: libdnf/goal/Goal.cpp:100
 #, c-format
 msgid "module %s does not exist"
-msgstr ""
+msgstr "모듈 %s이/가 존재하지 않습니다"
 
 #: libdnf/goal/Goal.cpp:103
 msgid "cannot install the best update candidate for module "
-msgstr ""
+msgstr "모듈에 가장 적합한 업데이트 옵션을 설치할 수 없습니다 "
 
 #: libdnf/goal/Goal.cpp:105 libdnf/goal/Goal.cpp:108
 #, c-format
 msgid "module %s is disabled"
-msgstr ""
+msgstr "모듈 %s을/를 사용할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:106
 #, c-format
 msgid "module %s does not have a compatible architecture"
-msgstr ""
+msgstr "모듈 %s에 호환되는 아키텍처가 없습니다"
 
 #: libdnf/goal/Goal.cpp:107
 #, c-format
 msgid "module %s is not installable"
-msgstr ""
+msgstr "모듈 %s을/를 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:109
 #, c-format
 msgid "nothing provides %s needed by module %s"
-msgstr ""
+msgstr "%s이/가 제공되지 않았습니다 (모듈 %s에 필요)"
 
 #: libdnf/goal/Goal.cpp:110
 #, c-format
 msgid "cannot install both modules %s and %s"
-msgstr ""
+msgstr "%s 및 %s 모듈을 모두 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:111
 #, c-format
 msgid "module %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "모듈 %s이/가 %s와 충돌합니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:112
 #, c-format
 msgid "module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "모듈 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:113
 #, c-format
 msgid "installed module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "설치된 모듈 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:114
 #, c-format
 msgid "module %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "모듈 %s이/가 %s 에서 암시적으로 폐지되었습니다 (%s에 의해 제공)"
 
 #: libdnf/goal/Goal.cpp:115
 #, c-format
 msgid "module %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "모듈 %s에 %s이/가 필요하지만 공급 업체가 설치할 수 없습니다"
 
 #: libdnf/goal/Goal.cpp:116
 #, c-format
 msgid "module %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "모듈 %s이/가 %s와 충돌합니다 (자체적으로 제공)"
 
 #: libdnf/goal/Goal.cpp:117
 #, c-format
 msgid "both module %s and %s obsolete %s"
-msgstr ""
+msgstr "모듈 %s및 %s이/가 %s에서 폐지되었습니다"
 
 #: libdnf/goal/Goal.cpp:1038
 msgid "no solver set"
-msgstr ""
+msgstr "solver 설정 없음"
 
 #: libdnf/goal/Goal.cpp:1043
-#, c-format
+#, fuzzy, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "실패한 %s 순수한"
 
 #: libdnf/goal/Goal.cpp:1050
-#, c-format
+#, fuzzy, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "디버그 데이터를 쓰지 못했습니다. %1$s: %2$s"
 
 #: libdnf/goal/Goal.cpp:1062
 msgid "no solv in the goal"
-msgstr ""
+msgstr "목표에 솔로가 없다."
 
 #: libdnf/goal/Goal.cpp:1064
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "해결책 없음, 보호 된 패키지를 제거 할 수 없음"
 
 #: libdnf/goal/Goal.cpp:1067
 msgid "no solution possible"
-msgstr ""
+msgstr "해결책 없음"
+
+#: libdnf/goal/Goal.cpp:1193
+#, fuzzy
+msgid "Problem: "
+msgstr "문제 "
 
-#: libdnf/goal/Goal.cpp:1479
+#: libdnf/goal/Goal.cpp:1198
+#, fuzzy, c-format
+msgid "Problem %d: "
+msgstr "문제 "
+
+#: libdnf/goal/Goal.cpp:1525
 msgid ""
 "The operation would result in removing the following protected packages: "
-msgstr ""
+msgstr "이 작업으로 인해 다음과 같은 보호 패키지가 제거됩니다. "
 
 #: libdnf/hy-iutil.cpp:322
-#, c-format
+#, fuzzy, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "이름 바꾸기 실패 %1$s 에 %2$s: %3$s"
 
 #: libdnf/hy-iutil.cpp:330
-#, c-format
+#, fuzzy, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "perms 설정 실패 %1$s: %2$s"
 
 #: libdnf/hy-iutil.cpp:376
 #, c-format
 msgid "cannot create directory %1$s: %2$s"
-msgstr ""
+msgstr "%1$s디렉토리를 만들 수 없습니다: %2$s"
 
 #: libdnf/hy-iutil.cpp:411
 #, c-format
 msgid "cannot stat path %1$s: %2$s"
-msgstr ""
+msgstr "%1$s 경로를 stat 할 수 없습니다: %2$s"
 
 #: libdnf/module/ModulePackage.cpp:499
 #, c-format
 msgid "Invalid format of Platform module: %s"
-msgstr ""
+msgstr "유효하지 않은 형식의 플랫폼 모듈: %s"
 
 #: libdnf/module/ModulePackage.cpp:514
 msgid "Multiple module platforms provided by available packages\n"
-msgstr ""
+msgstr "사용 가능한 패키지로 제공되는 다중 모듈 플랫폼\n"
 
 #: libdnf/module/ModulePackage.cpp:527
 msgid "Multiple module platforms provided by installed packages\n"
-msgstr ""
+msgstr "설치된 패키지로 제공되는 다중 모듈 플랫폼\n"
 
 #: libdnf/module/ModulePackage.cpp:554
 #, c-format
 msgid "Detection of Platform Module in %s failed: %s"
-msgstr ""
+msgstr "%s에서 플랫폼 모듈을 감지하지 못했습니다: %s"
 
 #: libdnf/module/ModulePackage.cpp:563
 #, c-format
 msgid "Missing PLATFORM_ID in %s"
-msgstr ""
+msgstr "PLATFORM_ID가 %s에 누락되어 있습니다"
 
 #: libdnf/module/ModulePackage.cpp:568
 msgid "No valid Platform ID detected"
-msgstr ""
+msgstr "유효한 플랫폼 ID가 없습니다"
 
 #: libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
-msgstr ""
+msgstr "모듈 '%s’에 여러 스트림을 활성화할 수 없습니다"
 
 #: libdnf/module/ModulePackageContainer.cpp:294
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
+msgstr "repo '%s'와 기본 설정이 충돌합니다: %s"
+
+#: libdnf/module/ModulePackageContainer.cpp:829
+msgid "Installing module profiles:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:844
+msgid "Disabling module profiles:\n"
 msgstr ""
 
-#: libdnf/module/ModulePackageContainer.cpp:1569
+#: libdnf/module/ModulePackageContainer.cpp:859
+msgid "Enabling module streams:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:873
+msgid "Switching module streams:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:891
+msgid "Disabling modules:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:902
+msgid "Resetting modules:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:1586
 #, c-format
 msgid "Unable to load modular Fail-Safe data at '%s'"
-msgstr ""
+msgstr "'%s'에서 모듈식 Fail-Safe 데이터를 로드할 수 없습니다"
 
-#: libdnf/module/ModulePackageContainer.cpp:1575
+#: libdnf/module/ModulePackageContainer.cpp:1592
 #, c-format
 msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
-msgstr ""
+msgstr "모듈 '%s:%s'에 대해 모듈식 Fail-Safe 데이터를 로드할 수 없습니다"
 
-#: libdnf/module/ModulePackageContainer.cpp:1639
+#: libdnf/module/ModulePackageContainer.cpp:1656
 #, c-format
 msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
-msgstr ""
+msgstr "모듈식 Fail-Safe 데이터에 대한 “%s\" 디렉토리를 만들 수 없습니다: %s"
 
-#: libdnf/module/ModulePackageContainer.cpp:1661
+#: libdnf/module/ModulePackageContainer.cpp:1678
 #, c-format
 msgid "Unable to save a modular Fail Safe data to '%s'"
-msgstr ""
+msgstr "모듈식 Fail Safe 데이터를 '%s'에 저장할 수 없습니다"
 
-#: libdnf/module/ModulePackageContainer.cpp:1686
+#: libdnf/module/ModulePackageContainer.cpp:1703
 #, c-format
 msgid "Unable to remove a modular Fail Safe data in '%s'"
-msgstr ""
+msgstr "'%s'에서 모듈식 Fail Safe 데이터를 제거할 수 없습니다"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:86
 #, c-format
 msgid "Failed to update from string: %s"
-msgstr ""
+msgstr "문자열에서 업데이트하지 못했습니다: %s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:110
 #, c-format
 msgid "Failed to resolve: %s"
-msgstr ""
+msgstr "분석하지 못했습니다: %s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:115
 #, c-format
 msgid "There were errors while resolving modular defaults: %s"
-msgstr ""
+msgstr "모듈식 기본값을 분석하는 동안 오류가 발생했습니다: %s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:120
 #, c-format
 msgid "Failed to upgrade defaults: %s"
-msgstr ""
+msgstr "기본값을 업그레이드하지 못했습니다: %s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:123
 #, c-format
 msgid "Failed to upgrade streams: %s"
-msgstr ""
+msgstr "스트림을 업그레이드하지 못했습니다: %s"
 
 #: libdnf/plugin/plugin.cpp:46
 #, c-format
 msgid "Can't load shared library \"%s\": %s"
-msgstr ""
+msgstr "공유 라이브러리 \"%s\"을/를 로드할 수 없습니다: %s"
 
 #: libdnf/plugin/plugin.cpp:61 libdnf/plugin/plugin.cpp:67
 #: libdnf/plugin/plugin.cpp:73 libdnf/plugin/plugin.cpp:79
 #, c-format
 msgid "Can't obtain address of symbol \"%s\": %s"
-msgstr ""
+msgstr "기호 \"%s\"의 주소를 가져올 수 없습니다: %s"
 
 #: libdnf/plugin/plugin.cpp:86
 #, c-format
 msgid "Loading plugin file=\"%s\""
-msgstr ""
+msgstr "플러그인 파일 로드 중=\"%s\""
 
 #: libdnf/plugin/plugin.cpp:89
 #, c-format
 msgid "Loaded plugin name=\"%s\", version=\"%s\""
-msgstr ""
+msgstr "로드된 플러그인 이름=\"%s\", 버전=\"%s\""
 
 #: libdnf/plugin/plugin.cpp:96
 msgid "Plugins::loadPlugins() dirPath cannot be empty"
-msgstr ""
+msgstr "Plugins::loadPlugins() dirPath는 비워둘 수 없습니다"
 
 #: libdnf/plugin/plugin.cpp:105
 #, c-format
 msgid "Can't read plugin directory \"%s\": %s"
-msgstr ""
+msgstr "플러그인 디렉토리 \"%s\"을/를 읽을 수 없습니다: %s"
 
 #: libdnf/plugin/plugin.cpp:114
 #, c-format
 msgid "Can't load plugin \"%s\": %s"
-msgstr ""
+msgstr "플러그인 \"%s\"을/를 로드할 수 없습니다: %s"
 
 #: libdnf/repo/DependencySplitter.cpp:50
 msgid ""
@@ -724,157 +847,174 @@ msgid ""
 "deprecated and the support will be dropped in future versions. Use '=' "
 "operator instead."
 msgstr ""
+"reldeps에 '=='연산자를 사용하면 정의되지 않은 동작이 발생할 수 있습니다. 이 연산자는 더 이상 사용되지 않으며 향후 버전에서는"
+" 지원이 중단됩니다. 대신 '=' 연산자를 사용하십시오."
 
 #: libdnf/repo/Repo.cpp:321
-#, c-format
+#, fuzzy, c-format
 msgid "Repository %s has no mirror or baseurl set."
-msgstr ""
+msgstr "저장소 %s 거울이나 기둥이 없습니다."
 
 #: libdnf/repo/Repo.cpp:330
-#, c-format
+#, fuzzy, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "저장소 '%s'에 지원되지 않는 유형이 있습니다 :'type =%s', 건너 뛰기."
 
-#: libdnf/repo/Repo.cpp:546
+#: libdnf/repo/Repo.cpp:489 libdnf/repo/Repo.cpp:534 libdnf/repo/Repo.cpp:581
+#: libdnf/repo/Repo.cpp:1368
 #, c-format
-msgid "Cannot find a valid baseurl for repo: %s"
+msgid "repo '%s': 'basecachedir' is not set"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:583 libdnf/repo/Repo.cpp:1672
+#: libdnf/repo/Repo.cpp:553
+#, fuzzy, c-format
+msgid "Cannot find a valid baseurl for repo: %s"
+msgstr "repo에 유효한 baseurl을 찾을 수 없습니다. %s"
+
+#: libdnf/repo/Repo.cpp:594 libdnf/repo/Repo.cpp:1693
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
+msgstr "최대 다운로드 속도가 최소값보다 낮습니다. 최소 속도 또는 스로틀의 구성을 변경하십시오."
+
+#: libdnf/repo/Repo.cpp:625
+#, c-format
+msgid "repo '%s': 'proxy_username' is set but not 'proxy_password'"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:633 libdnf/repo/Repo.cpp:655
+#: libdnf/repo/Repo.cpp:647 libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: libdnf/repo/Repo.cpp:641 libdnf/repo/Repo.cpp:663
+#: libdnf/repo/Repo.cpp:655 libdnf/repo/Repo.cpp:677
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: libdnf/repo/Repo.cpp:686 libdnf/repo/Repo.cpp:752 libdnf/repo/Repo.cpp:880
+#: libdnf/repo/Repo.cpp:700 libdnf/repo/Repo.cpp:766 libdnf/repo/Repo.cpp:894
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: libdnf/repo/Repo.cpp:713 libdnf/repo/Repo.cpp:777
+#: libdnf/repo/Repo.cpp:727 libdnf/repo/Repo.cpp:791
 #, c-format
 msgid "can not list keys: %s"
 msgstr "열쇠를 나열 할 수 없습니다 : %s"
 
-#: libdnf/repo/Repo.cpp:806
+#: libdnf/repo/Repo.cpp:820
 #, c-format
 msgid "Failed to retrieve GPG key for repo '%s': %s"
-msgstr ""
+msgstr "repo '%s'에 대한 GPG 키를 검색하지 못했습니다: %s"
 
-#: libdnf/repo/Repo.cpp:859
+#: libdnf/repo/Repo.cpp:873
 #, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "레포 %s: 0x%s 이미 수입"
 
-#: libdnf/repo/Repo.cpp:887
+#: libdnf/repo/Repo.cpp:901
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "레포 %s: 가져온 키 0x%s."
 
-#: libdnf/repo/Repo.cpp:1131
+#: libdnf/repo/Repo.cpp:1149
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "부활 : repo '%s'건너 뛰었습니다."
 
-#: libdnf/repo/Repo.cpp:1150
+#: libdnf/repo/Repo.cpp:1168
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "부활 : repo '%s'건너 뛰었습니다. 사용 가능한 해시가 없습니다."
 
-#: libdnf/repo/Repo.cpp:1173
+#: libdnf/repo/Repo.cpp:1191
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "되살리기 : 실패한 '%s', 불일치 %s 합집합."
 
-#: libdnf/repo/Repo.cpp:1179
+#: libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - metalink 체크섬이 일치합니다."
 
-#: libdnf/repo/Repo.cpp:1204
+#: libdnf/repo/Repo.cpp:1222
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - repomd가 일치합니다."
 
-#: libdnf/repo/Repo.cpp:1206
+#: libdnf/repo/Repo.cpp:1224
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "되살리기 : 실패한 '%s', 일치하지 않는 repomd."
 
-#: libdnf/repo/Repo.cpp:1224
+#: libdnf/repo/Repo.cpp:1242
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
-msgstr ""
+msgstr "repo 대상 디렉토리 “%s\"를 작성할 수 없습니다: %s"
 
-#: libdnf/repo/Repo.cpp:1230
+#: libdnf/repo/Repo.cpp:1248
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "임시 저장소 디렉토리를 만들 수 없습니다 \"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1244
+#: libdnf/repo/Repo.cpp:1262
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "디렉토리를 만들 수 없습니다 \"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1267
+#: libdnf/repo/Repo.cpp:1285
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "디렉터리 이름을 바꿀 수 없습니다 \"%s\"~\"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1290
+#: libdnf/repo/Repo.cpp:1308
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo : 캐시 사용 : %s"
 
-#: libdnf/repo/Repo.cpp:1302
+#: libdnf/repo/Repo.cpp:1320
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "캐시 만 사용 가능하지만 '%s'"
 
-#: libdnf/repo/Repo.cpp:1306
+#: libdnf/repo/Repo.cpp:1324
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo : 원격에서 다운로드 중 : %s"
 
-#: libdnf/repo/Repo.cpp:1312
+#: libdnf/repo/Repo.cpp:1330
 #, c-format
 msgid "Failed to download metadata for repo '%s': %s"
-msgstr ""
+msgstr "repo '%s'의 메타 데이터를 다운로드하지 못했습니다: %s"
 
-#: libdnf/repo/Repo.cpp:1338
+#: libdnf/repo/Repo.cpp:1356
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir () : SHA256 계산에 실패했습니다."
 
-#: libdnf/repo/Repo.cpp:1363
+#: libdnf/repo/Repo.cpp:1384
 #, c-format
 msgid "Cannot create persistdir \"%s\": %s"
+msgstr "persistdir “%s\"을/를 작성할 수 없습니다: %s"
+
+#: libdnf/repo/Repo.cpp:1715
+msgid "'proxy_username' is set but not 'proxy_password'"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1763
+#: libdnf/repo/Repo.cpp:1787
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "이력서는 byterangestart 매개 변수와 동시에 사용할 수 없습니다."
 
-#: libdnf/repo/Repo.cpp:1780
+#: libdnf/repo/Repo.cpp:1804
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget 초기화에 실패했습니다 : %s"
 
-#: libdnf/repo/Repo.cpp:1886
+#: libdnf/repo/Repo.cpp:1910
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "열 수 없다 %s: %s"
 
-#: libdnf/repo/Repo.cpp:1930
+#: libdnf/repo/Repo.cpp:1954
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "ID가있는 로그 처리기 %ld 존재하지 않는다."
@@ -903,7 +1043,7 @@ msgstr "완료된 트랜잭션에서 트랜잭션 항목 업데이트를 시도
 
 #: libdnf/transaction/Transformer.cpp:76
 msgid "Database Corrupted: no row 'version' in table 'config'"
-msgstr ""
+msgstr "데이터베이스 손상: 'config' 테이블에 'version' 행이 없습니다."
 
 #: libdnf/transaction/Transformer.cpp:681
 msgid "Transformer: can't open history persist dir"
@@ -925,6 +1065,3 @@ msgstr "TransactionItem 상태가 설정되지 않았습니다. %s"
 #: libdnf/transaction/private/Transaction.cpp:243
 msgid "Can't add console output to unsaved transaction"
 msgstr "저장되지 않은 트랜잭션에 콘솔 출력을 추가 할 수 없습니다."
-
-#~ msgid "failed calculating RPMDB checksum"
-#~ msgstr "RPMDB 체크섬 계산 실패"
diff --git a/po/libdnf.pot b/po/libdnf.pot
index e7c0edfc..96a9634e 100644
--- a/po/libdnf.pot
+++ b/po/libdnf.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
+"POT-Creation-Date: 2021-02-22 09:52+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,17 +37,17 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: libdnf/conf/ConfigMain.cpp:332
+#: libdnf/conf/ConfigMain.cpp:334
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
 
-#: libdnf/conf/OptionBinds.cpp:76
+#: libdnf/conf/OptionBinds.cpp:85
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" does not exist"
 msgstr ""
 
-#: libdnf/conf/OptionBinds.cpp:88
+#: libdnf/conf/OptionBinds.cpp:97
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" already exists"
 msgstr ""
@@ -58,7 +58,7 @@ msgid "invalid boolean value '%s'"
 msgstr ""
 
 #: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
-#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+#: libdnf/conf/OptionString.cpp:64 libdnf/conf/OptionStringList.cpp:59
 #, c-format
 msgid "'%s' is not an allowed value"
 msgstr ""
@@ -92,10 +92,97 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: libdnf/conf/OptionString.cpp:74
+#: libdnf/conf/OptionString.cpp:79
 msgid "GetValue(): Value not set"
 msgstr ""
 
+#: libdnf/dnf-context.cpp:3033 libdnf/dnf-context.cpp:3042
+#, c-format
+msgid "Cannot enable more streams from module '%s' at the same time"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3051 libdnf/dnf-context.cpp:3069
+#, c-format
+msgid ""
+"Cannot enable module '%1$s' stream '%2$s': State of module already modified"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3116
+#, c-format
+msgid "Modular dependency problem with Defaults: %s"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3119
+#, c-format
+msgid "Modular dependency problem: %s"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3153 libdnf/dnf-context.cpp:3177
+#: libdnf/dnf-context.cpp:3188 libdnf/dnf-context.cpp:3227
+#: libdnf/dnf-context.cpp:3243 libdnf/dnf-context.cpp:3275
+#, c-format
+msgid "Unable to resolve argument '%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3160
+#, c-format
+msgid ""
+"Only module name is required. Ignoring unneeded information in argument: '%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3174
+#, c-format
+msgid "Cannot reset module '%s': State of module already modified"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3185
+#, c-format
+msgid "Cannot disable module '%s': State of module already modified"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3216 libdnf/dnf-context.cpp:3307
+msgid "No modular data available"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3233
+#, c-format
+msgid "Ignoring unneeded information in argument: '%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3271
+#, c-format
+msgid ""
+"Problem during enablement of dependency tree for moduele '%1$s' stream "
+"'%2$s': %3$s"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3283
+msgid "Problems appeared for module enable request"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3338
+msgid "Problems appeared for module reset request"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3340
+msgid "Problems appeared for module disable request"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3376
+#, c-format
+msgid ""
+"The operation would result in switching of module '%s' stream '%s' to stream "
+"'%s'"
+msgstr ""
+
+#: libdnf/dnf-context.cpp:3380
+msgid ""
+"It is not possible to switch enabled streams of a module.\n"
+"It is recommended to remove all installed content from the module, and reset "
+"the module using 'microdnf module reset <module_name>' command. After you "
+"reset the module, you can install the other stream."
+msgstr ""
+
 #: libdnf/dnf-goal.cpp:68
 msgid "Could not depsolve transaction; "
 msgstr ""
@@ -177,84 +264,84 @@ msgstr ""
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:381
-#, c-format
-msgid "no %1$s string for %2$s"
+#: libdnf/dnf-sack.cpp:395
+msgid "failed to add solv"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:404
-msgid "failed to add solv"
+#: libdnf/dnf-sack.cpp:414
+#, c-format
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:422
+#: libdnf/dnf-sack.cpp:424
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:501
+#: libdnf/dnf-sack.cpp:503
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:511
+#: libdnf/dnf-sack.cpp:513
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:523
+#: libdnf/dnf-sack.cpp:525
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:540
+#: libdnf/dnf-sack.cpp:542
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:605
+#: libdnf/dnf-sack.cpp:607
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:623
+#: libdnf/dnf-sack.cpp:625
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:678
+#: libdnf/dnf-sack.cpp:680
 msgid "null repo md file"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:687
+#: libdnf/dnf-sack.cpp:689
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:701
+#: libdnf/dnf-sack.cpp:703
 msgid "repo_add_solv() has failed."
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:714
+#: libdnf/dnf-sack.cpp:716
 msgid "loading of MD_TYPE_PRIMARY has failed."
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:727
+#: libdnf/dnf-sack.cpp:729
 msgid "repo_add_repomdxml/rpmmd() has failed."
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:794
+#: libdnf/dnf-sack.cpp:796
 msgid "failed to auto-detect architecture"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:919
+#: libdnf/dnf-sack.cpp:961
 #, c-format
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:1696
+#: libdnf/dnf-sack.cpp:1738
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: libdnf/dnf-sack.cpp:2403
+#: libdnf/dnf-sack.cpp:2461
 #, c-format
 msgid "No module defaults found: %s"
 msgstr ""
@@ -340,7 +427,7 @@ msgstr ""
 msgid "Error %i running transaction"
 msgstr ""
 
-#: libdnf/dnf-transaction.cpp:1473
+#: libdnf/dnf-transaction.cpp:1474
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -572,7 +659,16 @@ msgstr ""
 msgid "no solution possible"
 msgstr ""
 
-#: libdnf/goal/Goal.cpp:1479
+#: libdnf/goal/Goal.cpp:1193
+msgid "Problem: "
+msgstr ""
+
+#: libdnf/goal/Goal.cpp:1198
+#, c-format
+msgid "Problem %d: "
+msgstr ""
+
+#: libdnf/goal/Goal.cpp:1525
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
@@ -634,27 +730,51 @@ msgstr ""
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: libdnf/module/ModulePackageContainer.cpp:1569
+#: libdnf/module/ModulePackageContainer.cpp:829
+msgid "Installing module profiles:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:844
+msgid "Disabling module profiles:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:859
+msgid "Enabling module streams:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:873
+msgid "Switching module streams:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:891
+msgid "Disabling modules:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:902
+msgid "Resetting modules:\n"
+msgstr ""
+
+#: libdnf/module/ModulePackageContainer.cpp:1586
 #, c-format
 msgid "Unable to load modular Fail-Safe data at '%s'"
 msgstr ""
 
-#: libdnf/module/ModulePackageContainer.cpp:1575
+#: libdnf/module/ModulePackageContainer.cpp:1592
 #, c-format
 msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
 msgstr ""
 
-#: libdnf/module/ModulePackageContainer.cpp:1639
+#: libdnf/module/ModulePackageContainer.cpp:1656
 #, c-format
 msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
 msgstr ""
 
-#: libdnf/module/ModulePackageContainer.cpp:1661
+#: libdnf/module/ModulePackageContainer.cpp:1678
 #, c-format
 msgid "Unable to save a modular Fail Safe data to '%s'"
 msgstr ""
 
-#: libdnf/module/ModulePackageContainer.cpp:1686
+#: libdnf/module/ModulePackageContainer.cpp:1703
 #, c-format
 msgid "Unable to remove a modular Fail Safe data in '%s'"
 msgstr ""
@@ -736,146 +856,161 @@ msgstr ""
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:546
+#: libdnf/repo/Repo.cpp:489 libdnf/repo/Repo.cpp:534 libdnf/repo/Repo.cpp:581
+#: libdnf/repo/Repo.cpp:1368
+#, c-format
+msgid "repo '%s': 'basecachedir' is not set"
+msgstr ""
+
+#: libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:583 libdnf/repo/Repo.cpp:1672
+#: libdnf/repo/Repo.cpp:594 libdnf/repo/Repo.cpp:1693
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of "
 "minrate or throttle"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:633 libdnf/repo/Repo.cpp:655
+#: libdnf/repo/Repo.cpp:625
+#, c-format
+msgid "repo '%s': 'proxy_username' is set but not 'proxy_password'"
+msgstr ""
+
+#: libdnf/repo/Repo.cpp:647 libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:641 libdnf/repo/Repo.cpp:663
+#: libdnf/repo/Repo.cpp:655 libdnf/repo/Repo.cpp:677
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:686 libdnf/repo/Repo.cpp:752 libdnf/repo/Repo.cpp:880
+#: libdnf/repo/Repo.cpp:700 libdnf/repo/Repo.cpp:766 libdnf/repo/Repo.cpp:894
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:713 libdnf/repo/Repo.cpp:777
+#: libdnf/repo/Repo.cpp:727 libdnf/repo/Repo.cpp:791
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:806
+#: libdnf/repo/Repo.cpp:820
 #, c-format
 msgid "Failed to retrieve GPG key for repo '%s': %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:859
+#: libdnf/repo/Repo.cpp:873
 #, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:887
+#: libdnf/repo/Repo.cpp:901
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1131
+#: libdnf/repo/Repo.cpp:1149
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1150
+#: libdnf/repo/Repo.cpp:1168
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1173
+#: libdnf/repo/Repo.cpp:1191
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1179
+#: libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1204
+#: libdnf/repo/Repo.cpp:1222
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1206
+#: libdnf/repo/Repo.cpp:1224
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1224
+#: libdnf/repo/Repo.cpp:1242
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1230
+#: libdnf/repo/Repo.cpp:1248
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1244
+#: libdnf/repo/Repo.cpp:1262
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1267
+#: libdnf/repo/Repo.cpp:1285
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1290
+#: libdnf/repo/Repo.cpp:1308
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1302
+#: libdnf/repo/Repo.cpp:1320
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1306
+#: libdnf/repo/Repo.cpp:1324
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1312
+#: libdnf/repo/Repo.cpp:1330
 #, c-format
 msgid "Failed to download metadata for repo '%s': %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1338
+#: libdnf/repo/Repo.cpp:1356
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1363
+#: libdnf/repo/Repo.cpp:1384
 #, c-format
 msgid "Cannot create persistdir \"%s\": %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1763
+#: libdnf/repo/Repo.cpp:1715
+msgid "'proxy_username' is set but not 'proxy_password'"
+msgstr ""
+
+#: libdnf/repo/Repo.cpp:1787
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1780
+#: libdnf/repo/Repo.cpp:1804
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1886
+#: libdnf/repo/Repo.cpp:1910
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: libdnf/repo/Repo.cpp:1930
+#: libdnf/repo/Repo.cpp:1954
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 9583b075..31c972fe 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,19 +1,20 @@
 # Charles Lee <lchopn@gmail.com>, 2017. #zanata, 2020.
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+# Sundeep Anand <suanand@redhat.com>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-07-09 13:27+0000\n"
-"Last-Translator: Charles Lee <lchopn@gmail.com>\n"
-"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/dnf/libdnf-dnf-4-master/zh_CN/>\n"
+"POT-Creation-Date: 2021-02-22 09:52+0100\n"
+"PO-Revision-Date: 2021-03-08 11:09+0000\n"
+"Last-Translator: Sundeep Anand <suanand@redhat.com>\n"
+"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/dnf/libdnf-rhel-8/zh_CN/>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.5.1\n"
 
 #: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
 msgid "no value specified"
@@ -32,33 +33,33 @@ msgstr "无法把 '%s' 转换为字节"
 #: libdnf/conf/ConfigMain.cpp:83 libdnf/conf/OptionSeconds.cpp:66
 #, c-format
 msgid "unknown unit '%s'"
-msgstr "未知单元 “%s”"
+msgstr "未知单元 '%s'"
 
-#: libdnf/conf/ConfigMain.cpp:332
+#: libdnf/conf/ConfigMain.cpp:334
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "百分数 '%s' 超出范围"
 
-#: libdnf/conf/OptionBinds.cpp:76
+#: libdnf/conf/OptionBinds.cpp:85
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" does not exist"
-msgstr "配置:ID 为 \"%s\"  的 OptionBinding 不存在"
+msgstr "配置:ID 为 '%s' 的 OptionBinding 不存在"
 
-#: libdnf/conf/OptionBinds.cpp:88
+#: libdnf/conf/OptionBinds.cpp:97
 #, c-format
 msgid "Configuration: OptionBinding with id \"%s\" already exists"
-msgstr "配置:ID 为 \"%s\"  的 OptionBinding 已存在"
+msgstr "配置:ID 为 '%s' 的 OptionBinding 已存在"
 
 #: libdnf/conf/OptionBool.cpp:47
 #, c-format
 msgid "invalid boolean value '%s'"
-msgstr "无效的布尔值“%s”"
+msgstr "无效的布尔值'%s'"
 
 #: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
-#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+#: libdnf/conf/OptionString.cpp:64 libdnf/conf/OptionStringList.cpp:59
 #, c-format
 msgid "'%s' is not an allowed value"
-msgstr "'%s'  不是一个允许的值"
+msgstr "'%s' 不是一个允许的值"
 
 #: libdnf/conf/OptionEnum.cpp:83 libdnf/conf/OptionNumber.cpp:88
 msgid "invalid value"
@@ -89,10 +90,98 @@ msgstr "给定的路径 “%s” 不存在。"
 msgid "could not convert '%s' to seconds"
 msgstr "无法把 '%s' 转换为秒"
 
-#: libdnf/conf/OptionString.cpp:74
+#: libdnf/conf/OptionString.cpp:79
 msgid "GetValue(): Value not set"
 msgstr "GetValue(): 值没有设置"
 
+#: libdnf/dnf-context.cpp:3033 libdnf/dnf-context.cpp:3042
+#, c-format
+msgid "Cannot enable more streams from module '%s' at the same time"
+msgstr "无法同时从模块 '%s' 中启用更多流"
+
+#: libdnf/dnf-context.cpp:3051 libdnf/dnf-context.cpp:3069
+#, c-format
+msgid ""
+"Cannot enable module '%1$s' stream '%2$s': State of module already modified"
+msgstr "无法启用模块 '%1$s' 流 '%2$s':已经修改的模块状态"
+
+#: libdnf/dnf-context.cpp:3116
+#, c-format
+msgid "Modular dependency problem with Defaults: %s"
+msgstr "默认设置的模块依赖性问题:%s"
+
+#: libdnf/dnf-context.cpp:3119
+#, c-format
+msgid "Modular dependency problem: %s"
+msgstr "模块依赖问题:%s"
+
+#: libdnf/dnf-context.cpp:3153 libdnf/dnf-context.cpp:3177
+#: libdnf/dnf-context.cpp:3188 libdnf/dnf-context.cpp:3227
+#: libdnf/dnf-context.cpp:3243 libdnf/dnf-context.cpp:3275
+#, c-format
+msgid "Unable to resolve argument '%s'"
+msgstr "无法解析参数 '%s'"
+
+#: libdnf/dnf-context.cpp:3160
+#, c-format
+msgid ""
+"Only module name is required. Ignoring unneeded information in argument: "
+"'%s'"
+msgstr "只需要模块名。忽略参数 '%s' 中的无用信息"
+
+#: libdnf/dnf-context.cpp:3174
+#, c-format
+msgid "Cannot reset module '%s': State of module already modified"
+msgstr "无法重置模块 '%s':已修改的模块状态"
+
+#: libdnf/dnf-context.cpp:3185
+#, c-format
+msgid "Cannot disable module '%s': State of module already modified"
+msgstr "无法禁用模块 '%s':已经修改的模块状态"
+
+#: libdnf/dnf-context.cpp:3216 libdnf/dnf-context.cpp:3307
+msgid "No modular data available"
+msgstr "没有可用的模块数据"
+
+#: libdnf/dnf-context.cpp:3233
+#, c-format
+msgid "Ignoring unneeded information in argument: '%s'"
+msgstr "忽略参数:\"%s\" 中不需要的信息"
+
+#: libdnf/dnf-context.cpp:3271
+#, c-format
+msgid ""
+"Problem during enablement of dependency tree for moduele '%1$s' stream "
+"'%2$s': %3$s"
+msgstr "为模块 '%1$s' 流 '%2$s' 启用依赖树时出现问题: %3$s"
+
+#: libdnf/dnf-context.cpp:3283
+msgid "Problems appeared for module enable request"
+msgstr "模块启用请求时出现问题"
+
+#: libdnf/dnf-context.cpp:3338
+msgid "Problems appeared for module reset request"
+msgstr "模块重置请求时出现问题"
+
+#: libdnf/dnf-context.cpp:3340
+msgid "Problems appeared for module disable request"
+msgstr "模块禁用请求时出现问题"
+
+#: libdnf/dnf-context.cpp:3376
+#, c-format
+msgid ""
+"The operation would result in switching of module '%s' stream '%s' to stream"
+" '%s'"
+msgstr "这个操作会把模块 '%s' 从流 '%s' 切换到流 '%s'"
+
+#: libdnf/dnf-context.cpp:3380
+msgid ""
+"It is not possible to switch enabled streams of a module.\n"
+"It is recommended to remove all installed content from the module, and reset the module using 'microdnf module reset <module_name>' command. After you reset the module, you can install the other stream."
+msgstr ""
+"无法切换一个模块已启用的流。 推荐从模块中删除所有已安装的内容,使用 'microdnf module reset <module_name>' "
+"命令重置模块。在重置模块后就可以安装其他流。"
+
 #: libdnf/dnf-goal.cpp:68
 msgid "Could not depsolve transaction; "
 msgstr "无法 depsolve 事务: "
@@ -118,7 +207,7 @@ msgstr " 问题: %s\n"
 msgid ""
 "No available modular metadata for modular package '%s'; cannot be installed "
 "on the system"
-msgstr ""
+msgstr "模块软件包 '%s' 没有可用的元数据,它不能在系统上安装"
 
 #: libdnf/dnf-rpmts.cpp:121 libdnf/dnf-rpmts.cpp:166
 #, c-format
@@ -173,87 +262,87 @@ msgstr "无法找到软件包 %s"
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "无法添加删除元素 %1$s(%2$i)"
 
-#: libdnf/dnf-sack.cpp:381
-#, c-format
-msgid "no %1$s string for %2$s"
-msgstr ""
-
-#: libdnf/dnf-sack.cpp:404
+#: libdnf/dnf-sack.cpp:395
 msgid "failed to add solv"
 msgstr "添加 solv 失败"
 
-#: libdnf/dnf-sack.cpp:422
+#: libdnf/dnf-sack.cpp:414
+#, c-format
+msgid "no %1$s string for %2$s"
+msgstr "没有为 %2$s 的 %1$s 字符串"
+
+#: libdnf/dnf-sack.cpp:424
 #, c-format
 msgid "failed to open: %s"
 msgstr "打开失败:%s"
 
-#: libdnf/dnf-sack.cpp:501
+#: libdnf/dnf-sack.cpp:503
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "不能创建临时文件: %s"
 
-#: libdnf/dnf-sack.cpp:511
+#: libdnf/dnf-sack.cpp:513
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "打开 tmp 文件失败: %s"
 
-#: libdnf/dnf-sack.cpp:523
+#: libdnf/dnf-sack.cpp:525
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() 写数据失败: %i"
 
-#: libdnf/dnf-sack.cpp:540
+#: libdnf/dnf-sack.cpp:542
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() 重新加载写的 solv 文件失败"
 
-#: libdnf/dnf-sack.cpp:605
+#: libdnf/dnf-sack.cpp:607
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "不能创建临时文件 %s"
 
-#: libdnf/dnf-sack.cpp:623
+#: libdnf/dnf-sack.cpp:625
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) 已失败: %2$d"
 
-#: libdnf/dnf-sack.cpp:678
+#: libdnf/dnf-sack.cpp:680
 msgid "null repo md file"
 msgstr "null repo md 文件"
 
-#: libdnf/dnf-sack.cpp:687
+#: libdnf/dnf-sack.cpp:689
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "不能读文件 %1$s: %2$s"
 
-#: libdnf/dnf-sack.cpp:701
+#: libdnf/dnf-sack.cpp:703
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() 已失败。"
 
-#: libdnf/dnf-sack.cpp:714
+#: libdnf/dnf-sack.cpp:716
 msgid "loading of MD_TYPE_PRIMARY has failed."
-msgstr ""
+msgstr "加载 MD_TYPE_PRIMARY 失败。"
 
-#: libdnf/dnf-sack.cpp:727
+#: libdnf/dnf-sack.cpp:729
 msgid "repo_add_repomdxml/rpmmd() has failed."
 msgstr "repo_add_repomdxml/rpmmd() 已失败。"
 
-#: libdnf/dnf-sack.cpp:794
+#: libdnf/dnf-sack.cpp:796
 msgid "failed to auto-detect architecture"
 msgstr "自动检测架构失败"
 
-#: libdnf/dnf-sack.cpp:919
+#: libdnf/dnf-sack.cpp:961
 #, c-format
 msgid "failed creating cachedir %s"
 msgstr "无法创建 cachedir %s"
 
-#: libdnf/dnf-sack.cpp:1696
+#: libdnf/dnf-sack.cpp:1738
 msgid "failed loading RPMDB"
 msgstr "无法加载 RPMDB"
 
-#: libdnf/dnf-sack.cpp:2403
+#: libdnf/dnf-sack.cpp:2461
 #, c-format
 msgid "No module defaults found: %s"
-msgstr ""
+msgstr "没有找到模块默认设置:%s"
 
 #: libdnf/dnf-state.cpp:1184
 #, c-format
@@ -336,7 +425,7 @@ msgstr "错误 %i 运行事务测试"
 msgid "Error %i running transaction"
 msgstr "错误 %i 运行事务"
 
-#: libdnf/dnf-transaction.cpp:1473
+#: libdnf/dnf-transaction.cpp:1474
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "事务没有进入写阶段,但没有返回错误(%i)"
@@ -361,186 +450,186 @@ msgstr "这个操作使用了 Ill-formed Selector,不正确的比较类型"
 
 #: libdnf/goal/Goal.cpp:67 libdnf/goal/Goal.cpp:94
 msgid " does not belong to a distupgrade repository"
-msgstr ""
+msgstr " 不属于 distupgrade 仓库"
 
 #: libdnf/goal/Goal.cpp:68 libdnf/goal/Goal.cpp:95
 msgid " has inferior architecture"
-msgstr ""
+msgstr " 有 inferior 架构"
 
 #: libdnf/goal/Goal.cpp:69
 msgid "problem with installed package "
-msgstr ""
+msgstr "安装的软件包的问题 "
 
 #: libdnf/goal/Goal.cpp:70 libdnf/goal/Goal.cpp:97
 msgid "conflicting requests"
-msgstr ""
+msgstr "冲突的请求"
 
 #: libdnf/goal/Goal.cpp:71 libdnf/goal/Goal.cpp:98
 msgid "unsupported request"
-msgstr ""
+msgstr "不支持的请求"
 
 #: libdnf/goal/Goal.cpp:72 libdnf/goal/Goal.cpp:99
 msgid "nothing provides requested "
-msgstr ""
+msgstr "没有提供请求的 "
 
 #: libdnf/goal/Goal.cpp:73
 #, c-format
 msgid "package %s does not exist"
-msgstr ""
+msgstr "软件包 %s 不存在"
 
 #: libdnf/goal/Goal.cpp:74 libdnf/goal/Goal.cpp:101
 msgid " is provided by the system"
-msgstr ""
+msgstr " 由系统提供"
 
 #: libdnf/goal/Goal.cpp:75 libdnf/goal/Goal.cpp:102
 msgid "some dependency problem"
-msgstr ""
+msgstr "一些依赖性问题"
 
 #: libdnf/goal/Goal.cpp:76
 msgid "cannot install the best update candidate for package "
-msgstr ""
+msgstr "无法为软件包安装最佳更新选择 "
 
 #: libdnf/goal/Goal.cpp:77 libdnf/goal/Goal.cpp:104
 msgid "cannot install the best candidate for the job"
-msgstr ""
+msgstr "无法为任务安装最佳选择"
 
 #: libdnf/goal/Goal.cpp:78
 #, c-format
 msgid "package %s is filtered out by modular filtering"
-msgstr ""
+msgstr "软件包 %s 被模块化过滤过滤掉"
 
 #: libdnf/goal/Goal.cpp:79
 #, c-format
 msgid "package %s does not have a compatible architecture"
-msgstr ""
+msgstr "软件包 %s 没有兼容的架构"
 
 #: libdnf/goal/Goal.cpp:80
 #, c-format
 msgid "package %s is not installable"
-msgstr ""
+msgstr "软件包 %s 是不可安装的"
 
 #: libdnf/goal/Goal.cpp:81
 #, c-format
 msgid "package %s is filtered out by exclude filtering"
-msgstr ""
+msgstr "软件包 %s 被排除过滤过滤掉"
 
 #: libdnf/goal/Goal.cpp:82
 #, c-format
 msgid "nothing provides %s needed by %s"
-msgstr ""
+msgstr "没有提供 %s(%s 需要)"
 
 #: libdnf/goal/Goal.cpp:83
 #, c-format
 msgid "cannot install both %s and %s"
-msgstr ""
+msgstr "无法同时安装 %s 和 %s"
 
 #: libdnf/goal/Goal.cpp:84
 #, c-format
 msgid "package %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "软件包 %s 与 %s(由 %s 提供)冲突"
 
 #: libdnf/goal/Goal.cpp:85
 #, c-format
 msgid "package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "软件包 %s 过时了 %s(由 %s 提供)"
 
 #: libdnf/goal/Goal.cpp:86
 #, c-format
 msgid "installed package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "安装的软件包 %s 过时了 %s(由 %s 提供)"
 
 #: libdnf/goal/Goal.cpp:87
 #, c-format
 msgid "package %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "软件包 %s 隐式过期了 %s(由 %s 提供)"
 
 #: libdnf/goal/Goal.cpp:88
 #, c-format
 msgid "package %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "软件包 %s 需要 %s,但没有供应商可以安装"
 
 #: libdnf/goal/Goal.cpp:89
 #, c-format
 msgid "package %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "软件包 %s 与自己提供的 %s 冲突"
 
 #: libdnf/goal/Goal.cpp:90
 #, c-format
 msgid "both package %s and %s obsolete %s"
-msgstr ""
+msgstr "软件包 %s 和 %s 都过期了 %s"
 
 #: libdnf/goal/Goal.cpp:96
 msgid "problem with installed module "
-msgstr ""
+msgstr "安装的模块的问题 "
 
 #: libdnf/goal/Goal.cpp:100
 #, c-format
 msgid "module %s does not exist"
-msgstr ""
+msgstr "模块 %s 不存在"
 
 #: libdnf/goal/Goal.cpp:103
 msgid "cannot install the best update candidate for module "
-msgstr ""
+msgstr "无法为模块安装最佳更新选择 "
 
 #: libdnf/goal/Goal.cpp:105 libdnf/goal/Goal.cpp:108
 #, c-format
 msgid "module %s is disabled"
-msgstr ""
+msgstr "模块 %s 被禁用"
 
 #: libdnf/goal/Goal.cpp:106
 #, c-format
 msgid "module %s does not have a compatible architecture"
-msgstr ""
+msgstr "模块 %s 没有兼容的架构"
 
 #: libdnf/goal/Goal.cpp:107
 #, c-format
 msgid "module %s is not installable"
-msgstr ""
+msgstr "模块 %s 不可安装"
 
 #: libdnf/goal/Goal.cpp:109
 #, c-format
 msgid "nothing provides %s needed by module %s"
-msgstr ""
+msgstr "没有提供 %s(模块 %s 需要它)"
 
 #: libdnf/goal/Goal.cpp:110
 #, c-format
 msgid "cannot install both modules %s and %s"
-msgstr ""
+msgstr "无法同时安装模块 %s 和 %s"
 
 #: libdnf/goal/Goal.cpp:111
 #, c-format
 msgid "module %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "模块 %s 与 %s (由 %s 提供)冲突"
 
 #: libdnf/goal/Goal.cpp:112
 #, c-format
 msgid "module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "模块 %s 过时了 %s(由 %s 提供)"
 
 #: libdnf/goal/Goal.cpp:113
 #, c-format
 msgid "installed module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "安装的模块 %s 过时了 %s(由 %s 提供)"
 
 #: libdnf/goal/Goal.cpp:114
 #, c-format
 msgid "module %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "模块 %s 隐式过时了 %s(由 %s 提供)"
 
 #: libdnf/goal/Goal.cpp:115
 #, c-format
 msgid "module %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "模块 %s 需要 %s,但没有供应商可以安装"
 
 #: libdnf/goal/Goal.cpp:116
 #, c-format
 msgid "module %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "模块 %s 与自己提供的 %s 冲突"
 
 #: libdnf/goal/Goal.cpp:117
 #, c-format
 msgid "both module %s and %s obsolete %s"
-msgstr ""
+msgstr "模块 %s 和 %s 都过期了 %s"
 
 #: libdnf/goal/Goal.cpp:1038
 msgid "no solver set"
@@ -568,7 +657,16 @@ msgstr "没有解决方案,不能删除保护的软件包"
 msgid "no solution possible"
 msgstr "没有可能的解决方案"
 
-#: libdnf/goal/Goal.cpp:1479
+#: libdnf/goal/Goal.cpp:1193
+msgid "Problem: "
+msgstr "问题: "
+
+#: libdnf/goal/Goal.cpp:1198
+#, c-format
+msgid "Problem %d: "
+msgstr "问题 %d: "
+
+#: libdnf/goal/Goal.cpp:1525
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "这个操作可能会导致删除以下受保护的软件包: "
@@ -586,134 +684,158 @@ msgstr "在 %1$s 中设置 perms 失败: %2$s"
 #: libdnf/hy-iutil.cpp:376
 #, c-format
 msgid "cannot create directory %1$s: %2$s"
-msgstr ""
+msgstr "无法创建目录 %1$s: %2$s"
 
 #: libdnf/hy-iutil.cpp:411
 #, c-format
 msgid "cannot stat path %1$s: %2$s"
-msgstr ""
+msgstr "无法 stat 路径 %1$s: %2$s"
 
 #: libdnf/module/ModulePackage.cpp:499
 #, c-format
 msgid "Invalid format of Platform module: %s"
-msgstr ""
+msgstr "Platform 模块无效的格式 : %s"
 
 #: libdnf/module/ModulePackage.cpp:514
 msgid "Multiple module platforms provided by available packages\n"
-msgstr ""
+msgstr "由可用软件包提供的多个模块平台\n"
 
 #: libdnf/module/ModulePackage.cpp:527
 msgid "Multiple module platforms provided by installed packages\n"
-msgstr ""
+msgstr "由安装的软件包提供的多个模块平台\n"
 
 #: libdnf/module/ModulePackage.cpp:554
 #, c-format
 msgid "Detection of Platform Module in %s failed: %s"
-msgstr ""
+msgstr "删除 %s 中的 Platform 模块失败 : %s"
 
 #: libdnf/module/ModulePackage.cpp:563
 #, c-format
 msgid "Missing PLATFORM_ID in %s"
-msgstr ""
+msgstr "在 %s 中缺少 PLATFORM_ID"
 
 #: libdnf/module/ModulePackage.cpp:568
 msgid "No valid Platform ID detected"
-msgstr ""
+msgstr "没有检测到有效的 Platform ID"
 
 #: libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
-msgstr ""
+msgstr "无法为模块 '%s' 启用多个流"
 
 #: libdnf/module/ModulePackageContainer.cpp:294
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
-msgstr ""
+msgstr "默认设置与 repo '%s' 冲突 : %s"
+
+#: libdnf/module/ModulePackageContainer.cpp:829
+msgid "Installing module profiles:\n"
+msgstr "安装模块配置档案:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:844
+msgid "Disabling module profiles:\n"
+msgstr "禁用模块配置档案:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:859
+msgid "Enabling module streams:\n"
+msgstr "启用模块流:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:873
+msgid "Switching module streams:\n"
+msgstr "切换模块流:\n"
 
-#: libdnf/module/ModulePackageContainer.cpp:1569
+#: libdnf/module/ModulePackageContainer.cpp:891
+msgid "Disabling modules:\n"
+msgstr "禁用模块:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:902
+msgid "Resetting modules:\n"
+msgstr "重置模块:\n"
+
+#: libdnf/module/ModulePackageContainer.cpp:1586
 #, c-format
 msgid "Unable to load modular Fail-Safe data at '%s'"
-msgstr ""
+msgstr "无法在 '%s' 加载模块 Fail-Safe 数据"
 
-#: libdnf/module/ModulePackageContainer.cpp:1575
+#: libdnf/module/ModulePackageContainer.cpp:1592
 #, c-format
 msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
-msgstr ""
+msgstr "无法为模块 '%s:%s' 加载模块 Fail-Safe 数据"
 
-#: libdnf/module/ModulePackageContainer.cpp:1639
+#: libdnf/module/ModulePackageContainer.cpp:1656
 #, c-format
 msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
-msgstr ""
+msgstr "无法为模块化 Fail Safe 数据创建目录 \"%s\" : %s"
 
-#: libdnf/module/ModulePackageContainer.cpp:1661
+#: libdnf/module/ModulePackageContainer.cpp:1678
 #, c-format
 msgid "Unable to save a modular Fail Safe data to '%s'"
-msgstr ""
+msgstr "无法把模块 Fail Safe 数据 safe 为 '%s'"
 
-#: libdnf/module/ModulePackageContainer.cpp:1686
+#: libdnf/module/ModulePackageContainer.cpp:1703
 #, c-format
 msgid "Unable to remove a modular Fail Safe data in '%s'"
-msgstr ""
+msgstr "无法在 '%s' 中删除一个模块的 Fail Safe 数据"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:86
 #, c-format
 msgid "Failed to update from string: %s"
-msgstr ""
+msgstr "从字符串更新失败: %s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:110
 #, c-format
 msgid "Failed to resolve: %s"
-msgstr ""
+msgstr "解析失败:%s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:115
 #, c-format
 msgid "There were errors while resolving modular defaults: %s"
-msgstr ""
+msgstr "在解析模块默认值时出现了错误:%s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:120
 #, c-format
 msgid "Failed to upgrade defaults: %s"
-msgstr ""
+msgstr "升级默认值失败:%s"
 
 #: libdnf/module/modulemd/ModuleMetadata.cpp:123
 #, c-format
 msgid "Failed to upgrade streams: %s"
-msgstr ""
+msgstr "升级流失败:%s"
 
 #: libdnf/plugin/plugin.cpp:46
 #, c-format
 msgid "Can't load shared library \"%s\": %s"
-msgstr ""
+msgstr "无法加载共享库 \"%s\": %s"
 
 #: libdnf/plugin/plugin.cpp:61 libdnf/plugin/plugin.cpp:67
 #: libdnf/plugin/plugin.cpp:73 libdnf/plugin/plugin.cpp:79
 #, c-format
 msgid "Can't obtain address of symbol \"%s\": %s"
-msgstr ""
+msgstr "无法获取符号 \"%s\" 的地址 : %s"
 
 #: libdnf/plugin/plugin.cpp:86
 #, c-format
 msgid "Loading plugin file=\"%s\""
-msgstr ""
+msgstr "加载插件文件=\"%s\""
 
 #: libdnf/plugin/plugin.cpp:89
 #, c-format
 msgid "Loaded plugin name=\"%s\", version=\"%s\""
-msgstr ""
+msgstr "加载插件名=\"%s\", 版本=\"%s\""
 
 #: libdnf/plugin/plugin.cpp:96
 msgid "Plugins::loadPlugins() dirPath cannot be empty"
-msgstr ""
+msgstr "Plugins::loadPlugins() dirPath 不能为空"
 
 #: libdnf/plugin/plugin.cpp:105
 #, c-format
 msgid "Can't read plugin directory \"%s\": %s"
-msgstr ""
+msgstr "无法读插件目录 \"%s\": %s"
 
 #: libdnf/plugin/plugin.cpp:114
 #, c-format
 msgid "Can't load plugin \"%s\": %s"
-msgstr ""
+msgstr "无法加载插件 \"%s\": %s"
 
 #: libdnf/repo/DependencySplitter.cpp:50
 msgid ""
@@ -721,6 +843,8 @@ msgid ""
 "deprecated and the support will be dropped in future versions. Use '=' "
 "operator instead."
 msgstr ""
+"在 reldeps 中使用 '==' 操作符可能导致一个未定义的行为。这个操作符已被废弃,并且在未来的版本中会取消对它的支持。请使用 '=' "
+"操作符代替。"
 
 #: libdnf/repo/Repo.cpp:321
 #, c-format
@@ -732,146 +856,161 @@ msgstr "软件仓库 %s 没有设置镜像或者 baseurl。"
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr "仓库 '%s' 有不被支持的类型: 'type=%s', 忽略。"
 
-#: libdnf/repo/Repo.cpp:546
+#: libdnf/repo/Repo.cpp:489 libdnf/repo/Repo.cpp:534 libdnf/repo/Repo.cpp:581
+#: libdnf/repo/Repo.cpp:1368
+#, c-format
+msgid "repo '%s': 'basecachedir' is not set"
+msgstr "Repo '%s': 'basecachedir' 没有设置"
+
+#: libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "无法为仓库 %s 找到一个有效的 baseurl"
 
-#: libdnf/repo/Repo.cpp:583 libdnf/repo/Repo.cpp:1672
+#: libdnf/repo/Repo.cpp:594 libdnf/repo/Repo.cpp:1693
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr "最大下载速度低于最小值。请修改 minrate 或 throttle 的配置"
 
-#: libdnf/repo/Repo.cpp:633 libdnf/repo/Repo.cpp:655
+#: libdnf/repo/Repo.cpp:625
+#, c-format
+msgid "repo '%s': 'proxy_username' is set but not 'proxy_password'"
+msgstr "Repo '%s': 'proxy_username' 已被设置,但没有设置 'proxy_password'"
+
+#: libdnf/repo/Repo.cpp:647 libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: libdnf/repo/Repo.cpp:641 libdnf/repo/Repo.cpp:663
+#: libdnf/repo/Repo.cpp:655 libdnf/repo/Repo.cpp:677
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: libdnf/repo/Repo.cpp:686 libdnf/repo/Repo.cpp:752 libdnf/repo/Repo.cpp:880
+#: libdnf/repo/Repo.cpp:700 libdnf/repo/Repo.cpp:766 libdnf/repo/Repo.cpp:894
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: libdnf/repo/Repo.cpp:713 libdnf/repo/Repo.cpp:777
+#: libdnf/repo/Repo.cpp:727 libdnf/repo/Repo.cpp:791
 #, c-format
 msgid "can not list keys: %s"
 msgstr "不能列出 key: %s"
 
-#: libdnf/repo/Repo.cpp:806
+#: libdnf/repo/Repo.cpp:820
 #, c-format
 msgid "Failed to retrieve GPG key for repo '%s': %s"
-msgstr ""
+msgstr "为 repo '%s' 获取 GPG 密钥失败 : %s"
 
-#: libdnf/repo/Repo.cpp:859
+#: libdnf/repo/Repo.cpp:873
 #, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repo %s: 0x%s 已被导入"
 
-#: libdnf/repo/Repo.cpp:887
+#: libdnf/repo/Repo.cpp:901
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repo %s: 已导入密钥 0x%s。"
 
-#: libdnf/repo/Repo.cpp:1131
+#: libdnf/repo/Repo.cpp:1149
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "恢复中: 仓库 '%s' 已被跳过,无 metalink。"
 
-#: libdnf/repo/Repo.cpp:1150
+#: libdnf/repo/Repo.cpp:1168
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "恢复中: 仓库 '%s' 已被跳过,无可用 hash。"
 
-#: libdnf/repo/Repo.cpp:1173
+#: libdnf/repo/Repo.cpp:1191
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "恢复: '%s' 失败,不匹配的 %s sum。"
 
-#: libdnf/repo/Repo.cpp:1179
+#: libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "恢复中: '%s' 可以被恢复 - metalink 校验和匹配。"
 
-#: libdnf/repo/Repo.cpp:1204
+#: libdnf/repo/Repo.cpp:1222
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "恢复: '%s' 可用被恢复 - repomd 匹配。"
 
-#: libdnf/repo/Repo.cpp:1206
+#: libdnf/repo/Repo.cpp:1224
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "恢复: '%s' 失败,不匹配的 repomd。"
 
-#: libdnf/repo/Repo.cpp:1224
+#: libdnf/repo/Repo.cpp:1242
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
-msgstr ""
+msgstr "无法创建 repo 目标目录 \"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1230
+#: libdnf/repo/Repo.cpp:1248
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "无法创建 repo 临时目录 \"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1244
+#: libdnf/repo/Repo.cpp:1262
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "无法创建目录 \"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1267
+#: libdnf/repo/Repo.cpp:1285
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "无法把目录 \"%s\" 重命名为 \"%s\": %s"
 
-#: libdnf/repo/Repo.cpp:1290
+#: libdnf/repo/Repo.cpp:1308
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "仓库: 正在为 %s 使用缓存"
 
-#: libdnf/repo/Repo.cpp:1302
+#: libdnf/repo/Repo.cpp:1320
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "仅使用缓存已开启但没有 '%s' 的缓存"
 
-#: libdnf/repo/Repo.cpp:1306
+#: libdnf/repo/Repo.cpp:1324
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: 从远程下载: %s"
 
-#: libdnf/repo/Repo.cpp:1312
+#: libdnf/repo/Repo.cpp:1330
 #, c-format
 msgid "Failed to download metadata for repo '%s': %s"
-msgstr ""
+msgstr "为 repo '%s' 下载元数据失败 : %s"
 
-#: libdnf/repo/Repo.cpp:1338
+#: libdnf/repo/Repo.cpp:1356
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): 计算 SHA256 失败"
 
-#: libdnf/repo/Repo.cpp:1363
+#: libdnf/repo/Repo.cpp:1384
 #, c-format
 msgid "Cannot create persistdir \"%s\": %s"
-msgstr ""
+msgstr "无法创建 persistdir \"%s\": %s"
+
+#: libdnf/repo/Repo.cpp:1715
+msgid "'proxy_username' is set but not 'proxy_password'"
+msgstr "'proxy_username' 已被设置,但没有设置 'proxy_password'"
 
-#: libdnf/repo/Repo.cpp:1763
+#: libdnf/repo/Repo.cpp:1787
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume 不能和 the byterangestart 参数同时使用"
 
-#: libdnf/repo/Repo.cpp:1780
+#: libdnf/repo/Repo.cpp:1804
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget 初始失败: %s"
 
-#: libdnf/repo/Repo.cpp:1886
+#: libdnf/repo/Repo.cpp:1910
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "无法打开 %s: %s"
 
-#: libdnf/repo/Repo.cpp:1930
+#: libdnf/repo/Repo.cpp:1954
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "id 为 %ld 的日志处理器不存在"
@@ -900,7 +1039,7 @@ msgstr "试图在已完成的事务中更新事务"
 
 #: libdnf/transaction/Transformer.cpp:76
 msgid "Database Corrupted: no row 'version' in table 'config'"
-msgstr ""
+msgstr "数据库损坏:表 'config' 中没有 'version' 行"
 
 #: libdnf/transaction/Transformer.cpp:681
 msgid "Transformer: can't open history persist dir"
@@ -925,6 +1064,3 @@ msgstr "无法向未保存的事务中添加控制台输出"
 
 #~ msgid "Bad id for repo: %s, byte = %s %d"
 #~ msgstr "repo 的 id 无效: %s, byte = %s %d"
-
-#~ msgid "failed calculating RPMDB checksum"
-#~ msgstr "无法计算 RPMDB checksum"
-- 
2.29.2