diff --git a/SOURCES/0004-Update-translations-RhBug-1820548.patch b/SOURCES/0004-Update-translations-RhBug-1820548.patch
new file mode 100644
index 0000000..c74b3c7
--- /dev/null
+++ b/SOURCES/0004-Update-translations-RhBug-1820548.patch
@@ -0,0 +1,6094 @@
+From a54f134cf0721a0087dfa0b4fae428905617cd3c Mon Sep 17 00:00:00 2001
+From: Marek Blaha <mblaha@redhat.com>
+Date: Tue, 28 Jul 2020 14:45:26 +0200
+Subject: [PATCH] Update translations (RhBug:1820548)
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1820548
+---
+ po/fr.po    | 1144 +++++++++++++++++++++++++------------------------
+ po/ja.po    | 1185 ++++++++++++++++++++++++++-------------------------
+ po/ko.po    | 1170 +++++++++++++++++++++++++-------------------------
+ po/zh_CN.po | 1173 +++++++++++++++++++++++++-------------------------
+ 4 files changed, 2360 insertions(+), 2312 deletions(-)
+
+diff --git a/po/fr.po b/po/fr.po
+index 3cc8b413..56010154 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -4,12 +4,13 @@
+ # Jérôme Fenal <jfenal@gmail.com>, 2017. #zanata
+ # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+ # Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>, 2019. #zanata
++# Julien Humbert <julroy67@gmail.com>, 2020.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2020-03-19 13:58+0100\n"
+-"PO-Revision-Date: 2020-03-22 12:28+0000\n"
++"POT-Creation-Date: 2020-06-26 09:18-0400\n"
++"PO-Revision-Date: 2020-03-31 20:38+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"
+ "Language: fr\n"
+@@ -19,943 +20,958 @@ msgstr ""
+ "Plural-Forms: nplurals=2; plural=n > 1;\n"
+ "X-Generator: Weblate 3.11.3\n"
+ 
+-#: ../libdnf/hy-iutil.cpp:322
++#: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
++msgid "no value specified"
++msgstr "aucune valeur n’est indiquée"
++
++#: libdnf/conf/ConfigMain.cpp:67 libdnf/conf/OptionSeconds.cpp:48
+ #, c-format
+-msgid "Failed renaming %1$s to %2$s: %3$s"
+-msgstr "N’a pas pu renommer %1$s en %2$s : %3$s"
++msgid "seconds value '%s' must not be negative"
++msgstr "la valeur en secondes « %s » ne doit pas être négative"
+ 
+-#: ../libdnf/hy-iutil.cpp:330
++#: libdnf/conf/ConfigMain.cpp:71
+ #, c-format
+-msgid "Failed setting perms on %1$s: %2$s"
+-msgstr "N’a pas pu définir les permissions sur %1$s : %2$s"
++msgid "could not convert '%s' to bytes"
++msgstr "n’a pu convertir « %s » en octets"
+ 
+-#: ../libdnf/hy-iutil.cpp:376
++#: libdnf/conf/ConfigMain.cpp:83 libdnf/conf/OptionSeconds.cpp:66
+ #, c-format
+-msgid "cannot create directory %1$s: %2$s"
+-msgstr "impossible de créer le dossier %1$s : %2$s"
++msgid "unknown unit '%s'"
++msgstr "unité « %s » inconnue"
+ 
+-#: ../libdnf/hy-iutil.cpp:399 ../libdnf/dnf-utils.cpp:111
++#: libdnf/conf/ConfigMain.cpp:329
+ #, c-format
+-msgid "cannot open directory %1$s: %2$s"
+-msgstr "impossible d’ouvrir le dossier %1$s : %2$s"
++msgid "percentage '%s' is out of range"
++msgstr "le pourcentage « %s » est en dehors des limites"
+ 
+-#: ../libdnf/hy-iutil.cpp:411
++#: libdnf/conf/OptionBinds.cpp:76
+ #, c-format
+-msgid "cannot stat path %1$s: %2$s"
+-msgstr "impossible de stat le chemin %1$s : %2$s"
++msgid "Configuration: OptionBinding with id \"%s\" does not exist"
++msgstr "Configuration : OptionBinding ayant pour id « %s » n’existe pas"
++
++#: libdnf/conf/OptionBinds.cpp:88
++#, c-format
++msgid "Configuration: OptionBinding with id \"%s\" already exists"
++msgstr "Configuration : OptionBinding ayant pour « %s » n’existe pas"
++
++#: libdnf/conf/OptionBool.cpp:47
++#, c-format
++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
++#, c-format
++msgid "'%s' is not an allowed value"
++msgstr "la valeur « %s » n’est pas autorisée"
++
++#: libdnf/conf/OptionEnum.cpp:83 libdnf/conf/OptionNumber.cpp:88
++msgid "invalid value"
++msgstr "valeur non valide"
++
++#: libdnf/conf/OptionNumber.cpp:73
++#, c-format
++msgid "given value [%d] should be less than allowed value [%d]."
++msgstr "la valeur fournie [%d] doit être inférieure à la valeur permise [%d]."
++
++#: libdnf/conf/OptionNumber.cpp:76
++#, c-format
++msgid "given value [%d] should be greater than allowed value [%d]."
++msgstr "la valeur fournie [%d] doit être supérieure à la valeur permise [%d]."
++
++#: libdnf/conf/OptionPath.cpp:78
++#, c-format
++msgid "given path '%s' is not absolute."
++msgstr "le chemin fourni « %s » n’est pas absolu."
++
++#: libdnf/conf/OptionPath.cpp:82
++#, c-format
++msgid "given path '%s' does not exist."
++msgstr "le chemin fourni « %s » n’existe pas."
++
++#: libdnf/conf/OptionSeconds.cpp:52
++#, c-format
++msgid "could not convert '%s' to seconds"
++msgstr "n’a pu convertir « %s » en secondes"
++
++#: libdnf/conf/OptionString.cpp:74
++msgid "GetValue(): Value not set"
++msgstr "GetValue() : valeur non définie"
+ 
+-#: ../libdnf/dnf-goal.cpp:68
++#: libdnf/dnf-goal.cpp:68
+ msgid "Could not depsolve transaction; "
+ msgstr "Impossible de depsolve la transaction ; "
+ 
+-#: ../libdnf/dnf-goal.cpp:70
++#: libdnf/dnf-goal.cpp:70
+ #, c-format
+ msgid "%i problem detected:\n"
+ msgid_plural "%i problems detected:\n"
+ msgstr[0] "%i problème détecté :\n"
+ msgstr[1] "%i problèmes détectés :\n"
+ 
+-#: ../libdnf/dnf-goal.cpp:78
++#: libdnf/dnf-goal.cpp:78
+ #, c-format
+ msgid " Problem %1$i: %2$s\n"
+ msgstr " Problème %1$i : %2$s\n"
+ 
+-#: ../libdnf/dnf-goal.cpp:80
++#: libdnf/dnf-goal.cpp:80
+ #, c-format
+ msgid " Problem: %s\n"
+ msgstr " Problème : %s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:55
++#: libdnf/dnf-rpmts.cpp:79
++#, c-format
++msgid ""
++"No available modular metadata for modular package '%s'; cannot be installed "
++"on the system"
++msgstr ""
++"Aucune métadonnée modulaire n’est disponible pour le paquet modulaire "
++"« %s » ; impossible d’installer le paquet sur le système"
++
++#: libdnf/dnf-rpmts.cpp:121 libdnf/dnf-rpmts.cpp:166
++#, c-format
++msgid "signature does not verify for %s"
++msgstr "signature ne correspondant pas pour %s"
++
++#: libdnf/dnf-rpmts.cpp:129 libdnf/dnf-rpmts.cpp:174
++#, c-format
++msgid "failed to open(generic error): %s"
++msgstr "n’a pas pu ouvrir(erreur générique) : %s"
++
++#: libdnf/dnf-rpmts.cpp:142
++#, c-format
++msgid "failed to verify key for %s"
++msgstr "n’a pas pu vérifier la clé pour %s"
++
++#: libdnf/dnf-rpmts.cpp:150
++#, c-format
++msgid "public key unavailable for %s"
++msgstr "clé publique non disponible pour %s"
++
++#: libdnf/dnf-rpmts.cpp:158
++#, c-format
++msgid "signature not found for %s"
++msgstr "signature non trouvée pour %s"
++
++#: libdnf/dnf-rpmts.cpp:193
++#, c-format
++msgid "failed to add install element: %1$s [%2$i]"
++msgstr "n’a pas pu ajouter l’élément : %1$s [%2$i]"
++
++#: libdnf/dnf-rpmts.cpp:274
++#, c-format
++msgid "Error running transaction: %s"
++msgstr "Erreur d’exécution pour la transaction : %s"
++
++#: libdnf/dnf-rpmts.cpp:283
++msgid "Error running transaction and no problems were reported!"
++msgstr "Erreur d’exécution de la transaction et pas de problème reporté !"
++
++#: libdnf/dnf-rpmts.cpp:346
++msgid "Fatal error, run database recovery"
++msgstr "Erreur fatale, exécuter le recouvrement de la base de données"
++
++#: libdnf/dnf-rpmts.cpp:355
++#, c-format
++msgid "failed to find package %s"
++msgstr "n’a pas pu trouver le package %s"
++
++#: libdnf/dnf-rpmts.cpp:401
++#, c-format
++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
++#, 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
++#, c-format
++msgid "failed to open: %s"
++msgstr "n’a pas pu ouvrir : %s"
++
++#: libdnf/dnf-sack.cpp:501
++#, c-format
++msgid "cannot create temporary file: %s"
++msgstr "n’a pas pu créer le fichier temporaire : %s"
++
++#: libdnf/dnf-sack.cpp:511
++#, c-format
++msgid "failed opening tmp file: %s"
++msgstr "n’a pas pu ouvrir le fichier tmp : %s"
++
++#: libdnf/dnf-sack.cpp:523
++#, 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
++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
++#, 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
++#, 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
++msgid "null repo md file"
++msgstr "null repo md file"
++
++#: libdnf/dnf-sack.cpp:687
++#, 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
++msgid "repo_add_solv() has failed."
++msgstr "repo_add_solv() a échoué."
++
++#: libdnf/dnf-sack.cpp:714
++msgid "loading of MD_TYPE_PRIMARY has failed."
++msgstr "échec du chargement du MD_TYPE_PRIMARY."
++
++#: libdnf/dnf-sack.cpp:727
++msgid "repo_add_repomdxml/rpmmd() has failed."
++msgstr "repo_add_repomdxml/rpmmd() a échoué."
++
++#: libdnf/dnf-sack.cpp:794
++msgid "failed to auto-detect architecture"
++msgstr "n’a pu auto-détecter l’architecture"
++
++#: libdnf/dnf-sack.cpp:919
++#, c-format
++msgid "failed creating cachedir %s"
++msgstr "n’a pu créer le cachedir %s"
++
++#: libdnf/dnf-sack.cpp:1696
++msgid "failed loading RPMDB"
++msgstr "n’a pu télécharger RPMDB"
++
++#: libdnf/dnf-sack.cpp:2403
++#, c-format
++msgid "No module defaults found: %s"
++msgstr "Aucun module par défaut n’a été trouvé : %s"
++
++#: libdnf/dnf-state.cpp:1184
++#, c-format
++msgid "percentage not 100: %i"
++msgstr "pourcentage pas à 100 : %i"
++
++#: libdnf/dnf-state.cpp:1194
++#, c-format
++msgid "failed to set number steps: %i"
++msgstr "n’a pas pu définir le nombre d’étapes : %i"
++
++#: libdnf/dnf-state.cpp:1293
++msgid "cancelled by user action"
++msgstr "annulé par action de l’utilisateur"
++
++#: libdnf/dnf-state.cpp:1332
++#, c-format
++msgid "done on a state %1$p that did not have a size set! [%2$s]"
++msgstr "effectué sur un état %1$p qui n’avait pas de taille définie [%2$s]"
++
++#: libdnf/dnf-state.cpp:1357
++#, c-format
++msgid "already at 100%% state [%s]"
++msgstr "déjà en état à 100%% [%s]"
++
++#: libdnf/dnf-transaction.cpp:300
++#, c-format
++msgid "Sources not set when trying to ensure package %s"
++msgstr "Sources non définies quand vous essayez d’assurer paquet %s"
++
++#: libdnf/dnf-transaction.cpp:326
++#, c-format
++msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
++msgstr "N’a pu assurer %1$s comme dépôt %2$s non trouvé (%3$i dépôts chargés)"
++
++#: libdnf/dnf-transaction.cpp:367
++msgid "Failed to check untrusted: "
++msgstr "Échec de la vérification d’untrusted : "
++
++#: libdnf/dnf-transaction.cpp:377
++#, c-format
++msgid "Downloaded file for %s not found"
++msgstr "Fichier téléchargé pour %s non trouvé"
++
++#: libdnf/dnf-transaction.cpp:397
++#, c-format
++msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
++msgstr ""
++"le paquet %1$s ne peut être vérifié et le dépôt %2$s est activé GPG : %3$s"
++
++#: libdnf/dnf-transaction.cpp:831 libdnf/dnf-transaction.cpp:903
++msgid "Failed to get value for CacheDir"
++msgstr "N’a pas pu obtenir la valeur de CacheDir"
++
++#: libdnf/dnf-transaction.cpp:911
++#, c-format
++msgid "Failed to get filesystem free size for %s: "
++msgstr ""
++"Échec de l’obtention de l’espace libre du système de fichiers pour %s : "
++
++#: libdnf/dnf-transaction.cpp:919
++#, c-format
++msgid "Failed to get filesystem free size for %s"
++msgstr "N’a pas pu obtenir la taille libre du système de fichiers pour %s"
++
++#: libdnf/dnf-transaction.cpp:935
++#, c-format
++msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
++msgstr ""
++"Pas suffisamment d’espace libre dans %1$s : a besoin de %2$s, disponible "
++"%3$s"
++
++#: libdnf/dnf-transaction.cpp:1196
++msgid "failed to set root"
++msgstr "n’a pu réussi à définir root"
++
++#: libdnf/dnf-transaction.cpp:1418
++#, c-format
++msgid "Error %i running transaction test"
++msgstr "Erreur %i lors du test transactionnel"
++
++#: libdnf/dnf-transaction.cpp:1458
++#, c-format
++msgid "Error %i running transaction"
++msgstr "Erreur %i pendant la transaction"
++
++#: libdnf/dnf-transaction.cpp:1473
++#, c-format
++msgid "Transaction did not go to writing phase, but returned no error(%i)"
++msgstr ""
++"La transaction n’a pas pu opérer en phase d’écriture, mais a renvoyé « no "
++"error(%i) »"
++
++#: libdnf/dnf-utils.cpp:111 libdnf/hy-iutil.cpp:399
++#, c-format
++msgid "cannot open directory %1$s: %2$s"
++msgstr "impossible d’ouvrir le dossier %1$s : %2$s"
++
++#: libdnf/dnf-utils.cpp:136
++#, c-format
++msgid "failed to remove %s"
++msgstr "n’a pas pu supprimer %s"
++
++#: libdnf/goal/Goal.cpp:55
+ msgid "Ill-formed Selector, presence of multiple match objects in the filter"
+ msgstr ""
+ "Sélecteur Ill-formed, présence de plusieurs objets correspondants dans le "
+ "filtre"
+ 
+-#: ../libdnf/goal/Goal.cpp:56
++#: libdnf/goal/Goal.cpp:56
+ msgid "Ill-formed Selector used for the operation, incorrect comparison type"
+ msgstr ""
+ "Sélecteur Ill-formed utilisé pour l’opération, type de comparaison "
+ "incorrecte"
+ 
+-#: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:94
++#: libdnf/goal/Goal.cpp:67 libdnf/goal/Goal.cpp:94
+ msgid " does not belong to a distupgrade repository"
+ msgstr " n’appartient pas à un dépôt distupgrade"
+ 
+-#: ../libdnf/goal/Goal.cpp:68 ../libdnf/goal/Goal.cpp:95
++#: libdnf/goal/Goal.cpp:68 libdnf/goal/Goal.cpp:95
+ msgid " has inferior architecture"
+ msgstr " a une architecture inférieure"
+ 
+-#: ../libdnf/goal/Goal.cpp:69
++#: libdnf/goal/Goal.cpp:69
+ msgid "problem with installed package "
+ msgstr "problème avec le paquet installé "
+ 
+-#: ../libdnf/goal/Goal.cpp:70 ../libdnf/goal/Goal.cpp:97
++#: libdnf/goal/Goal.cpp:70 libdnf/goal/Goal.cpp:97
+ msgid "conflicting requests"
+ msgstr "requêtes conflictuelles"
+ 
+-#: ../libdnf/goal/Goal.cpp:71 ../libdnf/goal/Goal.cpp:98
++#: libdnf/goal/Goal.cpp:71 libdnf/goal/Goal.cpp:98
+ msgid "unsupported request"
+ msgstr "requête non prise en charge"
+ 
+-#: ../libdnf/goal/Goal.cpp:72 ../libdnf/goal/Goal.cpp:99
++#: libdnf/goal/Goal.cpp:72 libdnf/goal/Goal.cpp:99
+ msgid "nothing provides requested "
+ msgstr "rien ne fourni ce qui a été demandé "
+ 
+-#: ../libdnf/goal/Goal.cpp:73
++#: libdnf/goal/Goal.cpp:73
+ #, c-format
+ msgid "package %s does not exist"
+ msgstr "le paquet %s n’existe pas"
+ 
+-#: ../libdnf/goal/Goal.cpp:74 ../libdnf/goal/Goal.cpp:101
++#: libdnf/goal/Goal.cpp:74 libdnf/goal/Goal.cpp:101
+ msgid " is provided by the system"
+ msgstr " est fourni par le système"
+ 
+-#: ../libdnf/goal/Goal.cpp:75 ../libdnf/goal/Goal.cpp:102
++#: libdnf/goal/Goal.cpp:75 libdnf/goal/Goal.cpp:102
+ msgid "some dependency problem"
+ msgstr "quelques problèmes de dépendances"
+ 
+-#: ../libdnf/goal/Goal.cpp:76
++#: libdnf/goal/Goal.cpp:76
+ msgid "cannot install the best update candidate for package "
+ msgstr "installation impossible du meilleur candidat pour le paquet "
+ 
+-#: ../libdnf/goal/Goal.cpp:77 ../libdnf/goal/Goal.cpp:104
++#: libdnf/goal/Goal.cpp:77 libdnf/goal/Goal.cpp:104
+ msgid "cannot install the best candidate for the job"
+ msgstr "installation impossible du meilleur candidat pour la tâche"
+ 
+-#: ../libdnf/goal/Goal.cpp:78
++#: libdnf/goal/Goal.cpp:78
+ #, c-format
+ msgid "package %s is filtered out by modular filtering"
+ msgstr "le paquet %s a été filtré par filtrage modulaire"
+ 
+-#: ../libdnf/goal/Goal.cpp:79
++#: libdnf/goal/Goal.cpp:79
+ #, c-format
+ msgid "package %s does not have a compatible architecture"
+ msgstr "le paquet %s n’a pas d’architecture compatible"
+ 
+-#: ../libdnf/goal/Goal.cpp:80
++#: libdnf/goal/Goal.cpp:80
+ #, c-format
+ msgid "package %s is not installable"
+ msgstr "le paquet %s n’est pas installable"
+ 
+-#: ../libdnf/goal/Goal.cpp:81
++#: libdnf/goal/Goal.cpp:81
+ #, c-format
+ msgid "package %s is filtered out by exclude filtering"
+ msgstr "le paquet %s a été filtré en excluant le filtrage"
+ 
+-#: ../libdnf/goal/Goal.cpp:82
++#: libdnf/goal/Goal.cpp:82
+ #, c-format
+ msgid "nothing provides %s needed by %s"
+ msgstr "rien de fournit %s rendu nécessaire par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:83
++#: libdnf/goal/Goal.cpp:83
+ #, c-format
+ msgid "cannot install both %s and %s"
+ msgstr "installation impossible à la fois de %s et %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:84
++#: libdnf/goal/Goal.cpp:84
+ #, c-format
+ msgid "package %s conflicts with %s provided by %s"
+ msgstr "le paquet %s est en conflit avec %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:85
++#: libdnf/goal/Goal.cpp:85
+ #, c-format
+ msgid "package %s obsoletes %s provided by %s"
+ msgstr "le paquet %s rend obsolète %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:86
++#: libdnf/goal/Goal.cpp:86
+ #, c-format
+ msgid "installed package %s obsoletes %s provided by %s"
+ msgstr "le paquet installé %s rend obsolète %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:87
++#: libdnf/goal/Goal.cpp:87
+ #, c-format
+ msgid "package %s implicitly obsoletes %s provided by %s"
+ msgstr "le paquet %s rend implicitement obsolète %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:88
++#: libdnf/goal/Goal.cpp:88
+ #, c-format
+ msgid "package %s requires %s, but none of the providers can be installed"
+ msgstr ""
+ "le paquet %s nécessite %s, mais aucun fournisseur ne peut être installé"
+ 
+-#: ../libdnf/goal/Goal.cpp:89
++#: libdnf/goal/Goal.cpp:89
+ #, c-format
+ msgid "package %s conflicts with %s provided by itself"
+ msgstr "le paquet %s est en conflit avec %s fourni par lui-même"
+ 
+-#: ../libdnf/goal/Goal.cpp:90
++#: libdnf/goal/Goal.cpp:90
+ #, c-format
+ msgid "both package %s and %s obsolete %s"
+ msgstr "à la fois le paquet %s et %s rendent obsolète %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:96
++#: libdnf/goal/Goal.cpp:96
+ msgid "problem with installed module "
+ msgstr "problème avec le module installé "
+ 
+-#: ../libdnf/goal/Goal.cpp:100
++#: libdnf/goal/Goal.cpp:100
+ #, c-format
+ msgid "module %s does not exist"
+ msgstr "le module %s n’existe pas"
+ 
+-#: ../libdnf/goal/Goal.cpp:103
++#: libdnf/goal/Goal.cpp:103
+ msgid "cannot install the best update candidate for module "
+ msgstr ""
+ "installation impossible du meilleur candidat de mise à jour pour le module "
+ 
+-#: ../libdnf/goal/Goal.cpp:105 ../libdnf/goal/Goal.cpp:108
++#: libdnf/goal/Goal.cpp:105 libdnf/goal/Goal.cpp:108
+ #, c-format
+ msgid "module %s is disabled"
+ msgstr "le module %s est désactivé"
+ 
+-#: ../libdnf/goal/Goal.cpp:106
++#: libdnf/goal/Goal.cpp:106
+ #, c-format
+ msgid "module %s does not have a compatible architecture"
+ msgstr "le module %s n’a pas d’architecture compatible"
+ 
+-#: ../libdnf/goal/Goal.cpp:107
++#: libdnf/goal/Goal.cpp:107
+ #, c-format
+ msgid "module %s is not installable"
+ msgstr "le module %s n’est pas installable"
+ 
+-#: ../libdnf/goal/Goal.cpp:109
++#: libdnf/goal/Goal.cpp:109
+ #, c-format
+ msgid "nothing provides %s needed by module %s"
+ msgstr "rien de fournit %s rendu nécessaire par le module %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:110
++#: libdnf/goal/Goal.cpp:110
+ #, c-format
+ msgid "cannot install both modules %s and %s"
+ msgstr "installation impossible à la fois des modules %s et %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:111
++#: libdnf/goal/Goal.cpp:111
+ #, c-format
+ msgid "module %s conflicts with %s provided by %s"
+ msgstr "le module %s est en conflit avec %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:112
++#: libdnf/goal/Goal.cpp:112
+ #, c-format
+ msgid "module %s obsoletes %s provided by %s"
+ msgstr "le module %s rend obsolète %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:113
++#: libdnf/goal/Goal.cpp:113
+ #, c-format
+ msgid "installed module %s obsoletes %s provided by %s"
+ msgstr "le module installé %s rend obsolète %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:114
++#: libdnf/goal/Goal.cpp:114
+ #, c-format
+ msgid "module %s implicitly obsoletes %s provided by %s"
+ msgstr "le module %s rend implicitement obsolète %s fourni par %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:115
++#: libdnf/goal/Goal.cpp:115
+ #, c-format
+ msgid "module %s requires %s, but none of the providers can be installed"
+ msgstr ""
+ "le module %s nécessite %s, mais aucun fournisseur ne peut être installé"
+ 
+-#: ../libdnf/goal/Goal.cpp:116
++#: libdnf/goal/Goal.cpp:116
+ #, c-format
+ msgid "module %s conflicts with %s provided by itself"
+ msgstr "le module %s est en conflit avec %s fourni par lui-même"
+ 
+-#: ../libdnf/goal/Goal.cpp:117
++#: libdnf/goal/Goal.cpp:117
+ #, c-format
+ msgid "both module %s and %s obsolete %s"
+ msgstr "à la fois le module %s et %s rendent obsolète %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:1008
++#: libdnf/goal/Goal.cpp:1032
+ msgid "no solver set"
+ msgstr "aucun solveur défini"
+ 
+-#: ../libdnf/goal/Goal.cpp:1013
++#: libdnf/goal/Goal.cpp:1037
+ #, c-format
+ msgid "failed to make %s absolute"
+ msgstr "n’a pas pu rendre %s absolu"
+ 
+-#: ../libdnf/goal/Goal.cpp:1020
++#: libdnf/goal/Goal.cpp:1044
+ #, c-format
+ msgid "failed writing debugdata to %1$s: %2$s"
+ msgstr "échec de l’écriture des debugdata dans %1$s : %2$s"
+ 
+-#: ../libdnf/goal/Goal.cpp:1032
++#: libdnf/goal/Goal.cpp:1056
+ msgid "no solv in the goal"
+ msgstr "pas de solv dans l’objectif"
+ 
+-#: ../libdnf/goal/Goal.cpp:1034
++#: libdnf/goal/Goal.cpp:1058
+ msgid "no solution, cannot remove protected package"
+ msgstr "aucune solution, n’a pas pu supprimer le package protégé"
+ 
+-#: ../libdnf/goal/Goal.cpp:1037
++#: libdnf/goal/Goal.cpp:1061
+ msgid "no solution possible"
+ msgstr "aucune solution n’est possible"
+ 
+-#: ../libdnf/goal/Goal.cpp:1443
++#: libdnf/goal/Goal.cpp:1473
+ msgid ""
+ "The operation would result in removing the following protected packages: "
+ msgstr ""
+ "L’opération résulterait en la suppression des packages protégés suivants : "
+ 
+-#: ../libdnf/repo/Repo.cpp:337
++#: libdnf/hy-iutil.cpp:322
+ #, c-format
+-msgid "Bad id for repo: %s, byte = %s %d"
+-msgstr "Id erroné pour le dépôt : %s, byte = %s %d"
+-
+-#: ../libdnf/repo/Repo.cpp:362
+-#, c-format
+-msgid "Repository %s has no mirror or baseurl set."
+-msgstr "Le dépôt %s n’a pas de miroir ou d’adresse de base."
+-
+-#: ../libdnf/repo/Repo.cpp:371
+-#, c-format
+-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:580
+-#, 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:616 ../libdnf/repo/Repo.cpp:1705
+-msgid ""
+-"Maximum download speed is lower than minimum. Please change configuration of"
+-" minrate or throttle"
+-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:666 ../libdnf/repo/Repo.cpp:688
+-#, c-format
+-msgid "%s: gpgme_data_new_from_fd(): %s"
+-msgstr "%s : gpgme_data_new_from_fd() : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:674 ../libdnf/repo/Repo.cpp:696
+-#, c-format
+-msgid "%s: gpgme_op_import(): %s"
+-msgstr "%s : gpgme_op_import() : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:785
+-#: ../libdnf/repo/Repo.cpp:913
+-#, c-format
+-msgid "%s: gpgme_ctx_set_engine_info(): %s"
+-msgstr "%s : gpgme_ctx_set_engine_info() : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:746 ../libdnf/repo/Repo.cpp:810
+-#, c-format
+-msgid "can not list keys: %s"
+-msgstr "n’a pas pu lister les clés : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:839
+-#, 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:892
+-#, c-format
+-msgid "repo %s: 0x%s already imported"
+-msgstr "dépôt %s : 0x%s déjà importé"
+-
+-#: ../libdnf/repo/Repo.cpp:920
+-#, c-format
+-msgid "repo %s: imported key 0x%s."
+-msgstr "dépôt %s : clé importée 0x%s."
+-
+-#: ../libdnf/repo/Repo.cpp:1164
+-#, 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:1183
+-#, 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:1206
+-#, 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:1212
+-#, 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:1237
+-#, c-format
+-msgid "reviving: '%s' can be revived - repomd matches."
+-msgstr "relance : « %s » peut être relancé - le repomd correspond."
+-
+-#: ../libdnf/repo/Repo.cpp:1239
+-#, c-format
+-msgid "reviving: failed for '%s', mismatched repomd."
+-msgstr "relance : échec pour « %s », le repomd ne correspond pas."
+-
+-#: ../libdnf/repo/Repo.cpp:1257
+-#, 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:1263
+-#, 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:1277
+-#, c-format
+-msgid "Cannot create directory \"%s\": %s"
+-msgstr "Impossible de créer le répertoire « %s » : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:1300
+-#, 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:1323
+-#, c-format
+-msgid "repo: using cache for: %s"
+-msgstr "dépôt : utilisation du cache pour : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:1335
+-#, 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:1339
+-#, c-format
+-msgid "repo: downloading from remote: %s"
+-msgstr "dépôt : téléchargement à distance en provenance de : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:1345
+-#, 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:1371
+-msgid "getCachedir(): Computation of SHA256 failed"
+-msgstr "getCachedir() : échec du calcul de SHA256"
+-
+-#: ../libdnf/repo/Repo.cpp:1396
+-#, c-format
+-msgid "Cannot create persistdir \"%s\": %s"
+-msgstr "Impossible de créer le dossier persistant « %s » : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:1796
+-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:1807
+-#, c-format
+-msgid "PackageTarget initialization failed: %s"
+-msgstr "L’initialisation de Package Target a échoué : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:1924
+-#, c-format
+-msgid "Cannot open %s: %s"
+-msgstr "impossible d’ouvrir %s : %s"
+-
+-#: ../libdnf/repo/Repo.cpp:1968
+-#, c-format
+-msgid "Log handler with id %ld doesn't exist"
+-msgstr "Log handler ayant pour id %ld n’existe pas"
+-
+-#: ../libdnf/dnf-transaction.cpp:300
+-#, c-format
+-msgid "Sources not set when trying to ensure package %s"
+-msgstr "Sources non définies quand vous essayez d’assurer paquet %s"
+-
+-#: ../libdnf/dnf-transaction.cpp:326
+-#, c-format
+-msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
+-msgstr "N’a pu assurer %1$s comme dépôt %2$s non trouvé (%3$i dépôts chargés)"
+-
+-#: ../libdnf/dnf-transaction.cpp:367
+-msgid "Failed to check untrusted: "
+-msgstr "Échec de la vérification d’untrusted : "
+-
+-#: ../libdnf/dnf-transaction.cpp:377
+-#, c-format
+-msgid "Downloaded file for %s not found"
+-msgstr "Fichier téléchargé pour %s non trouvé"
+-
+-#: ../libdnf/dnf-transaction.cpp:397
+-#, c-format
+-msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
+-msgstr ""
+-"le paquet %1$s ne peut être vérifié et le dépôt %2$s est activé GPG : %3$s"
+-
+-#: ../libdnf/dnf-transaction.cpp:831 ../libdnf/dnf-transaction.cpp:903
+-msgid "Failed to get value for CacheDir"
+-msgstr "N’a pas pu obtenir la valeur de CacheDir"
+-
+-#: ../libdnf/dnf-transaction.cpp:911
+-#, c-format
+-msgid "Failed to get filesystem free size for %s: "
+-msgstr ""
+-"Échec de l’obtention de l’espace libre du système de fichiers pour %s : "
+-
+-#: ../libdnf/dnf-transaction.cpp:919
+-#, c-format
+-msgid "Failed to get filesystem free size for %s"
+-msgstr "N’a pas pu obtenir la taille libre du système de fichiers pour %s"
+-
+-#: ../libdnf/dnf-transaction.cpp:935
+-#, c-format
+-msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
+-msgstr ""
+-"Pas suffisamment d’espace libre dans %1$s : a besoin de %2$s, disponible "
+-"%3$s"
+-
+-#: ../libdnf/dnf-transaction.cpp:1196
+-msgid "failed to set root"
+-msgstr "n’a pu réussi à définir root"
+-
+-#: ../libdnf/dnf-transaction.cpp:1418
+-#, c-format
+-msgid "Error %i running transaction test"
+-msgstr "Erreur %i lors du test transactionnel"
+-
+-#: ../libdnf/dnf-transaction.cpp:1458
+-#, c-format
+-msgid "Error %i running transaction"
+-msgstr "Erreur %i pendant la transaction"
+-
+-#: ../libdnf/dnf-transaction.cpp:1473
+-#, c-format
+-msgid "Transaction did not go to writing phase, but returned no error(%i)"
+-msgstr ""
+-"La transaction n’a pas pu opérer en phase d’écriture, mais a renvoyé « no "
+-"error(%i) »"
+-
+-#: ../libdnf/dnf-utils.cpp:136
+-#, c-format
+-msgid "failed to remove %s"
+-msgstr "n’a pas pu supprimer %s"
+-
+-#: ../libdnf/plugin/plugin.cpp:46
+-#, c-format
+-msgid "Can't load shared library \"%s\": %s"
+-msgstr "Impossible de charger la librairie partagé « %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 "Impossible d’obtenir l’adresse du symbole « %s » : %s"
+-
+-#: ../libdnf/plugin/plugin.cpp:86
+-#, c-format
+-msgid "Loading plugin file=\"%s\""
+-msgstr "Chargement du fichier d’extension fichier=« %s »"
+-
+-#: ../libdnf/plugin/plugin.cpp:89
+-#, c-format
+-msgid "Loaded plugin name=\"%s\", version=\"%s\""
+-msgstr "Extension chargée, nom=« %s », version=« %s »"
+-
+-#: ../libdnf/plugin/plugin.cpp:96
+-msgid "Plugins::loadPlugins() dirPath cannot be empty"
+-msgstr ""
+-"Le chemin du dossier (dirPath) Plugins::loadPlugins() ne peut pas être vide"
+-
+-#: ../libdnf/plugin/plugin.cpp:105
+-#, c-format
+-msgid "Can't read plugin directory \"%s\": %s"
+-msgstr "Impossible de lire de dossier de l’extension « %s » : %s"
+-
+-#: ../libdnf/plugin/plugin.cpp:114
+-#, c-format
+-msgid "Can't load plugin \"%s\": %s"
+-msgstr "Impossible de charger l’extension « %s » : %s"
+-
+-#: ../libdnf/dnf-state.cpp:1184
+-#, c-format
+-msgid "percentage not 100: %i"
+-msgstr "pourcentage pas à 100 : %i"
+-
+-#: ../libdnf/dnf-state.cpp:1194
+-#, c-format
+-msgid "failed to set number steps: %i"
+-msgstr "n’a pas pu définir le nombre d’étapes : %i"
+-
+-#: ../libdnf/dnf-state.cpp:1293
+-msgid "cancelled by user action"
+-msgstr "annulé par action de l’utilisateur"
+-
+-#: ../libdnf/dnf-state.cpp:1332
+-#, c-format
+-msgid "done on a state %1$p that did not have a size set! [%2$s]"
+-msgstr "effectué sur un état %1$p qui n’avait pas de taille définie [%2$s]"
+-
+-#: ../libdnf/dnf-state.cpp:1357
+-#, c-format
+-msgid "already at 100%% state [%s]"
+-msgstr "déjà en état à 100%% [%s]"
+-
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:43
+-#, c-format
+-msgid "Failed to update from string: %s"
+-msgstr "Échec de la mise à jour depuis la chaine : %s"
++msgid "Failed renaming %1$s to %2$s: %3$s"
++msgstr "N’a pas pu renommer %1$s en %2$s : %3$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:68
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:70
++#: libdnf/hy-iutil.cpp:330
+ #, c-format
+-msgid "Failed to resolve: %s"
+-msgstr "Échec de la résolution : %s"
++msgid "Failed setting perms on %1$s: %2$s"
++msgstr "N’a pas pu définir les permissions sur %1$s : %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:74
++#: libdnf/hy-iutil.cpp:376
+ #, c-format
+-msgid "Failed to upgrade defaults: %s"
+-msgstr "Échec de la mise à jour des paramètres par défaut : %s"
++msgid "cannot create directory %1$s: %2$s"
++msgstr "impossible de créer le dossier %1$s : %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:77
++#: libdnf/hy-iutil.cpp:411
+ #, c-format
+-msgid "Failed to upgrade streams: %s"
+-msgstr "Échec de la mise à jour des flux : %s"
++msgid "cannot stat path %1$s: %2$s"
++msgstr "impossible de stat le chemin %1$s : %2$s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:463
++#: libdnf/module/ModulePackage.cpp:463
+ #, c-format
+ msgid "Invalid format of Platform module: %s"
+ msgstr "Format invalide du module de plateforme : %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:478
++#: libdnf/module/ModulePackage.cpp:478
+ msgid "Multiple module platforms provided by available packages\n"
+ msgstr ""
+ "De multiples modules de plateformes sont fournis par les paquets "
+ "disponibles\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:491
++#: libdnf/module/ModulePackage.cpp:491
+ msgid "Multiple module platforms provided by installed packages\n"
+ msgstr ""
+ "De multiples modules de plateformes sont fournis par les paquets installés\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:518
++#: libdnf/module/ModulePackage.cpp:518
+ #, c-format
+ msgid "Detection of Platform Module in %s failed: %s"
+ msgstr "La détection des modules de plateformes dans %s a échoué : %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:527
++#: libdnf/module/ModulePackage.cpp:527
+ #, c-format
+ msgid "Missing PLATFORM_ID in %s"
+ msgstr "L'identifiant de la platforme est manquant dans %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:532
++#: libdnf/module/ModulePackage.cpp:532
+ msgid "No valid Platform ID detected"
+ msgstr "Aucun identifiant de plateforme n'a été détecté"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:68
++#: libdnf/module/ModulePackageContainer.cpp:68
+ #, c-format
+ msgid "Cannot enable multiple streams for module '%s'"
+ msgstr "Impossible d’activer les flux pour le module « %s »"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:294
++#: libdnf/module/ModulePackageContainer.cpp:294
+ #, c-format
+ 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:1568
++#: libdnf/module/ModulePackageContainer.cpp:1569
+ #, 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:1574
++#: libdnf/module/ModulePackageContainer.cpp:1575
+ #, 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:1638
++#: libdnf/module/ModulePackageContainer.cpp:1639
+ #, 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:1660
++#: libdnf/module/ModulePackageContainer.cpp:1661
+ #, 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:1685
++#: libdnf/module/ModulePackageContainer.cpp:1686
+ #, c-format
+ msgid "Unable to remove a modular Fail Safe data in '%s'"
+ msgstr ""
+ "Impossible de supprimer les données de sécurité modulaires dans « %s »"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:79
++#: libdnf/module/modulemd/ModuleMetadata.cpp:44
+ #, c-format
+-msgid ""
+-"No available modular metadata for modular package '%s'; cannot be installed "
+-"on the system"
+-msgstr ""
+-"Aucune métadonnée modulaire n’est disponible pour le paquet modulaire "
+-"« %s » ; impossible d’installer le paquet sur le système"
++msgid "Failed to update from string: %s"
++msgstr "Échec de la mise à jour depuis la chaine : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:121 ../libdnf/dnf-rpmts.cpp:166
++#: libdnf/module/modulemd/ModuleMetadata.cpp:68
+ #, c-format
+-msgid "signature does not verify for %s"
+-msgstr "signature ne correspondant pas pour %s"
++msgid "Failed to resolve: %s"
++msgstr "Échec de la résolution : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:129 ../libdnf/dnf-rpmts.cpp:174
++#: libdnf/module/modulemd/ModuleMetadata.cpp:73
+ #, c-format
+-msgid "failed to open(generic error): %s"
+-msgstr "n’a pas pu ouvrir(erreur générique) : %s"
++msgid "There were errors while resolving modular defaults: %s"
++msgstr ""
++"Il y a eu des erreurs lors de la résolution des modulaires par défaut : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:142
++#: libdnf/module/modulemd/ModuleMetadata.cpp:78
+ #, c-format
+-msgid "failed to verify key for %s"
+-msgstr "n’a pas pu vérifier la clé pour %s"
++msgid "Failed to upgrade defaults: %s"
++msgstr "Échec de la mise à jour des paramètres par défaut : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:150
++#: libdnf/module/modulemd/ModuleMetadata.cpp:81
+ #, c-format
+-msgid "public key unavailable for %s"
+-msgstr "clé publique non disponible pour %s"
++msgid "Failed to upgrade streams: %s"
++msgstr "Échec de la mise à jour des flux : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:158
++#: libdnf/plugin/plugin.cpp:46
+ #, c-format
+-msgid "signature not found for %s"
+-msgstr "signature non trouvée pour %s"
++msgid "Can't load shared library \"%s\": %s"
++msgstr "Impossible de charger la librairie partagé « %s » : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:193
++#: libdnf/plugin/plugin.cpp:61 libdnf/plugin/plugin.cpp:67
++#: libdnf/plugin/plugin.cpp:73 libdnf/plugin/plugin.cpp:79
+ #, c-format
+-msgid "failed to add install element: %1$s [%2$i]"
+-msgstr "n’a pas pu ajouter l’élément : %1$s [%2$i]"
++msgid "Can't obtain address of symbol \"%s\": %s"
++msgstr "Impossible d’obtenir l’adresse du symbole « %s » : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:274
++#: libdnf/plugin/plugin.cpp:86
+ #, c-format
+-msgid "Error running transaction: %s"
+-msgstr "Erreur d’exécution pour la transaction : %s"
+-
+-#: ../libdnf/dnf-rpmts.cpp:283
+-msgid "Error running transaction and no problems were reported!"
+-msgstr "Erreur d’exécution de la transaction et pas de problème reporté !"
+-
+-#: ../libdnf/dnf-rpmts.cpp:346
+-msgid "Fatal error, run database recovery"
+-msgstr "Erreur fatale, exécuter le recouvrement de la base de données"
++msgid "Loading plugin file=\"%s\""
++msgstr "Chargement du fichier d’extension fichier=« %s »"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:355
++#: libdnf/plugin/plugin.cpp:89
+ #, c-format
+-msgid "failed to find package %s"
+-msgstr "n’a pas pu trouver le package %s"
++msgid "Loaded plugin name=\"%s\", version=\"%s\""
++msgstr "Extension chargée, nom=« %s », version=« %s »"
++
++#: libdnf/plugin/plugin.cpp:96
++msgid "Plugins::loadPlugins() dirPath cannot be empty"
++msgstr ""
++"Le chemin du dossier (dirPath) Plugins::loadPlugins() ne peut pas être vide"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:401
++#: libdnf/plugin/plugin.cpp:105
+ #, c-format
+-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)"
++msgid "Can't read plugin directory \"%s\": %s"
++msgstr "Impossible de lire de dossier de l’extension « %s » : %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:59 ../libdnf/conf/OptionStringList.cpp:59
+-#: ../libdnf/conf/OptionEnum.cpp:72 ../libdnf/conf/OptionEnum.cpp:158
++#: libdnf/plugin/plugin.cpp:114
+ #, c-format
+-msgid "'%s' is not an allowed value"
+-msgstr "la valeur « %s » n’est pas autorisée"
++msgid "Can't load plugin \"%s\": %s"
++msgstr "Impossible de charger l’extension « %s » : %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:74
+-msgid "GetValue(): Value not set"
+-msgstr "GetValue() : valeur non définie"
++#: libdnf/repo/DependencySplitter.cpp:50
++msgid ""
++"Using '==' operator in reldeps can result in an undefined behavior. It is "
++"deprecated and the support will be dropped in future versions. Use '=' "
++"operator instead."
++msgstr ""
++"L'utilisation de l’opérateur \"==\" peut entraîner un comportement indéfini."
++" Déprécié et le support sera abandonné dans les prochaines versions. "
++"Utilisez plutôt l'opérateur \"=\"."
+ 
+-#: ../libdnf/conf/OptionPath.cpp:78
++#: libdnf/repo/Repo.cpp:321
+ #, c-format
+-msgid "given path '%s' is not absolute."
+-msgstr "le chemin fourni « %s » n’est pas absolu."
++msgid "Repository %s has no mirror or baseurl set."
++msgstr "Le dépôt %s n’a pas de miroir ou d’adresse de base."
+ 
+-#: ../libdnf/conf/OptionPath.cpp:82
++#: libdnf/repo/Repo.cpp:330
+ #, c-format
+-msgid "given path '%s' does not exist."
+-msgstr "le chemin fourni « %s » n’existe pas."
++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/conf/OptionBool.cpp:47
++#: libdnf/repo/Repo.cpp:536
+ #, c-format
+-msgid "invalid boolean value '%s'"
+-msgstr "valeur booléenne invalide : « %s »"
++msgid "Cannot find a valid baseurl for repo: %s"
++msgstr "Impossible de trouver une adresse de base pour le dépôt : %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:62 ../libdnf/conf/OptionSeconds.cpp:40
+-msgid "no value specified"
+-msgstr "aucune valeur n’est indiquée"
++#: libdnf/repo/Repo.cpp:573 libdnf/repo/Repo.cpp:1662
++msgid ""
++"Maximum download speed is lower than minimum. Please change configuration of"
++" minrate or throttle"
++msgstr ""
++"La vitesse de téléchargement maximale est plus basse que le minimum. "
++"Veuillez modifier les paramètres minrate ou throttle"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:67 ../libdnf/conf/OptionSeconds.cpp:48
++#: libdnf/repo/Repo.cpp:623 libdnf/repo/Repo.cpp:645
+ #, c-format
+-msgid "seconds value '%s' must not be negative"
+-msgstr "la valeur en secondes « %s » ne doit pas être négative"
++msgid "%s: gpgme_data_new_from_fd(): %s"
++msgstr "%s : gpgme_data_new_from_fd() : %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:71
++#: libdnf/repo/Repo.cpp:631 libdnf/repo/Repo.cpp:653
+ #, c-format
+-msgid "could not convert '%s' to bytes"
+-msgstr "n’a pu convertir « %s » en octets"
++msgid "%s: gpgme_op_import(): %s"
++msgstr "%s : gpgme_op_import() : %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:83 ../libdnf/conf/OptionSeconds.cpp:66
++#: libdnf/repo/Repo.cpp:676 libdnf/repo/Repo.cpp:742 libdnf/repo/Repo.cpp:870
+ #, c-format
+-msgid "unknown unit '%s'"
+-msgstr "unité « %s » inconnue"
++msgid "%s: gpgme_ctx_set_engine_info(): %s"
++msgstr "%s : gpgme_ctx_set_engine_info() : %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:329
++#: libdnf/repo/Repo.cpp:703 libdnf/repo/Repo.cpp:767
+ #, c-format
+-msgid "percentage '%s' is out of range"
+-msgstr "le pourcentage « %s » est en dehors des limites"
++msgid "can not list keys: %s"
++msgstr "n’a pas pu lister les clés : %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:73
++#: libdnf/repo/Repo.cpp:796
+ #, c-format
+-msgid "given value [%d] should be less than allowed value [%d]."
+-msgstr "la valeur fournie [%d] doit être inférieure à la valeur permise [%d]."
++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/conf/OptionNumber.cpp:76
++#: libdnf/repo/Repo.cpp:849
+ #, c-format
+-msgid "given value [%d] should be greater than allowed value [%d]."
+-msgstr "la valeur fournie [%d] doit être supérieure à la valeur permise [%d]."
+-
+-#: ../libdnf/conf/OptionNumber.cpp:88 ../libdnf/conf/OptionEnum.cpp:83
+-msgid "invalid value"
+-msgstr "valeur non valide"
++msgid "repo %s: 0x%s already imported"
++msgstr "dépôt %s : 0x%s déjà importé"
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:76
++#: libdnf/repo/Repo.cpp:877
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" does not exist"
+-msgstr "Configuration : OptionBinding ayant pour id « %s » n’existe pas"
++msgid "repo %s: imported key 0x%s."
++msgstr "dépôt %s : clé importée 0x%s."
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:88
++#: libdnf/repo/Repo.cpp:1121
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" already exists"
+-msgstr "Configuration : OptionBinding ayant pour « %s » n’existe pas"
++msgid "reviving: repo '%s' skipped, no metalink."
++msgstr "relance : dépôt « %s » ignoré, pas de méta-lien."
+ 
+-#: ../libdnf/conf/OptionSeconds.cpp:52
++#: libdnf/repo/Repo.cpp:1140
+ #, c-format
+-msgid "could not convert '%s' to seconds"
+-msgstr "n’a pu convertir « %s » en secondes"
++msgid "reviving: repo '%s' skipped, no usable hash."
++msgstr "relance : dépôt « %s » ignoré, pas de hachage utilisable."
+ 
+-#: ../libdnf/dnf-sack.cpp:417
++#: libdnf/repo/Repo.cpp:1163
+ #, c-format
+-msgid "no %1$s string for %2$s"
+-msgstr "aucune chaine %1$s pour %2$s"
+-
+-#: ../libdnf/dnf-sack.cpp:440
+-msgid "failed to add solv"
+-msgstr "n’a pu ajouter solv"
++msgid "reviving: failed for '%s', mismatched %s sum."
++msgstr "relance : échec pour « %s », la somme de %s ne correspond pas."
+ 
+-#: ../libdnf/dnf-sack.cpp:458
++#: libdnf/repo/Repo.cpp:1169
+ #, c-format
+-msgid "failed to open: %s"
+-msgstr "n’a pas pu ouvrir : %s"
++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/dnf-sack.cpp:537
++#: libdnf/repo/Repo.cpp:1194
+ #, c-format
+-msgid "cannot create temporary file: %s"
+-msgstr "n’a pas pu créer le fichier temporaire : %s"
++msgid "reviving: '%s' can be revived - repomd matches."
++msgstr "relance : « %s » peut être relancé - le repomd correspond."
+ 
+-#: ../libdnf/dnf-sack.cpp:547
++#: libdnf/repo/Repo.cpp:1196
+ #, c-format
+-msgid "failed opening tmp file: %s"
+-msgstr "n’a pas pu ouvrir le fichier tmp : %s"
++msgid "reviving: failed for '%s', mismatched repomd."
++msgstr "relance : échec pour « %s », le repomd ne correspond pas."
+ 
+-#: ../libdnf/dnf-sack.cpp:559
++#: libdnf/repo/Repo.cpp:1214
+ #, c-format
+-msgid "write_main() failed writing data: %i"
+-msgstr "write_main() n’a pu écrire les données : %i"
+-
+-#: ../libdnf/dnf-sack.cpp:576
+-msgid "write_main() failed to re-load written solv file"
+-msgstr "write_main() n’a pas pu charger à nouveau le fichier solv"
++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/dnf-sack.cpp:641
++#: libdnf/repo/Repo.cpp:1220
+ #, c-format
+-msgid "can not create temporary file %s"
+-msgstr "n’a pas pu créer le fichier temporaire %s"
++msgid "Cannot create repo temporary directory \"%s\": %s"
++msgstr "Impossible de créer le répertoire temporaire du dépôt « %s » : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:659
++#: libdnf/repo/Repo.cpp:1234
+ #, c-format
+-msgid "write_ext(%1$d) has failed: %2$d"
+-msgstr "write_ext(%1$d) a échoué : %2$d"
++msgid "Cannot create directory \"%s\": %s"
++msgstr "Impossible de créer le répertoire « %s » : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:714
+-msgid "null repo md file"
+-msgstr "null repo md file"
++#: libdnf/repo/Repo.cpp:1257
++#, c-format
++msgid "Cannot rename directory \"%s\" to \"%s\": %s"
++msgstr "Impossible de renommer le répertoire « %s » en « %s » : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:723
++#: libdnf/repo/Repo.cpp:1280
+ #, c-format
+-msgid "can not read file %1$s: %2$s"
+-msgstr "n’a pu lire le fichier %1$s : %2$s"
++msgid "repo: using cache for: %s"
++msgstr "dépôt : utilisation du cache pour : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:737
+-msgid "repo_add_solv() has failed."
+-msgstr "repo_add_solv() a échoué."
++#: libdnf/repo/Repo.cpp:1292
++#, c-format
++msgid "Cache-only enabled but no cache for '%s'"
++msgstr "« cache uniquement » activé, mais pas de cache pour « %s »"
+ 
+-#: ../libdnf/dnf-sack.cpp:750
+-msgid "loading of MD_TYPE_PRIMARY has failed."
+-msgstr "échec du chargement du MD_TYPE_PRIMARY."
++#: libdnf/repo/Repo.cpp:1296
++#, c-format
++msgid "repo: downloading from remote: %s"
++msgstr "dépôt : téléchargement à distance en provenance de : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:763
+-msgid "repo_add_repomdxml/rpmmd() has failed."
+-msgstr "repo_add_repomdxml/rpmmd() a échoué."
++#: libdnf/repo/Repo.cpp:1302
++#, 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/dnf-sack.cpp:830
+-msgid "failed to auto-detect architecture"
+-msgstr "n’a pu auto-détecter l’architecture"
++#: libdnf/repo/Repo.cpp:1328
++msgid "getCachedir(): Computation of SHA256 failed"
++msgstr "getCachedir() : échec du calcul de SHA256"
+ 
+-#: ../libdnf/dnf-sack.cpp:955
++#: libdnf/repo/Repo.cpp:1353
+ #, c-format
+-msgid "failed creating cachedir %s"
+-msgstr "n’a pu créer le cachedir %s"
+-
+-#: ../libdnf/dnf-sack.cpp:1727
+-msgid "failed calculating RPMDB checksum"
+-msgstr "n’a pu calculer la somme de contrôle RPMDB"
++msgid "Cannot create persistdir \"%s\": %s"
++msgstr "Impossible de créer le dossier persistant « %s » : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:1751
+-msgid "failed loading RPMDB"
+-msgstr "n’a pu télécharger RPMDB"
++#: libdnf/repo/Repo.cpp:1753
++msgid "resume cannot be used simultaneously with the byterangestart param"
++msgstr ""
++"« resume » (reprise) ne peut pas être utilisé avec le paramètre "
++"byterangestart"
+ 
+-#: ../libdnf/dnf-sack.cpp:2466
+-msgid "No module defaults found"
+-msgstr "Aucun module par défaut n’a été trouvé"
++#: libdnf/repo/Repo.cpp:1770
++#, c-format
++msgid "PackageTarget initialization failed: %s"
++msgstr "L’initialisation de Package Target a échoué : %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:659
+-msgid "Transformer: can't open history persist dir"
+-msgstr ""
+-"Transformer : n’a pu ouvrir le répertoire de persistance de l’historique"
++#: libdnf/repo/Repo.cpp:1887
++#, c-format
++msgid "Cannot open %s: %s"
++msgstr "impossible d’ouvrir %s : %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:672
+-msgid "Couldn't find a history database"
+-msgstr "N’a pas pu trouver de base de données de l’historique"
++#: libdnf/repo/Repo.cpp:1931
++#, c-format
++msgid "Log handler with id %ld doesn't exist"
++msgstr "Log handler ayant pour id %ld n’existe pas"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:107
++#: libdnf/transaction/Swdb.cpp:173
+ msgid "In progress"
+ msgstr "En cours"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:121 ../libdnf/transaction/Swdb.cpp:148
+-#: ../libdnf/transaction/Swdb.cpp:160 ../libdnf/transaction/Swdb.cpp:177
+-#: ../libdnf/transaction/Swdb.cpp:316 ../libdnf/transaction/Swdb.cpp:326
++#: libdnf/transaction/Swdb.cpp:188 libdnf/transaction/Swdb.cpp:216
++#: libdnf/transaction/Swdb.cpp:228 libdnf/transaction/Swdb.cpp:245
++#: libdnf/transaction/Swdb.cpp:384 libdnf/transaction/Swdb.cpp:394
+ msgid "Not in progress"
+ msgstr "Pas en cours"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:187
++#: libdnf/transaction/Swdb.cpp:255
+ msgid "No transaction in progress"
+ msgstr "Aucune transaction n’est en cours"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:147
++#: libdnf/transaction/TransactionItem.cpp:147
+ msgid "Attempt to insert transaction item into completed transaction"
+ msgstr ""
+ "Tentative d’insérer un élément de transaction dans une transaction achevée"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:218
++#: libdnf/transaction/TransactionItem.cpp:218
+ msgid "Attempt to update transaction item in completed transaction"
+ msgstr ""
+ "Tentative de mettre à jour un élément de transaction dans une transaction "
+ "achevée"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:41
++#: libdnf/transaction/Transformer.cpp:76
++msgid "Database Corrupted: no row 'version' in table 'config'"
++msgstr ""
++"Base de données corrompue : ligne « version » manquante dans le tableau "
++"« config »"
++
++#: libdnf/transaction/Transformer.cpp:681
++msgid "Transformer: can't open history persist dir"
++msgstr ""
++"Transformer : n’a pu ouvrir le répertoire de persistance de l’historique"
++
++#: libdnf/transaction/Transformer.cpp:694
++msgid "Couldn't find a history database"
++msgstr "N’a pas pu trouver de base de données de l’historique"
++
++#: libdnf/transaction/private/Transaction.cpp:41
+ msgid "Transaction has already began!"
+ msgstr "La transaction a déjà commencé !"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:58
++#: libdnf/transaction/private/Transaction.cpp:58
+ #, c-format
+ msgid "TransactionItem state is not set: %s"
+ msgstr "L’état du TransactionItem n’est pas défini : %s"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:239
++#: libdnf/transaction/private/Transaction.cpp:243
+ msgid "Can't add console output to unsaved transaction"
+ msgstr ""
+ "Ne peut pas ajouter une sortie de console à une transaction non enregistrée"
++
++#~ msgid "Bad id for repo: %s, byte = %s %d"
++#~ msgstr "ID erroné pour le dépôt : %s, byte = %s %d"
+diff --git a/po/ja.po b/po/ja.po
+index d8eaab19..3c53b4e7 100644
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -1,918 +1,931 @@
+ # Casey Jones <nahareport@live.com>, 2018. #zanata
+ # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
++# Casey Jones <nahareport@yahoo.com>, 2020.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2020-03-19 13:58+0100\n"
+-"PO-Revision-Date: 2018-09-11 12:30+0000\n"
+-"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
+-"Language-Team: Japanese\n"
++"POT-Creation-Date: 2020-06-26 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"
+ "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: Zanata 4.6.2\n"
++"Plural-Forms: nplurals=1; plural=0;\n"
++"X-Generator: Weblate 4.0.3\n"
+ 
+-#: ../libdnf/hy-iutil.cpp:322
+-#, c-format
+-msgid "Failed renaming %1$s to %2$s: %3$s"
+-msgstr "名前を %1$s から %2$s へ変更できませんでした: %3$s"
++#: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
++msgid "no value specified"
++msgstr "値が指定されていません"
+ 
+-#: ../libdnf/hy-iutil.cpp:330
++#: libdnf/conf/ConfigMain.cpp:67 libdnf/conf/OptionSeconds.cpp:48
+ #, c-format
+-msgid "Failed setting perms on %1$s: %2$s"
+-msgstr "%1$s に権限を設定できませんでした: %2$s"
++msgid "seconds value '%s' must not be negative"
++msgstr "2個目の値 '%s' は負の数にしないでください"
+ 
+-#: ../libdnf/hy-iutil.cpp:376
++#: libdnf/conf/ConfigMain.cpp:71
+ #, c-format
+-msgid "cannot create directory %1$s: %2$s"
+-msgstr ""
++msgid "could not convert '%s' to bytes"
++msgstr "'%s' を バイトへ変換できませんでした"
+ 
+-#: ../libdnf/hy-iutil.cpp:399 ../libdnf/dnf-utils.cpp:111
++#: libdnf/conf/ConfigMain.cpp:83 libdnf/conf/OptionSeconds.cpp:66
+ #, c-format
+-msgid "cannot open directory %1$s: %2$s"
+-msgstr "ディレクトリー %1$s を開くことができません: %2$s"
++msgid "unknown unit '%s'"
++msgstr "不明な単位 '%s'"
+ 
+-#: ../libdnf/hy-iutil.cpp:411
++#: libdnf/conf/ConfigMain.cpp:329
+ #, c-format
+-msgid "cannot stat path %1$s: %2$s"
+-msgstr ""
+-
+-#: ../libdnf/dnf-goal.cpp:68
+-msgid "Could not depsolve transaction; "
+-msgstr "トランザクションを depsolve できませんでした; "
++msgid "percentage '%s' is out of range"
++msgstr "パーセンテージ '%s' が範囲外にあります"
+ 
+-#: ../libdnf/dnf-goal.cpp:70
++#: libdnf/conf/OptionBinds.cpp:76
+ #, c-format
+-msgid "%i problem detected:\n"
+-msgid_plural "%i problems detected:\n"
+-msgstr[0] "%i 問題を検出:\n"
++msgid "Configuration: OptionBinding with id \"%s\" does not exist"
++msgstr "設定: id \"%s\" を伴う OptionBinding は存在しません"
+ 
+-#: ../libdnf/dnf-goal.cpp:78
++#: libdnf/conf/OptionBinds.cpp:88
+ #, c-format
+-msgid " Problem %1$i: %2$s\n"
+-msgstr " 問題 %1$i: %2$s\n"
++msgid "Configuration: OptionBinding with id \"%s\" already exists"
++msgstr "設定: id \"%s\" を伴う OptionBinding はすでに存在します"
+ 
+-#: ../libdnf/dnf-goal.cpp:80
++#: libdnf/conf/OptionBool.cpp:47
+ #, c-format
+-msgid " Problem: %s\n"
+-msgstr " 問題: %s\n"
+-
+-#: ../libdnf/goal/Goal.cpp:55
+-msgid "Ill-formed Selector, presence of multiple match objects in the filter"
+-msgstr "不適格な Selector、フィルター内に複数の一致するオブジェクトが存在"
+-
+-#: ../libdnf/goal/Goal.cpp:56
+-msgid "Ill-formed Selector used for the operation, incorrect comparison type"
+-msgstr "操作に使用される不適格な Selector、間違った比較タイプ"
+-
+-#: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:94
+-msgid " does not belong to a distupgrade repository"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:68 ../libdnf/goal/Goal.cpp:95
+-msgid " has inferior architecture"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:69
+-msgid "problem with installed package "
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:70 ../libdnf/goal/Goal.cpp:97
+-msgid "conflicting requests"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:71 ../libdnf/goal/Goal.cpp:98
+-msgid "unsupported request"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:72 ../libdnf/goal/Goal.cpp:99
+-msgid "nothing provides requested "
+-msgstr ""
++msgid "invalid boolean value '%s'"
++msgstr "無効な boolean 値 '%s'"
+ 
+-#: ../libdnf/goal/Goal.cpp:73
++#: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
++#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+ #, c-format
+-msgid "package %s does not exist"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:74 ../libdnf/goal/Goal.cpp:101
+-msgid " is provided by the system"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:75 ../libdnf/goal/Goal.cpp:102
+-msgid "some dependency problem"
+-msgstr ""
++msgid "'%s' is not an allowed value"
++msgstr "'%s' 値は許可されていない値です"
+ 
+-#: ../libdnf/goal/Goal.cpp:76
+-msgid "cannot install the best update candidate for package "
+-msgstr ""
++#: libdnf/conf/OptionEnum.cpp:83 libdnf/conf/OptionNumber.cpp:88
++msgid "invalid value"
++msgstr "無効な値"
+ 
+-#: ../libdnf/goal/Goal.cpp:77 ../libdnf/goal/Goal.cpp:104
+-msgid "cannot install the best candidate for the job"
+-msgstr ""
++#: libdnf/conf/OptionNumber.cpp:73
++#, c-format
++msgid "given value [%d] should be less than allowed value [%d]."
++msgstr "指定された値 [%d] は許可された値 [%d]より小さくしてください"
+ 
+-#: ../libdnf/goal/Goal.cpp:78
++#: libdnf/conf/OptionNumber.cpp:76
+ #, c-format
+-msgid "package %s is filtered out by modular filtering"
+-msgstr ""
++msgid "given value [%d] should be greater than allowed value [%d]."
++msgstr "指定された値 [%d] は許可された値 [%d]より大きくしてください"
+ 
+-#: ../libdnf/goal/Goal.cpp:79
++#: libdnf/conf/OptionPath.cpp:78
+ #, c-format
+-msgid "package %s does not have a compatible architecture"
+-msgstr ""
++msgid "given path '%s' is not absolute."
++msgstr "指定されたパス '%s' は絶対パスではありません。"
+ 
+-#: ../libdnf/goal/Goal.cpp:80
++#: libdnf/conf/OptionPath.cpp:82
+ #, c-format
+-msgid "package %s is not installable"
+-msgstr ""
++msgid "given path '%s' does not exist."
++msgstr "指定されたパス '%s' が存在しません。"
+ 
+-#: ../libdnf/goal/Goal.cpp:81
++#: libdnf/conf/OptionSeconds.cpp:52
+ #, c-format
+-msgid "package %s is filtered out by exclude filtering"
+-msgstr ""
++msgid "could not convert '%s' to seconds"
++msgstr "'%s' を 秒に変換できません"
+ 
+-#: ../libdnf/goal/Goal.cpp:82
++#: libdnf/conf/OptionString.cpp:74
++msgid "GetValue(): Value not set"
++msgstr "GetValue(): 値は設定されていません"
++
++#: libdnf/dnf-goal.cpp:68
++msgid "Could not depsolve transaction; "
++msgstr "トランザクションを depsolve できませんでした; "
++
++#: libdnf/dnf-goal.cpp:70
+ #, c-format
+-msgid "nothing provides %s needed by %s"
+-msgstr ""
++msgid "%i problem detected:\n"
++msgid_plural "%i problems detected:\n"
++msgstr[0] "%i 問題を検出:\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:83
++#: libdnf/dnf-goal.cpp:78
+ #, c-format
+-msgid "cannot install both %s and %s"
+-msgstr ""
++msgid " Problem %1$i: %2$s\n"
++msgstr " 問題 %1$i: %2$s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:84
++#: libdnf/dnf-goal.cpp:80
+ #, c-format
+-msgid "package %s conflicts with %s provided by %s"
+-msgstr ""
++msgid " Problem: %s\n"
++msgstr " 問題: %s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:85
++#: libdnf/dnf-rpmts.cpp:79
+ #, c-format
+-msgid "package %s obsoletes %s provided by %s"
+-msgstr ""
++msgid ""
++"No available modular metadata for modular package '%s'; cannot be installed "
++"on the system"
++msgstr "モジュラーパッケージ '%s' のモジュラーメタデータは利用不可です; システムにインストールはできません"
+ 
+-#: ../libdnf/goal/Goal.cpp:86
++#: libdnf/dnf-rpmts.cpp:121 libdnf/dnf-rpmts.cpp:166
+ #, c-format
+-msgid "installed package %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "signature does not verify for %s"
++msgstr "署名は %s を確認しません"
+ 
+-#: ../libdnf/goal/Goal.cpp:87
++#: libdnf/dnf-rpmts.cpp:129 libdnf/dnf-rpmts.cpp:174
+ #, c-format
+-msgid "package %s implicitly obsoletes %s provided by %s"
+-msgstr ""
++msgid "failed to open(generic error): %s"
++msgstr "開くことに失敗しました(ジェネリックエラー): %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:88
++#: libdnf/dnf-rpmts.cpp:142
+ #, c-format
+-msgid "package %s requires %s, but none of the providers can be installed"
+-msgstr ""
++msgid "failed to verify key for %s"
++msgstr "%s のキーの確認に失敗しました"
+ 
+-#: ../libdnf/goal/Goal.cpp:89
++#: libdnf/dnf-rpmts.cpp:150
+ #, c-format
+-msgid "package %s conflicts with %s provided by itself"
+-msgstr ""
++msgid "public key unavailable for %s"
++msgstr "%s は公開鍵を利用できません"
+ 
+-#: ../libdnf/goal/Goal.cpp:90
++#: libdnf/dnf-rpmts.cpp:158
+ #, c-format
+-msgid "both package %s and %s obsolete %s"
+-msgstr ""
++msgid "signature not found for %s"
++msgstr "%s の署名は見つかりませんでした"
+ 
+-#: ../libdnf/goal/Goal.cpp:96
+-msgid "problem with installed module "
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:193
++#, c-format
++msgid "failed to add install element: %1$s [%2$i]"
++msgstr "インストールの要素の追加に失敗しました: %1$s [%2$i]"
+ 
+-#: ../libdnf/goal/Goal.cpp:100
++#: libdnf/dnf-rpmts.cpp:274
+ #, c-format
+-msgid "module %s does not exist"
+-msgstr ""
++msgid "Error running transaction: %s"
++msgstr "トランザクションの実行中にエラーが発生しました: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:103
+-msgid "cannot install the best update candidate for module "
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:283
++msgid "Error running transaction and no problems were reported!"
++msgstr "トランザクションの実行中にエラーが発生しましたが、問題は報告されませんでした!"
+ 
+-#: ../libdnf/goal/Goal.cpp:105 ../libdnf/goal/Goal.cpp:108
+-#, c-format
+-msgid "module %s is disabled"
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:346
++msgid "Fatal error, run database recovery"
++msgstr "致命的なエラー、データベースリカバリーを実行します"
+ 
+-#: ../libdnf/goal/Goal.cpp:106
++#: libdnf/dnf-rpmts.cpp:355
+ #, c-format
+-msgid "module %s does not have a compatible architecture"
+-msgstr ""
++msgid "failed to find package %s"
++msgstr "パッケージ %s を見つけることができませんでした"
+ 
+-#: ../libdnf/goal/Goal.cpp:107
++#: libdnf/dnf-rpmts.cpp:401
+ #, c-format
+-msgid "module %s is not installable"
+-msgstr ""
++msgid "could not add erase element %1$s(%2$i)"
++msgstr "erase 要素 %1$s(%2$i) を追加することができません"
+ 
+-#: ../libdnf/goal/Goal.cpp:109
++#: libdnf/dnf-sack.cpp:381
+ #, c-format
+-msgid "nothing provides %s needed by module %s"
+-msgstr ""
++msgid "no %1$s string for %2$s"
++msgstr "%2$s の %1$s 文字列はありません"
+ 
+-#: ../libdnf/goal/Goal.cpp:110
+-#, c-format
+-msgid "cannot install both modules %s and %s"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:404
++msgid "failed to add solv"
++msgstr "solv の追加に失敗しました"
+ 
+-#: ../libdnf/goal/Goal.cpp:111
++#: libdnf/dnf-sack.cpp:422
+ #, c-format
+-msgid "module %s conflicts with %s provided by %s"
+-msgstr ""
++msgid "failed to open: %s"
++msgstr "開くことに失敗しました: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:112
++#: libdnf/dnf-sack.cpp:501
+ #, c-format
+-msgid "module %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "cannot create temporary file: %s"
++msgstr "一時ファイルを作成できません: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:113
++#: libdnf/dnf-sack.cpp:511
+ #, c-format
+-msgid "installed module %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "failed opening tmp file: %s"
++msgstr "tmp ファイルを開くことに失敗しました: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:114
++#: libdnf/dnf-sack.cpp:523
+ #, c-format
+-msgid "module %s implicitly obsoletes %s provided by %s"
+-msgstr ""
++msgid "write_main() failed writing data: %i"
++msgstr "write_main() はデータの書き込みに失敗しました: %i"
+ 
+-#: ../libdnf/goal/Goal.cpp:115
+-#, c-format
+-msgid "module %s requires %s, but none of the providers can be installed"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:540
++msgid "write_main() failed to re-load written solv file"
++msgstr "write_main() は、書き込みされた solv ファイルの再ロードに失敗しました"
+ 
+-#: ../libdnf/goal/Goal.cpp:116
++#: libdnf/dnf-sack.cpp:605
+ #, c-format
+-msgid "module %s conflicts with %s provided by itself"
+-msgstr ""
++msgid "can not create temporary file %s"
++msgstr "一時ファイル %s を作成できません"
+ 
+-#: ../libdnf/goal/Goal.cpp:117
++#: libdnf/dnf-sack.cpp:623
+ #, c-format
+-msgid "both module %s and %s obsolete %s"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:1008
+-msgid "no solver set"
+-msgstr "設定されたソルバーはありません"
++msgid "write_ext(%1$d) has failed: %2$d"
++msgstr "write_ext(%1$d) は失敗しました: %2$d"
+ 
+-#: ../libdnf/goal/Goal.cpp:1013
+-#, c-format
+-msgid "failed to make %s absolute"
+-msgstr "%s を絶対的にすることに失敗しました"
++#: libdnf/dnf-sack.cpp:678
++msgid "null repo md file"
++msgstr "null repo md ファイル"
+ 
+-#: ../libdnf/goal/Goal.cpp:1020
++#: libdnf/dnf-sack.cpp:687
+ #, c-format
+-msgid "failed writing debugdata to %1$s: %2$s"
+-msgstr "debugdata を %1$s へ書き込むことに失敗しました: %2$s"
++msgid "can not read file %1$s: %2$s"
++msgstr "ファイル %1$s を読み込みできません: %2$s"
+ 
+-#: ../libdnf/goal/Goal.cpp:1032
+-msgid "no solv in the goal"
+-msgstr "目標に solv がありません"
++#: libdnf/dnf-sack.cpp:701
++msgid "repo_add_solv() has failed."
++msgstr "repo_add_solv() は失敗しました。"
+ 
+-#: ../libdnf/goal/Goal.cpp:1034
+-msgid "no solution, cannot remove protected package"
+-msgstr "ソリューションがなく、保護されたパッケージを削除できません"
++#: libdnf/dnf-sack.cpp:714
++msgid "loading of MD_TYPE_PRIMARY has failed."
++msgstr "MD_TYPE_PRIMARY のロードに失敗しました。"
+ 
+-#: ../libdnf/goal/Goal.cpp:1037
+-msgid "no solution possible"
+-msgstr "可能なソリューションがありません"
++#: libdnf/dnf-sack.cpp:727
++msgid "repo_add_repomdxml/rpmmd() has failed."
++msgstr "repo_add_repomdxml/rpmmd() は失敗しました。"
+ 
+-#: ../libdnf/goal/Goal.cpp:1443
+-msgid ""
+-"The operation would result in removing the following protected packages: "
+-msgstr "操作は結果的に以下の保護されたパッケージを削除します: "
++#: libdnf/dnf-sack.cpp:794
++msgid "failed to auto-detect architecture"
++msgstr "アーキテクチャーの自動検出に失敗しました"
+ 
+-#: ../libdnf/repo/Repo.cpp:337
++#: libdnf/dnf-sack.cpp:919
+ #, c-format
+-msgid "Bad id for repo: %s, byte = %s %d"
+-msgstr "repo に対する不正な id: %s, byte = %s %d"
++msgid "failed creating cachedir %s"
++msgstr "cachedir %s の作成に失敗しました"
++
++#: libdnf/dnf-sack.cpp:1696
++msgid "failed loading RPMDB"
++msgstr "RPMDB のロードに失敗しました"
+ 
+-#: ../libdnf/repo/Repo.cpp:362
++#: libdnf/dnf-sack.cpp:2403
+ #, c-format
+-msgid "Repository %s has no mirror or baseurl set."
+-msgstr "リポジトリー %s にはミラーまたは baseurl セットがありません。"
++msgid "No module defaults found: %s"
++msgstr "モジュールのデフォルトは見つかりませんでした: %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:371
++#: libdnf/dnf-state.cpp:1184
+ #, c-format
+-msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
+-msgstr "リポジトリー '%s' にはサポートされていないタイプがあります: 'type=%s'、スキッピング。"
++msgid "percentage not 100: %i"
++msgstr "パーセンテージは 100 ではありません: %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:580
++#: libdnf/dnf-state.cpp:1194
+ #, c-format
+-msgid "Cannot find a valid baseurl for repo: %s"
+-msgstr "repo に対して有効な baseurl を見つけられません: %s"
++msgid "failed to set number steps: %i"
++msgstr "数のステップの設定に失敗しました: %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:616 ../libdnf/repo/Repo.cpp:1705
+-msgid ""
+-"Maximum download speed is lower than minimum. Please change configuration of"
+-" minrate or throttle"
+-msgstr "ダウンロードの最高速度は、最低速度よりも低いです。minrate またはスロットルの設定を変更してください。"
++#: libdnf/dnf-state.cpp:1293
++msgid "cancelled by user action"
++msgstr "ユーザーの動作で取り消されました"
+ 
+-#: ../libdnf/repo/Repo.cpp:666 ../libdnf/repo/Repo.cpp:688
++#: libdnf/dnf-state.cpp:1332
+ #, c-format
+-msgid "%s: gpgme_data_new_from_fd(): %s"
+-msgstr "%s: gpgme_data_new_from_fd(): %s"
++msgid "done on a state %1$p that did not have a size set! [%2$s]"
++msgstr "サイズ設定のない状態 %1$p で実行されました! [%2$s]"
+ 
+-#: ../libdnf/repo/Repo.cpp:674 ../libdnf/repo/Repo.cpp:696
++#: libdnf/dnf-state.cpp:1357
+ #, c-format
+-msgid "%s: gpgme_op_import(): %s"
+-msgstr "%s: gpgme_op_import(): %s"
++msgid "already at 100%% state [%s]"
++msgstr "すでに 100%% の状態 [%s] にあります"
+ 
+-#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:785
+-#: ../libdnf/repo/Repo.cpp:913
++#: libdnf/dnf-transaction.cpp:300
+ #, c-format
+-msgid "%s: gpgme_ctx_set_engine_info(): %s"
+-msgstr "%s: gpgme_ctx_set_engine_info(): %s"
++msgid "Sources not set when trying to ensure package %s"
++msgstr "パッケージ %s を確実にしようとする場合、ソースは設定されません"
+ 
+-#: ../libdnf/repo/Repo.cpp:746 ../libdnf/repo/Repo.cpp:810
++#: libdnf/dnf-transaction.cpp:326
+ #, c-format
+-msgid "can not list keys: %s"
+-msgstr "キーを一覧表示できません: %s"
++msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
++msgstr "repo %2$s が見つからないため、%1$s を確実にすることに失敗しました (%3$i repo はロード済み)"
+ 
+-#: ../libdnf/repo/Repo.cpp:839
+-#, c-format
+-msgid "Failed to retrieve GPG key for repo '%s': %s"
+-msgstr ""
++#: libdnf/dnf-transaction.cpp:367
++msgid "Failed to check untrusted: "
++msgstr "untrusted の確認に失敗しました: "
+ 
+-#: ../libdnf/repo/Repo.cpp:892
++#: libdnf/dnf-transaction.cpp:377
+ #, c-format
+-msgid "repo %s: 0x%s already imported"
+-msgstr "repo %s: 0x%s はインポート済みです"
++msgid "Downloaded file for %s not found"
++msgstr "%s にダウンロードしたファイルが見つかりませんでした"
+ 
+-#: ../libdnf/repo/Repo.cpp:920
++#: libdnf/dnf-transaction.cpp:397
+ #, c-format
+-msgid "repo %s: imported key 0x%s."
+-msgstr "repo %s: インポート済みのキー 0x%s。"
++msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
++msgstr "パッケージ %1$s は確認できず、repo %2$s は GPG が有効になっています: %3$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1164
+-#, c-format
+-msgid "reviving: repo '%s' skipped, no metalink."
+-msgstr "復元中: repo '%s' はスキップされました、metalink はありません。"
++#: libdnf/dnf-transaction.cpp:831 libdnf/dnf-transaction.cpp:903
++msgid "Failed to get value for CacheDir"
++msgstr "CacheDir の値の取得に失敗しました"
+ 
+-#: ../libdnf/repo/Repo.cpp:1183
++#: libdnf/dnf-transaction.cpp:911
+ #, c-format
+-msgid "reviving: repo '%s' skipped, no usable hash."
+-msgstr "復元中: repo '%s' はスキップされました、使用可能なハッシュはありません。"
++msgid "Failed to get filesystem free size for %s: "
++msgstr "%s に filesystem をフリーサイズで取得することに失敗しました: "
+ 
+-#: ../libdnf/repo/Repo.cpp:1206
++#: libdnf/dnf-transaction.cpp:919
+ #, c-format
+-msgid "reviving: failed for '%s', mismatched %s sum."
+-msgstr "復元中: '%s' は失敗しました、%s の合計は一致しません。"
++msgid "Failed to get filesystem free size for %s"
++msgstr "%s に filesystem をフリーサイズで取得することに失敗しました"
+ 
+-#: ../libdnf/repo/Repo.cpp:1212
++#: libdnf/dnf-transaction.cpp:935
+ #, c-format
+-msgid "reviving: '%s' can be revived - metalink checksums match."
+-msgstr "復元中: '%s' は復元できます - metalink チェックサムが一致します。"
++msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
++msgstr "%1$s に十分なスペースがありません: %2$s 必要で、利用可能なのは %3$s です"
+ 
+-#: ../libdnf/repo/Repo.cpp:1237
+-#, c-format
+-msgid "reviving: '%s' can be revived - repomd matches."
+-msgstr "復元中: '%s' は復元できます - repomd が一致します。"
++#: libdnf/dnf-transaction.cpp:1196
++msgid "failed to set root"
++msgstr "root の設定に失敗しました"
+ 
+-#: ../libdnf/repo/Repo.cpp:1239
++#: libdnf/dnf-transaction.cpp:1418
+ #, c-format
+-msgid "reviving: failed for '%s', mismatched repomd."
+-msgstr "復元中:  '%s' に失敗しました、repomd が一致しません。"
++msgid "Error %i running transaction test"
++msgstr "トランザクションテストの実行中にエラー %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:1257
++#: libdnf/dnf-transaction.cpp:1458
+ #, c-format
+-msgid "Cannot create repo destination directory \"%s\": %s"
+-msgstr ""
++msgid "Error %i running transaction"
++msgstr "トランザクションの実行中にエラー %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:1263
++#: libdnf/dnf-transaction.cpp:1473
+ #, c-format
+-msgid "Cannot create repo temporary directory \"%s\": %s"
+-msgstr "repo 一時ディレクトリー \"%s\" を作成できません: %s"
++msgid "Transaction did not go to writing phase, but returned no error(%i)"
++msgstr "トランザクションは書き込みフェーズまで行きませんでしたが、エラー(%i) は返しませんでした"
+ 
+-#: ../libdnf/repo/Repo.cpp:1277
++#: libdnf/dnf-utils.cpp:111 libdnf/hy-iutil.cpp:399
+ #, c-format
+-msgid "Cannot create directory \"%s\": %s"
+-msgstr "ディレクトリー \"%s\" を作成できません: %s"
++msgid "cannot open directory %1$s: %2$s"
++msgstr "ディレクトリー %1$s を開くことができません: %2$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1300
++#: libdnf/dnf-utils.cpp:136
+ #, c-format
+-msgid "Cannot rename directory \"%s\" to \"%s\": %s"
+-msgstr "ディレクトリー名を \"%s\" から \"%s\" へと変更できません: %s"
++msgid "failed to remove %s"
++msgstr "%s の削除に失敗しました"
+ 
+-#: ../libdnf/repo/Repo.cpp:1323
+-#, c-format
+-msgid "repo: using cache for: %s"
+-msgstr "repo: キャッシュを使用: %s"
++#: libdnf/goal/Goal.cpp:55
++msgid "Ill-formed Selector, presence of multiple match objects in the filter"
++msgstr "不適格な Selector、フィルター内に複数の一致するオブジェクトが存在"
+ 
+-#: ../libdnf/repo/Repo.cpp:1335
+-#, c-format
+-msgid "Cache-only enabled but no cache for '%s'"
+-msgstr "キャッシュオンリーが有効になっていますが、'%s' に対するキャッシュはありません"
++#: libdnf/goal/Goal.cpp:56
++msgid "Ill-formed Selector used for the operation, incorrect comparison type"
++msgstr "操作に使用される不適格な Selector、間違った比較タイプ"
+ 
+-#: ../libdnf/repo/Repo.cpp:1339
+-#, c-format
+-msgid "repo: downloading from remote: %s"
+-msgstr "repo: リモートからダウンロード中: %s"
++#: libdnf/goal/Goal.cpp:67 libdnf/goal/Goal.cpp:94
++msgid " does not belong to a distupgrade repository"
++msgstr " はdistupgradeレポジトリーに属していません"
+ 
+-#: ../libdnf/repo/Repo.cpp:1345
+-#, c-format
+-msgid "Failed to download metadata for repo '%s': %s"
+-msgstr ""
++#: libdnf/goal/Goal.cpp:68 libdnf/goal/Goal.cpp:95
++msgid " has inferior architecture"
++msgstr " は下位アーキテクチャがあります"
+ 
+-#: ../libdnf/repo/Repo.cpp:1371
+-msgid "getCachedir(): Computation of SHA256 failed"
+-msgstr "getCachedir(): SHA256 のコンピュテーションに失敗しました"
++#: libdnf/goal/Goal.cpp:69
++msgid "problem with installed package "
++msgstr "インストール済パッケージの問題 "
++
++#: libdnf/goal/Goal.cpp:70 libdnf/goal/Goal.cpp:97
++msgid "conflicting requests"
++msgstr "競合するリクエスト"
++
++#: libdnf/goal/Goal.cpp:71 libdnf/goal/Goal.cpp:98
++msgid "unsupported request"
++msgstr "非サポートのリクエスト"
+ 
+-#: ../libdnf/repo/Repo.cpp:1396
++#: libdnf/goal/Goal.cpp:72 libdnf/goal/Goal.cpp:99
++msgid "nothing provides requested "
++msgstr "何もリクエストされていません "
++
++#: libdnf/goal/Goal.cpp:73
+ #, c-format
+-msgid "Cannot create persistdir \"%s\": %s"
+-msgstr ""
++msgid "package %s does not exist"
++msgstr "パッケージ %s は存在しません"
+ 
+-#: ../libdnf/repo/Repo.cpp:1796
+-msgid "resume cannot be used simultaneously with the byterangestart param"
+-msgstr "resume は byterangestart param と同時に使用できません"
++#: libdnf/goal/Goal.cpp:74 libdnf/goal/Goal.cpp:101
++msgid " is provided by the system"
++msgstr " はシステムから提供されます"
++
++#: libdnf/goal/Goal.cpp:75 libdnf/goal/Goal.cpp:102
++msgid "some dependency problem"
++msgstr "いくつかの依存問題"
++
++#: libdnf/goal/Goal.cpp:76
++msgid "cannot install the best update candidate for package "
++msgstr "パッケージの最良アップデート候補をインストールできません "
++
++#: libdnf/goal/Goal.cpp:77 libdnf/goal/Goal.cpp:104
++msgid "cannot install the best candidate for the job"
++msgstr "ジョブの最良アップデート候補をインストールできません"
+ 
+-#: ../libdnf/repo/Repo.cpp:1807
++#: libdnf/goal/Goal.cpp:78
+ #, c-format
+-msgid "PackageTarget initialization failed: %s"
+-msgstr "PackageTarget の初期化に失敗しました: %s"
++msgid "package %s is filtered out by modular filtering"
++msgstr "パッケージ %s はモジュラーフィルタリングに一致しません"
+ 
+-#: ../libdnf/repo/Repo.cpp:1924
++#: libdnf/goal/Goal.cpp:79
+ #, c-format
+-msgid "Cannot open %s: %s"
+-msgstr "%s を開くことができません: %s"
++msgid "package %s does not have a compatible architecture"
++msgstr "パッケージ %s は互換性のあるアーキテクチャーがありません"
+ 
+-#: ../libdnf/repo/Repo.cpp:1968
++#: libdnf/goal/Goal.cpp:80
+ #, c-format
+-msgid "Log handler with id %ld doesn't exist"
+-msgstr "id %ld を伴うログハンドラーは存在しません"
++msgid "package %s is not installable"
++msgstr "パッケージ %s はインストール不可です"
+ 
+-#: ../libdnf/dnf-transaction.cpp:300
++#: libdnf/goal/Goal.cpp:81
+ #, c-format
+-msgid "Sources not set when trying to ensure package %s"
+-msgstr "パッケージ %s を確実にしようとする場合、ソースは設定されません"
++msgid "package %s is filtered out by exclude filtering"
++msgstr "パッケージ %s は除外フィルタリングに一致しません"
+ 
+-#: ../libdnf/dnf-transaction.cpp:326
++#: libdnf/goal/Goal.cpp:82
+ #, c-format
+-msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
+-msgstr "repo %2$s が見つからないため、%1$s を確実にすることに失敗しました (%3$i repo はロード済み)"
++msgid "nothing provides %s needed by %s"
++msgstr "%s が提供されません %s に必要です"
+ 
+-#: ../libdnf/dnf-transaction.cpp:367
+-msgid "Failed to check untrusted: "
+-msgstr "untrusted の確認に失敗しました: "
++#: libdnf/goal/Goal.cpp:83
++#, c-format
++msgid "cannot install both %s and %s"
++msgstr "%s と %s どちらもインストールできません"
+ 
+-#: ../libdnf/dnf-transaction.cpp:377
++#: libdnf/goal/Goal.cpp:84
+ #, c-format
+-msgid "Downloaded file for %s not found"
+-msgstr "%s にダウンロードしたファイルが見つかりませんでした"
++msgid "package %s conflicts with %s provided by %s"
++msgstr "パッケージ %s は %s と競合しています。これは %s により提供されます"
+ 
+-#: ../libdnf/dnf-transaction.cpp:397
++#: libdnf/goal/Goal.cpp:85
+ #, c-format
+-msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
+-msgstr "パッケージ %1$s は確認できず、repo %2$s は GPG が有効になっています: %3$s"
++msgid "package %s obsoletes %s provided by %s"
++msgstr "パッケージ %s は %s を廃止しました。これは %s により提供されます"
+ 
+-#: ../libdnf/dnf-transaction.cpp:831 ../libdnf/dnf-transaction.cpp:903
+-msgid "Failed to get value for CacheDir"
+-msgstr "CacheDir の値の取得に失敗しました"
++#: libdnf/goal/Goal.cpp:86
++#, c-format
++msgid "installed package %s obsoletes %s provided by %s"
++msgstr "インストール済パッケージ %s は %s を廃止しました。これは %s により提供されます"
+ 
+-#: ../libdnf/dnf-transaction.cpp:911
++#: libdnf/goal/Goal.cpp:87
+ #, c-format
+-msgid "Failed to get filesystem free size for %s: "
+-msgstr "%s に filesystem をフリーサイズで取得することに失敗しました: "
++msgid "package %s implicitly obsoletes %s provided by %s"
++msgstr "パッケージ %s は %s を暗に廃止しました。これは %s により提供されます"
+ 
+-#: ../libdnf/dnf-transaction.cpp:919
++#: libdnf/goal/Goal.cpp:88
+ #, c-format
+-msgid "Failed to get filesystem free size for %s"
+-msgstr "%s に filesystem をフリーサイズで取得することに失敗しました"
++msgid "package %s requires %s, but none of the providers can be installed"
++msgstr "パッケージ %s には %s が必要ですが、どのプロバイダーからもインストールできません"
+ 
+-#: ../libdnf/dnf-transaction.cpp:935
++#: libdnf/goal/Goal.cpp:89
+ #, c-format
+-msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
+-msgstr "%1$s に十分なスペースがありません: %2$s 必要で、利用可能なのは %3$s です"
++msgid "package %s conflicts with %s provided by itself"
++msgstr "パッケージ %s は自己提供される %s と競合しています"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1196
+-msgid "failed to set root"
+-msgstr "root の設定に失敗しました"
++#: libdnf/goal/Goal.cpp:90
++#, c-format
++msgid "both package %s and %s obsolete %s"
++msgstr "パッケージ %s と %s 両方は %s を廃止しました"
++
++#: libdnf/goal/Goal.cpp:96
++msgid "problem with installed module "
++msgstr "インストール済モジュールの問題 "
+ 
+-#: ../libdnf/dnf-transaction.cpp:1418
++#: libdnf/goal/Goal.cpp:100
+ #, c-format
+-msgid "Error %i running transaction test"
+-msgstr "トランザクションテストの実行中にエラー %i"
++msgid "module %s does not exist"
++msgstr "モジュール %s は存在しません"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1458
++#: libdnf/goal/Goal.cpp:103
++msgid "cannot install the best update candidate for module "
++msgstr "モジュールの最良アップデート候補をインストールできません "
++
++#: libdnf/goal/Goal.cpp:105 libdnf/goal/Goal.cpp:108
+ #, c-format
+-msgid "Error %i running transaction"
+-msgstr "トランザクションの実行中にエラー %i"
++msgid "module %s is disabled"
++msgstr "モジュール %s は無効です"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1473
++#: libdnf/goal/Goal.cpp:106
+ #, c-format
+-msgid "Transaction did not go to writing phase, but returned no error(%i)"
+-msgstr "トランザクションは書き込みフェーズまで行きませんでしたが、エラー(%i) は返しませんでした"
++msgid "module %s does not have a compatible architecture"
++msgstr "モジュール %s は互換性のあるアーキテクチャーがありません"
+ 
+-#: ../libdnf/dnf-utils.cpp:136
++#: libdnf/goal/Goal.cpp:107
+ #, c-format
+-msgid "failed to remove %s"
+-msgstr "%s の削除に失敗しました"
++msgid "module %s is not installable"
++msgstr "モジュール %s はインストール不可です"
+ 
+-#: ../libdnf/plugin/plugin.cpp:46
++#: libdnf/goal/Goal.cpp:109
+ #, c-format
+-msgid "Can't load shared library \"%s\": %s"
+-msgstr ""
++msgid "nothing provides %s needed by module %s"
++msgstr "%s が提供されませんモジュール %s に必要です"
+ 
+-#: ../libdnf/plugin/plugin.cpp:61 ../libdnf/plugin/plugin.cpp:67
+-#: ../libdnf/plugin/plugin.cpp:73 ../libdnf/plugin/plugin.cpp:79
++#: libdnf/goal/Goal.cpp:110
+ #, c-format
+-msgid "Can't obtain address of symbol \"%s\": %s"
+-msgstr ""
++msgid "cannot install both modules %s and %s"
++msgstr "モジュール %s と %s どちらもインストールできません"
+ 
+-#: ../libdnf/plugin/plugin.cpp:86
++#: libdnf/goal/Goal.cpp:111
+ #, c-format
+-msgid "Loading plugin file=\"%s\""
+-msgstr ""
++msgid "module %s conflicts with %s provided by %s"
++msgstr "モジュール %s は %s と競合しています。これは %s により提供されます"
+ 
+-#: ../libdnf/plugin/plugin.cpp:89
++#: libdnf/goal/Goal.cpp:112
+ #, c-format
+-msgid "Loaded plugin name=\"%s\", version=\"%s\""
+-msgstr ""
++msgid "module %s obsoletes %s provided by %s"
++msgstr "モジュール %s は %s を廃止しました。これは %s により提供されます"
+ 
+-#: ../libdnf/plugin/plugin.cpp:96
+-msgid "Plugins::loadPlugins() dirPath cannot be empty"
+-msgstr ""
++#: libdnf/goal/Goal.cpp:113
++#, c-format
++msgid "installed module %s obsoletes %s provided by %s"
++msgstr "インストール済モジュール %s は %s を廃止しました。これは %s により提供されます"
+ 
+-#: ../libdnf/plugin/plugin.cpp:105
++#: libdnf/goal/Goal.cpp:114
+ #, c-format
+-msgid "Can't read plugin directory \"%s\": %s"
+-msgstr ""
++msgid "module %s implicitly obsoletes %s provided by %s"
++msgstr "モジュール %s は %s を暗に廃止しました。これは %s により提供されます"
+ 
+-#: ../libdnf/plugin/plugin.cpp:114
++#: libdnf/goal/Goal.cpp:115
+ #, c-format
+-msgid "Can't load plugin \"%s\": %s"
+-msgstr ""
++msgid "module %s requires %s, but none of the providers can be installed"
++msgstr "モジュール %s には %s が必要ですが、どのプロバイダーからもインストールできません"
+ 
+-#: ../libdnf/dnf-state.cpp:1184
++#: libdnf/goal/Goal.cpp:116
+ #, c-format
+-msgid "percentage not 100: %i"
+-msgstr "パーセンテージは 100 ではありません: %i"
++msgid "module %s conflicts with %s provided by itself"
++msgstr "モジュール %s は自己提供される %s と競合しています"
+ 
+-#: ../libdnf/dnf-state.cpp:1194
++#: libdnf/goal/Goal.cpp:117
+ #, c-format
+-msgid "failed to set number steps: %i"
+-msgstr "数のステップの設定に失敗しました: %i"
++msgid "both module %s and %s obsolete %s"
++msgstr "モジュール %s と %s 両方は %s を廃止しました"
+ 
+-#: ../libdnf/dnf-state.cpp:1293
+-msgid "cancelled by user action"
+-msgstr "ユーザーの動作で取り消されました"
++#: libdnf/goal/Goal.cpp:1032
++msgid "no solver set"
++msgstr "設定されたソルバーはありません"
+ 
+-#: ../libdnf/dnf-state.cpp:1332
++#: libdnf/goal/Goal.cpp:1037
+ #, c-format
+-msgid "done on a state %1$p that did not have a size set! [%2$s]"
+-msgstr "サイズ設定のない状態 %1$p で実行されました! [%2$s]"
++msgid "failed to make %s absolute"
++msgstr "%s を絶対的にすることに失敗しました"
+ 
+-#: ../libdnf/dnf-state.cpp:1357
++#: libdnf/goal/Goal.cpp:1044
+ #, c-format
+-msgid "already at 100%% state [%s]"
+-msgstr "すでに 100%% の状態 [%s] にあります"
++msgid "failed writing debugdata to %1$s: %2$s"
++msgstr "debugdata を %1$s へ書き込むことに失敗しました: %2$s"
++
++#: libdnf/goal/Goal.cpp:1056
++msgid "no solv in the goal"
++msgstr "目標に solv がありません"
++
++#: libdnf/goal/Goal.cpp:1058
++msgid "no solution, cannot remove protected package"
++msgstr "ソリューションがなく、保護されたパッケージを削除できません"
++
++#: libdnf/goal/Goal.cpp:1061
++msgid "no solution possible"
++msgstr "可能なソリューションがありません"
++
++#: libdnf/goal/Goal.cpp:1473
++msgid ""
++"The operation would result in removing the following protected packages: "
++msgstr "操作は結果的に以下の保護されたパッケージを削除します: "
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:43
++#: libdnf/hy-iutil.cpp:322
+ #, c-format
+-msgid "Failed to update from string: %s"
+-msgstr ""
++msgid "Failed renaming %1$s to %2$s: %3$s"
++msgstr "名前を %1$s から %2$s へ変更できませんでした: %3$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:68
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:70
++#: libdnf/hy-iutil.cpp:330
+ #, c-format
+-msgid "Failed to resolve: %s"
+-msgstr ""
++msgid "Failed setting perms on %1$s: %2$s"
++msgstr "%1$s に権限を設定できませんでした: %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:74
++#: libdnf/hy-iutil.cpp:376
+ #, c-format
+-msgid "Failed to upgrade defaults: %s"
+-msgstr ""
++msgid "cannot create directory %1$s: %2$s"
++msgstr "ディレクトリー %1$s を作成できません : %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:77
++#: libdnf/hy-iutil.cpp:411
+ #, c-format
+-msgid "Failed to upgrade streams: %s"
+-msgstr ""
++msgid "cannot stat path %1$s: %2$s"
++msgstr "パス %1$s のstatを調べられません : %2$s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:463
++#: libdnf/module/ModulePackage.cpp:463
+ #, c-format
+ msgid "Invalid format of Platform module: %s"
+-msgstr ""
++msgstr "不正なプラットフォームモジュールのフォーマット: %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:478
++#: libdnf/module/ModulePackage.cpp:478
+ msgid "Multiple module platforms provided by available packages\n"
+-msgstr ""
++msgstr "利用可能パッケージに提供される複数のモジュールプラットフォーム\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:491
++#: libdnf/module/ModulePackage.cpp:491
+ msgid "Multiple module platforms provided by installed packages\n"
+-msgstr ""
++msgstr "インストール済パッケージに提供される複数のモジュールプラットフォーム\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:518
++#: libdnf/module/ModulePackage.cpp:518
+ #, c-format
+ msgid "Detection of Platform Module in %s failed: %s"
+-msgstr ""
++msgstr "%s のプラットフォームモジュールの検出に失敗しました: %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:527
++#: libdnf/module/ModulePackage.cpp:527
+ #, c-format
+ msgid "Missing PLATFORM_ID in %s"
+-msgstr ""
++msgstr "%s に PLATFORM_ID が見つかりません"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:532
++#: libdnf/module/ModulePackage.cpp:532
+ msgid "No valid Platform ID detected"
+-msgstr ""
++msgstr "有効な Platform ID が検出されませんでした"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:68
++#: libdnf/module/ModulePackageContainer.cpp:68
+ #, c-format
+ msgid "Cannot enable multiple streams for module '%s'"
+-msgstr ""
++msgstr "モジュール '%s' の複数ストリームを有効化できません"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:294
++#: libdnf/module/ModulePackageContainer.cpp:294
+ #, c-format
+ msgid "Conflicting defaults with repo '%s': %s"
+-msgstr ""
++msgstr "repo '%s' のデフォルトが競合: %s"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1568
++#: libdnf/module/ModulePackageContainer.cpp:1569
+ #, c-format
+ msgid "Unable to load modular Fail-Safe data at '%s'"
+-msgstr ""
++msgstr "'%s' のモジュラーフェイルセーフデータをロードできません"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1574
++#: libdnf/module/ModulePackageContainer.cpp:1575
+ #, c-format
+ msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+-msgstr ""
++msgstr "モジュール '%s:%s' のモジュラーフェイルセーフデータをロードできません"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1638
++#: libdnf/module/ModulePackageContainer.cpp:1639
+ #, c-format
+ msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
+-msgstr ""
++msgstr "ディレクトリー \"%s\" を作成できません。対象モジュラーフェイルセーフデータ: %s"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1660
++#: libdnf/module/ModulePackageContainer.cpp:1661
+ #, c-format
+ msgid "Unable to save a modular Fail Safe data to '%s'"
+-msgstr ""
++msgstr "'%s' のモジュラーフェイルセーフデータを保存できません"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1685
++#: libdnf/module/ModulePackageContainer.cpp:1686
+ #, c-format
+ msgid "Unable to remove a modular Fail Safe data in '%s'"
+-msgstr ""
++msgstr "'%s' のモジュラーフェイルセーフデータを削除できません"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:79
++#: libdnf/module/modulemd/ModuleMetadata.cpp:44
+ #, c-format
+-msgid ""
+-"No available modular metadata for modular package '%s'; cannot be installed "
+-"on the system"
+-msgstr ""
++msgid "Failed to update from string: %s"
++msgstr "文字列からのアップデートに失敗しました: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:121 ../libdnf/dnf-rpmts.cpp:166
++#: libdnf/module/modulemd/ModuleMetadata.cpp:68
+ #, c-format
+-msgid "signature does not verify for %s"
+-msgstr "署名は %s を確認しません"
++msgid "Failed to resolve: %s"
++msgstr "名前解決に失敗しました: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:129 ../libdnf/dnf-rpmts.cpp:174
++#: libdnf/module/modulemd/ModuleMetadata.cpp:73
+ #, c-format
+-msgid "failed to open(generic error): %s"
+-msgstr "開くことに失敗しました(ジェネリックエラー): %s"
++msgid "There were errors while resolving modular defaults: %s"
++msgstr "モジュラーデフォルトの解決中にエラーが発生しました: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:142
++#: libdnf/module/modulemd/ModuleMetadata.cpp:78
+ #, c-format
+-msgid "failed to verify key for %s"
+-msgstr "%s のキーの確認に失敗しました"
++msgid "Failed to upgrade defaults: %s"
++msgstr "デフォルトのアップグレードに失敗しました: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:150
++#: libdnf/module/modulemd/ModuleMetadata.cpp:81
+ #, c-format
+-msgid "public key unavailable for %s"
+-msgstr "%s は公開鍵を利用できません"
++msgid "Failed to upgrade streams: %s"
++msgstr "ストリームのアップグレードに失敗しました: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:158
++#: libdnf/plugin/plugin.cpp:46
+ #, c-format
+-msgid "signature not found for %s"
+-msgstr "%s の署名は見つかりませんでした"
++msgid "Can't load shared library \"%s\": %s"
++msgstr "共有ライブラリ \"%s\" をロードできません : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:193
++#: libdnf/plugin/plugin.cpp:61 libdnf/plugin/plugin.cpp:67
++#: libdnf/plugin/plugin.cpp:73 libdnf/plugin/plugin.cpp:79
+ #, c-format
+-msgid "failed to add install element: %1$s [%2$i]"
+-msgstr "インストールの要素の追加に失敗しました: %1$s [%2$i]"
++msgid "Can't obtain address of symbol \"%s\": %s"
++msgstr "シンボル \"%s\" のアドレスを収集できません : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:274
++#: libdnf/plugin/plugin.cpp:86
+ #, c-format
+-msgid "Error running transaction: %s"
+-msgstr "トランザクションの実行中にエラーが発生しました: %s"
+-
+-#: ../libdnf/dnf-rpmts.cpp:283
+-msgid "Error running transaction and no problems were reported!"
+-msgstr "トランザクションの実行中にエラーが発生しましたが、問題は報告されませんでした!"
+-
+-#: ../libdnf/dnf-rpmts.cpp:346
+-msgid "Fatal error, run database recovery"
+-msgstr "致命的なエラー、データベースリカバリーを実行します"
++msgid "Loading plugin file=\"%s\""
++msgstr "プラグインファイル =\"%s\" をロード中"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:355
++#: libdnf/plugin/plugin.cpp:89
+ #, c-format
+-msgid "failed to find package %s"
+-msgstr "パッケージ %s を見つけることができませんでした"
++msgid "Loaded plugin name=\"%s\", version=\"%s\""
++msgstr "プラグイン名 =\"%s\", バージョン =\"%s\" をロードしました"
++
++#: libdnf/plugin/plugin.cpp:96
++msgid "Plugins::loadPlugins() dirPath cannot be empty"
++msgstr "Plugins::loadPlugins() dirPath は空白にできません"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:401
++#: libdnf/plugin/plugin.cpp:105
+ #, c-format
+-msgid "could not add erase element %1$s(%2$i)"
+-msgstr "erase 要素 %1$s(%2$i) を追加することができません"
++msgid "Can't read plugin directory \"%s\": %s"
++msgstr "プラグインディレクトリー \"%s\" を読み込めません: %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:59 ../libdnf/conf/OptionStringList.cpp:59
+-#: ../libdnf/conf/OptionEnum.cpp:72 ../libdnf/conf/OptionEnum.cpp:158
++#: libdnf/plugin/plugin.cpp:114
+ #, c-format
+-msgid "'%s' is not an allowed value"
+-msgstr "'%s' 値は許可されていない値です"
++msgid "Can't load plugin \"%s\": %s"
++msgstr "プラグイン \"%s\" をロードできません : %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:74
+-msgid "GetValue(): Value not set"
+-msgstr "GetValue(): 値は設定されていません"
++#: libdnf/repo/DependencySplitter.cpp:50
++msgid ""
++"Using '==' operator in reldeps can result in an undefined behavior. It is "
++"deprecated and the support will be dropped in future versions. Use '=' "
++"operator instead."
++msgstr ""
++"reldeps で '==' "
++"演算子を使用すると、未定義の動作が発生する可能性があります。これは非推奨で、将来のバージョンではサポートされなくなります。代わりに '=' "
++"演算子を使用してください。"
+ 
+-#: ../libdnf/conf/OptionPath.cpp:78
++#: libdnf/repo/Repo.cpp:321
+ #, c-format
+-msgid "given path '%s' is not absolute."
+-msgstr "指定されたパス '%s' は絶対パスではありません。"
++msgid "Repository %s has no mirror or baseurl set."
++msgstr "リポジトリー %s にはミラーまたは baseurl セットがありません。"
+ 
+-#: ../libdnf/conf/OptionPath.cpp:82
++#: libdnf/repo/Repo.cpp:330
+ #, c-format
+-msgid "given path '%s' does not exist."
+-msgstr "指定されたパス '%s' が存在しません。"
++msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
++msgstr "リポジトリー '%s' にはサポートされていないタイプがあります: 'type=%s'、スキッピング。"
+ 
+-#: ../libdnf/conf/OptionBool.cpp:47
++#: libdnf/repo/Repo.cpp:536
+ #, c-format
+-msgid "invalid boolean value '%s'"
+-msgstr "無効な boolean 値 '%s'"
++msgid "Cannot find a valid baseurl for repo: %s"
++msgstr "repo に対して有効な baseurl を見つけられません: %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:62 ../libdnf/conf/OptionSeconds.cpp:40
+-msgid "no value specified"
+-msgstr "値が指定されていません"
++#: libdnf/repo/Repo.cpp:573 libdnf/repo/Repo.cpp:1662
++msgid ""
++"Maximum download speed is lower than minimum. Please change configuration of"
++" minrate or throttle"
++msgstr "ダウンロードの最高速度は、最低速度よりも低いです。minrate またはスロットルの設定を変更してください。"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:67 ../libdnf/conf/OptionSeconds.cpp:48
++#: libdnf/repo/Repo.cpp:623 libdnf/repo/Repo.cpp:645
+ #, c-format
+-msgid "seconds value '%s' must not be negative"
+-msgstr "2個目の値 '%s' は負の数にしないでください"
++msgid "%s: gpgme_data_new_from_fd(): %s"
++msgstr "%s: gpgme_data_new_from_fd(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:71
++#: libdnf/repo/Repo.cpp:631 libdnf/repo/Repo.cpp:653
+ #, c-format
+-msgid "could not convert '%s' to bytes"
+-msgstr "'%s' を バイトへ変換できませんでした"
++msgid "%s: gpgme_op_import(): %s"
++msgstr "%s: gpgme_op_import(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:83 ../libdnf/conf/OptionSeconds.cpp:66
++#: libdnf/repo/Repo.cpp:676 libdnf/repo/Repo.cpp:742 libdnf/repo/Repo.cpp:870
+ #, c-format
+-msgid "unknown unit '%s'"
+-msgstr "不明な単位 '%s'"
++msgid "%s: gpgme_ctx_set_engine_info(): %s"
++msgstr "%s: gpgme_ctx_set_engine_info(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:329
++#: libdnf/repo/Repo.cpp:703 libdnf/repo/Repo.cpp:767
+ #, c-format
+-msgid "percentage '%s' is out of range"
+-msgstr "パーセンテージ '%s' が範囲外にあります"
++msgid "can not list keys: %s"
++msgstr "キーを一覧表示できません: %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:73
++#: libdnf/repo/Repo.cpp:796
+ #, c-format
+-msgid "given value [%d] should be less than allowed value [%d]."
+-msgstr "指定された値 [%d] は許可された値 [%d]より小さくしてください"
++msgid "Failed to retrieve GPG key for repo '%s': %s"
++msgstr "repo '%s' のGPG鍵の回収に失敗しました : %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:76
++#: libdnf/repo/Repo.cpp:849
+ #, c-format
+-msgid "given value [%d] should be greater than allowed value [%d]."
+-msgstr "指定された値 [%d] は許可された値 [%d]より大きくしてください"
+-
+-#: ../libdnf/conf/OptionNumber.cpp:88 ../libdnf/conf/OptionEnum.cpp:83
+-msgid "invalid value"
+-msgstr "無効な値"
++msgid "repo %s: 0x%s already imported"
++msgstr "repo %s: 0x%s はインポート済みです"
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:76
++#: libdnf/repo/Repo.cpp:877
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" does not exist"
+-msgstr "設定: id \"%s\" を伴う OptionBinding は存在しません"
++msgid "repo %s: imported key 0x%s."
++msgstr "repo %s: インポート済みのキー 0x%s。"
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:88
++#: libdnf/repo/Repo.cpp:1121
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" already exists"
+-msgstr "設定: id \"%s\" を伴う OptionBinding はすでに存在します"
++msgid "reviving: repo '%s' skipped, no metalink."
++msgstr "復元中: repo '%s' はスキップされました、metalink はありません。"
+ 
+-#: ../libdnf/conf/OptionSeconds.cpp:52
++#: libdnf/repo/Repo.cpp:1140
+ #, c-format
+-msgid "could not convert '%s' to seconds"
+-msgstr "'%s' を 秒に変換できません"
++msgid "reviving: repo '%s' skipped, no usable hash."
++msgstr "復元中: repo '%s' はスキップされました、使用可能なハッシュはありません。"
+ 
+-#: ../libdnf/dnf-sack.cpp:417
++#: libdnf/repo/Repo.cpp:1163
+ #, c-format
+-msgid "no %1$s string for %2$s"
+-msgstr ""
+-
+-#: ../libdnf/dnf-sack.cpp:440
+-msgid "failed to add solv"
+-msgstr "solv の追加に失敗しました"
++msgid "reviving: failed for '%s', mismatched %s sum."
++msgstr "復元中: '%s' は失敗しました、%s の合計は一致しません。"
+ 
+-#: ../libdnf/dnf-sack.cpp:458
++#: libdnf/repo/Repo.cpp:1169
+ #, c-format
+-msgid "failed to open: %s"
+-msgstr "開くことに失敗しました: %s"
++msgid "reviving: '%s' can be revived - metalink checksums match."
++msgstr "復元中: '%s' は復元できます - metalink チェックサムが一致します。"
+ 
+-#: ../libdnf/dnf-sack.cpp:537
++#: libdnf/repo/Repo.cpp:1194
+ #, c-format
+-msgid "cannot create temporary file: %s"
+-msgstr "一時ファイルを作成できません: %s"
++msgid "reviving: '%s' can be revived - repomd matches."
++msgstr "復元中: '%s' は復元できます - repomd が一致します。"
+ 
+-#: ../libdnf/dnf-sack.cpp:547
++#: libdnf/repo/Repo.cpp:1196
+ #, c-format
+-msgid "failed opening tmp file: %s"
+-msgstr "tmp ファイルを開くことに失敗しました: %s"
++msgid "reviving: failed for '%s', mismatched repomd."
++msgstr "復元中:  '%s' に失敗しました、repomd が一致しません。"
+ 
+-#: ../libdnf/dnf-sack.cpp:559
++#: libdnf/repo/Repo.cpp:1214
+ #, c-format
+-msgid "write_main() failed writing data: %i"
+-msgstr "write_main() はデータの書き込みに失敗しました: %i"
+-
+-#: ../libdnf/dnf-sack.cpp:576
+-msgid "write_main() failed to re-load written solv file"
+-msgstr "write_main() は、書き込みされた solv ファイルの再ロードに失敗しました"
++msgid "Cannot create repo destination directory \"%s\": %s"
++msgstr "repo 送信先ディレクトリ \"%s\" を作成できません : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:641
++#: libdnf/repo/Repo.cpp:1220
+ #, c-format
+-msgid "can not create temporary file %s"
+-msgstr "一時ファイル %s を作成できません"
++msgid "Cannot create repo temporary directory \"%s\": %s"
++msgstr "repo 一時ディレクトリー \"%s\" を作成できません: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:659
++#: libdnf/repo/Repo.cpp:1234
+ #, c-format
+-msgid "write_ext(%1$d) has failed: %2$d"
+-msgstr "write_ext(%1$d) は失敗しました: %2$d"
++msgid "Cannot create directory \"%s\": %s"
++msgstr "ディレクトリー \"%s\" を作成できません: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:714
+-msgid "null repo md file"
+-msgstr "null repo md ファイル"
++#: libdnf/repo/Repo.cpp:1257
++#, c-format
++msgid "Cannot rename directory \"%s\" to \"%s\": %s"
++msgstr "ディレクトリー名を \"%s\" から \"%s\" へと変更できません: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:723
++#: libdnf/repo/Repo.cpp:1280
+ #, c-format
+-msgid "can not read file %1$s: %2$s"
+-msgstr "ファイル %1$s を読み込みできません: %2$s"
++msgid "repo: using cache for: %s"
++msgstr "repo: キャッシュを使用: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:737
+-msgid "repo_add_solv() has failed."
+-msgstr "repo_add_solv() は失敗しました。"
++#: libdnf/repo/Repo.cpp:1292
++#, c-format
++msgid "Cache-only enabled but no cache for '%s'"
++msgstr "キャッシュオンリーが有効になっていますが、'%s' に対するキャッシュはありません"
+ 
+-#: ../libdnf/dnf-sack.cpp:750
+-msgid "loading of MD_TYPE_PRIMARY has failed."
+-msgstr ""
++#: libdnf/repo/Repo.cpp:1296
++#, c-format
++msgid "repo: downloading from remote: %s"
++msgstr "repo: リモートからダウンロード中: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:763
+-msgid "repo_add_repomdxml/rpmmd() has failed."
+-msgstr "repo_add_repomdxml/rpmmd() は失敗しました。"
++#: libdnf/repo/Repo.cpp:1302
++#, c-format
++msgid "Failed to download metadata for repo '%s': %s"
++msgstr "repo '%s' のメタデータのダウンロードに失敗しました : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:830
+-msgid "failed to auto-detect architecture"
+-msgstr "アーキテクチャーの自動検出に失敗しました"
++#: libdnf/repo/Repo.cpp:1328
++msgid "getCachedir(): Computation of SHA256 failed"
++msgstr "getCachedir(): SHA256 のコンピュテーションに失敗しました"
+ 
+-#: ../libdnf/dnf-sack.cpp:955
++#: libdnf/repo/Repo.cpp:1353
+ #, c-format
+-msgid "failed creating cachedir %s"
+-msgstr "cachedir %s の作成に失敗しました"
+-
+-#: ../libdnf/dnf-sack.cpp:1727
+-msgid "failed calculating RPMDB checksum"
+-msgstr "RPMDB チェックサムの計算に失敗しました"
++msgid "Cannot create persistdir \"%s\": %s"
++msgstr "persistdir \"%s\" を作成できません : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:1751
+-msgid "failed loading RPMDB"
+-msgstr "RPMDB のロードに失敗しました"
++#: libdnf/repo/Repo.cpp:1753
++msgid "resume cannot be used simultaneously with the byterangestart param"
++msgstr "resume は byterangestart param と同時に使用できません"
+ 
+-#: ../libdnf/dnf-sack.cpp:2466
+-msgid "No module defaults found"
+-msgstr ""
++#: libdnf/repo/Repo.cpp:1770
++#, c-format
++msgid "PackageTarget initialization failed: %s"
++msgstr "PackageTarget の初期化に失敗しました: %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:659
+-msgid "Transformer: can't open history persist dir"
+-msgstr "トランスフォーマー: 履歴の残った dir を開くことができません"
++#: libdnf/repo/Repo.cpp:1887
++#, c-format
++msgid "Cannot open %s: %s"
++msgstr "%s を開くことができません: %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:672
+-msgid "Couldn't find a history database"
+-msgstr "履歴のデータベースを見つけることができませんでした"
++#: libdnf/repo/Repo.cpp:1931
++#, c-format
++msgid "Log handler with id %ld doesn't exist"
++msgstr "id %ld を伴うログハンドラーは存在しません"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:107
++#: libdnf/transaction/Swdb.cpp:173
+ msgid "In progress"
+ msgstr "進行中"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:121 ../libdnf/transaction/Swdb.cpp:148
+-#: ../libdnf/transaction/Swdb.cpp:160 ../libdnf/transaction/Swdb.cpp:177
+-#: ../libdnf/transaction/Swdb.cpp:316 ../libdnf/transaction/Swdb.cpp:326
++#: libdnf/transaction/Swdb.cpp:188 libdnf/transaction/Swdb.cpp:216
++#: libdnf/transaction/Swdb.cpp:228 libdnf/transaction/Swdb.cpp:245
++#: libdnf/transaction/Swdb.cpp:384 libdnf/transaction/Swdb.cpp:394
+ msgid "Not in progress"
+ msgstr "進行中ではありません"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:187
++#: libdnf/transaction/Swdb.cpp:255
+ msgid "No transaction in progress"
+ msgstr "進行中のトランザクションはありません"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:147
++#: libdnf/transaction/TransactionItem.cpp:147
+ msgid "Attempt to insert transaction item into completed transaction"
+ msgstr "完了したトランザクションにトランザクションアイテムの挿入を試みます"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:218
++#: libdnf/transaction/TransactionItem.cpp:218
+ msgid "Attempt to update transaction item in completed transaction"
+ msgstr "完了したトランザクションにトランザクションアイテムの更新を試みます"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:41
++#: libdnf/transaction/Transformer.cpp:76
++msgid "Database Corrupted: no row 'version' in table 'config'"
++msgstr "データベースが破損しています: テーブル 'config' の行 'version' がありません。"
++
++#: libdnf/transaction/Transformer.cpp:681
++msgid "Transformer: can't open history persist dir"
++msgstr "トランスフォーマー: 履歴の残った dir を開くことができません"
++
++#: libdnf/transaction/Transformer.cpp:694
++msgid "Couldn't find a history database"
++msgstr "履歴のデータベースを見つけることができませんでした"
++
++#: libdnf/transaction/private/Transaction.cpp:41
+ msgid "Transaction has already began!"
+ msgstr "トランザクションが開始しました!"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:58
++#: libdnf/transaction/private/Transaction.cpp:58
+ #, c-format
+ msgid "TransactionItem state is not set: %s"
+ msgstr "TransactionItem の状態は設定されていません: %s"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:239
++#: libdnf/transaction/private/Transaction.cpp:243
+ msgid "Can't add console output to unsaved transaction"
+ msgstr "未保存のトランザクションにコンソールの出力を追加できません"
++
++#~ msgid "Bad id for repo: %s, byte = %s %d"
++#~ msgstr "repo に対する不正な id: %s, byte = %s %d"
+diff --git a/po/ko.po b/po/ko.po
+index 39e579ed..6520e0c2 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-03-19 13:58+0100\n"
++"POT-Creation-Date: 2020-06-26 09:18-0400\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"
+@@ -18,904 +18,912 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0\n"
+ "X-Generator: Zanata 4.6.2\n"
+ 
+-#: ../libdnf/hy-iutil.cpp:322
+-#, c-format
+-msgid "Failed renaming %1$s to %2$s: %3$s"
+-msgstr ""
++#: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
++msgid "no value specified"
++msgstr "값이 지정되지 않았습니다"
+ 
+-#: ../libdnf/hy-iutil.cpp:330
++#: libdnf/conf/ConfigMain.cpp:67 libdnf/conf/OptionSeconds.cpp:48
+ #, c-format
+-msgid "Failed setting perms on %1$s: %2$s"
+-msgstr ""
++msgid "seconds value '%s' must not be negative"
++msgstr "초 값 '%s음수가 아니어야합니다"
+ 
+-#: ../libdnf/hy-iutil.cpp:376
++#: libdnf/conf/ConfigMain.cpp:71
+ #, c-format
+-msgid "cannot create directory %1$s: %2$s"
+-msgstr ""
++msgid "could not convert '%s' to bytes"
++msgstr "변환 할 수 없습니다 '%s'~ 바이트"
+ 
+-#: ../libdnf/hy-iutil.cpp:399 ../libdnf/dnf-utils.cpp:111
++#: libdnf/conf/ConfigMain.cpp:83 libdnf/conf/OptionSeconds.cpp:66
+ #, c-format
+-msgid "cannot open directory %1$s: %2$s"
+-msgstr "디렉토리를 열 수 없습니다. %1$s: %2$s"
++msgid "unknown unit '%s'"
++msgstr "알 수없는 단위 '%s'"
+ 
+-#: ../libdnf/hy-iutil.cpp:411
++#: libdnf/conf/ConfigMain.cpp:329
+ #, c-format
+-msgid "cannot stat path %1$s: %2$s"
+-msgstr ""
+-
+-#: ../libdnf/dnf-goal.cpp:68
+-msgid "Could not depsolve transaction; "
+-msgstr ""
++msgid "percentage '%s' is out of range"
++msgstr "백분율 '%s'범위를 벗어났습니다"
+ 
+-#: ../libdnf/dnf-goal.cpp:70
++#: libdnf/conf/OptionBinds.cpp:76
+ #, c-format
+-msgid "%i problem detected:\n"
+-msgid_plural "%i problems detected:\n"
+-msgstr[0] ""
++msgid "Configuration: OptionBinding with id \"%s\" does not exist"
++msgstr "구성 : ID가 \"%s\" 존재하지 않는다"
+ 
+-#: ../libdnf/dnf-goal.cpp:78
++#: libdnf/conf/OptionBinds.cpp:88
+ #, c-format
+-msgid " Problem %1$i: %2$s\n"
+-msgstr ""
++msgid "Configuration: OptionBinding with id \"%s\" already exists"
++msgstr "구성 : ID가 \"%s\" 이미 존재 함"
+ 
+-#: ../libdnf/dnf-goal.cpp:80
++#: libdnf/conf/OptionBool.cpp:47
+ #, c-format
+-msgid " Problem: %s\n"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:55
+-msgid "Ill-formed Selector, presence of multiple match objects in the filter"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:56
+-msgid "Ill-formed Selector used for the operation, incorrect comparison type"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:94
+-msgid " does not belong to a distupgrade repository"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:68 ../libdnf/goal/Goal.cpp:95
+-msgid " has inferior architecture"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:69
+-msgid "problem with installed package "
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:70 ../libdnf/goal/Goal.cpp:97
+-msgid "conflicting requests"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:71 ../libdnf/goal/Goal.cpp:98
+-msgid "unsupported request"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:72 ../libdnf/goal/Goal.cpp:99
+-msgid "nothing provides requested "
+-msgstr ""
++msgid "invalid boolean value '%s'"
++msgstr "유효하지 않은 부울 값 '%s'"
+ 
+-#: ../libdnf/goal/Goal.cpp:73
++#: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
++#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+ #, c-format
+-msgid "package %s does not exist"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:74 ../libdnf/goal/Goal.cpp:101
+-msgid " is provided by the system"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:75 ../libdnf/goal/Goal.cpp:102
+-msgid "some dependency problem"
+-msgstr ""
++msgid "'%s' is not an allowed value"
++msgstr "'%s'은 (는) 허용 된 값이 아닙니다"
+ 
+-#: ../libdnf/goal/Goal.cpp:76
+-msgid "cannot install the best update candidate for package "
+-msgstr ""
++#: libdnf/conf/OptionEnum.cpp:83 libdnf/conf/OptionNumber.cpp:88
++msgid "invalid value"
++msgstr "잘못된 값"
+ 
+-#: ../libdnf/goal/Goal.cpp:77 ../libdnf/goal/Goal.cpp:104
+-msgid "cannot install the best candidate for the job"
+-msgstr ""
++#: libdnf/conf/OptionNumber.cpp:73
++#, c-format
++msgid "given value [%d] should be less than allowed value [%d]."
++msgstr "주어진 값 [%d] 허용 된 값보다 작아야합니다 [%d]."
+ 
+-#: ../libdnf/goal/Goal.cpp:78
++#: libdnf/conf/OptionNumber.cpp:76
+ #, c-format
+-msgid "package %s is filtered out by modular filtering"
+-msgstr ""
++msgid "given value [%d] should be greater than allowed value [%d]."
++msgstr "주어진 값 [%d] 허용 된 값보다 커야합니다 [%d]."
+ 
+-#: ../libdnf/goal/Goal.cpp:79
++#: libdnf/conf/OptionPath.cpp:78
+ #, c-format
+-msgid "package %s does not have a compatible architecture"
+-msgstr ""
++msgid "given path '%s' is not absolute."
++msgstr "주어진 경로 '%s절대적이지 않다."
+ 
+-#: ../libdnf/goal/Goal.cpp:80
++#: libdnf/conf/OptionPath.cpp:82
+ #, c-format
+-msgid "package %s is not installable"
+-msgstr ""
++msgid "given path '%s' does not exist."
++msgstr "주어진 경로 '%s' 존재하지 않는다."
+ 
+-#: ../libdnf/goal/Goal.cpp:81
++#: libdnf/conf/OptionSeconds.cpp:52
+ #, c-format
+-msgid "package %s is filtered out by exclude filtering"
+-msgstr ""
++msgid "could not convert '%s' to seconds"
++msgstr "변환 할 수 없습니다 '%s'초까지"
++
++#: libdnf/conf/OptionString.cpp:74
++msgid "GetValue(): Value not set"
++msgstr "GetValue () : 값이 설정되지 않았습니다."
++
++#: libdnf/dnf-goal.cpp:68
++msgid "Could not depsolve transaction; "
++msgstr "트랜잭션을 해석 할 수 없습니다. "
+ 
+-#: ../libdnf/goal/Goal.cpp:82
++#: libdnf/dnf-goal.cpp:70
+ #, c-format
+-msgid "nothing provides %s needed by %s"
+-msgstr ""
++msgid "%i problem detected:\n"
++msgid_plural "%i problems detected:\n"
++msgstr[0] "%i 발견 된 문제 :\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:83
++#: libdnf/dnf-goal.cpp:78
+ #, c-format
+-msgid "cannot install both %s and %s"
+-msgstr ""
++msgid " Problem %1$i: %2$s\n"
++msgstr " 문제 %1$i: %2$s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:84
++#: libdnf/dnf-goal.cpp:80
+ #, c-format
+-msgid "package %s conflicts with %s provided by %s"
+-msgstr ""
++msgid " Problem: %s\n"
++msgstr " 문제: %s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:85
++#: libdnf/dnf-rpmts.cpp:79
+ #, c-format
+-msgid "package %s obsoletes %s provided by %s"
+-msgstr ""
++msgid ""
++"No available modular metadata for modular package '%s'; cannot be installed "
++"on the system"
++msgstr "모듈 패키지 '%s'에 사용 가능한 모듈식 메타 데이터가 없으므로 시스템에 설치할 수 없습니다"
+ 
+-#: ../libdnf/goal/Goal.cpp:86
++#: libdnf/dnf-rpmts.cpp:121 libdnf/dnf-rpmts.cpp:166
+ #, c-format
+-msgid "installed package %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "signature does not verify for %s"
++msgstr "서명이 확인되지 않음 %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:87
++#: libdnf/dnf-rpmts.cpp:129 libdnf/dnf-rpmts.cpp:174
+ #, c-format
+-msgid "package %s implicitly obsoletes %s provided by %s"
+-msgstr ""
++msgid "failed to open(generic error): %s"
++msgstr "열지 못했습니다 (일반 오류). %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:88
++#: libdnf/dnf-rpmts.cpp:142
+ #, c-format
+-msgid "package %s requires %s, but none of the providers can be installed"
+-msgstr ""
++msgid "failed to verify key for %s"
++msgstr "키를 확인하지 못했습니다. %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:89
++#: libdnf/dnf-rpmts.cpp:150
+ #, c-format
+-msgid "package %s conflicts with %s provided by itself"
+-msgstr ""
++msgid "public key unavailable for %s"
++msgstr "사용할 수 없는 공개 키 %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:90
++#: libdnf/dnf-rpmts.cpp:158
+ #, c-format
+-msgid "both package %s and %s obsolete %s"
+-msgstr ""
++msgid "signature not found for %s"
++msgstr "서명이 없습니다. %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:96
+-msgid "problem with installed module "
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:193
++#, c-format
++msgid "failed to add install element: %1$s [%2$i]"
++msgstr "설치 요소를 추가하지 못했습니다. %1$s [%2$i]"
+ 
+-#: ../libdnf/goal/Goal.cpp:100
++#: libdnf/dnf-rpmts.cpp:274
+ #, c-format
+-msgid "module %s does not exist"
+-msgstr ""
++msgid "Error running transaction: %s"
++msgstr "트랜잭션 실행 오류 : %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:103
+-msgid "cannot install the best update candidate for module "
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:283
++msgid "Error running transaction and no problems were reported!"
++msgstr "트랜잭션을 실행하는 중 오류가 발생했으며 아무런 문제도보고되지 않았습니다!"
+ 
+-#: ../libdnf/goal/Goal.cpp:105 ../libdnf/goal/Goal.cpp:108
+-#, c-format
+-msgid "module %s is disabled"
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:346
++msgid "Fatal error, run database recovery"
++msgstr "치명적인 오류, 데이터베이스 복구 실행"
+ 
+-#: ../libdnf/goal/Goal.cpp:106
++#: libdnf/dnf-rpmts.cpp:355
+ #, c-format
+-msgid "module %s does not have a compatible architecture"
+-msgstr ""
++msgid "failed to find package %s"
++msgstr "꾸러미를 찾지 못했습니다. %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:107
++#: libdnf/dnf-rpmts.cpp:401
+ #, c-format
+-msgid "module %s is not installable"
+-msgstr ""
++msgid "could not add erase element %1$s(%2$i)"
++msgstr "요소 지우기를 추가 할 수 없습니다. %1$s(%2$i)"
+ 
+-#: ../libdnf/goal/Goal.cpp:109
++#: libdnf/dnf-sack.cpp:381
+ #, c-format
+-msgid "nothing provides %s needed by module %s"
+-msgstr ""
++msgid "no %1$s string for %2$s"
++msgstr "%2$s에 %1$s 문자열이 없습니다"
+ 
+-#: ../libdnf/goal/Goal.cpp:110
+-#, c-format
+-msgid "cannot install both modules %s and %s"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:404
++msgid "failed to add solv"
++msgstr "solv를 추가하지 못했습니다."
+ 
+-#: ../libdnf/goal/Goal.cpp:111
++#: libdnf/dnf-sack.cpp:422
+ #, c-format
+-msgid "module %s conflicts with %s provided by %s"
+-msgstr ""
++msgid "failed to open: %s"
++msgstr "열지 못했습니다 : %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:112
++#: libdnf/dnf-sack.cpp:501
+ #, c-format
+-msgid "module %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "cannot create temporary file: %s"
++msgstr "임시 파일을 만들 수 없습니다. %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:113
++#: libdnf/dnf-sack.cpp:511
+ #, c-format
+-msgid "installed module %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "failed opening tmp file: %s"
++msgstr "여는 tmp 파일을 열지 못했습니다. %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:114
++#: libdnf/dnf-sack.cpp:523
+ #, c-format
+-msgid "module %s implicitly obsoletes %s provided by %s"
+-msgstr ""
++msgid "write_main() failed writing data: %i"
++msgstr "write_main() failed writing data: %i"
+ 
+-#: ../libdnf/goal/Goal.cpp:115
+-#, c-format
+-msgid "module %s requires %s, but none of the providers can be installed"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:540
++msgid "write_main() failed to re-load written solv file"
++msgstr "write_main ()이 작성된 solv 파일을 다시로드하지 못했습니다."
+ 
+-#: ../libdnf/goal/Goal.cpp:116
++#: libdnf/dnf-sack.cpp:605
+ #, c-format
+-msgid "module %s conflicts with %s provided by itself"
+-msgstr ""
++msgid "can not create temporary file %s"
++msgstr "임시 파일을 만들 수 없습니다. %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:117
++#: libdnf/dnf-sack.cpp:623
+ #, c-format
+-msgid "both module %s and %s obsolete %s"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:1008
+-msgid "no solver set"
+-msgstr ""
++msgid "write_ext(%1$d) has failed: %2$d"
++msgstr "write_ext(%1$d) has failed: %2$d"
+ 
+-#: ../libdnf/goal/Goal.cpp:1013
+-#, c-format
+-msgid "failed to make %s absolute"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:678
++msgid "null repo md file"
++msgstr "null repo md 파일"
+ 
+-#: ../libdnf/goal/Goal.cpp:1020
++#: libdnf/dnf-sack.cpp:687
+ #, c-format
+-msgid "failed writing debugdata to %1$s: %2$s"
+-msgstr ""
++msgid "can not read file %1$s: %2$s"
++msgstr "파일을 읽을 수 없습니다. %1$s: %2$s"
+ 
+-#: ../libdnf/goal/Goal.cpp:1032
+-msgid "no solv in the goal"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:701
++msgid "repo_add_solv() has failed."
++msgstr "repo_add_solv()가 실패했습니다."
+ 
+-#: ../libdnf/goal/Goal.cpp:1034
+-msgid "no solution, cannot remove protected package"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:714
++msgid "loading of MD_TYPE_PRIMARY has failed."
++msgstr "MD_TYPE_PRIMARY를 로드하지 못했습니다."
+ 
+-#: ../libdnf/goal/Goal.cpp:1037
+-msgid "no solution possible"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:727
++msgid "repo_add_repomdxml/rpmmd() has failed."
++msgstr "repo_add_repomdxml/rpmmd() has failed."
+ 
+-#: ../libdnf/goal/Goal.cpp:1443
+-msgid ""
+-"The operation would result in removing the following protected packages: "
+-msgstr ""
++#: libdnf/dnf-sack.cpp:794
++msgid "failed to auto-detect architecture"
++msgstr "아키텍처 자동 검색에 실패했습니다."
+ 
+-#: ../libdnf/repo/Repo.cpp:337
++#: libdnf/dnf-sack.cpp:919
+ #, c-format
+-msgid "Bad id for repo: %s, byte = %s %d"
+-msgstr ""
++msgid "failed creating cachedir %s"
++msgstr "cachedir 생성 실패 %s"
++
++#: libdnf/dnf-sack.cpp:1696
++msgid "failed loading RPMDB"
++msgstr "RPMDB로드 실패"
+ 
+-#: ../libdnf/repo/Repo.cpp:362
++#: libdnf/dnf-sack.cpp:2403
+ #, c-format
+-msgid "Repository %s has no mirror or baseurl set."
+-msgstr ""
++msgid "No module defaults found: %s"
++msgstr "모듈 기본 설정을 찾을 수 없습니다. %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:371
++#: libdnf/dnf-state.cpp:1184
+ #, c-format
+-msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
+-msgstr ""
++msgid "percentage not 100: %i"
++msgstr "백분율이 아닌 백분율 : %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:580
++#: libdnf/dnf-state.cpp:1194
+ #, c-format
+-msgid "Cannot find a valid baseurl for repo: %s"
+-msgstr ""
++msgid "failed to set number steps: %i"
++msgstr "숫자 단계를 설정하지 못했습니다. %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:616 ../libdnf/repo/Repo.cpp:1705
+-msgid ""
+-"Maximum download speed is lower than minimum. Please change configuration of"
+-" minrate or throttle"
+-msgstr ""
++#: libdnf/dnf-state.cpp:1293
++msgid "cancelled by user action"
++msgstr "사용자 작업에 의해 취소됨"
+ 
+-#: ../libdnf/repo/Repo.cpp:666 ../libdnf/repo/Repo.cpp:688
++#: libdnf/dnf-state.cpp:1332
+ #, c-format
+-msgid "%s: gpgme_data_new_from_fd(): %s"
+-msgstr "%s: gpgme_data_new_from_fd(): %s"
++msgid "done on a state %1$p that did not have a size set! [%2$s]"
++msgstr "국가에서 행해진 %1$p 크기가 설정되지 않았습니다. [%2$s]"
+ 
+-#: ../libdnf/repo/Repo.cpp:674 ../libdnf/repo/Repo.cpp:696
++#: libdnf/dnf-state.cpp:1357
+ #, c-format
+-msgid "%s: gpgme_op_import(): %s"
+-msgstr "%s: gpgme_op_import(): %s"
++msgid "already at 100%% state [%s]"
++msgstr "이미 100 %% 상태 [%s]"
+ 
+-#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:785
+-#: ../libdnf/repo/Repo.cpp:913
++#: libdnf/dnf-transaction.cpp:300
+ #, c-format
+-msgid "%s: gpgme_ctx_set_engine_info(): %s"
+-msgstr "%s: gpgme_ctx_set_engine_info(): %s"
++msgid "Sources not set when trying to ensure package %s"
++msgstr "패키지를 만들 때 소스가 설정되지 않았습니다. %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:746 ../libdnf/repo/Repo.cpp:810
++#: libdnf/dnf-transaction.cpp:326
+ #, c-format
+-msgid "can not list keys: %s"
+-msgstr "열쇠를 나열 할 수 없습니다 : %s"
++msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
++msgstr "보장하지 못함 %1$s 레포로서 %2$s 찾을 수 없음 (%3$i repos loaded)"
+ 
+-#: ../libdnf/repo/Repo.cpp:839
+-#, c-format
+-msgid "Failed to retrieve GPG key for repo '%s': %s"
+-msgstr ""
++#: libdnf/dnf-transaction.cpp:367
++msgid "Failed to check untrusted: "
++msgstr "신뢰할 수 없는지 확인하지 못했습니다. "
+ 
+-#: ../libdnf/repo/Repo.cpp:892
++#: libdnf/dnf-transaction.cpp:377
+ #, c-format
+-msgid "repo %s: 0x%s already imported"
+-msgstr "레포 %s: 0x%s 이미 수입"
++msgid "Downloaded file for %s not found"
++msgstr "에 대한 다운로드 파일 %s 찾을 수 없음"
+ 
+-#: ../libdnf/repo/Repo.cpp:920
++#: libdnf/dnf-transaction.cpp:397
+ #, c-format
+-msgid "repo %s: imported key 0x%s."
+-msgstr "레포 %s: 가져온 키 0x%s."
++msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
++msgstr "꾸러미 %1$s 확인 및 복구 할 수 없습니다. %2$s GPG 사용 설정 됨 : %3$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1164
+-#, c-format
+-msgid "reviving: repo '%s' skipped, no metalink."
+-msgstr "부활 : repo '%s'건너 뛰었습니다."
++#: libdnf/dnf-transaction.cpp:831 libdnf/dnf-transaction.cpp:903
++msgid "Failed to get value for CacheDir"
++msgstr "CacheDir에 대한 값을 가져 오는 데 실패했습니다."
+ 
+-#: ../libdnf/repo/Repo.cpp:1183
++#: libdnf/dnf-transaction.cpp:911
+ #, c-format
+-msgid "reviving: repo '%s' skipped, no usable hash."
+-msgstr "부활 : repo '%s'건너 뛰었습니다. 사용 가능한 해시가 없습니다."
++msgid "Failed to get filesystem free size for %s: "
++msgstr "에 대한 파일 시스템 크기를 가져 오는 데 실패했습니다. %s: "
+ 
+-#: ../libdnf/repo/Repo.cpp:1206
++#: libdnf/dnf-transaction.cpp:919
+ #, c-format
+-msgid "reviving: failed for '%s', mismatched %s sum."
+-msgstr "되살리기 : 실패한 '%s', 불일치 %s 합집합."
++msgid "Failed to get filesystem free size for %s"
++msgstr "에 대한 파일 시스템 크기를 가져 오는 데 실패했습니다. %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1212
++#: libdnf/dnf-transaction.cpp:935
+ #, c-format
+-msgid "reviving: '%s' can be revived - metalink checksums match."
+-msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - metalink 체크섬이 일치합니다."
++msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
++msgstr "여유 공간이 부족합니다. %1$s: 필요 %2$s, 이용 가능 %3$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1237
+-#, c-format
+-msgid "reviving: '%s' can be revived - repomd matches."
+-msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - repomd가 일치합니다."
++#: libdnf/dnf-transaction.cpp:1196
++msgid "failed to set root"
++msgstr "루트를 설정하지 못했습니다."
+ 
+-#: ../libdnf/repo/Repo.cpp:1239
++#: libdnf/dnf-transaction.cpp:1418
+ #, c-format
+-msgid "reviving: failed for '%s', mismatched repomd."
+-msgstr "되살리기 : 실패한 '%s', 일치하지 않는 repomd."
++msgid "Error %i running transaction test"
++msgstr "오류 %i 실행중인 트랜잭션 테스트"
+ 
+-#: ../libdnf/repo/Repo.cpp:1257
++#: libdnf/dnf-transaction.cpp:1458
+ #, c-format
+-msgid "Cannot create repo destination directory \"%s\": %s"
+-msgstr ""
++msgid "Error %i running transaction"
++msgstr "오류 %i 실행중인 거래"
+ 
+-#: ../libdnf/repo/Repo.cpp:1263
++#: libdnf/dnf-transaction.cpp:1473
+ #, c-format
+-msgid "Cannot create repo temporary directory \"%s\": %s"
+-msgstr "임시 저장소 디렉토리를 만들 수 없습니다 \"%s\": %s"
++msgid "Transaction did not go to writing phase, but returned no error(%i)"
++msgstr "트랜잭션이 쓰기 단계로 이동하지 않았지만 오류를 반환하지 않았습니다 (%i)"
+ 
+-#: ../libdnf/repo/Repo.cpp:1277
++#: libdnf/dnf-utils.cpp:111 libdnf/hy-iutil.cpp:399
+ #, c-format
+-msgid "Cannot create directory \"%s\": %s"
+-msgstr "디렉토리를 만들 수 없습니다 \"%s\": %s"
++msgid "cannot open directory %1$s: %2$s"
++msgstr "디렉토리를 열 수 없습니다. %1$s: %2$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1300
++#: libdnf/dnf-utils.cpp:136
+ #, c-format
+-msgid "Cannot rename directory \"%s\" to \"%s\": %s"
+-msgstr "디렉터리 이름을 바꿀 수 없습니다 \"%s\"~\"%s\": %s"
++msgid "failed to remove %s"
++msgstr "제거하지 못했습니다. %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1323
+-#, c-format
+-msgid "repo: using cache for: %s"
+-msgstr "repo : 캐시 사용 : %s"
++#: libdnf/goal/Goal.cpp:55
++msgid "Ill-formed Selector, presence of multiple match objects in the filter"
++msgstr "잘못된 형식의 선택기, 필터에 일치하는 개체가 여러 개 있음"
+ 
+-#: ../libdnf/repo/Repo.cpp:1335
+-#, c-format
+-msgid "Cache-only enabled but no cache for '%s'"
+-msgstr "캐시 만 사용 가능하지만 '%s'"
++#: libdnf/goal/Goal.cpp:56
++msgid "Ill-formed Selector used for the operation, incorrect comparison type"
++msgstr "조작에 잘못 형성된 선택자, 잘못된 비교 유형"
+ 
+-#: ../libdnf/repo/Repo.cpp:1339
+-#, c-format
+-msgid "repo: downloading from remote: %s"
+-msgstr "repo : 원격에서 다운로드 중 : %s"
++#: libdnf/goal/Goal.cpp:67 libdnf/goal/Goal.cpp:94
++msgid " does not belong to a distupgrade repository"
++msgstr " distupgrade 리포지토리에 속하지 않습니다"
++
++#: libdnf/goal/Goal.cpp:68 libdnf/goal/Goal.cpp:95
++msgid " has inferior architecture"
++msgstr " 열등한 아키텍처"
++
++#: libdnf/goal/Goal.cpp:69
++msgid "problem with installed package "
++msgstr "설치된 패키지 문제 "
++
++#: libdnf/goal/Goal.cpp:70 libdnf/goal/Goal.cpp:97
++msgid "conflicting requests"
++msgstr "충돌하는 요청"
++
++#: libdnf/goal/Goal.cpp:71 libdnf/goal/Goal.cpp:98
++msgid "unsupported request"
++msgstr "지원되지 않는 요청"
+ 
+-#: ../libdnf/repo/Repo.cpp:1345
++#: libdnf/goal/Goal.cpp:72 libdnf/goal/Goal.cpp:99
++msgid "nothing provides requested "
++msgstr "요청이 없습니다 "
++
++#: libdnf/goal/Goal.cpp:73
+ #, c-format
+-msgid "Failed to download metadata for repo '%s': %s"
+-msgstr ""
++msgid "package %s does not exist"
++msgstr "패키지 %s이/가 존재하지 않습니다"
+ 
+-#: ../libdnf/repo/Repo.cpp:1371
+-msgid "getCachedir(): Computation of SHA256 failed"
+-msgstr "getCachedir () : SHA256 계산에 실패했습니다."
++#: libdnf/goal/Goal.cpp:74 libdnf/goal/Goal.cpp:101
++msgid " is provided by the system"
++msgstr " 시스템에서 제공"
++
++#: libdnf/goal/Goal.cpp:75 libdnf/goal/Goal.cpp:102
++msgid "some dependency problem"
++msgstr "일부 의존성 문제"
++
++#: libdnf/goal/Goal.cpp:76
++msgid "cannot install the best update candidate for package "
++msgstr "패키지에 가장 적합한 업데이트 옵션을 설치할 수 없습니다 "
+ 
+-#: ../libdnf/repo/Repo.cpp:1396
++#: libdnf/goal/Goal.cpp:77 libdnf/goal/Goal.cpp:104
++msgid "cannot install the best candidate for the job"
++msgstr "작업에 가장 적합한 옵션을 설치할 수 없습니다"
++
++#: libdnf/goal/Goal.cpp:78
+ #, c-format
+-msgid "Cannot create persistdir \"%s\": %s"
+-msgstr ""
++msgid "package %s is filtered out by modular filtering"
++msgstr "패키지 %s이/가 모듈식 필터링으로 필터링됩니다"
+ 
+-#: ../libdnf/repo/Repo.cpp:1796
+-msgid "resume cannot be used simultaneously with the byterangestart param"
+-msgstr "이력서는 byterangestart 매개 변수와 동시에 사용할 수 없습니다."
++#: libdnf/goal/Goal.cpp:79
++#, c-format
++msgid "package %s does not have a compatible architecture"
++msgstr "패키지 %s에 호환되는 아키텍처가 없습니다"
+ 
+-#: ../libdnf/repo/Repo.cpp:1807
++#: libdnf/goal/Goal.cpp:80
+ #, c-format
+-msgid "PackageTarget initialization failed: %s"
+-msgstr "PackageTarget 초기화에 실패했습니다 : %s"
++msgid "package %s is not installable"
++msgstr "패키지 %s을/를 설치할 수 없습니다"
+ 
+-#: ../libdnf/repo/Repo.cpp:1924
++#: libdnf/goal/Goal.cpp:81
+ #, c-format
+-msgid "Cannot open %s: %s"
+-msgstr "열 수 없다 %s: %s"
++msgid "package %s is filtered out by exclude filtering"
++msgstr "패키지 %s이/가 필터링에서 제외되었습니다"
+ 
+-#: ../libdnf/repo/Repo.cpp:1968
++#: libdnf/goal/Goal.cpp:82
+ #, c-format
+-msgid "Log handler with id %ld doesn't exist"
+-msgstr "ID가있는 로그 처리기 %ld 존재하지 않는다."
++msgid "nothing provides %s needed by %s"
++msgstr "%s에 필요한 %s이/가 제공되지 않았습니다"
+ 
+-#: ../libdnf/dnf-transaction.cpp:300
++#: libdnf/goal/Goal.cpp:83
+ #, c-format
+-msgid "Sources not set when trying to ensure package %s"
+-msgstr "패키지를 만들 때 소스가 설정되지 않았습니다. %s"
++msgid "cannot install both %s and %s"
++msgstr "%s 및 %s 모두 설치할 수 없습니다"
+ 
+-#: ../libdnf/dnf-transaction.cpp:326
++#: libdnf/goal/Goal.cpp:84
+ #, c-format
+-msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
+-msgstr "보장하지 못함 %1$s 레포로서 %2$s 찾을 수 없음 (%3$i repos loaded)"
++msgid "package %s conflicts with %s provided by %s"
++msgstr "패키지 %s이/가 %s와 충돌합니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:367
+-msgid "Failed to check untrusted: "
+-msgstr "신뢰할 수 없는지 확인하지 못했습니다. "
++#: libdnf/goal/Goal.cpp:85
++#, c-format
++msgid "package %s obsoletes %s provided by %s"
++msgstr "패키지 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:377
++#: libdnf/goal/Goal.cpp:86
+ #, c-format
+-msgid "Downloaded file for %s not found"
+-msgstr "에 대한 다운로드 파일 %s 찾을 수 없음"
++msgid "installed package %s obsoletes %s provided by %s"
++msgstr "설치된 패키지 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:397
++#: libdnf/goal/Goal.cpp:87
+ #, c-format
+-msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
+-msgstr "꾸러미 %1$s 확인 및 복구 할 수 없습니다. %2$s GPG 사용 설정 됨 : %3$s"
++msgid "package %s implicitly obsoletes %s provided by %s"
++msgstr "패키지 %s이/가 %s 에서 암시적으로 폐지되었습니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:831 ../libdnf/dnf-transaction.cpp:903
+-msgid "Failed to get value for CacheDir"
+-msgstr "CacheDir에 대한 값을 가져 오는 데 실패했습니다."
++#: libdnf/goal/Goal.cpp:88
++#, c-format
++msgid "package %s requires %s, but none of the providers can be installed"
++msgstr "패키지 %s에 %s이/가 필요하지만 공급 업체가 설치할 수 없습니다"
+ 
+-#: ../libdnf/dnf-transaction.cpp:911
++#: libdnf/goal/Goal.cpp:89
+ #, c-format
+-msgid "Failed to get filesystem free size for %s: "
+-msgstr "에 대한 파일 시스템 크기를 가져 오는 데 실패했습니다. %s: "
++msgid "package %s conflicts with %s provided by itself"
++msgstr "패키지 %s이/가 %s와 충돌합니다 (자체적으로 제공)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:919
++#: libdnf/goal/Goal.cpp:90
+ #, c-format
+-msgid "Failed to get filesystem free size for %s"
+-msgstr "에 대한 파일 시스템 크기를 가져 오는 데 실패했습니다. %s"
++msgid "both package %s and %s obsolete %s"
++msgstr "패키지 %s 및 %s 모두 %s에서 폐지되었습니다"
++
++#: libdnf/goal/Goal.cpp:96
++msgid "problem with installed module "
++msgstr "설치된 모듈 문제 "
+ 
+-#: ../libdnf/dnf-transaction.cpp:935
++#: libdnf/goal/Goal.cpp:100
+ #, c-format
+-msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
+-msgstr "여유 공간이 부족합니다. %1$s: 필요 %2$s, 이용 가능 %3$s"
++msgid "module %s does not exist"
++msgstr "모듈 %s이/가 존재하지 않습니다"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1196
+-msgid "failed to set root"
+-msgstr "루트를 설정하지 못했습니다."
++#: libdnf/goal/Goal.cpp:103
++msgid "cannot install the best update candidate for module "
++msgstr "모듈에 가장 적합한 업데이트 옵션을 설치할 수 없습니다 "
+ 
+-#: ../libdnf/dnf-transaction.cpp:1418
++#: libdnf/goal/Goal.cpp:105 libdnf/goal/Goal.cpp:108
+ #, c-format
+-msgid "Error %i running transaction test"
+-msgstr "오류 %i 실행중인 트랜잭션 테스트"
++msgid "module %s is disabled"
++msgstr "모듈 %s을/를 사용할 수 없습니다"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1458
++#: libdnf/goal/Goal.cpp:106
+ #, c-format
+-msgid "Error %i running transaction"
+-msgstr "오류 %i 실행중인 거래"
++msgid "module %s does not have a compatible architecture"
++msgstr "모듈 %s에 호환되는 아키텍처가 없습니다"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1473
++#: libdnf/goal/Goal.cpp:107
+ #, c-format
+-msgid "Transaction did not go to writing phase, but returned no error(%i)"
+-msgstr "트랜잭션이 쓰기 단계로 이동하지 않았지만 오류를 반환하지 않았습니다 (%i)"
++msgid "module %s is not installable"
++msgstr "모듈 %s을/를 설치할 수 없습니다"
+ 
+-#: ../libdnf/dnf-utils.cpp:136
++#: libdnf/goal/Goal.cpp:109
+ #, c-format
+-msgid "failed to remove %s"
+-msgstr "제거하지 못했습니다. %s"
++msgid "nothing provides %s needed by module %s"
++msgstr "%s이/가 제공되지 않았습니다 (모듈 %s에 필요)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:46
++#: libdnf/goal/Goal.cpp:110
+ #, c-format
+-msgid "Can't load shared library \"%s\": %s"
+-msgstr ""
++msgid "cannot install both modules %s and %s"
++msgstr "%s 및 %s 모듈을 모두 설치할 수 없습니다"
+ 
+-#: ../libdnf/plugin/plugin.cpp:61 ../libdnf/plugin/plugin.cpp:67
+-#: ../libdnf/plugin/plugin.cpp:73 ../libdnf/plugin/plugin.cpp:79
++#: libdnf/goal/Goal.cpp:111
+ #, c-format
+-msgid "Can't obtain address of symbol \"%s\": %s"
+-msgstr ""
++msgid "module %s conflicts with %s provided by %s"
++msgstr "모듈 %s이/가 %s와 충돌합니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:86
++#: libdnf/goal/Goal.cpp:112
+ #, c-format
+-msgid "Loading plugin file=\"%s\""
+-msgstr ""
++msgid "module %s obsoletes %s provided by %s"
++msgstr "모듈 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:89
++#: libdnf/goal/Goal.cpp:113
+ #, c-format
+-msgid "Loaded plugin name=\"%s\", version=\"%s\""
+-msgstr ""
+-
+-#: ../libdnf/plugin/plugin.cpp:96
+-msgid "Plugins::loadPlugins() dirPath cannot be empty"
+-msgstr ""
++msgid "installed module %s obsoletes %s provided by %s"
++msgstr "설치된 모듈 %s이/가 %s에서 폐지되었습니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:105
++#: libdnf/goal/Goal.cpp:114
+ #, c-format
+-msgid "Can't read plugin directory \"%s\": %s"
+-msgstr ""
++msgid "module %s implicitly obsoletes %s provided by %s"
++msgstr "모듈 %s이/가 %s 에서 암시적으로 폐지되었습니다 (%s에 의해 제공)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:114
++#: libdnf/goal/Goal.cpp:115
+ #, c-format
+-msgid "Can't load plugin \"%s\": %s"
+-msgstr ""
++msgid "module %s requires %s, but none of the providers can be installed"
++msgstr "모듈 %s에 %s이/가 필요하지만 공급 업체가 설치할 수 없습니다"
+ 
+-#: ../libdnf/dnf-state.cpp:1184
++#: libdnf/goal/Goal.cpp:116
+ #, c-format
+-msgid "percentage not 100: %i"
+-msgstr "백분율이 아닌 백분율 : %i"
++msgid "module %s conflicts with %s provided by itself"
++msgstr "모듈 %s이/가 %s와 충돌합니다 (자체적으로 제공)"
+ 
+-#: ../libdnf/dnf-state.cpp:1194
++#: libdnf/goal/Goal.cpp:117
+ #, c-format
+-msgid "failed to set number steps: %i"
+-msgstr "숫자 단계를 설정하지 못했습니다. %i"
++msgid "both module %s and %s obsolete %s"
++msgstr "모듈 %s및 %s이/가 %s에서 폐지되었습니다"
+ 
+-#: ../libdnf/dnf-state.cpp:1293
+-msgid "cancelled by user action"
+-msgstr "사용자 작업에 의해 취소됨"
++#: libdnf/goal/Goal.cpp:1032
++msgid "no solver set"
++msgstr "solver 설정 없음"
+ 
+-#: ../libdnf/dnf-state.cpp:1332
++#: libdnf/goal/Goal.cpp:1037
+ #, c-format
+-msgid "done on a state %1$p that did not have a size set! [%2$s]"
+-msgstr "국가에서 행해진 %1$p 크기가 설정되지 않았습니다. [%2$s]"
++msgid "failed to make %s absolute"
++msgstr "실패한 %s 순수한"
+ 
+-#: ../libdnf/dnf-state.cpp:1357
++#: libdnf/goal/Goal.cpp:1044
+ #, c-format
+-msgid "already at 100%% state [%s]"
+-msgstr "이미 100 %% 상태 [%s]"
++msgid "failed writing debugdata to %1$s: %2$s"
++msgstr "디버그 데이터를 쓰지 못했습니다. %1$s: %2$s"
++
++#: libdnf/goal/Goal.cpp:1056
++msgid "no solv in the goal"
++msgstr "목표에 솔로가 없다."
++
++#: libdnf/goal/Goal.cpp:1058
++msgid "no solution, cannot remove protected package"
++msgstr "해결책 없음, 보호 된 패키지를 제거 할 수 없음"
++
++#: libdnf/goal/Goal.cpp:1061
++msgid "no solution possible"
++msgstr "해결책 없음"
++
++#: libdnf/goal/Goal.cpp:1473
++msgid ""
++"The operation would result in removing the following protected packages: "
++msgstr "이 작업으로 인해 다음과 같은 보호 패키지가 제거됩니다. "
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:43
++#: libdnf/hy-iutil.cpp:322
+ #, c-format
+-msgid "Failed to update from string: %s"
+-msgstr ""
++msgid "Failed renaming %1$s to %2$s: %3$s"
++msgstr "이름 바꾸기 실패 %1$s 에 %2$s: %3$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:68
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:70
++#: libdnf/hy-iutil.cpp:330
+ #, c-format
+-msgid "Failed to resolve: %s"
+-msgstr ""
++msgid "Failed setting perms on %1$s: %2$s"
++msgstr "perms 설정 실패 %1$s: %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:74
++#: libdnf/hy-iutil.cpp:376
+ #, c-format
+-msgid "Failed to upgrade defaults: %s"
+-msgstr ""
++msgid "cannot create directory %1$s: %2$s"
++msgstr "%1$s디렉토리를 만들 수 없습니다: %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:77
++#: libdnf/hy-iutil.cpp:411
+ #, c-format
+-msgid "Failed to upgrade streams: %s"
+-msgstr ""
++msgid "cannot stat path %1$s: %2$s"
++msgstr "%1$s 경로를 stat 할 수 없습니다: %2$s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:463
++#: libdnf/module/ModulePackage.cpp:463
+ #, c-format
+ msgid "Invalid format of Platform module: %s"
+-msgstr ""
++msgstr "유효하지 않은 형식의 플랫폼 모듈: %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:478
++#: libdnf/module/ModulePackage.cpp:478
+ msgid "Multiple module platforms provided by available packages\n"
+-msgstr ""
++msgstr "사용 가능한 패키지로 제공되는 다중 모듈 플랫폼\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:491
++#: libdnf/module/ModulePackage.cpp:491
+ msgid "Multiple module platforms provided by installed packages\n"
+-msgstr ""
++msgstr "설치된 패키지로 제공되는 다중 모듈 플랫폼\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:518
++#: libdnf/module/ModulePackage.cpp:518
+ #, c-format
+ msgid "Detection of Platform Module in %s failed: %s"
+-msgstr ""
++msgstr "%s에서 플랫폼 모듈을 감지하지 못했습니다: %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:527
++#: libdnf/module/ModulePackage.cpp:527
+ #, c-format
+ msgid "Missing PLATFORM_ID in %s"
+-msgstr ""
++msgstr "PLATFORM_ID가 %s에 누락되어 있습니다"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:532
++#: libdnf/module/ModulePackage.cpp:532
+ msgid "No valid Platform ID detected"
+-msgstr ""
++msgstr "유효한 플랫폼 ID가 없습니다"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:68
++#: libdnf/module/ModulePackageContainer.cpp:68
+ #, c-format
+ msgid "Cannot enable multiple streams for module '%s'"
+-msgstr ""
++msgstr "모듈 '%s’에 여러 스트림을 활성화할 수 없습니다"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:294
++#: libdnf/module/ModulePackageContainer.cpp:294
+ #, c-format
+ msgid "Conflicting defaults with repo '%s': %s"
+-msgstr ""
++msgstr "repo '%s'와 기본 설정이 충돌합니다: %s"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1568
++#: libdnf/module/ModulePackageContainer.cpp:1569
+ #, c-format
+ msgid "Unable to load modular Fail-Safe data at '%s'"
+-msgstr ""
++msgstr "'%s'에서 모듈식 Fail-Safe 데이터를 로드할 수 없습니다"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1574
++#: libdnf/module/ModulePackageContainer.cpp:1575
+ #, c-format
+ msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+-msgstr ""
++msgstr "모듈 '%s:%s'에 대해 모듈식 Fail-Safe 데이터를 로드할 수 없습니다"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1638
++#: libdnf/module/ModulePackageContainer.cpp:1639
+ #, c-format
+ msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
+-msgstr ""
++msgstr "모듈식 Fail-Safe 데이터에 대한 “%s\" 디렉토리를 만들 수 없습니다: %s"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1660
++#: libdnf/module/ModulePackageContainer.cpp:1661
+ #, c-format
+ msgid "Unable to save a modular Fail Safe data to '%s'"
+-msgstr ""
++msgstr "모듈식 Fail Safe 데이터를 '%s'에 저장할 수 없습니다"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1685
++#: libdnf/module/ModulePackageContainer.cpp:1686
+ #, c-format
+ msgid "Unable to remove a modular Fail Safe data in '%s'"
+-msgstr ""
++msgstr "'%s'에서 모듈식 Fail Safe 데이터를 제거할 수 없습니다"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:79
++#: libdnf/module/modulemd/ModuleMetadata.cpp:44
+ #, c-format
+-msgid ""
+-"No available modular metadata for modular package '%s'; cannot be installed "
+-"on the system"
+-msgstr ""
++msgid "Failed to update from string: %s"
++msgstr "문자열에서 업데이트하지 못했습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:121 ../libdnf/dnf-rpmts.cpp:166
++#: libdnf/module/modulemd/ModuleMetadata.cpp:68
+ #, c-format
+-msgid "signature does not verify for %s"
+-msgstr "서명이 확인하지 않음 %s"
++msgid "Failed to resolve: %s"
++msgstr "분석하지 못했습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:129 ../libdnf/dnf-rpmts.cpp:174
++#: libdnf/module/modulemd/ModuleMetadata.cpp:73
+ #, c-format
+-msgid "failed to open(generic error): %s"
+-msgstr "열지 못했습니다 (일반 오류). %s"
++msgid "There were errors while resolving modular defaults: %s"
++msgstr "모듈식 기본값을 분석하는 동안 오류가 발생했습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:142
++#: libdnf/module/modulemd/ModuleMetadata.cpp:78
+ #, c-format
+-msgid "failed to verify key for %s"
+-msgstr "에 대한 키를 확인하지 못했습니다. %s"
++msgid "Failed to upgrade defaults: %s"
++msgstr "기본값을 업그레이드하지 못했습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:150
++#: libdnf/module/modulemd/ModuleMetadata.cpp:81
+ #, c-format
+-msgid "public key unavailable for %s"
+-msgstr "사용할 수없는 공개 키 %s"
++msgid "Failed to upgrade streams: %s"
++msgstr "스트림을 업그레이드하지 못했습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:158
++#: libdnf/plugin/plugin.cpp:46
+ #, c-format
+-msgid "signature not found for %s"
+-msgstr "서명이 없습니다. %s"
++msgid "Can't load shared library \"%s\": %s"
++msgstr "공유 라이브러리 \"%s\"을/를 로드할 수 없습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:193
++#: libdnf/plugin/plugin.cpp:61 libdnf/plugin/plugin.cpp:67
++#: libdnf/plugin/plugin.cpp:73 libdnf/plugin/plugin.cpp:79
+ #, c-format
+-msgid "failed to add install element: %1$s [%2$i]"
+-msgstr "설치 요소를 추가하지 못했습니다. %1$s [%2$i]"
++msgid "Can't obtain address of symbol \"%s\": %s"
++msgstr "기호 \"%s\"의 주소를 가져올 수 없습니다: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:274
++#: libdnf/plugin/plugin.cpp:86
+ #, c-format
+-msgid "Error running transaction: %s"
+-msgstr "트랜잭션 실행 오류 : %s"
+-
+-#: ../libdnf/dnf-rpmts.cpp:283
+-msgid "Error running transaction and no problems were reported!"
+-msgstr "트랜잭션을 실행하는 중 오류가 발생했으며 아무런 문제도보고되지 않았습니다!"
+-
+-#: ../libdnf/dnf-rpmts.cpp:346
+-msgid "Fatal error, run database recovery"
+-msgstr "치명적인 오류, 데이터베이스 복구 실행"
++msgid "Loading plugin file=\"%s\""
++msgstr "플러그인 파일 로드 중=\"%s\""
+ 
+-#: ../libdnf/dnf-rpmts.cpp:355
++#: libdnf/plugin/plugin.cpp:89
+ #, c-format
+-msgid "failed to find package %s"
+-msgstr "꾸러미를 찾지 못했습니다. %s"
++msgid "Loaded plugin name=\"%s\", version=\"%s\""
++msgstr "로드된 플러그인 이름=\"%s\", 버전=\"%s\""
++
++#: libdnf/plugin/plugin.cpp:96
++msgid "Plugins::loadPlugins() dirPath cannot be empty"
++msgstr "Plugins::loadPlugins() dirPath는 비워둘 수 없습니다"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:401
++#: libdnf/plugin/plugin.cpp:105
+ #, c-format
+-msgid "could not add erase element %1$s(%2$i)"
+-msgstr "요소 지우기를 추가 할 수 없습니다. %1$s(%2$i)"
++msgid "Can't read plugin directory \"%s\": %s"
++msgstr "플러그인 디렉토리 \"%s\"을/를 읽을 수 없습니다: %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:59 ../libdnf/conf/OptionStringList.cpp:59
+-#: ../libdnf/conf/OptionEnum.cpp:72 ../libdnf/conf/OptionEnum.cpp:158
++#: libdnf/plugin/plugin.cpp:114
+ #, c-format
+-msgid "'%s' is not an allowed value"
+-msgstr "'%s'은 (는) 허용 된 값이 아닙니다."
++msgid "Can't load plugin \"%s\": %s"
++msgstr "플러그인 \"%s\"을/를 로드할 수 없습니다: %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:74
+-msgid "GetValue(): Value not set"
+-msgstr "GetValue () : 값이 설정되지 않았습니다."
++#: libdnf/repo/DependencySplitter.cpp:50
++msgid ""
++"Using '==' operator in reldeps can result in an undefined behavior. It is "
++"deprecated and the support will be dropped in future versions. Use '=' "
++"operator instead."
++msgstr ""
++"reldeps에 '=='연산자를 사용하면 정의되지 않은 동작이 발생할 수 있습니다. 이 연산자는 더 이상 사용되지 않으며 향후 버전에서는"
++" 지원이 중단됩니다. 대신 '=' 연산자를 사용하십시오."
+ 
+-#: ../libdnf/conf/OptionPath.cpp:78
++#: libdnf/repo/Repo.cpp:321
+ #, c-format
+-msgid "given path '%s' is not absolute."
+-msgstr "주어진 경로 '%s절대적이지 않다."
++msgid "Repository %s has no mirror or baseurl set."
++msgstr "저장소 %s 거울이나 기둥이 없습니다."
+ 
+-#: ../libdnf/conf/OptionPath.cpp:82
++#: libdnf/repo/Repo.cpp:330
+ #, c-format
+-msgid "given path '%s' does not exist."
+-msgstr "주어진 경로 '%s' 존재하지 않는다."
++msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
++msgstr "저장소 '%s'에 지원되지 않는 유형이 있습니다 :'type =%s', 건너 뛰기."
+ 
+-#: ../libdnf/conf/OptionBool.cpp:47
++#: libdnf/repo/Repo.cpp:536
+ #, c-format
+-msgid "invalid boolean value '%s'"
+-msgstr "유효하지 않은 부울 값 '%s'"
++msgid "Cannot find a valid baseurl for repo: %s"
++msgstr "repo에 유효한 baseurl을 찾을 수 없습니다. %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:62 ../libdnf/conf/OptionSeconds.cpp:40
+-msgid "no value specified"
+-msgstr "값이 지정되지 않았습니다."
++#: libdnf/repo/Repo.cpp:573 libdnf/repo/Repo.cpp:1662
++msgid ""
++"Maximum download speed is lower than minimum. Please change configuration of"
++" minrate or throttle"
++msgstr "최대 다운로드 속도가 최소값보다 낮습니다. 최소 속도 또는 스로틀의 구성을 변경하십시오."
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:67 ../libdnf/conf/OptionSeconds.cpp:48
++#: libdnf/repo/Repo.cpp:623 libdnf/repo/Repo.cpp:645
+ #, c-format
+-msgid "seconds value '%s' must not be negative"
+-msgstr "초 값 '%s음수가 아니어야합니다."
++msgid "%s: gpgme_data_new_from_fd(): %s"
++msgstr "%s: gpgme_data_new_from_fd(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:71
++#: libdnf/repo/Repo.cpp:631 libdnf/repo/Repo.cpp:653
+ #, c-format
+-msgid "could not convert '%s' to bytes"
+-msgstr "변환 할 수 없습니다 '%s'~ 바이트"
++msgid "%s: gpgme_op_import(): %s"
++msgstr "%s: gpgme_op_import(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:83 ../libdnf/conf/OptionSeconds.cpp:66
++#: libdnf/repo/Repo.cpp:676 libdnf/repo/Repo.cpp:742 libdnf/repo/Repo.cpp:870
+ #, c-format
+-msgid "unknown unit '%s'"
+-msgstr "알 수없는 단위 '%s'"
++msgid "%s: gpgme_ctx_set_engine_info(): %s"
++msgstr "%s: gpgme_ctx_set_engine_info(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:329
++#: libdnf/repo/Repo.cpp:703 libdnf/repo/Repo.cpp:767
+ #, c-format
+-msgid "percentage '%s' is out of range"
+-msgstr "백분율 '%s'범위를 벗어났습니다."
++msgid "can not list keys: %s"
++msgstr "열쇠를 나열 할 수 없습니다 : %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:73
++#: libdnf/repo/Repo.cpp:796
+ #, c-format
+-msgid "given value [%d] should be less than allowed value [%d]."
+-msgstr "주어진 값 [%d] 허용 된 값보다 작아야합니다 [%d]."
++msgid "Failed to retrieve GPG key for repo '%s': %s"
++msgstr "repo '%s'에 대한 GPG 키를 검색하지 못했습니다: %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:76
++#: libdnf/repo/Repo.cpp:849
+ #, c-format
+-msgid "given value [%d] should be greater than allowed value [%d]."
+-msgstr "주어진 값 [%d] 허용 된 값보다 커야합니다 [%d]."
+-
+-#: ../libdnf/conf/OptionNumber.cpp:88 ../libdnf/conf/OptionEnum.cpp:83
+-msgid "invalid value"
+-msgstr "잘못된 값"
++msgid "repo %s: 0x%s already imported"
++msgstr "레포 %s: 0x%s 이미 수입"
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:76
++#: libdnf/repo/Repo.cpp:877
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" does not exist"
+-msgstr "구성 : ID가 \"%s\" 존재하지 않는다"
++msgid "repo %s: imported key 0x%s."
++msgstr "레포 %s: 가져온 키 0x%s."
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:88
++#: libdnf/repo/Repo.cpp:1121
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" already exists"
+-msgstr "구성 : ID가 \"%s\" 이미 존재 함"
++msgid "reviving: repo '%s' skipped, no metalink."
++msgstr "부활 : repo '%s'건너 뛰었습니다."
+ 
+-#: ../libdnf/conf/OptionSeconds.cpp:52
++#: libdnf/repo/Repo.cpp:1140
+ #, c-format
+-msgid "could not convert '%s' to seconds"
+-msgstr "변환 할 수 없습니다 '%s'초까지"
++msgid "reviving: repo '%s' skipped, no usable hash."
++msgstr "부활 : repo '%s'건너 뛰었습니다. 사용 가능한 해시가 없습니다."
+ 
+-#: ../libdnf/dnf-sack.cpp:417
++#: libdnf/repo/Repo.cpp:1163
+ #, c-format
+-msgid "no %1$s string for %2$s"
+-msgstr ""
+-
+-#: ../libdnf/dnf-sack.cpp:440
+-msgid "failed to add solv"
+-msgstr "solv를 추가하지 못했습니다."
++msgid "reviving: failed for '%s', mismatched %s sum."
++msgstr "되살리기 : 실패한 '%s', 불일치 %s 합집합."
+ 
+-#: ../libdnf/dnf-sack.cpp:458
++#: libdnf/repo/Repo.cpp:1169
+ #, c-format
+-msgid "failed to open: %s"
+-msgstr "열지 못했습니다 : %s"
++msgid "reviving: '%s' can be revived - metalink checksums match."
++msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - metalink 체크섬이 일치합니다."
+ 
+-#: ../libdnf/dnf-sack.cpp:537
++#: libdnf/repo/Repo.cpp:1194
+ #, c-format
+-msgid "cannot create temporary file: %s"
+-msgstr "임시 파일을 만들 수 없습니다. %s"
++msgid "reviving: '%s' can be revived - repomd matches."
++msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - repomd가 일치합니다."
+ 
+-#: ../libdnf/dnf-sack.cpp:547
++#: libdnf/repo/Repo.cpp:1196
+ #, c-format
+-msgid "failed opening tmp file: %s"
+-msgstr "여는 tmp 파일을 열지 못했습니다. %s"
++msgid "reviving: failed for '%s', mismatched repomd."
++msgstr "되살리기 : 실패한 '%s', 일치하지 않는 repomd."
+ 
+-#: ../libdnf/dnf-sack.cpp:559
++#: libdnf/repo/Repo.cpp:1214
+ #, c-format
+-msgid "write_main() failed writing data: %i"
+-msgstr "write_main() failed writing data: %i"
+-
+-#: ../libdnf/dnf-sack.cpp:576
+-msgid "write_main() failed to re-load written solv file"
+-msgstr "write_main ()이 작성된 solv 파일을 다시로드하지 못했습니다."
++msgid "Cannot create repo destination directory \"%s\": %s"
++msgstr "repo 대상 디렉토리 “%s\"를 작성할 수 없습니다: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:641
++#: libdnf/repo/Repo.cpp:1220
+ #, c-format
+-msgid "can not create temporary file %s"
+-msgstr "임시 파일을 만들 수 없습니다. %s"
++msgid "Cannot create repo temporary directory \"%s\": %s"
++msgstr "임시 repo 디렉토리 \"%s\"를 만들 수 없습니다: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:659
++#: libdnf/repo/Repo.cpp:1234
+ #, c-format
+-msgid "write_ext(%1$d) has failed: %2$d"
+-msgstr "write_ext(%1$d) has failed: %2$d"
++msgid "Cannot create directory \"%s\": %s"
++msgstr "디렉토리를 만들 수 없습니다 \"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:714
+-msgid "null repo md file"
+-msgstr "null repo md 파일"
++#: libdnf/repo/Repo.cpp:1257
++#, c-format
++msgid "Cannot rename directory \"%s\" to \"%s\": %s"
++msgstr "디렉터리 이름을 바꿀 수 없습니다 \"%s\"~\"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:723
++#: libdnf/repo/Repo.cpp:1280
+ #, c-format
+-msgid "can not read file %1$s: %2$s"
+-msgstr "파일을 읽을 수 없습니다. %1$s: %2$s"
++msgid "repo: using cache for: %s"
++msgstr "repo : 캐시 사용 : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:737
+-msgid "repo_add_solv() has failed."
+-msgstr "repo_add_solv() has failed."
++#: libdnf/repo/Repo.cpp:1292
++#, c-format
++msgid "Cache-only enabled but no cache for '%s'"
++msgstr "캐시 만 사용 가능하지만 '%s'"
+ 
+-#: ../libdnf/dnf-sack.cpp:750
+-msgid "loading of MD_TYPE_PRIMARY has failed."
+-msgstr ""
++#: libdnf/repo/Repo.cpp:1296
++#, c-format
++msgid "repo: downloading from remote: %s"
++msgstr "repo : 원격에서 다운로드 중 : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:763
+-msgid "repo_add_repomdxml/rpmmd() has failed."
+-msgstr "repo_add_repomdxml/rpmmd() has failed."
++#: libdnf/repo/Repo.cpp:1302
++#, c-format
++msgid "Failed to download metadata for repo '%s': %s"
++msgstr "repo '%s'의 메타 데이터를 다운로드하지 못했습니다: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:830
+-msgid "failed to auto-detect architecture"
+-msgstr "아키텍처 자동 검색에 실패했습니다."
++#: libdnf/repo/Repo.cpp:1328
++msgid "getCachedir(): Computation of SHA256 failed"
++msgstr "getCachedir () : SHA256 계산에 실패했습니다."
+ 
+-#: ../libdnf/dnf-sack.cpp:955
++#: libdnf/repo/Repo.cpp:1353
+ #, c-format
+-msgid "failed creating cachedir %s"
+-msgstr "캐시 된 생성 실패 %s"
+-
+-#: ../libdnf/dnf-sack.cpp:1727
+-msgid "failed calculating RPMDB checksum"
+-msgstr "RPMDB 체크섬 계산 실패"
++msgid "Cannot create persistdir \"%s\": %s"
++msgstr "persistdir “%s\"을/를 작성할 수 없습니다: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:1751
+-msgid "failed loading RPMDB"
+-msgstr "RPMDB로드 실패"
++#: libdnf/repo/Repo.cpp:1753
++msgid "resume cannot be used simultaneously with the byterangestart param"
++msgstr "이력서는 byterangestart 매개 변수와 동시에 사용할 수 없습니다."
+ 
+-#: ../libdnf/dnf-sack.cpp:2466
+-msgid "No module defaults found"
+-msgstr ""
++#: libdnf/repo/Repo.cpp:1770
++#, c-format
++msgid "PackageTarget initialization failed: %s"
++msgstr "PackageTarget 초기화에 실패했습니다 : %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:659
+-msgid "Transformer: can't open history persist dir"
+-msgstr "변압기 : 역사를 열 수 없습니다."
++#: libdnf/repo/Repo.cpp:1887
++#, c-format
++msgid "Cannot open %s: %s"
++msgstr "열 수 없다 %s: %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:672
+-msgid "Couldn't find a history database"
+-msgstr "기록 데이터베이스를 찾을 수 없습니다."
++#: libdnf/repo/Repo.cpp:1931
++#, c-format
++msgid "Log handler with id %ld doesn't exist"
++msgstr "ID가있는 로그 처리기 %ld 존재하지 않는다."
+ 
+-#: ../libdnf/transaction/Swdb.cpp:107
++#: libdnf/transaction/Swdb.cpp:173
+ msgid "In progress"
+ msgstr "진행 중"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:121 ../libdnf/transaction/Swdb.cpp:148
+-#: ../libdnf/transaction/Swdb.cpp:160 ../libdnf/transaction/Swdb.cpp:177
+-#: ../libdnf/transaction/Swdb.cpp:316 ../libdnf/transaction/Swdb.cpp:326
++#: libdnf/transaction/Swdb.cpp:188 libdnf/transaction/Swdb.cpp:216
++#: libdnf/transaction/Swdb.cpp:228 libdnf/transaction/Swdb.cpp:245
++#: libdnf/transaction/Swdb.cpp:384 libdnf/transaction/Swdb.cpp:394
+ msgid "Not in progress"
+ msgstr "진행 중이 아님"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:187
++#: libdnf/transaction/Swdb.cpp:255
+ msgid "No transaction in progress"
+ msgstr "진행중인 트랜잭션 없음"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:147
++#: libdnf/transaction/TransactionItem.cpp:147
+ msgid "Attempt to insert transaction item into completed transaction"
+ msgstr "트랜잭션 항목을 완료된 트랜잭션에 삽입하려고 시도했습니다."
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:218
++#: libdnf/transaction/TransactionItem.cpp:218
+ msgid "Attempt to update transaction item in completed transaction"
+ msgstr "완료된 트랜잭션에서 트랜잭션 항목 업데이트를 시도합니다."
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:41
++#: libdnf/transaction/Transformer.cpp:76
++msgid "Database Corrupted: no row 'version' in table 'config'"
++msgstr "데이터베이스 손상: 'config' 테이블에 'version' 행이 없습니다."
++
++#: libdnf/transaction/Transformer.cpp:681
++msgid "Transformer: can't open history persist dir"
++msgstr "변압기 : 역사를 열 수 없습니다."
++
++#: libdnf/transaction/Transformer.cpp:694
++msgid "Couldn't find a history database"
++msgstr "기록 데이터베이스를 찾을 수 없습니다."
++
++#: libdnf/transaction/private/Transaction.cpp:41
+ msgid "Transaction has already began!"
+ msgstr "거래가 이미 시작되었습니다!"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:58
++#: libdnf/transaction/private/Transaction.cpp:58
+ #, c-format
+ msgid "TransactionItem state is not set: %s"
+ msgstr "TransactionItem 상태가 설정되지 않았습니다. %s"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:239
++#: libdnf/transaction/private/Transaction.cpp:243
+ msgid "Can't add console output to unsaved transaction"
+ msgstr "저장되지 않은 트랜잭션에 콘솔 출력을 추가 할 수 없습니다."
+diff --git a/po/zh_CN.po b/po/zh_CN.po
+index 9ef3e8bb..ce26c608 100644
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+@@ -4,7 +4,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2020-03-19 13:58+0100\n"
++"POT-Creation-Date: 2020-06-26 09:18-0400\n"
+ "PO-Revision-Date: 2018-09-18 02:42+0000\n"
+ "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
+ "Language-Team: Chinese (China)\n"
+@@ -15,904 +15,915 @@ msgstr ""
+ "Plural-Forms: nplurals=1; plural=0\n"
+ "X-Generator: Zanata 4.6.2\n"
+ 
+-#: ../libdnf/hy-iutil.cpp:322
+-#, c-format
+-msgid "Failed renaming %1$s to %2$s: %3$s"
+-msgstr "将 %1$s 重命名为 %2$s 失败: %3$s"
++#: libdnf/conf/ConfigMain.cpp:62 libdnf/conf/OptionSeconds.cpp:40
++msgid "no value specified"
++msgstr "未指定值"
+ 
+-#: ../libdnf/hy-iutil.cpp:330
++#: libdnf/conf/ConfigMain.cpp:67 libdnf/conf/OptionSeconds.cpp:48
+ #, c-format
+-msgid "Failed setting perms on %1$s: %2$s"
+-msgstr "在 %1$s 中设置 perms 失败: %2$s"
++msgid "seconds value '%s' must not be negative"
++msgstr "第二个值“%s”必须不能为负"
+ 
+-#: ../libdnf/hy-iutil.cpp:376
++#: libdnf/conf/ConfigMain.cpp:71
+ #, c-format
+-msgid "cannot create directory %1$s: %2$s"
+-msgstr ""
++msgid "could not convert '%s' to bytes"
++msgstr "无法把 '%s' 转换为字节"
+ 
+-#: ../libdnf/hy-iutil.cpp:399 ../libdnf/dnf-utils.cpp:111
++#: libdnf/conf/ConfigMain.cpp:83 libdnf/conf/OptionSeconds.cpp:66
+ #, c-format
+-msgid "cannot open directory %1$s: %2$s"
+-msgstr "无法打开目录 %1$s: %2$s"
++msgid "unknown unit '%s'"
++msgstr "未知单元 “%s”"
+ 
+-#: ../libdnf/hy-iutil.cpp:411
++#: libdnf/conf/ConfigMain.cpp:329
+ #, c-format
+-msgid "cannot stat path %1$s: %2$s"
+-msgstr ""
+-
+-#: ../libdnf/dnf-goal.cpp:68
+-msgid "Could not depsolve transaction; "
+-msgstr "无法 depsolve 事务: "
++msgid "percentage '%s' is out of range"
++msgstr "百分数 '%s' 超出范围"
+ 
+-#: ../libdnf/dnf-goal.cpp:70
++#: libdnf/conf/OptionBinds.cpp:76
+ #, c-format
+-msgid "%i problem detected:\n"
+-msgid_plural "%i problems detected:\n"
+-msgstr[0] "发现 %i 问题:\n"
++msgid "Configuration: OptionBinding with id \"%s\" does not exist"
++msgstr "配置:ID 为 \"%s\"  的 OptionBinding 不存在"
+ 
+-#: ../libdnf/dnf-goal.cpp:78
++#: libdnf/conf/OptionBinds.cpp:88
+ #, c-format
+-msgid " Problem %1$i: %2$s\n"
+-msgstr " 问题 %1$i: %2$s\n"
++msgid "Configuration: OptionBinding with id \"%s\" already exists"
++msgstr "配置:ID 为 \"%s\"  的 OptionBinding 已存在"
+ 
+-#: ../libdnf/dnf-goal.cpp:80
++#: libdnf/conf/OptionBool.cpp:47
+ #, c-format
+-msgid " Problem: %s\n"
+-msgstr " 问题: %s\n"
+-
+-#: ../libdnf/goal/Goal.cpp:55
+-msgid "Ill-formed Selector, presence of multiple match objects in the filter"
+-msgstr "Ill-formed Selector,在过滤器中有多个匹配的对象"
+-
+-#: ../libdnf/goal/Goal.cpp:56
+-msgid "Ill-formed Selector used for the operation, incorrect comparison type"
+-msgstr "这个操作使用了 Ill-formed Selector,不正确的比较类型"
+-
+-#: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:94
+-msgid " does not belong to a distupgrade repository"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:68 ../libdnf/goal/Goal.cpp:95
+-msgid " has inferior architecture"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:69
+-msgid "problem with installed package "
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:70 ../libdnf/goal/Goal.cpp:97
+-msgid "conflicting requests"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:71 ../libdnf/goal/Goal.cpp:98
+-msgid "unsupported request"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:72 ../libdnf/goal/Goal.cpp:99
+-msgid "nothing provides requested "
+-msgstr ""
++msgid "invalid boolean value '%s'"
++msgstr "无效的布尔值“%s”"
+ 
+-#: ../libdnf/goal/Goal.cpp:73
++#: libdnf/conf/OptionEnum.cpp:72 libdnf/conf/OptionEnum.cpp:158
++#: libdnf/conf/OptionString.cpp:59 libdnf/conf/OptionStringList.cpp:59
+ #, c-format
+-msgid "package %s does not exist"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:74 ../libdnf/goal/Goal.cpp:101
+-msgid " is provided by the system"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:75 ../libdnf/goal/Goal.cpp:102
+-msgid "some dependency problem"
+-msgstr ""
++msgid "'%s' is not an allowed value"
++msgstr "'%s'  不是一个允许的值"
+ 
+-#: ../libdnf/goal/Goal.cpp:76
+-msgid "cannot install the best update candidate for package "
+-msgstr ""
++#: libdnf/conf/OptionEnum.cpp:83 libdnf/conf/OptionNumber.cpp:88
++msgid "invalid value"
++msgstr "无效值"
+ 
+-#: ../libdnf/goal/Goal.cpp:77 ../libdnf/goal/Goal.cpp:104
+-msgid "cannot install the best candidate for the job"
+-msgstr ""
++#: libdnf/conf/OptionNumber.cpp:73
++#, c-format
++msgid "given value [%d] should be less than allowed value [%d]."
++msgstr "给定的值 [%d] 应小于允许的值 [%d]。"
+ 
+-#: ../libdnf/goal/Goal.cpp:78
++#: libdnf/conf/OptionNumber.cpp:76
+ #, c-format
+-msgid "package %s is filtered out by modular filtering"
+-msgstr ""
++msgid "given value [%d] should be greater than allowed value [%d]."
++msgstr "给定的值 [%d] 应大于允许的值 [%d]。"
+ 
+-#: ../libdnf/goal/Goal.cpp:79
++#: libdnf/conf/OptionPath.cpp:78
+ #, c-format
+-msgid "package %s does not have a compatible architecture"
+-msgstr ""
++msgid "given path '%s' is not absolute."
++msgstr "给定的路径 “%s” 不是绝对路径。"
+ 
+-#: ../libdnf/goal/Goal.cpp:80
++#: libdnf/conf/OptionPath.cpp:82
+ #, c-format
+-msgid "package %s is not installable"
+-msgstr ""
++msgid "given path '%s' does not exist."
++msgstr "给定的路径 “%s” 不存在。"
+ 
+-#: ../libdnf/goal/Goal.cpp:81
++#: libdnf/conf/OptionSeconds.cpp:52
+ #, c-format
+-msgid "package %s is filtered out by exclude filtering"
+-msgstr ""
++msgid "could not convert '%s' to seconds"
++msgstr "无法把 '%s' 转换为秒"
+ 
+-#: ../libdnf/goal/Goal.cpp:82
++#: libdnf/conf/OptionString.cpp:74
++msgid "GetValue(): Value not set"
++msgstr "GetValue(): 值没有设置"
++
++#: libdnf/dnf-goal.cpp:68
++msgid "Could not depsolve transaction; "
++msgstr "无法 depsolve 事务: "
++
++#: libdnf/dnf-goal.cpp:70
+ #, c-format
+-msgid "nothing provides %s needed by %s"
+-msgstr ""
++msgid "%i problem detected:\n"
++msgid_plural "%i problems detected:\n"
++msgstr[0] "发现 %i 问题:\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:83
++#: libdnf/dnf-goal.cpp:78
+ #, c-format
+-msgid "cannot install both %s and %s"
+-msgstr ""
++msgid " Problem %1$i: %2$s\n"
++msgstr " 问题 %1$i: %2$s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:84
++#: libdnf/dnf-goal.cpp:80
+ #, c-format
+-msgid "package %s conflicts with %s provided by %s"
+-msgstr ""
++msgid " Problem: %s\n"
++msgstr " 问题: %s\n"
+ 
+-#: ../libdnf/goal/Goal.cpp:85
++#: libdnf/dnf-rpmts.cpp:79
+ #, c-format
+-msgid "package %s obsoletes %s provided by %s"
+-msgstr ""
++msgid ""
++"No available modular metadata for modular package '%s'; cannot be installed "
++"on the system"
++msgstr "模块软件包 '%s' 没有可用的元数据,它不能在系统上安装"
+ 
+-#: ../libdnf/goal/Goal.cpp:86
++#: libdnf/dnf-rpmts.cpp:121 libdnf/dnf-rpmts.cpp:166
+ #, c-format
+-msgid "installed package %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "signature does not verify for %s"
++msgstr "没有为 %s 验证签名"
+ 
+-#: ../libdnf/goal/Goal.cpp:87
++#: libdnf/dnf-rpmts.cpp:129 libdnf/dnf-rpmts.cpp:174
+ #, c-format
+-msgid "package %s implicitly obsoletes %s provided by %s"
+-msgstr ""
++msgid "failed to open(generic error): %s"
++msgstr "无法打开(一般错误): %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:88
++#: libdnf/dnf-rpmts.cpp:142
+ #, c-format
+-msgid "package %s requires %s, but none of the providers can be installed"
+-msgstr ""
++msgid "failed to verify key for %s"
++msgstr "无法为 %s 验证密钥"
+ 
+-#: ../libdnf/goal/Goal.cpp:89
++#: libdnf/dnf-rpmts.cpp:150
+ #, c-format
+-msgid "package %s conflicts with %s provided by itself"
+-msgstr ""
++msgid "public key unavailable for %s"
++msgstr "没有 %s 的公钥"
+ 
+-#: ../libdnf/goal/Goal.cpp:90
++#: libdnf/dnf-rpmts.cpp:158
+ #, c-format
+-msgid "both package %s and %s obsolete %s"
+-msgstr ""
++msgid "signature not found for %s"
++msgstr "没有找到 %s 的签名"
+ 
+-#: ../libdnf/goal/Goal.cpp:96
+-msgid "problem with installed module "
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:193
++#, c-format
++msgid "failed to add install element: %1$s [%2$i]"
++msgstr "无法添加安装元素: %1$s [%2$i]"
+ 
+-#: ../libdnf/goal/Goal.cpp:100
++#: libdnf/dnf-rpmts.cpp:274
+ #, c-format
+-msgid "module %s does not exist"
+-msgstr ""
++msgid "Error running transaction: %s"
++msgstr "错误运行事务: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:103
+-msgid "cannot install the best update candidate for module "
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:283
++msgid "Error running transaction and no problems were reported!"
++msgstr "错误运行事务并且没有报告问题!"
+ 
+-#: ../libdnf/goal/Goal.cpp:105 ../libdnf/goal/Goal.cpp:108
+-#, c-format
+-msgid "module %s is disabled"
+-msgstr ""
++#: libdnf/dnf-rpmts.cpp:346
++msgid "Fatal error, run database recovery"
++msgstr "严重错误,运行数据库恢复"
+ 
+-#: ../libdnf/goal/Goal.cpp:106
++#: libdnf/dnf-rpmts.cpp:355
+ #, c-format
+-msgid "module %s does not have a compatible architecture"
+-msgstr ""
++msgid "failed to find package %s"
++msgstr "无法找到软件包 %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:107
++#: libdnf/dnf-rpmts.cpp:401
+ #, c-format
+-msgid "module %s is not installable"
+-msgstr ""
++msgid "could not add erase element %1$s(%2$i)"
++msgstr "无法添加删除元素 %1$s(%2$i)"
+ 
+-#: ../libdnf/goal/Goal.cpp:109
++#: libdnf/dnf-sack.cpp:381
+ #, c-format
+-msgid "nothing provides %s needed by module %s"
+-msgstr ""
++msgid "no %1$s string for %2$s"
++msgstr "没有为 %2$s 的 %1$s 字符串"
+ 
+-#: ../libdnf/goal/Goal.cpp:110
+-#, c-format
+-msgid "cannot install both modules %s and %s"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:404
++msgid "failed to add solv"
++msgstr "添加 solv 失败"
+ 
+-#: ../libdnf/goal/Goal.cpp:111
++#: libdnf/dnf-sack.cpp:422
+ #, c-format
+-msgid "module %s conflicts with %s provided by %s"
+-msgstr ""
++msgid "failed to open: %s"
++msgstr "打开失败:%s"
+ 
+-#: ../libdnf/goal/Goal.cpp:112
++#: libdnf/dnf-sack.cpp:501
+ #, c-format
+-msgid "module %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "cannot create temporary file: %s"
++msgstr "不能创建临时文件: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:113
++#: libdnf/dnf-sack.cpp:511
+ #, c-format
+-msgid "installed module %s obsoletes %s provided by %s"
+-msgstr ""
++msgid "failed opening tmp file: %s"
++msgstr "打开 tmp 文件失败: %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:114
++#: libdnf/dnf-sack.cpp:523
+ #, c-format
+-msgid "module %s implicitly obsoletes %s provided by %s"
+-msgstr ""
++msgid "write_main() failed writing data: %i"
++msgstr "write_main() 写数据失败: %i"
+ 
+-#: ../libdnf/goal/Goal.cpp:115
+-#, c-format
+-msgid "module %s requires %s, but none of the providers can be installed"
+-msgstr ""
++#: libdnf/dnf-sack.cpp:540
++msgid "write_main() failed to re-load written solv file"
++msgstr "write_main() 重新加载写的 solv 文件失败"
+ 
+-#: ../libdnf/goal/Goal.cpp:116
++#: libdnf/dnf-sack.cpp:605
+ #, c-format
+-msgid "module %s conflicts with %s provided by itself"
+-msgstr ""
++msgid "can not create temporary file %s"
++msgstr "不能创建临时文件 %s"
+ 
+-#: ../libdnf/goal/Goal.cpp:117
++#: libdnf/dnf-sack.cpp:623
+ #, c-format
+-msgid "both module %s and %s obsolete %s"
+-msgstr ""
+-
+-#: ../libdnf/goal/Goal.cpp:1008
+-msgid "no solver set"
+-msgstr "无 solver 设置"
++msgid "write_ext(%1$d) has failed: %2$d"
++msgstr "write_ext(%1$d) 已失败: %2$d"
+ 
+-#: ../libdnf/goal/Goal.cpp:1013
+-#, c-format
+-msgid "failed to make %s absolute"
+-msgstr "无法使 %s 绝对"
++#: libdnf/dnf-sack.cpp:678
++msgid "null repo md file"
++msgstr "null repo md 文件"
+ 
+-#: ../libdnf/goal/Goal.cpp:1020
++#: libdnf/dnf-sack.cpp:687
+ #, c-format
+-msgid "failed writing debugdata to %1$s: %2$s"
+-msgstr "把 debugdata 写入到 %1$s 失败: %2$s"
++msgid "can not read file %1$s: %2$s"
++msgstr "不能读文件 %1$s: %2$s"
+ 
+-#: ../libdnf/goal/Goal.cpp:1032
+-msgid "no solv in the goal"
+-msgstr "在目标中没有 solv"
++#: libdnf/dnf-sack.cpp:701
++msgid "repo_add_solv() has failed."
++msgstr "repo_add_solv() 已失败。"
+ 
+-#: ../libdnf/goal/Goal.cpp:1034
+-msgid "no solution, cannot remove protected package"
+-msgstr "没有解决方案,不能删除保护的软件包"
++#: libdnf/dnf-sack.cpp:714
++msgid "loading of MD_TYPE_PRIMARY has failed."
++msgstr "加载 MD_TYPE_PRIMARY 失败。"
+ 
+-#: ../libdnf/goal/Goal.cpp:1037
+-msgid "no solution possible"
+-msgstr "没有可能的解决方案"
++#: libdnf/dnf-sack.cpp:727
++msgid "repo_add_repomdxml/rpmmd() has failed."
++msgstr "repo_add_repomdxml/rpmmd() 已失败。"
+ 
+-#: ../libdnf/goal/Goal.cpp:1443
+-msgid ""
+-"The operation would result in removing the following protected packages: "
+-msgstr "这个操作可能会导致删除以下受保护的软件包: "
++#: libdnf/dnf-sack.cpp:794
++msgid "failed to auto-detect architecture"
++msgstr "自动检测架构失败"
+ 
+-#: ../libdnf/repo/Repo.cpp:337
++#: libdnf/dnf-sack.cpp:919
+ #, c-format
+-msgid "Bad id for repo: %s, byte = %s %d"
+-msgstr "repo 的 id 无效: %s, byte = %s %d"
++msgid "failed creating cachedir %s"
++msgstr "无法创建 cachedir %s"
++
++#: libdnf/dnf-sack.cpp:1696
++msgid "failed loading RPMDB"
++msgstr "无法加载 RPMDB"
+ 
+-#: ../libdnf/repo/Repo.cpp:362
++#: libdnf/dnf-sack.cpp:2403
+ #, c-format
+-msgid "Repository %s has no mirror or baseurl set."
+-msgstr "软件仓库 %s 没有设置镜像或者 baseurl。"
++msgid "No module defaults found: %s"
++msgstr "没有找到模块默认设置:%s"
+ 
+-#: ../libdnf/repo/Repo.cpp:371
++#: libdnf/dnf-state.cpp:1184
+ #, c-format
+-msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
+-msgstr "仓库 '%s' 有不被支持的类型: 'type=%s', 忽略。"
++msgid "percentage not 100: %i"
++msgstr "百分比不是 100: %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:580
++#: libdnf/dnf-state.cpp:1194
+ #, c-format
+-msgid "Cannot find a valid baseurl for repo: %s"
+-msgstr "无法为仓库 %s 找到一个有效的 baseurl"
++msgid "failed to set number steps: %i"
++msgstr "无法设置 number steps: %i"
+ 
+-#: ../libdnf/repo/Repo.cpp:616 ../libdnf/repo/Repo.cpp:1705
+-msgid ""
+-"Maximum download speed is lower than minimum. Please change configuration of"
+-" minrate or throttle"
+-msgstr "最大下载速度低于最小值。请修改 minrate 或 throttle 的配置"
++#: libdnf/dnf-state.cpp:1293
++msgid "cancelled by user action"
++msgstr "由用户的操作取消"
+ 
+-#: ../libdnf/repo/Repo.cpp:666 ../libdnf/repo/Repo.cpp:688
++#: libdnf/dnf-state.cpp:1332
+ #, c-format
+-msgid "%s: gpgme_data_new_from_fd(): %s"
+-msgstr "%s: gpgme_data_new_from_fd(): %s"
++msgid "done on a state %1$p that did not have a size set! [%2$s]"
++msgstr "在一个没有设置大小的状态 %1$p 中做! [%2$s]"
+ 
+-#: ../libdnf/repo/Repo.cpp:674 ../libdnf/repo/Repo.cpp:696
++#: libdnf/dnf-state.cpp:1357
+ #, c-format
+-msgid "%s: gpgme_op_import(): %s"
+-msgstr "%s: gpgme_op_import(): %s"
++msgid "already at 100%% state [%s]"
++msgstr "已是 100%% 状态 [%s]"
+ 
+-#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:785
+-#: ../libdnf/repo/Repo.cpp:913
++#: libdnf/dnf-transaction.cpp:300
+ #, c-format
+-msgid "%s: gpgme_ctx_set_engine_info(): %s"
+-msgstr "%s: gpgme_ctx_set_engine_info(): %s"
++msgid "Sources not set when trying to ensure package %s"
++msgstr "在尝试确保软件包 %s 时源没有设置"
+ 
+-#: ../libdnf/repo/Repo.cpp:746 ../libdnf/repo/Repo.cpp:810
++#: libdnf/dnf-transaction.cpp:326
+ #, c-format
+-msgid "can not list keys: %s"
+-msgstr "不能列出 key: %s"
++msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
++msgstr "无法确保 %1$s,因为 repo %2$s 没有找到 (%3$i repos 已加载)"
+ 
+-#: ../libdnf/repo/Repo.cpp:839
+-#, c-format
+-msgid "Failed to retrieve GPG key for repo '%s': %s"
+-msgstr ""
++#: libdnf/dnf-transaction.cpp:367
++msgid "Failed to check untrusted: "
++msgstr "检查不被信任失败: "
+ 
+-#: ../libdnf/repo/Repo.cpp:892
++#: libdnf/dnf-transaction.cpp:377
+ #, c-format
+-msgid "repo %s: 0x%s already imported"
+-msgstr "repo %s: 0x%s 已被导入"
++msgid "Downloaded file for %s not found"
++msgstr "没有找到下载的文件 %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:920
++#: libdnf/dnf-transaction.cpp:397
+ #, c-format
+-msgid "repo %s: imported key 0x%s."
+-msgstr "repo %s: 导入的 key 0x%s."
++msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
++msgstr "软件包 %1$s 不能被验证,repo %2$s 启用了 GPG: %3$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1164
+-#, c-format
+-msgid "reviving: repo '%s' skipped, no metalink."
+-msgstr "恢复中: 仓库 '%s' 已被跳过,无 metalink。"
++#: libdnf/dnf-transaction.cpp:831 libdnf/dnf-transaction.cpp:903
++msgid "Failed to get value for CacheDir"
++msgstr "无法为 CacheDir 获得值"
+ 
+-#: ../libdnf/repo/Repo.cpp:1183
++#: libdnf/dnf-transaction.cpp:911
+ #, c-format
+-msgid "reviving: repo '%s' skipped, no usable hash."
+-msgstr "恢复中: 仓库 '%s' 已被跳过,无可用 hash。"
++msgid "Failed to get filesystem free size for %s: "
++msgstr "无法为 %s 获得文件系统可用空间的大小: "
+ 
+-#: ../libdnf/repo/Repo.cpp:1206
++#: libdnf/dnf-transaction.cpp:919
+ #, c-format
+-msgid "reviving: failed for '%s', mismatched %s sum."
+-msgstr "恢复: '%s' 失败,不匹配的 %s sum。"
++msgid "Failed to get filesystem free size for %s"
++msgstr "无法为 %s 获得文件系统可用空间的大小"
+ 
+-#: ../libdnf/repo/Repo.cpp:1212
++#: libdnf/dnf-transaction.cpp:935
+ #, c-format
+-msgid "reviving: '%s' can be revived - metalink checksums match."
+-msgstr "恢复中: '%s' 可以被恢复 - metalink 校验和匹配。"
++msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
++msgstr "%1$s 没有足够的空闲空间: 需要 %2$s,可用 %3$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1237
+-#, c-format
+-msgid "reviving: '%s' can be revived - repomd matches."
+-msgstr "恢复: '%s' 可用被恢复 - repomd 匹配。"
++#: libdnf/dnf-transaction.cpp:1196
++msgid "failed to set root"
++msgstr "设置 root 失败"
+ 
+-#: ../libdnf/repo/Repo.cpp:1239
++#: libdnf/dnf-transaction.cpp:1418
+ #, c-format
+-msgid "reviving: failed for '%s', mismatched repomd."
+-msgstr "恢复: '%s' 失败,不匹配的 repomd。"
++msgid "Error %i running transaction test"
++msgstr "错误 %i 运行事务测试"
+ 
+-#: ../libdnf/repo/Repo.cpp:1257
++#: libdnf/dnf-transaction.cpp:1458
+ #, c-format
+-msgid "Cannot create repo destination directory \"%s\": %s"
+-msgstr ""
++msgid "Error %i running transaction"
++msgstr "错误 %i 运行事务"
+ 
+-#: ../libdnf/repo/Repo.cpp:1263
++#: libdnf/dnf-transaction.cpp:1473
+ #, c-format
+-msgid "Cannot create repo temporary directory \"%s\": %s"
+-msgstr "无法创建 repo 临时目录 \"%s\": %s"
++msgid "Transaction did not go to writing phase, but returned no error(%i)"
++msgstr "事务没有进入写阶段,但没有返回错误(%i)"
+ 
+-#: ../libdnf/repo/Repo.cpp:1277
++#: libdnf/dnf-utils.cpp:111 libdnf/hy-iutil.cpp:399
+ #, c-format
+-msgid "Cannot create directory \"%s\": %s"
+-msgstr "无法创建目录 \"%s\": %s"
++msgid "cannot open directory %1$s: %2$s"
++msgstr "无法打开目录 %1$s: %2$s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1300
++#: libdnf/dnf-utils.cpp:136
+ #, c-format
+-msgid "Cannot rename directory \"%s\" to \"%s\": %s"
+-msgstr "无法把目录 \"%s\" 重命名为 \"%s\": %s"
++msgid "failed to remove %s"
++msgstr "无法删除 %s"
+ 
+-#: ../libdnf/repo/Repo.cpp:1323
+-#, c-format
+-msgid "repo: using cache for: %s"
+-msgstr "仓库: 正在为 %s 使用缓存"
++#: libdnf/goal/Goal.cpp:55
++msgid "Ill-formed Selector, presence of multiple match objects in the filter"
++msgstr "Ill-formed Selector,在过滤器中有多个匹配的对象"
+ 
+-#: ../libdnf/repo/Repo.cpp:1335
+-#, c-format
+-msgid "Cache-only enabled but no cache for '%s'"
+-msgstr "仅使用缓存已开启但没有 '%s' 的缓存"
++#: libdnf/goal/Goal.cpp:56
++msgid "Ill-formed Selector used for the operation, incorrect comparison type"
++msgstr "这个操作使用了 Ill-formed Selector,不正确的比较类型"
+ 
+-#: ../libdnf/repo/Repo.cpp:1339
+-#, c-format
+-msgid "repo: downloading from remote: %s"
+-msgstr "repo: 从远程下载: %s"
++#: libdnf/goal/Goal.cpp:67 libdnf/goal/Goal.cpp:94
++msgid " does not belong to a distupgrade repository"
++msgstr " 不属于 distupgrade 仓库"
+ 
+-#: ../libdnf/repo/Repo.cpp:1345
+-#, c-format
+-msgid "Failed to download metadata for repo '%s': %s"
+-msgstr ""
++#: libdnf/goal/Goal.cpp:68 libdnf/goal/Goal.cpp:95
++msgid " has inferior architecture"
++msgstr " 有 inferior 架构"
+ 
+-#: ../libdnf/repo/Repo.cpp:1371
+-msgid "getCachedir(): Computation of SHA256 failed"
+-msgstr "getCachedir(): 计算 SHA256 失败"
++#: libdnf/goal/Goal.cpp:69
++msgid "problem with installed package "
++msgstr "安装的软件包的问题 "
++
++#: libdnf/goal/Goal.cpp:70 libdnf/goal/Goal.cpp:97
++msgid "conflicting requests"
++msgstr "冲突的请求"
++
++#: libdnf/goal/Goal.cpp:71 libdnf/goal/Goal.cpp:98
++msgid "unsupported request"
++msgstr "不支持的请求"
+ 
+-#: ../libdnf/repo/Repo.cpp:1396
++#: libdnf/goal/Goal.cpp:72 libdnf/goal/Goal.cpp:99
++msgid "nothing provides requested "
++msgstr "没有提供请求的。 "
++
++#: libdnf/goal/Goal.cpp:73
+ #, c-format
+-msgid "Cannot create persistdir \"%s\": %s"
+-msgstr ""
++msgid "package %s does not exist"
++msgstr "软件包 %s 不存在"
+ 
+-#: ../libdnf/repo/Repo.cpp:1796
+-msgid "resume cannot be used simultaneously with the byterangestart param"
+-msgstr "resume 不能和 the byterangestart 参数同时使用"
++#: libdnf/goal/Goal.cpp:74 libdnf/goal/Goal.cpp:101
++msgid " is provided by the system"
++msgstr " 由系统提供"
++
++#: libdnf/goal/Goal.cpp:75 libdnf/goal/Goal.cpp:102
++msgid "some dependency problem"
++msgstr "一些依赖性问题"
++
++#: libdnf/goal/Goal.cpp:76
++msgid "cannot install the best update candidate for package "
++msgstr "无法为软件包安装最佳更新选择 "
++
++#: libdnf/goal/Goal.cpp:77 libdnf/goal/Goal.cpp:104
++msgid "cannot install the best candidate for the job"
++msgstr "无法为任务安装最佳选择"
+ 
+-#: ../libdnf/repo/Repo.cpp:1807
++#: libdnf/goal/Goal.cpp:78
+ #, c-format
+-msgid "PackageTarget initialization failed: %s"
+-msgstr "PackageTarget 初始失败: %s"
++msgid "package %s is filtered out by modular filtering"
++msgstr "软件包 %s 被模块化过滤过滤掉"
+ 
+-#: ../libdnf/repo/Repo.cpp:1924
++#: libdnf/goal/Goal.cpp:79
+ #, c-format
+-msgid "Cannot open %s: %s"
+-msgstr "无法打开 %s: %s"
++msgid "package %s does not have a compatible architecture"
++msgstr "软件包 %s 没有兼容的架构"
+ 
+-#: ../libdnf/repo/Repo.cpp:1968
++#: libdnf/goal/Goal.cpp:80
+ #, c-format
+-msgid "Log handler with id %ld doesn't exist"
+-msgstr "id 为 %ld 的日志处理器不存在"
++msgid "package %s is not installable"
++msgstr "软件包 %s 是不可安装的"
+ 
+-#: ../libdnf/dnf-transaction.cpp:300
++#: libdnf/goal/Goal.cpp:81
+ #, c-format
+-msgid "Sources not set when trying to ensure package %s"
+-msgstr "在尝试确保软件包 %s 时源没有设置"
++msgid "package %s is filtered out by exclude filtering"
++msgstr "软件包 %s 被排除过滤过滤掉"
+ 
+-#: ../libdnf/dnf-transaction.cpp:326
++#: libdnf/goal/Goal.cpp:82
+ #, c-format
+-msgid "Failed to ensure %1$s as repo %2$s not found(%3$i repos loaded)"
+-msgstr "无法确保 %1$s,因为 repo %2$s 没有找到 (%3$i repos 已加载)"
++msgid "nothing provides %s needed by %s"
++msgstr "没有提供 %s(%s 需要)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:367
+-msgid "Failed to check untrusted: "
+-msgstr "检查不被信任失败: "
++#: libdnf/goal/Goal.cpp:83
++#, c-format
++msgid "cannot install both %s and %s"
++msgstr "无法同时安装 %s 和 %s"
+ 
+-#: ../libdnf/dnf-transaction.cpp:377
++#: libdnf/goal/Goal.cpp:84
+ #, c-format
+-msgid "Downloaded file for %s not found"
+-msgstr "没有找到下载的文件 %s"
++msgid "package %s conflicts with %s provided by %s"
++msgstr "软件包 %s 与 %s(由 %s 提供)冲突"
+ 
+-#: ../libdnf/dnf-transaction.cpp:397
++#: libdnf/goal/Goal.cpp:85
+ #, c-format
+-msgid "package %1$s cannot be verified and repo %2$s is GPG enabled: %3$s"
+-msgstr "软件包 %1$s 不能被验证,repo %2$s 启用了 GPG: %3$s"
++msgid "package %s obsoletes %s provided by %s"
++msgstr "软件包 %s 过时了 %s(由 %s 提供)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:831 ../libdnf/dnf-transaction.cpp:903
+-msgid "Failed to get value for CacheDir"
+-msgstr "无法为 CacheDir 获得值"
++#: libdnf/goal/Goal.cpp:86
++#, c-format
++msgid "installed package %s obsoletes %s provided by %s"
++msgstr "安装的软件包 %s 过时了 %s(由 %s 提供)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:911
++#: libdnf/goal/Goal.cpp:87
+ #, c-format
+-msgid "Failed to get filesystem free size for %s: "
+-msgstr "无法为 %s 获得文件系统可用空间的大小: "
++msgid "package %s implicitly obsoletes %s provided by %s"
++msgstr "软件包 %s 隐式过期了 %s(由 %s 提供)"
+ 
+-#: ../libdnf/dnf-transaction.cpp:919
++#: libdnf/goal/Goal.cpp:88
+ #, c-format
+-msgid "Failed to get filesystem free size for %s"
+-msgstr "无法为 %s 获得文件系统可用空间的大小"
++msgid "package %s requires %s, but none of the providers can be installed"
++msgstr "软件包 %s 需要 %s,但没有供应商可以安装"
+ 
+-#: ../libdnf/dnf-transaction.cpp:935
++#: libdnf/goal/Goal.cpp:89
+ #, c-format
+-msgid "Not enough free space in %1$s: needed %2$s, available %3$s"
+-msgstr "%1$s 没有足够的空闲空间: 需要 %2$s,可用 %3$s"
++msgid "package %s conflicts with %s provided by itself"
++msgstr "软件包 %s 与自己提供的 %s 冲突"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1196
+-msgid "failed to set root"
+-msgstr "设置 root 失败"
++#: libdnf/goal/Goal.cpp:90
++#, c-format
++msgid "both package %s and %s obsolete %s"
++msgstr "软件包 %s 和 %s 都过期了 %s"
++
++#: libdnf/goal/Goal.cpp:96
++msgid "problem with installed module "
++msgstr "安装的模块的问题 "
+ 
+-#: ../libdnf/dnf-transaction.cpp:1418
++#: libdnf/goal/Goal.cpp:100
+ #, c-format
+-msgid "Error %i running transaction test"
+-msgstr "错误 %i 运行事务测试"
++msgid "module %s does not exist"
++msgstr "模块 %s 不存在"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1458
++#: libdnf/goal/Goal.cpp:103
++msgid "cannot install the best update candidate for module "
++msgstr "无法为模块安装最佳更新选择 "
++
++#: libdnf/goal/Goal.cpp:105 libdnf/goal/Goal.cpp:108
+ #, c-format
+-msgid "Error %i running transaction"
+-msgstr "错误 %i 运行事务"
++msgid "module %s is disabled"
++msgstr "模块 %s 被禁用"
+ 
+-#: ../libdnf/dnf-transaction.cpp:1473
++#: libdnf/goal/Goal.cpp:106
+ #, c-format
+-msgid "Transaction did not go to writing phase, but returned no error(%i)"
+-msgstr "事务没有进入写阶段,但没有返回错误(%i)"
++msgid "module %s does not have a compatible architecture"
++msgstr "模块 %s 没有兼容的架构"
+ 
+-#: ../libdnf/dnf-utils.cpp:136
++#: libdnf/goal/Goal.cpp:107
+ #, c-format
+-msgid "failed to remove %s"
+-msgstr "无法删除 %s"
++msgid "module %s is not installable"
++msgstr "模块 %s 不可安装"
+ 
+-#: ../libdnf/plugin/plugin.cpp:46
++#: libdnf/goal/Goal.cpp:109
+ #, c-format
+-msgid "Can't load shared library \"%s\": %s"
+-msgstr ""
++msgid "nothing provides %s needed by module %s"
++msgstr "没有提供 %s(模块 %s 需要它)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:61 ../libdnf/plugin/plugin.cpp:67
+-#: ../libdnf/plugin/plugin.cpp:73 ../libdnf/plugin/plugin.cpp:79
++#: libdnf/goal/Goal.cpp:110
+ #, c-format
+-msgid "Can't obtain address of symbol \"%s\": %s"
+-msgstr ""
++msgid "cannot install both modules %s and %s"
++msgstr "无法同时安装模块 %s 和 %s"
+ 
+-#: ../libdnf/plugin/plugin.cpp:86
++#: libdnf/goal/Goal.cpp:111
+ #, c-format
+-msgid "Loading plugin file=\"%s\""
+-msgstr ""
++msgid "module %s conflicts with %s provided by %s"
++msgstr "模块 %s 与 %s (由 %s 提供)冲突"
+ 
+-#: ../libdnf/plugin/plugin.cpp:89
++#: libdnf/goal/Goal.cpp:112
+ #, c-format
+-msgid "Loaded plugin name=\"%s\", version=\"%s\""
+-msgstr ""
++msgid "module %s obsoletes %s provided by %s"
++msgstr "模块 %s 过时了 %s(由 %s 提供)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:96
+-msgid "Plugins::loadPlugins() dirPath cannot be empty"
+-msgstr ""
++#: libdnf/goal/Goal.cpp:113
++#, c-format
++msgid "installed module %s obsoletes %s provided by %s"
++msgstr "安装的模块 %s 过时了 %s(由 %s 提供)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:105
++#: libdnf/goal/Goal.cpp:114
+ #, c-format
+-msgid "Can't read plugin directory \"%s\": %s"
+-msgstr ""
++msgid "module %s implicitly obsoletes %s provided by %s"
++msgstr "模块 %s 隐式过时了 %s(由 %s 提供)"
+ 
+-#: ../libdnf/plugin/plugin.cpp:114
++#: libdnf/goal/Goal.cpp:115
+ #, c-format
+-msgid "Can't load plugin \"%s\": %s"
+-msgstr ""
++msgid "module %s requires %s, but none of the providers can be installed"
++msgstr "模块 %s 需要 %s,但没有供应商可以安装"
+ 
+-#: ../libdnf/dnf-state.cpp:1184
++#: libdnf/goal/Goal.cpp:116
+ #, c-format
+-msgid "percentage not 100: %i"
+-msgstr "百分比不是 100: %i"
++msgid "module %s conflicts with %s provided by itself"
++msgstr "模块 %s 与自己提供的 %s 冲突"
+ 
+-#: ../libdnf/dnf-state.cpp:1194
++#: libdnf/goal/Goal.cpp:117
+ #, c-format
+-msgid "failed to set number steps: %i"
+-msgstr "无法设置 number steps: %i"
++msgid "both module %s and %s obsolete %s"
++msgstr "模块 %s 和 %s 都过期了 %s"
+ 
+-#: ../libdnf/dnf-state.cpp:1293
+-msgid "cancelled by user action"
+-msgstr "由用户的操作取消"
++#: libdnf/goal/Goal.cpp:1032
++msgid "no solver set"
++msgstr "无 solver 设置"
+ 
+-#: ../libdnf/dnf-state.cpp:1332
++#: libdnf/goal/Goal.cpp:1037
+ #, c-format
+-msgid "done on a state %1$p that did not have a size set! [%2$s]"
+-msgstr "在一个没有设置大小的状态 %1$p 中做! [%2$s]"
++msgid "failed to make %s absolute"
++msgstr "无法使 %s 绝对"
+ 
+-#: ../libdnf/dnf-state.cpp:1357
++#: libdnf/goal/Goal.cpp:1044
+ #, c-format
+-msgid "already at 100%% state [%s]"
+-msgstr "已是 100%% 状态 [%s]"
++msgid "failed writing debugdata to %1$s: %2$s"
++msgstr "把 debugdata 写入到 %1$s 失败: %2$s"
++
++#: libdnf/goal/Goal.cpp:1056
++msgid "no solv in the goal"
++msgstr "在目标中没有 solv"
++
++#: libdnf/goal/Goal.cpp:1058
++msgid "no solution, cannot remove protected package"
++msgstr "没有解决方案,不能删除保护的软件包"
++
++#: libdnf/goal/Goal.cpp:1061
++msgid "no solution possible"
++msgstr "没有可能的解决方案"
++
++#: libdnf/goal/Goal.cpp:1473
++msgid ""
++"The operation would result in removing the following protected packages: "
++msgstr "这个操作可能会导致删除以下受保护的软件包: "
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:43
++#: libdnf/hy-iutil.cpp:322
+ #, c-format
+-msgid "Failed to update from string: %s"
+-msgstr ""
++msgid "Failed renaming %1$s to %2$s: %3$s"
++msgstr "将 %1$s 重命名为 %2$s 失败: %3$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:68
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:70
++#: libdnf/hy-iutil.cpp:330
+ #, c-format
+-msgid "Failed to resolve: %s"
+-msgstr ""
++msgid "Failed setting perms on %1$s: %2$s"
++msgstr "在 %1$s 中设置 perms 失败: %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:74
++#: libdnf/hy-iutil.cpp:376
+ #, c-format
+-msgid "Failed to upgrade defaults: %s"
+-msgstr ""
++msgid "cannot create directory %1$s: %2$s"
++msgstr "无法创建目录 %1$s: %2$s"
+ 
+-#: ../libdnf/module/modulemd/ModuleMetadata.cpp:77
++#: libdnf/hy-iutil.cpp:411
+ #, c-format
+-msgid "Failed to upgrade streams: %s"
+-msgstr ""
++msgid "cannot stat path %1$s: %2$s"
++msgstr "无法 stat 路径 %1$s: %2$s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:463
++#: libdnf/module/ModulePackage.cpp:463
+ #, c-format
+ msgid "Invalid format of Platform module: %s"
+-msgstr ""
++msgstr "Platform 模块无效的格式 : %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:478
++#: libdnf/module/ModulePackage.cpp:478
+ msgid "Multiple module platforms provided by available packages\n"
+-msgstr ""
++msgstr "由可用软件包提供的多个模块平台\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:491
++#: libdnf/module/ModulePackage.cpp:491
+ msgid "Multiple module platforms provided by installed packages\n"
+-msgstr ""
++msgstr "由安装的软件包提供的多个模块平台\n"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:518
++#: libdnf/module/ModulePackage.cpp:518
+ #, c-format
+ msgid "Detection of Platform Module in %s failed: %s"
+-msgstr ""
++msgstr "删除 %s 中的 Platform 模块失败 : %s"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:527
++#: libdnf/module/ModulePackage.cpp:527
+ #, c-format
+ msgid "Missing PLATFORM_ID in %s"
+-msgstr ""
++msgstr "在 %s 中缺少 PLATFORM_ID"
+ 
+-#: ../libdnf/module/ModulePackage.cpp:532
++#: libdnf/module/ModulePackage.cpp:532
+ msgid "No valid Platform ID detected"
+-msgstr ""
++msgstr "没有检测到有效的 Platform ID"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:68
++#: libdnf/module/ModulePackageContainer.cpp:68
+ #, c-format
+ msgid "Cannot enable multiple streams for module '%s'"
+-msgstr ""
++msgstr "无法为模块 '%s' 启用多个流"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:294
++#: libdnf/module/ModulePackageContainer.cpp:294
+ #, c-format
+ msgid "Conflicting defaults with repo '%s': %s"
+-msgstr ""
++msgstr "默认设置与 repo '%s' 冲突 : %s"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1568
++#: libdnf/module/ModulePackageContainer.cpp:1569
+ #, c-format
+ msgid "Unable to load modular Fail-Safe data at '%s'"
+-msgstr ""
++msgstr "无法在 '%s' 加载模块 Fail-Safe 数据"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1574
++#: libdnf/module/ModulePackageContainer.cpp:1575
+ #, c-format
+ msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+-msgstr ""
++msgstr "无法为模块 '%s:%s' 加载模块 Fail-Safe 数据"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1638
++#: libdnf/module/ModulePackageContainer.cpp:1639
+ #, c-format
+ msgid "Unable to create directory \"%s\" for modular Fail Safe data: %s"
+-msgstr ""
++msgstr "无法为模块化 Fail Safe 数据创建目录 \"%s\" : %s"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1660
++#: libdnf/module/ModulePackageContainer.cpp:1661
+ #, c-format
+ msgid "Unable to save a modular Fail Safe data to '%s'"
+-msgstr ""
++msgstr "无法把模块 Fail Safe 数据 safe 为 '%s'"
+ 
+-#: ../libdnf/module/ModulePackageContainer.cpp:1685
++#: libdnf/module/ModulePackageContainer.cpp:1686
+ #, c-format
+ msgid "Unable to remove a modular Fail Safe data in '%s'"
+-msgstr ""
++msgstr "无法在 '%s' 中删除一个模块的 Fail Safe 数据"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:79
++#: libdnf/module/modulemd/ModuleMetadata.cpp:44
+ #, c-format
+-msgid ""
+-"No available modular metadata for modular package '%s'; cannot be installed "
+-"on the system"
+-msgstr ""
++msgid "Failed to update from string: %s"
++msgstr "从字符串更新失败: %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:121 ../libdnf/dnf-rpmts.cpp:166
++#: libdnf/module/modulemd/ModuleMetadata.cpp:68
+ #, c-format
+-msgid "signature does not verify for %s"
+-msgstr "没有为 %s 验证签名"
++msgid "Failed to resolve: %s"
++msgstr "解析失败:%s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:129 ../libdnf/dnf-rpmts.cpp:174
++#: libdnf/module/modulemd/ModuleMetadata.cpp:73
+ #, c-format
+-msgid "failed to open(generic error): %s"
+-msgstr "无法打开(一般错误): %s"
++msgid "There were errors while resolving modular defaults: %s"
++msgstr "在解析模块默认值时出现了错误:%s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:142
++#: libdnf/module/modulemd/ModuleMetadata.cpp:78
+ #, c-format
+-msgid "failed to verify key for %s"
+-msgstr "无法为 %s 验证密钥"
++msgid "Failed to upgrade defaults: %s"
++msgstr "升级默认值失败:%s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:150
++#: libdnf/module/modulemd/ModuleMetadata.cpp:81
+ #, c-format
+-msgid "public key unavailable for %s"
+-msgstr "没有 %s 的公钥"
++msgid "Failed to upgrade streams: %s"
++msgstr "升级流失败:%s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:158
++#: libdnf/plugin/plugin.cpp:46
+ #, c-format
+-msgid "signature not found for %s"
+-msgstr "没有找到 %s 的签名"
++msgid "Can't load shared library \"%s\": %s"
++msgstr "无法加载共享库 \"%s\": %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:193
++#: libdnf/plugin/plugin.cpp:61 libdnf/plugin/plugin.cpp:67
++#: libdnf/plugin/plugin.cpp:73 libdnf/plugin/plugin.cpp:79
+ #, c-format
+-msgid "failed to add install element: %1$s [%2$i]"
+-msgstr "无法添加安装元素: %1$s [%2$i]"
++msgid "Can't obtain address of symbol \"%s\": %s"
++msgstr "无法获取符号 \"%s\" 的地址 : %s"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:274
++#: libdnf/plugin/plugin.cpp:86
+ #, c-format
+-msgid "Error running transaction: %s"
+-msgstr "错误运行事务: %s"
+-
+-#: ../libdnf/dnf-rpmts.cpp:283
+-msgid "Error running transaction and no problems were reported!"
+-msgstr "错误运行事务并且没有报告问题!"
+-
+-#: ../libdnf/dnf-rpmts.cpp:346
+-msgid "Fatal error, run database recovery"
+-msgstr "严重错误,运行数据库恢复"
++msgid "Loading plugin file=\"%s\""
++msgstr "加载插件文件=\"%s\""
+ 
+-#: ../libdnf/dnf-rpmts.cpp:355
++#: libdnf/plugin/plugin.cpp:89
+ #, c-format
+-msgid "failed to find package %s"
+-msgstr "无法找到软件包 %s"
++msgid "Loaded plugin name=\"%s\", version=\"%s\""
++msgstr "加载插件名=\"%s\", 版本=\"%s\""
++
++#: libdnf/plugin/plugin.cpp:96
++msgid "Plugins::loadPlugins() dirPath cannot be empty"
++msgstr "Plugins::loadPlugins() dirPath 不能为空"
+ 
+-#: ../libdnf/dnf-rpmts.cpp:401
++#: libdnf/plugin/plugin.cpp:105
+ #, c-format
+-msgid "could not add erase element %1$s(%2$i)"
+-msgstr "无法添加删除元素 %1$s(%2$i)"
++msgid "Can't read plugin directory \"%s\": %s"
++msgstr "无法读插件目录 \"%s\": %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:59 ../libdnf/conf/OptionStringList.cpp:59
+-#: ../libdnf/conf/OptionEnum.cpp:72 ../libdnf/conf/OptionEnum.cpp:158
++#: libdnf/plugin/plugin.cpp:114
+ #, c-format
+-msgid "'%s' is not an allowed value"
+-msgstr "'%s'  不是一个允许的值"
++msgid "Can't load plugin \"%s\": %s"
++msgstr "无法加载插件 \"%s\": %s"
+ 
+-#: ../libdnf/conf/OptionString.cpp:74
+-msgid "GetValue(): Value not set"
+-msgstr "GetValue(): 值没有设置"
++#: libdnf/repo/DependencySplitter.cpp:50
++msgid ""
++"Using '==' operator in reldeps can result in an undefined behavior. It is "
++"deprecated and the support will be dropped in future versions. Use '=' "
++"operator instead."
++msgstr ""
++"在 reldeps 中使用 '==' 操作符可能导致一个未定义的行为。这个操作符已被废弃,并且在未来的版本中会取消对它的支持。请使用 '=' "
++"操作符代替。"
+ 
+-#: ../libdnf/conf/OptionPath.cpp:78
++#: libdnf/repo/Repo.cpp:321
+ #, c-format
+-msgid "given path '%s' is not absolute."
+-msgstr "给定的路径 “%s” 不是绝对路径。"
++msgid "Repository %s has no mirror or baseurl set."
++msgstr "软件仓库 %s 没有设置镜像或者 baseurl。"
+ 
+-#: ../libdnf/conf/OptionPath.cpp:82
++#: libdnf/repo/Repo.cpp:330
+ #, c-format
+-msgid "given path '%s' does not exist."
+-msgstr "给定的路径 “%s” 不存在。"
++msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
++msgstr "仓库 '%s' 有不被支持的类型: 'type=%s', 忽略。"
+ 
+-#: ../libdnf/conf/OptionBool.cpp:47
++#: libdnf/repo/Repo.cpp:536
+ #, c-format
+-msgid "invalid boolean value '%s'"
+-msgstr "无效的布尔值“%s”"
++msgid "Cannot find a valid baseurl for repo: %s"
++msgstr "无法为仓库 %s 找到一个有效的 baseurl"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:62 ../libdnf/conf/OptionSeconds.cpp:40
+-msgid "no value specified"
+-msgstr "未指定值"
++#: libdnf/repo/Repo.cpp:573 libdnf/repo/Repo.cpp:1662
++msgid ""
++"Maximum download speed is lower than minimum. Please change configuration of"
++" minrate or throttle"
++msgstr "最大下载速度低于最小值。请修改 minrate 或 throttle 的配置"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:67 ../libdnf/conf/OptionSeconds.cpp:48
++#: libdnf/repo/Repo.cpp:623 libdnf/repo/Repo.cpp:645
+ #, c-format
+-msgid "seconds value '%s' must not be negative"
+-msgstr "第二个值“%s”必须不能为负"
++msgid "%s: gpgme_data_new_from_fd(): %s"
++msgstr "%s: gpgme_data_new_from_fd(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:71
++#: libdnf/repo/Repo.cpp:631 libdnf/repo/Repo.cpp:653
+ #, c-format
+-msgid "could not convert '%s' to bytes"
+-msgstr "无法把 '%s' 转换为字节"
++msgid "%s: gpgme_op_import(): %s"
++msgstr "%s: gpgme_op_import(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:83 ../libdnf/conf/OptionSeconds.cpp:66
++#: libdnf/repo/Repo.cpp:676 libdnf/repo/Repo.cpp:742 libdnf/repo/Repo.cpp:870
+ #, c-format
+-msgid "unknown unit '%s'"
+-msgstr "未知单元 “%s”"
++msgid "%s: gpgme_ctx_set_engine_info(): %s"
++msgstr "%s: gpgme_ctx_set_engine_info(): %s"
+ 
+-#: ../libdnf/conf/ConfigMain.cpp:329
++#: libdnf/repo/Repo.cpp:703 libdnf/repo/Repo.cpp:767
+ #, c-format
+-msgid "percentage '%s' is out of range"
+-msgstr "百分数 '%s' 超出范围"
++msgid "can not list keys: %s"
++msgstr "不能列出 key: %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:73
++#: libdnf/repo/Repo.cpp:796
+ #, c-format
+-msgid "given value [%d] should be less than allowed value [%d]."
+-msgstr "给定的值 [%d] 应小于允许的值 [%d]。"
++msgid "Failed to retrieve GPG key for repo '%s': %s"
++msgstr "为 repo '%s' 获取 GPG 密钥失败 : %s"
+ 
+-#: ../libdnf/conf/OptionNumber.cpp:76
++#: libdnf/repo/Repo.cpp:849
+ #, c-format
+-msgid "given value [%d] should be greater than allowed value [%d]."
+-msgstr "给定的值 [%d] 应大于允许的值 [%d]。"
+-
+-#: ../libdnf/conf/OptionNumber.cpp:88 ../libdnf/conf/OptionEnum.cpp:83
+-msgid "invalid value"
+-msgstr "无效值"
++msgid "repo %s: 0x%s already imported"
++msgstr "repo %s: 0x%s 已被导入"
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:76
++#: libdnf/repo/Repo.cpp:877
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" does not exist"
+-msgstr "配置:ID 为 \"%s\"  的 OptionBinding 不存在"
++msgid "repo %s: imported key 0x%s."
++msgstr "repo %s: 导入的 key 0x%s."
+ 
+-#: ../libdnf/conf/OptionBinds.cpp:88
++#: libdnf/repo/Repo.cpp:1121
+ #, c-format
+-msgid "Configuration: OptionBinding with id \"%s\" already exists"
+-msgstr "配置:ID 为 \"%s\"  的 OptionBinding 已存在"
++msgid "reviving: repo '%s' skipped, no metalink."
++msgstr "恢复中: 仓库 '%s' 已被跳过,无 metalink。"
+ 
+-#: ../libdnf/conf/OptionSeconds.cpp:52
++#: libdnf/repo/Repo.cpp:1140
+ #, c-format
+-msgid "could not convert '%s' to seconds"
+-msgstr "无法把 '%s' 转换为秒"
++msgid "reviving: repo '%s' skipped, no usable hash."
++msgstr "恢复中: 仓库 '%s' 已被跳过,无可用 hash。"
+ 
+-#: ../libdnf/dnf-sack.cpp:417
++#: libdnf/repo/Repo.cpp:1163
+ #, c-format
+-msgid "no %1$s string for %2$s"
+-msgstr ""
+-
+-#: ../libdnf/dnf-sack.cpp:440
+-msgid "failed to add solv"
+-msgstr "添加 solv 失败"
++msgid "reviving: failed for '%s', mismatched %s sum."
++msgstr "恢复: '%s' 失败,不匹配的 %s sum。"
+ 
+-#: ../libdnf/dnf-sack.cpp:458
++#: libdnf/repo/Repo.cpp:1169
+ #, c-format
+-msgid "failed to open: %s"
+-msgstr "打开失败:%s"
++msgid "reviving: '%s' can be revived - metalink checksums match."
++msgstr "恢复中: '%s' 可以被恢复 - metalink 校验和匹配。"
+ 
+-#: ../libdnf/dnf-sack.cpp:537
++#: libdnf/repo/Repo.cpp:1194
+ #, c-format
+-msgid "cannot create temporary file: %s"
+-msgstr "不能创建临时文件: %s"
++msgid "reviving: '%s' can be revived - repomd matches."
++msgstr "恢复: '%s' 可用被恢复 - repomd 匹配。"
+ 
+-#: ../libdnf/dnf-sack.cpp:547
++#: libdnf/repo/Repo.cpp:1196
+ #, c-format
+-msgid "failed opening tmp file: %s"
+-msgstr "打开 tmp 文件失败: %s"
++msgid "reviving: failed for '%s', mismatched repomd."
++msgstr "恢复: '%s' 失败,不匹配的 repomd。"
+ 
+-#: ../libdnf/dnf-sack.cpp:559
++#: libdnf/repo/Repo.cpp:1214
+ #, c-format
+-msgid "write_main() failed writing data: %i"
+-msgstr "write_main() 写数据失败: %i"
+-
+-#: ../libdnf/dnf-sack.cpp:576
+-msgid "write_main() failed to re-load written solv file"
+-msgstr "write_main() 重新加载写的 solv 文件失败"
++msgid "Cannot create repo destination directory \"%s\": %s"
++msgstr "无法创建 repo 目标目录 \"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:641
++#: libdnf/repo/Repo.cpp:1220
+ #, c-format
+-msgid "can not create temporary file %s"
+-msgstr "不能创建临时文件 %s"
++msgid "Cannot create repo temporary directory \"%s\": %s"
++msgstr "无法创建 repo 临时目录 \"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:659
++#: libdnf/repo/Repo.cpp:1234
+ #, c-format
+-msgid "write_ext(%1$d) has failed: %2$d"
+-msgstr "write_ext(%1$d) 已失败: %2$d"
++msgid "Cannot create directory \"%s\": %s"
++msgstr "无法创建目录 \"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:714
+-msgid "null repo md file"
+-msgstr "null repo md 文件"
++#: libdnf/repo/Repo.cpp:1257
++#, c-format
++msgid "Cannot rename directory \"%s\" to \"%s\": %s"
++msgstr "无法把目录 \"%s\" 重命名为 \"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:723
++#: libdnf/repo/Repo.cpp:1280
+ #, c-format
+-msgid "can not read file %1$s: %2$s"
+-msgstr "不能读文件 %1$s: %2$s"
++msgid "repo: using cache for: %s"
++msgstr "仓库: 正在为 %s 使用缓存"
+ 
+-#: ../libdnf/dnf-sack.cpp:737
+-msgid "repo_add_solv() has failed."
+-msgstr "repo_add_solv() 已失败。"
++#: libdnf/repo/Repo.cpp:1292
++#, c-format
++msgid "Cache-only enabled but no cache for '%s'"
++msgstr "仅使用缓存已开启但没有 '%s' 的缓存"
+ 
+-#: ../libdnf/dnf-sack.cpp:750
+-msgid "loading of MD_TYPE_PRIMARY has failed."
+-msgstr ""
++#: libdnf/repo/Repo.cpp:1296
++#, c-format
++msgid "repo: downloading from remote: %s"
++msgstr "repo: 从远程下载: %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:763
+-msgid "repo_add_repomdxml/rpmmd() has failed."
+-msgstr "repo_add_repomdxml/rpmmd() 已失败。"
++#: libdnf/repo/Repo.cpp:1302
++#, c-format
++msgid "Failed to download metadata for repo '%s': %s"
++msgstr "为 repo '%s' 下载元数据失败 : %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:830
+-msgid "failed to auto-detect architecture"
+-msgstr "自动检测架构失败"
++#: libdnf/repo/Repo.cpp:1328
++msgid "getCachedir(): Computation of SHA256 failed"
++msgstr "getCachedir(): 计算 SHA256 失败"
+ 
+-#: ../libdnf/dnf-sack.cpp:955
++#: libdnf/repo/Repo.cpp:1353
+ #, c-format
+-msgid "failed creating cachedir %s"
+-msgstr "无法创建 cachedir %s"
+-
+-#: ../libdnf/dnf-sack.cpp:1727
+-msgid "failed calculating RPMDB checksum"
+-msgstr "无法计算 RPMDB checksum"
++msgid "Cannot create persistdir \"%s\": %s"
++msgstr "无法创建 persistdir \"%s\": %s"
+ 
+-#: ../libdnf/dnf-sack.cpp:1751
+-msgid "failed loading RPMDB"
+-msgstr "无法加载 RPMDB"
++#: libdnf/repo/Repo.cpp:1753
++msgid "resume cannot be used simultaneously with the byterangestart param"
++msgstr "resume 不能和 the byterangestart 参数同时使用"
+ 
+-#: ../libdnf/dnf-sack.cpp:2466
+-msgid "No module defaults found"
+-msgstr ""
++#: libdnf/repo/Repo.cpp:1770
++#, c-format
++msgid "PackageTarget initialization failed: %s"
++msgstr "PackageTarget 初始失败: %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:659
+-msgid "Transformer: can't open history persist dir"
+-msgstr "Transformer: 无法打开 history persist dir"
++#: libdnf/repo/Repo.cpp:1887
++#, c-format
++msgid "Cannot open %s: %s"
++msgstr "无法打开 %s: %s"
+ 
+-#: ../libdnf/transaction/Transformer.cpp:672
+-msgid "Couldn't find a history database"
+-msgstr "无法打开一个历史数据库"
++#: libdnf/repo/Repo.cpp:1931
++#, c-format
++msgid "Log handler with id %ld doesn't exist"
++msgstr "id 为 %ld 的日志处理器不存在"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:107
++#: libdnf/transaction/Swdb.cpp:173
+ msgid "In progress"
+ msgstr "进行中"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:121 ../libdnf/transaction/Swdb.cpp:148
+-#: ../libdnf/transaction/Swdb.cpp:160 ../libdnf/transaction/Swdb.cpp:177
+-#: ../libdnf/transaction/Swdb.cpp:316 ../libdnf/transaction/Swdb.cpp:326
++#: libdnf/transaction/Swdb.cpp:188 libdnf/transaction/Swdb.cpp:216
++#: libdnf/transaction/Swdb.cpp:228 libdnf/transaction/Swdb.cpp:245
++#: libdnf/transaction/Swdb.cpp:384 libdnf/transaction/Swdb.cpp:394
+ msgid "Not in progress"
+ msgstr "没有在进行中"
+ 
+-#: ../libdnf/transaction/Swdb.cpp:187
++#: libdnf/transaction/Swdb.cpp:255
+ msgid "No transaction in progress"
+ msgstr "没有事务在进行中"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:147
++#: libdnf/transaction/TransactionItem.cpp:147
+ msgid "Attempt to insert transaction item into completed transaction"
+ msgstr "试图向已完成的事务中插入事务项"
+ 
+-#: ../libdnf/transaction/TransactionItem.cpp:218
++#: libdnf/transaction/TransactionItem.cpp:218
+ msgid "Attempt to update transaction item in completed transaction"
+ msgstr "试图在已完成的事务中更新事务"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:41
++#: libdnf/transaction/Transformer.cpp:76
++msgid "Database Corrupted: no row 'version' in table 'config'"
++msgstr "数据库损坏:表 'config' 中没有 'version' 行"
++
++#: libdnf/transaction/Transformer.cpp:681
++msgid "Transformer: can't open history persist dir"
++msgstr "Transformer: 无法打开 history persist dir"
++
++#: libdnf/transaction/Transformer.cpp:694
++msgid "Couldn't find a history database"
++msgstr "无法打开一个历史数据库"
++
++#: libdnf/transaction/private/Transaction.cpp:41
+ msgid "Transaction has already began!"
+ msgstr "事务已开始!"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:58
++#: libdnf/transaction/private/Transaction.cpp:58
+ #, c-format
+ msgid "TransactionItem state is not set: %s"
+ msgstr "TransactionItem 状态没有设置:%s"
+ 
+-#: ../libdnf/transaction/private/Transaction.cpp:239
++#: libdnf/transaction/private/Transaction.cpp:243
+ msgid "Can't add console output to unsaved transaction"
+ msgstr "无法向未保存的事务中添加控制台输出"
++
++#~ msgid "Bad id for repo: %s, byte = %s %d"
++#~ msgstr "repo 的 id 无效: %s, byte = %s %d"
+-- 
+2.25.4
+
diff --git a/SPECS/libdnf.spec b/SPECS/libdnf.spec
index 07ef99c..bdaeea4 100644
--- a/SPECS/libdnf.spec
+++ b/SPECS/libdnf.spec
@@ -54,7 +54,7 @@
 
 Name:           libdnf
 Version:        %{libdnf_major_version}.%{libdnf_minor_version}.%{libdnf_micro_version}
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        Library providing simplified C and Python API to libsolv
 License:        LGPLv2+
 URL:            https://github.com/rpm-software-management/libdnf
@@ -62,6 +62,7 @@ Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz
 Patch1:         0001-history-Fix-dnf-history-rollback-when-a-package-was-removed-RhBug1683134.patch
 Patch2:         0002-Add-log-file-level-main-config-option-RhBug-1802074.patch
 Patch3:         0003-Accept-double-eq-as-an-operator-in-reldeps-RhBug-1847946.patch
+Patch4:         0004-Update-translations-RhBug-1820548.patch
 
 BuildRequires:  cmake
 BuildRequires:  gcc
@@ -309,6 +310,9 @@ popd
 %endif
 
 %changelog
+* Tue Jul 28 2020 Marek Blaha <mblaha@redhat.com> - 0.48.0-4
+- Update translations (RhBug:1820548)
+
 * Fri Jul 17 2020 Nicola Sella <nsella@redhat.com> - 0.48.0-3
 - Add log file level main config option (RhBug:1802074)
 - Accept '==' as an operator in reldeps (RhBug:1847946)