dcavalca / rpms / libdnf

Forked from rpms/libdnf 2 years ago
Clone
Blob Blame History Raw
From cbf3e2dcebfe9cd716110b7c3123214c5d18fcff Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Tue, 30 Jul 2019 08:25:21 +0200
Subject: [PATCH] Update localizations from zanata (RhBug:1689991)

https://bugzilla.redhat.com/show_bug.cgi?id=1689991
---
 po/as.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/bg.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/bn.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/bn_IN.po    | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/ca.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/cs.po       | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------
 po/da.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/de.po       | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------
 po/el.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/es.po       | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------
 po/eu.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/fa.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/fi.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/fil.po      | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/fr.po       | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------
 po/fur.po      | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/gu.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/hi.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/hu.po       | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------
 po/ia.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/id.po       | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------
 po/is.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/it.po       | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------
 po/ja.po       | 291 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------
 po/kn.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/ko.po       | 215 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------
 po/libdnf.pot  | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/mai.po      | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/ml.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/mr.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/nb.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/nl.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/or.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/pa.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/pl.po       | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------
 po/pt.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/pt_BR.po    | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------
 po/ru.po       | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------
 po/sk.po       | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------
 po/sq.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/sr.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/sr@latin.po | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/sv.po       | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------
 po/ta.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/te.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/th.po       | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------
 po/tr.po       | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------
 po/uk.po       | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------
 po/zanata.xml  |   2 +-
 po/zh_CN.po    | 292 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------
 po/zh_TW.po    | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------
 51 files changed, 5516 insertions(+), 3639 deletions(-)

diff --git a/po/as.po b/po/as.po
index ad5d049..fc7ada8 100644
--- a/po/as.po
+++ b/po/as.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 02:50+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Assamese\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/bg.po b/po/bg.po
index 91e34c5..a01325a 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2016-11-21 05:57+0000\n"
 "Last-Translator: Valentin Laskov <laskov@festa.bg>\n"
 "Language-Team: Bulgarian\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Не мога да сваля '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Провал при синхронизиране кеша за хранилище '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -715,59 +752,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -784,19 +821,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/bn.po b/po/bn.po
index d270bfd..b3cbb10 100644
--- a/po/bn.po
+++ b/po/bn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 02:51+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Bengali\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/bn_IN.po b/po/bn_IN.po
index e6cf9e7..4438305 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 02:52+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Bengali (India)\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/ca.po b/po/ca.po
index 5996c18..ec8e0b0 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-10-24 09:32+0000\n"
 "Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
 "Language-Team: Catalan\n"
@@ -263,159 +263,169 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "El dipòsit %s no té establerta cap rèplica o url base."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "No es pot trobar un url base vàlid per al dipòsit: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "La velocitat màxima de baixada és inferior que la mínima. Canvieu la "
 "configuració de minrate o throttle"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "dipòsit: s'utilitza la memòria cau per: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "No es pot baixar «%s»: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "No s'ha pogut sincronitzar la memòria cau per al dipòsit «%s»"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "unitat desconeguda «%s»"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "el percentatge «%s» està fora de l'interval"
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/cs.po b/po/cs.po
index 21170a5..b4bceef 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,12 +1,11 @@
 # Zdenek <chmelarz@gmail.com>, 2016. #zanata
 # Zdenek <chmelarz@gmail.com>, 2017. #zanata
-# Daniel Rusek <mail@asciiwolf.com>, 2018. #zanata
 # Jaroslav Rohel <jrohel@redhat.com>, 2018. #zanata
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-07-22 10:24+0000\n"
 "Last-Translator: Jaroslav Rohel <jrohel@redhat.com>\n"
 "Language-Team: Czech\n"
@@ -264,160 +263,170 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "Operace by vedla k odstranění následujících chráněných balíčků: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Repozitář %s nemá nastaveno žádné zrcadlo nebo baseurl."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Nelze najít platný baseURL pro repo: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Maximální rychlost stahování je nižší než minimální. Změňte prosím "
 "konfiguraci minrate nebo omezení"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "oživení: repozitář '%s' přeskočen, žádný MetaLink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "oživení: repozitář '%s' přeskočen, žádný použitelný hash."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "oživení: selhalo pro '%s', neshodující se součet %s."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "oživení: '%s' může být oživen - kontrolní součty MetaLinku odpovídají."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "oživení: '%s' může být oživen - repomd se shoduje."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "oživení: selhalo pro '%s', neshodující se repomd."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repozitář: použití mezipaměti pro: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Povoleno použítí jen mezipaměti, ale žádná vyrovnávací paměť pro '%s'"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Nelze stáhnout '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Chyba synchronizace mezipaměti pro repozitář '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -469,17 +478,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -580,65 +589,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -687,7 +723,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "neznámá jednotka '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "Procento '%s' je mimo rozsah"
@@ -721,59 +757,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -790,19 +826,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/da.po b/po/da.po
index 1ee1a8f..57aaa59 100644
--- a/po/da.po
+++ b/po/da.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-01-29 03:07+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Danish\n"
@@ -262,157 +262,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Kan ikke downloade '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -464,17 +474,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -575,65 +585,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -682,7 +719,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "ukendt enhed '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -716,59 +753,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -785,19 +822,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/de.po b/po/de.po
index a261dd5..3e93104 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-11-02 05:26+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: German\n"
@@ -22,40 +22,43 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "Umbenennung fehlgeschlagen %1$s zu %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "Fehler beim Setzen der Perms %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "Transaktion konnte nicht getrennt werden; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i Problem erkannt:\n"
+msgstr[1] "%i erkannte Probleme:\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " Problem %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " Problem: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
 msgstr ""
+"Falsch geformter Selector, Vorhandensein mehrerer Übereinstimmungsobjekte im"
+" Filter"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
-msgstr ""
+msgstr "Falscher Selektor für den Vorgang, falscher Vergleichstyp"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -237,193 +240,203 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "Kein Löser eingestellt"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "gescheitert zu machen %s absolut"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "Fehler beim Schreiben von Debugdata %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "keine solv im ziel"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "Keine Lösung, geschütztes Paket kann nicht entfernt werden"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "keine Lösung möglich"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
+"Die Operation würde zum Entfernen der folgenden geschützten Pakete führen: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "Schlechte id für repo: %s, Byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 "Paketquelle %s weist keine Spiegelserver- oder Baseurl-Einstellung auf."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "Repository '%s'hat nicht unterstützten Typ:' Typ =%s', überspringen."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Keine gültige baseurl gefunden für Paketquelle: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Die maximale Downloadgeschwindigkeit liegt unter der minimalen "
 "Downloadgeschwindigkeit. Bitte passen Sie die Einstellung von minrate oder "
 "throttle an"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "kann keine Schlüssel auflisten: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "Repo %s: 0x%s bereits importiert"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "Repo %s: importierter Schlüssel 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "Widerbeleben: Paketquelle '%s' übersprungen, kein Metalink"
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "Erneuern: Paketquelle '%s' übersprungen, kein benutzbarer Hash."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "Wiederbeleben: Fehler bei '%s', nicht passende %s Summe."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "Wiederbeleben: '%s' kann wiederbelebt werden - Metalink Prüfsumme gefunden."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "Erneuern: '%s' kann erneuert werden - repomd stimmt überein."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "Wiederbeleben: Fehler bei '%s', nicht übereinstimmende repomd"
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Repo-Verzeichnis kann nicht erstellt werden \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Verzeichnis kann nicht erstellt werden \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Verzeichnis kann nicht umbenannt werden \"%s\"bis\"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "Paketquelle: Cache verwenden für: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "»Nur Cache« aktiviert, aber kein Cache für »%s«"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "Repo: Herunterladen von Remote: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Kann nicht herunterladen '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
-"Zwischenspeicher für Paketquelle »%s« konnte nicht synchronisiert werden"
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir (): Die Berechnung von SHA256 ist fehlgeschlagen"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 "resume kann nicht gleichzeitig mit dem byterangestart-param verwendet werden"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Initialisierung von PackageTarget fehlgeschlagen: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Nicht öffnen können %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Protokollhandler mit ID %ld existiert nicht"
@@ -479,17 +492,17 @@ msgstr "Nicht genügend Freiraum in %1$s: erforderlich %2$s, verfügbar %3$s"
 msgid "failed to set root"
 msgstr "root konnte nicht gesetzt werden"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Error %i laufender Transaktionstest"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Error %i laufende Transaktion"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -593,66 +606,93 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "Signatur überprüft nicht %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "Fehler beim Öffnen (generischer Fehler): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "konnte den Schlüssel für nicht bestätigen %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "öffentlicher Schlüssel nicht verfügbar für %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "Signatur für nicht gefunden %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "Installationselement konnte nicht hinzugefügt werden: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Fehler beim Ausführen der Transaktion: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 "Fehler beim Ausführen der Transaktion und es wurden keine Probleme gemeldet!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Schwerwiegender Fehler, Datenbankwiederherstellung durchführen"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "Paket konnte nicht gefunden werden %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "Erase Element konnte nicht hinzugefügt werden %1$s(%2$i)"
@@ -701,7 +741,7 @@ msgstr "konnte nicht konvertieren%s'in Bytes"
 msgid "unknown unit '%s'"
 msgstr "Unbekannte Einheit '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "Prozentsatz '%s' liegt außerhalb des zulässigen Bereichs"
@@ -736,59 +776,59 @@ msgstr "Konfiguration: OptionBinding mit ID \"%s\" ist bereits vorhanden"
 msgid "could not convert '%s' to seconds"
 msgstr "konnte nicht konvertieren%s'zu Sekunden"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "Nein %1$d Zeichenfolge für %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "konnte nicht hinzugefügt werden"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "Gescheitert zu öffnen: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "temporäre Datei kann nicht erstellt werden: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "Fehler beim Öffnen der tmp-Datei: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main () konnte Daten nicht schreiben: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main () konnte die geschriebene Solv-Datei nicht erneut laden"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "kann keine temporäre Datei erstellen %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext (%1$d) ist fehlgeschlagen: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "Null-Repo-MD-Datei"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "kann Datei nicht lesen %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() has failed."
 
@@ -805,19 +845,19 @@ msgstr "Architektur konnte nicht automatisch erkannt werden"
 msgid "failed creating cachedir %s"
 msgstr "Fehler beim Erstellen von Cachedir %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "Fehler beim Berechnen der RPMDB-Prüfsumme"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "Fehler beim Laden der RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformer: kann nicht geöffnet werden"
 
diff --git a/po/el.po b/po/el.po
index ad66edf..df30e86 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:00+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Greek\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/es.po b/po/es.po
index 916e43f..1d82014 100644
--- a/po/es.po
+++ b/po/es.po
@@ -2,13 +2,14 @@
 # Máximo Castañeda Riloba <mcrcctm@gmail.com>, 2017. #zanata
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
 # Máximo Castañeda Riloba <mcrcctm@gmail.com>, 2018. #zanata
+# Ludek Janda <ljanda@redhat.com>, 2019. #zanata
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2018-11-12 11:34+0000\n"
-"Last-Translator: Máximo Castañeda Riloba <mcrcctm@gmail.com>\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2019-06-18 02:12+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
 "Language-Team: Spanish\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
@@ -20,40 +21,42 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "No se pudo renombrar %1$s a %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "No se pudieron cambiar los permisos para %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "No se pudieron resolver las dependencias para la transacción; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "Detectado %i problema:\n"
+msgstr[1] "Detectados %i problemas:\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " Problema %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " Problema: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
-msgstr ""
+msgstr "Selector mal formado; hay varios objetos de coincidencia en el filtro"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
 msgstr ""
+"Selector mal formado para la operación; tipo de comparación incorrecto"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -235,189 +238,199 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "no hay resolutor"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "no se pudo hacer %s absoluto"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "no se pudo escribir información de depuración en %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "no hay resolutor en el objetivo"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "no se encuentra solución; no se puede eliminar un paquete protegido"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "no hay solución posible"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
-msgstr ""
+msgstr "La operación eliminaría los siguientes paquetes protegidos: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "ID incorrecto para repositorio: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "El repositorio %s no tiene espejos ni URL base."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "El repository '%s' es de un tipo no admitido: 'type=%s', se omite."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "No se encuentra URL válida para el repositorio: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "La velocidad máxima de descarga es menor que la mínima. Cambie el ajuste de "
 "minrate o throttle."
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "no se pueden obtener las claves: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repo %s: clave 0x%s ya importada"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repo %s: importada clave 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "reviving: omitido el repositorio '%s', no hay metalink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "reviving: omitido el repositorio '%s', no se puede usar el hash."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "reviving: error para '%s', no coincide la suma %s."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "reviving: '%s' se puede reutilizar, las comprobaciones del metalink cuadran."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "reviving: '%s' se puede reutilizar, los metadatos coinciden."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "reviving: no se puede con '%s', los metadatos no coinciden."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "No se pudo crear el directorio temporal \"%s\" del repositorio: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "No se pudo crear el directorio \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "No se pudo renombrar el directorio \"%s\" a \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo: se usa caché para %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Se ha activado cache-only, pero no hay caché para '%s'."
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: descargando desde remoto: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "No se puede descargar '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "No se pudo sincronizar la caché para el repositorio '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): Falló el cálculo de SHA256"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "no se puede usar resume con el parámetro byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Falló la inicialización de PackageTarget: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "No se pudo abrir %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "No hay gestor de informes con id %ld"
@@ -477,17 +490,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr "no se pudo establecer la raíz"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Error %i al ejecutar la prueba de transacción"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Error %i al ejecutar transacción"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -590,67 +603,94 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "la firma no cuadra para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "no se pudo abrir (error genérico): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "no se pudo verificar la clave para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "clave pública no disponible para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "no se encontró la firma para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "no se pudo añadir el elemento de instalación: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Error al ejecutar la transacción: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 "Se ha producido un error al ejecutar la transacción, pero no se ha informado"
 " de problemas."
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Error fatal, ejecute recuperación de la base de datos"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "no se encontró el paquete %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "no se pudo añadir elemento de borrado %1$s (%2$i)"
@@ -699,7 +739,7 @@ msgstr "no se pudo transformar '%s' en bytes"
 msgid "unknown unit '%s'"
 msgstr "unidad '%s' desconocida"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "el valor del porcentaje (%s) se encuentra fuera del rango aceptable"
@@ -733,60 +773,60 @@ msgstr "Configuración: ya existe OptionBinding con id \"%s\""
 msgid "could not convert '%s' to seconds"
 msgstr "no se pudo convertir '%s' en segundos"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "no hay cadena %1$d para %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "no se pudo añadir resolutor"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "no se pudo abrir: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "no se pudo crear archivo temporal: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "no se pudo abrir archivo temporal: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "fallo en write_main() al escribir datos: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 "write_main () no pudo volver a cargar el archivo de resolución escrito"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "no se pudo crear archivo temporal %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "falló write_ext(%1$d): %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "nulo archivo md repo"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "no se pudo leer archivo %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "falló repo_add_solv()."
 
@@ -803,19 +843,19 @@ msgstr "no se pudo detectar la arquitectura"
 msgid "failed creating cachedir %s"
 msgstr "no se pudo crear el directorio de caché %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "no se pudo calcular la suma de comprobación de RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "no se pudo cargar la RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformador: no se puede abrir la historia."
 
diff --git a/po/eu.po b/po/eu.po
index 82c5415..9277735 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2016-06-16 03:51+0000\n"
 "Last-Translator: Asier Sarasua Garmendia <asier.sarasua@gmail.com>\n"
 "Language-Team: Basque\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Ezin da '%s' deskargatu: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -715,59 +752,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -784,19 +821,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/fa.po b/po/fa.po
index 96ad151..772fedd 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:05+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Persian\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/fi.po b/po/fi.po
index bc1945d..449e056 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2017-11-26 04:47+0000\n"
 "Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
 "Language-Team: Finnish\n"
@@ -262,157 +262,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Ei voi ladata '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Välimuistin synkronointi epäonnistui asennuslähteen'%s' kanssa"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -464,17 +474,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -575,65 +585,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -682,7 +719,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "tuntematon yksikkö '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -716,59 +753,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -785,19 +822,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/fil.po b/po/fil.po
index 097e72f..f92e17a 100644
--- a/po/fil.po
+++ b/po/fil.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-04-12 04:47+0000\n"
 "Last-Translator: Alvin Abuke <abuke.ac@gmail.com>\n"
 "Language-Team: Filipino\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Hindi mahagilap ang wastong baseurl para sa repo: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -715,59 +752,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -784,19 +821,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/fr.po b/po/fr.po
index 16f2b72..a7606f6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,13 +4,15 @@
 # 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
+# Ludek Janda <ljanda@redhat.com>, 2019. #zanata
+# corina roe <croe@redhat.com>, 2019. #zanata
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2019-05-21 06:12+0000\n"
-"Last-Translator: Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2019-07-30 10:35+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
 "Language-Team: French\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
@@ -275,164 +277,174 @@ msgid ""
 msgstr ""
 "L’opération résulterait en la suppression des packages protégés suivants : "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, 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:349
+#: ../libdnf/repo/Repo.cpp:340
 #, 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:358
+#: ../libdnf/repo/Repo.cpp:349
 #, 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:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Impossible de trouver une adresse de base pour le dépôt : %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 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:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "n’a pas pu lister les clés : %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr "%s: gpgme_set_protocol(): %s"
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr "%s: gpgme_op_assuan_transact_ext(): %s"
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "dépôt %s: 0x%s déjà importé"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "dépôt %s: clé importée 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, 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:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, 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:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, 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:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, 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:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "relance : « %s » peut être relancé - le repomd correspond."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "relance : échec pour « %s », le repomd ne correspond pas."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr "N’a pas pu créer le répertoire de destination du dépôt « %s »: %s"
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "N’a pas pu créer le répertoire temporaire du dépôt « %s »: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "N’a pas pu créer le répertoire « %s »: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "N’a pas pu renommer le répertoire « %s » en « %s »: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "dépôt : utilisation du cache pour : %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, 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:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "dépôt : téléchargement à distance en provenance de : %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Impossible de télécharger « %s » : %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Échec de la synchronisation du cache pour le dépôt « %s »"
+msgid "Failed to download metadata for repo '%s'"
+msgstr "Échec du chargement des métadonnées pour le dépôt « %s »"
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): computation de SHA256 a échoué"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 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:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "L’initialisation de Package Target a échoué : %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "impossible d’ouvrir %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Log handler ayant pour id %ld n’existe pas"
@@ -486,17 +498,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr "n’a pu réussi à définir root"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Erreur %i lors du test transactionnel"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Erreur %i pendant la transaction"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -603,65 +615,94 @@ msgstr "L'identifiant de la platforme est manquant dans %s"
 msgid "No valid Platform ID detected"
 msgstr "Aucun identifiant de plateforme n'a été détecté"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../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:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr "Valeurs par défaut en conflit avec le dépôt « %s » : %s"
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr "Impossible de charger les données Fail-Safe dans « %s »"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr "Impossible de charger les données Fail-Safe dans le module « %s.%s »"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr "Impossible de sauvegarder les données Fail-Safe dans « %s »"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr "Impossible de supprimer les données Fail-Safe dans « %s »"
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+"Aucune donnée modulaire disponible pour le paquet modulaire « % », ne peut "
+"pas être installé dans le système"
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "signature ne correspondant pas pour %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "n’a pas pu ouvrir(erreur générique): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "n’a pas pu vérifier la clé pour %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "clé publique non disponible pour %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "signature non trouvée pour %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, 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:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Erreur d’exécution pour la transaction : %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 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:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Erreur fatale, exécuter le recouvrement de la base de données"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "n’a pas pu trouver le package %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, 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)"
@@ -710,7 +751,7 @@ msgstr "n’a pu convertir « %s » en octets"
 msgid "unknown unit '%s'"
 msgstr "unité « %s » inconnue"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "le pourcentage « %s » est en dehors des limites"
@@ -744,59 +785,59 @@ msgstr "Configuration: OptionBinding ayant pour « %s » n’existe pas"
 msgid "could not convert '%s' to seconds"
 msgstr "n’a pu convertir « %s » en secondes"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "par de string %1$d pour %2$s"
+msgid "no %1$s string for %2$s"
+msgstr "par de string %1$s pour %2$s"
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "n’a pu ajouter solv"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "n’a pas pu ouvrir: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "n’a pas pu créer le fichier temporaire : %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "n’a pas pu ouvrir le fichier tmp : %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() n’a pu écrire les données : %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 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:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "n’a pas pu créer le fichier temporaire %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) a échoué : %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo md file"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, 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:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() a échoué."
 
@@ -813,19 +854,19 @@ msgstr "n’a pu auto-détecter l’architecture"
 msgid "failed creating cachedir %s"
 msgstr "n’a pu créer le cachedir %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "n’a pu calculer la somme de contrôle RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "n’a pu télécharger RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr "Aucun module par défaut n’a été trouvé"
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../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"
diff --git a/po/fur.po b/po/fur.po
index c32b720..30808b4 100644
--- a/po/fur.po
+++ b/po/fur.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-05-01 09:08+0000\n"
 "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
 "Language-Team: Friulian\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Il repository %s nol à stabilît nissun mirror o url di base."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Impussibil cjatâ un url di base valit pal repo: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Impussibil discjariâ '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "No si è rivâts a sincronizâ la cache pal repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "unitât '%s' no cognossude"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "la percentuâl '%s' e je fûr di scjale"
@@ -716,59 +753,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -785,19 +822,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/gu.po b/po/gu.po
index 7ea97f5..de5d644 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:13+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Gujarati\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/hi.po b/po/hi.po
index 01f9a75..23454dc 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:19+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Hindi\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/hu.po b/po/hu.po
index 36955f3..e0e7708 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2018-09-29 11:48+0000\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2018-10-21 11:30+0000\n"
 "Last-Translator: Teknős Ferenc <teknos.ferenc@gmail.com>\n"
 "Language-Team: Hungarian\n"
 "Language: hu\n"
@@ -28,7 +28,7 @@ msgstr ""
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "A tranzakció leállítása nem sikerült; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
@@ -263,161 +263,171 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "A(z) „%s” tárolóhoz nincs tükör vagy bázis-URL beállítva."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Nem található érvényes bázis-URL a tárolóhoz: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "A legnagyobb letöltési sebesség alacsonyabb mint a legkisebb. Módosítsa a "
 "minimális sebesség vagy a korlátozás beállítását"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "újraélesztés: „%s” tároló kihagyva, nincs metalink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "újraélesztés: „%s” tároló kihagyva, nincs használható hash."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "újraélesztés: „%s” esetén sikertelen, nem egyező %s összeg."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "újraélesztés: „%s” újraéleszthető – a metalink ellenőrzőösszegek egyeznek."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "újraélesztés: „%s” újraéleszthető – a repomd egyezik."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "újraélesztés: „%s” esetén sikertelen, nem egyező repomd."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Nem hozható létre könyvtár\"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "tároló: gyorsítótár használata a következőhöz: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 "Csak gyorsítótárazás engedélyezve, de nincs gyorsítótár a(z) „%s” tárolóhoz."
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "A(z) „%s” nem tölthető le: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "A(z) „%s” tároló gyorsítótárának szinkronizációja meghiúsult"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -469,17 +479,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -580,65 +590,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -687,7 +724,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "ismeretlen egység: „%s”"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "a(z) „%s” százalék a tartományon kívül esik"
@@ -725,59 +762,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -794,19 +831,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/ia.po b/po/ia.po
index d5916e6..e8363ba 100644
--- a/po/ia.po
+++ b/po/ia.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:26+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Interlingua\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/id.po b/po/id.po
index 62aa0b0..500829f 100644
--- a/po/id.po
+++ b/po/id.po
@@ -3,8 +3,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2016-10-11 11:14+0000\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2016-10-11 11:13+0000\n"
 "Last-Translator: sentabi <sentabi@fedoraproject.org>\n"
 "Language-Team: Indonesian\n"
 "Language: id\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Tidak bisa mengunduh '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Gagal sinkron ke repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -715,59 +752,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -784,19 +821,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/is.po b/po/is.po
index d2fa342..7312582 100644
--- a/po/is.po
+++ b/po/is.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:30+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Icelandic\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/it.po b/po/it.po
index a4395e3..b7784fc 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-11-02 05:26+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Italian\n"
@@ -21,40 +21,42 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "Rinominazione non riuscita %1$s a %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "Impostazioni non riuscite %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "Impossibile decodificare la transazione; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i problema rilevato:\n"
+msgstr[1] "%i problemi rilevati:\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " Problema %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " Problema: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
-msgstr ""
+msgstr "Selettore mal formato, presenza di più oggetti match nel filtro"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
 msgstr ""
+"Selettore mal formato utilizzato per l'operazione, tipo di confronto errato"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -236,194 +238,205 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "nessun set di risolutori"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "non è riuscito a fare %s assoluto"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "impossibile scrivere debugdata su %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "nessun solvente nell'obiettivo"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "nessuna soluzione, non è possibile rimuovere il pacchetto protetto"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "nessuna soluzione possibile"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
+"L'operazione comporterebbe la rimozione dei seguenti pacchetti protetti: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "Bad id per repo: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 "Per il repository %s non è impostato né il campo mirror né il campo baseurl."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "Deposito%s'ha tipo non supportato:' type =%s', saltando."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Impossibile trovare un baseurl valido per il repository: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "La velocità massima è minore di quella minima. Si prega di cambiare la "
 "configurazione del minrate o throttle"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "non posso elencare le chiavi: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "pronti contro termine %s: 0x%s già importato"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "pronti contro termine %s: chiave importata 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "riattivazione: repository '%s' saltato, nessun metalink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "riattivazione: repository '%s' saltato, nessun hash utilizzabile."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "riattivazione: non riuscita per '%s', checksum %s non corrispondente."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "riattivazione: '%s' può essere riattivato - il checksum del metalink "
 "corrisponde."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 "riattivazione: '%s' può essere riattivato, il file repomd corrisponde."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "riattivazione: non riuscita per '%s', il file repomd non corrisponde."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Impossibile creare la directory temporanea del repository \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Impossibile creare la directory \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Impossibile rinominare la directory \"%s\" a \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repository: uso della cache per %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Modalità solo cache abilitata, ma cache non presente per '%s'"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: download da remoto: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Impossibile scaricare '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Sincronizzazione cache non riuscita per il repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): Computation of SHA256 failed"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 "resume non può essere utilizzato contemporaneamente con il parametro "
 "byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Inizializzazione PackageTarget non riuscita: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Non si può aprire %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Gestore del registro con ID %ld non esiste"
@@ -480,17 +493,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr "impossibile impostare la radice"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Errore %i eseguire il test delle transazioni"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Errore %i transazione in corso"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -593,67 +606,94 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "la firma non verifica per %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "impossibile aprire (errore generico): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "impossibile verificare la chiave per %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "chiave pubblica non disponibile per %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "firma non trovata per %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "impossibile aggiungere l'elemento di installazione: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Errore durante l'esecuzione della transazione: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 "Errore durante l'esecuzione della transazione e non sono stati segnalati "
 "problemi!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Errore irreversibile, eseguire il ripristino del database"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "non è riuscito a trovare il pacchetto %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "impossibile aggiungere un elemento di cancellazione %1$s(%2$i)"
@@ -702,7 +742,7 @@ msgstr "non potevo convertire '%s'a byte"
 msgid "unknown unit '%s'"
 msgstr "unità sconosciuta '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "percentuale '%s' fuori scala"
@@ -736,59 +776,59 @@ msgstr "Configurazione: OptionBinding with id \"%s\" esiste già"
 msgid "could not convert '%s' to seconds"
 msgstr "non potevo convertire '%s'a secondi"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "no %1$d stringa per %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "non è riuscito ad aggiungere solv"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "non è riuscito ad aprire: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "non è possibile creare un file temporaneo: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "errore durante l'apertura del file tmp: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main () non è riuscito a scrivere i dati: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main () non è riuscito a ricaricare il file solv scritto"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "non è possibile creare un file temporaneo %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) has failed: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "file repo md null"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "non posso leggere il file %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() has failed."
 
@@ -805,19 +845,19 @@ msgstr "non è riuscito a rilevare automaticamente l'architettura"
 msgid "failed creating cachedir %s"
 msgstr "non è riuscito a creare cache %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "non riuscito a calcolare il checksum RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "errore durante il caricamento di RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformer: impossibile aprire la cron persist di storia"
 
diff --git a/po/ja.po b/po/ja.po
index 307abd6..7c8e4db 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,12 +1,14 @@
 # Casey Jones <nahareport@live.com>, 2018. #zanata
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+# Keiko Moriguchi <kemorigu@redhat.com>, 2019. #zanata
+# Ludek Janda <ljanda@redhat.com>, 2019. #zanata
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2018-09-11 12:30+0000\n"
-"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2019-07-30 10:15+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
 "Language-Team: Japanese\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
@@ -55,181 +57,181 @@ msgstr "操作に使用される不適格な Selector、間違った比較タイ
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
-msgstr ""
+msgstr " distupgrade リポジトリーには属しません"
 
 #: ../libdnf/goal/Goal.cpp:68 ../libdnf/goal/Goal.cpp:94
 msgid " has inferior architecture"
-msgstr ""
+msgstr " 下位のアーキテクチャーがあります"
 
 #: ../libdnf/goal/Goal.cpp:69
 msgid "problem with installed package "
-msgstr ""
+msgstr "インストールされたパッケージでの問題 "
 
 #: ../libdnf/goal/Goal.cpp:70 ../libdnf/goal/Goal.cpp:96
 msgid "conflicting requests"
-msgstr ""
+msgstr "競合する要求"
 
 #: ../libdnf/goal/Goal.cpp:71 ../libdnf/goal/Goal.cpp:97
 msgid "unsupported request"
-msgstr ""
+msgstr "サポートされない要求"
 
 #: ../libdnf/goal/Goal.cpp:72 ../libdnf/goal/Goal.cpp:98
 msgid "nothing provides requested "
-msgstr ""
+msgstr "要求者に何も提供されません "
 
 #: ../libdnf/goal/Goal.cpp:73
 #, c-format
 msgid "package %s does not exist"
-msgstr ""
+msgstr "パッケージ %s は存在しません"
 
 #: ../libdnf/goal/Goal.cpp:74 ../libdnf/goal/Goal.cpp:100
 msgid " is provided by the system"
-msgstr ""
+msgstr " システムが提供します"
 
 #: ../libdnf/goal/Goal.cpp:75 ../libdnf/goal/Goal.cpp:101
 msgid "some dependency problem"
-msgstr ""
+msgstr "一部の依存関係の問題"
 
 #: ../libdnf/goal/Goal.cpp:76
 msgid "cannot install the best update candidate for package "
-msgstr ""
+msgstr "パッケージ用の最良の更新候補をインストールできません "
 
 #: ../libdnf/goal/Goal.cpp:77 ../libdnf/goal/Goal.cpp:103
 msgid "cannot install the best candidate for the job"
-msgstr ""
+msgstr "ジョブの最良候補をインストールできません"
 
 #: ../libdnf/goal/Goal.cpp:78
 #, c-format
 msgid "package %s is excluded"
-msgstr ""
+msgstr "パッケージ %s は除外されました"
 
 #: ../libdnf/goal/Goal.cpp:79
 #, c-format
 msgid "package %s does not have a compatible architecture"
-msgstr ""
+msgstr "パッケージ %s には、互換性のあるアーキテクチャーはありません"
 
 #: ../libdnf/goal/Goal.cpp:80
 #, c-format
 msgid "package %s is not installable"
-msgstr ""
+msgstr "パッケージ %s はインストールできません"
 
 #: ../libdnf/goal/Goal.cpp:81
 #, c-format
 msgid "nothing provides %s needed by %s"
-msgstr ""
+msgstr "%s が必要な %s は何も提供されません"
 
 #: ../libdnf/goal/Goal.cpp:82
 #, c-format
 msgid "cannot install both %s and %s"
-msgstr ""
+msgstr "%s と %s の両方ともインストールできません"
 
 #: ../libdnf/goal/Goal.cpp:83
 #, c-format
 msgid "package %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "パッケージ %s は、%s が提供する %s と競合します"
 
 #: ../libdnf/goal/Goal.cpp:84
 #, c-format
 msgid "package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "パッケージ %s は、%s が提供する %s を推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:85
 #, c-format
 msgid "installed package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "インストールされたパッケージ %s は、%s が提供する %s を推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:86
 #, c-format
 msgid "package %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "パッケージ %s は、%s が提供する %s を暗黙的に推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:87
 #, c-format
 msgid "package %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "パッケージ %s は %s が必要ですが、インストールできるプロバイダーはありません"
 
 #: ../libdnf/goal/Goal.cpp:88
 #, c-format
 msgid "package %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "パッケージ %s は、自身が提供する %s と競合します"
 
 #: ../libdnf/goal/Goal.cpp:89
 #, c-format
 msgid "both package %s and %s obsolete %s"
-msgstr ""
+msgstr "パッケージ %s と %s の両方とも、%s を推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:95
 msgid "problem with installed module "
-msgstr ""
+msgstr "インストールされたモジュールでの問題 "
 
 #: ../libdnf/goal/Goal.cpp:99
 #, c-format
 msgid "module %s does not exist"
-msgstr ""
+msgstr "モジュール %s は存在しません"
 
 #: ../libdnf/goal/Goal.cpp:102
 msgid "cannot install the best update candidate for module "
-msgstr ""
+msgstr "モジュール用の最良の更新候補をインストールできません "
 
 #: ../libdnf/goal/Goal.cpp:104
 #, c-format
 msgid "module %s is disabled"
-msgstr ""
+msgstr "モジュール %s は無効になっています"
 
 #: ../libdnf/goal/Goal.cpp:105
 #, c-format
 msgid "module %s does not have a compatible architecture"
-msgstr ""
+msgstr "モジュール %s には互換性のあるアーキテクチャーがありません"
 
 #: ../libdnf/goal/Goal.cpp:106
 #, c-format
 msgid "module %s is not installable"
-msgstr ""
+msgstr "モジュール %s はインストールできません"
 
 #: ../libdnf/goal/Goal.cpp:107
 #, c-format
 msgid "nothing provides %s needed by module %s"
-msgstr ""
+msgstr "モジュール %s が必要な %s は何も提供されません"
 
 #: ../libdnf/goal/Goal.cpp:108
 #, c-format
 msgid "cannot install both modules %s and %s"
-msgstr ""
+msgstr "モジュール %s と %s の両方ともインストールできません"
 
 #: ../libdnf/goal/Goal.cpp:109
 #, c-format
 msgid "module %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "モジュール %s は、%s が提供する %s と競合します"
 
 #: ../libdnf/goal/Goal.cpp:110
 #, c-format
 msgid "module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "モジュール %s は、%s が提供する %s を推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:111
 #, c-format
 msgid "installed module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "インストールされたモジュール %s は、%s が提供する %s を推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:112
 #, c-format
 msgid "module %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "モジュール %s は、%s が提供する %s を暗黙的に推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:113
 #, c-format
 msgid "module %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "モジュール %s は %s が必要ですが、インストールできるプロバイダーはありません"
 
 #: ../libdnf/goal/Goal.cpp:114
 #, c-format
 msgid "module %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "モジュール %s は、自身が提供する %s と競合します"
 
 #: ../libdnf/goal/Goal.cpp:115
 #, c-format
 msgid "both module %s and %s obsolete %s"
-msgstr ""
+msgstr "モジュール %s と %s の両方とも、%s を推奨しません"
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
@@ -262,157 +264,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "操作は結果的に以下の保護されたパッケージを削除します: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr "repo に対する不正な id: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "リポジトリー %s にはミラーまたは baseurl セットがありません。"
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr "リポジトリー '%s' にはサポートされていないタイプがあります: 'type=%s'、スキッピング。"
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "repo に対して有効な baseurl を見つけられません: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr "ダウンロードの最高速度は、最低速度よりも低いです。minrate またはスロットルの設定を変更してください。"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "キーを一覧表示できません: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr "%s: gpgme_set_protocol(): %s"
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr "%s: gpgme_op_assuan_transact_ext(): %s"
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repo %s: 0x%s はインポート済みです"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repo %s: インポート済みのキー 0x%s。"
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "復元中: repo '%s' はスキップされました、metalink はありません。"
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "復元中: repo '%s' はスキップされました、使用可能なハッシュはありません。"
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "復元中: '%s' は失敗しました、%s の合計は一致しません。"
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "復元中: '%s' は復元できます - metalink チェックサムが一致します。"
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "復元中: '%s' は復元できます - repomd が一致します。"
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "復元中:  '%s' に失敗しました、repomd が一致しません。"
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
-msgstr ""
+msgstr "repo 出力先ディレクトリー \"%s\" を作成できません: %s"
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "repo 一時ディレクトリー \"%s\" を作成できません: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "ディレクトリー \"%s\" を作成できません: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "ディレクトリー名を \"%s\" から \"%s\" へと変更できません: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo: キャッシュを使用: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "キャッシュオンリーが有効になっていますが、'%s' に対するキャッシュはありません"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: リモートからダウンロード中: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "'%s' をダウンロードできません: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "repo '%s' のキャッシュの同期に失敗しました"
+msgid "Failed to download metadata for repo '%s'"
+msgstr "repo '%s' のメタデータのダウンロードに失敗しました。"
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): SHA256 のコンピュテーションに失敗しました"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume は byterangestart param と同時に使用できません"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget の初期化に失敗しました: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "%s を開くことができません: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "id %ld を伴うログハンドラーは存在しません"
@@ -464,17 +476,17 @@ msgstr "%1$s に十分なスペースがありません: %2$s 必要で、利用
 msgid "failed to set root"
 msgstr "root の設定に失敗しました"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "トランザクションテストの実行中にエラー %i"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "トランザクションの実行中にエラー %i"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "トランザクションは書き込みフェーズまで行きませんでしたが、エラー(%i) は返しませんでした"
@@ -492,37 +504,37 @@ msgstr "%s の削除に失敗しました"
 #: ../libdnf/plugin/plugin.cpp:46
 #, c-format
 msgid "Can't load shared library \"%s\": %s"
-msgstr ""
+msgstr "共有ライブラリー \"%s\" をロードできません: %s"
 
 #: ../libdnf/plugin/plugin.cpp:61 ../libdnf/plugin/plugin.cpp:67
 #: ../libdnf/plugin/plugin.cpp:73 ../libdnf/plugin/plugin.cpp:79
 #, c-format
 msgid "Can't obtain address of symbol \"%s\": %s"
-msgstr ""
+msgstr "シンボル \"%s\" のアドレスを取得できません: %s"
 
 #: ../libdnf/plugin/plugin.cpp:86
 #, c-format
 msgid "Loading plugin file=\"%s\""
-msgstr ""
+msgstr "プラグイン file=\"%s\" をロード中"
 
 #: ../libdnf/plugin/plugin.cpp:89
 #, c-format
 msgid "Loaded plugin name=\"%s\", version=\"%s\""
-msgstr ""
+msgstr "ロードされたプラグイン name=\"%s\"、version=\"%s\""
 
 #: ../libdnf/plugin/plugin.cpp:96
 msgid "Plugins::loadPlugins() dirPath cannot be empty"
-msgstr ""
+msgstr "Plugins::loadPlugins() dirPath は空にはできません"
 
 #: ../libdnf/plugin/plugin.cpp:105
 #, c-format
 msgid "Can't read plugin directory \"%s\": %s"
-msgstr ""
+msgstr "プラグインディレクトリー \"%s\" を読み込みできません: %s"
 
 #: ../libdnf/plugin/plugin.cpp:114
 #, c-format
 msgid "Can't load plugin \"%s\": %s"
-msgstr ""
+msgstr "プラグイン \"%s\" をロードできません: %s"
 
 #: ../libdnf/dnf-state.cpp:1183
 #, c-format
@@ -551,89 +563,116 @@ msgstr "すでに 100%% の状態 [%s] にあります"
 #: ../libdnf/module/ModulePackage.cpp:413
 #, c-format
 msgid "Invalid format of Platform module: %s"
-msgstr ""
+msgstr "プラットフォームモジュールの無効なフォーマット: %s"
 
 #: ../libdnf/module/ModulePackage.cpp:428
 msgid "Multiple module platforms provided by available packages\n"
-msgstr ""
+msgstr "利用可能なパッケージによって提供された複数のモジュールプラットフォーム\n"
 
 #: ../libdnf/module/ModulePackage.cpp:441
 msgid "Multiple module platforms provided by installed packages\n"
-msgstr ""
+msgstr "インストールされたパッケージによって提供された複数のモジュールプラットフォーム\n"
 
 #: ../libdnf/module/ModulePackage.cpp:468
 #, c-format
 msgid "Detection of Platform Module in %s failed: %s"
-msgstr ""
+msgstr "%s でのプラットフォームモジュールの検出に失敗しました: %s"
 
 #: ../libdnf/module/ModulePackage.cpp:477
 #, c-format
 msgid "Missing PLATFORM_ID in %s"
-msgstr ""
+msgstr "%s に PLATFORM_ID がありません"
 
 #: ../libdnf/module/ModulePackage.cpp:482
 msgid "No valid Platform ID detected"
-msgstr ""
+msgstr "有効なプラットフォーム ID は検出されませんでした"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
-msgstr ""
+msgstr "モジュール '%s' に複数のストリームを有効にできません"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
-msgstr ""
+msgstr "repo '%s' で競合するデフォルト: %s"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr "'%s' での モジュラー Fail-Safe データのロードができません"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr "モジュラー '%s の モジュラー Fail-Safe データのロードができません:%s'"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr "モジュラー Fail Safe データを '%s' へ保存できませんでした"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr "'%s' のモジュラー Fail Safe データを削除できませんでした"
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr "モジュラーパッケージ '%s' に利用可能なモジュラーメタデータはありません。システムにインストールできません"
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "署名は %s を確認しません"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "開くことに失敗しました(ジェネリックエラー): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "%s のキーの確認に失敗しました"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "%s は公開鍵を利用できません"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "%s の署名は見つかりませんでした"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "インストールの要素の追加に失敗しました: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "トランザクションの実行中にエラーが発生しました: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "トランザクションの実行中にエラーが発生しましたが、問題は報告されませんでした!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "致命的なエラー、データベースリカバリーを実行します"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "パッケージ %s を見つけることができませんでした"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "erase 要素 %1$s(%2$i) を追加することができません"
@@ -682,7 +721,7 @@ msgstr "'%s' を バイトへ変換できませんでした"
 msgid "unknown unit '%s'"
 msgstr "不明な単位 '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "パーセンテージ '%s' が範囲外にあります"
@@ -716,59 +755,59 @@ msgstr "設定: id \"%s\" を伴う OptionBinding はすでに存在します"
 msgid "could not convert '%s' to seconds"
 msgstr "'%s' を 秒に変換できません"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "%2$s には %1$d 文字列はありません"
+msgid "no %1$s string for %2$s"
+msgstr "%2$s には %1$s ストリングがありません"
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "solv の追加に失敗しました"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "開くことに失敗しました: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "一時ファイルを作成できません: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "tmp ファイルを開くことに失敗しました: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() はデータの書き込みに失敗しました: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() は、書き込みされた solv ファイルの再ロードに失敗しました"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "一時ファイル %s を作成できません"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) は失敗しました: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo md ファイル"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "ファイル %1$s を読み込みできません: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() は失敗しました。"
 
@@ -785,19 +824,19 @@ msgstr "アーキテクチャーの自動検出に失敗しました"
 msgid "failed creating cachedir %s"
 msgstr "cachedir %s の作成に失敗しました"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "RPMDB チェックサムの計算に失敗しました"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "RPMDB のロードに失敗しました"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
-msgstr ""
+msgstr "モジュールのデフォルトは見つかりませんでした"
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "トランスフォーマー: 履歴の残った dir を開くことができません"
 
diff --git a/po/kn.po b/po/kn.po
index 1011163..126356c 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:48+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Kannada\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/ko.po b/po/ko.po
index 842ed0d..2c732eb 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: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\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"
@@ -21,40 +21,40 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "이름 바꾸기 실패 %1$s 에 %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "perms 설정 실패 %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "트랜잭션을 해석 할 수 없습니다. "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i 발견 된 문제 :\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " 문제 %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " 문제: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
-msgstr ""
+msgstr "잘못된 형식의 선택기, 필터에 일치하는 개체가 여러 개 있음"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
-msgstr ""
+msgstr "조작에 잘못 형성된 선택자, 잘못된 비교 유형"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -236,186 +236,196 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "아무 해결사도 없다."
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "실패한 %s 순수한"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "디버그 데이터를 쓰지 못했습니다. %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "목표에 솔로가 없다."
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "해결책 없음, 보호 된 패키지를 제거 할 수 없음"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "해결책 없음"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
-msgstr ""
+msgstr "이 작업으로 인해 다음과 같은 보호 패키지가 제거됩니다. "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "repo에 대한 ID가 잘못되었습니다. %s, 바이트 = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
-msgstr ""
+msgstr "저장소 %s 거울이나 기둥이 없습니다."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "저장소 '%s'에 지원되지 않는 유형이 있습니다 :'type =%s', 건너 뛰기."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
-msgstr ""
+msgstr "repo에 유효한 baseurl을 찾을 수 없습니다. %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
-msgstr ""
+msgstr "최대 다운로드 속도가 최소값보다 낮습니다. 최소 속도 또는 스로틀의 구성을 변경하십시오."
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "열쇠를 나열 할 수 없습니다 : %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "레포 %s: 0x%s 이미 수입"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "레포 %s: 가져온 키 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "부활 : repo '%s'건너 뛰었습니다."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "부활 : repo '%s'건너 뛰었습니다. 사용 가능한 해시가 없습니다."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "되살리기 : 실패한 '%s', 불일치 %s 합집합."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - metalink 체크섬이 일치합니다."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "되살아 난다 : '%s'부활 할 수 있습니다 - repomd가 일치합니다."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "되살리기 : 실패한 '%s', 일치하지 않는 repomd."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "임시 저장소 디렉토리를 만들 수 없습니다 \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "디렉토리를 만들 수 없습니다 \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "디렉터리 이름을 바꿀 수 없습니다 \"%s\"~\"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo : 캐시 사용 : %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "캐시 만 사용 가능하지만 '%s'"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo : 원격에서 다운로드 중 : %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "다운로드 할 수 없습니다 '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "repo의 캐시를 동기화하는 데 실패했습니다.%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir () : SHA256 계산에 실패했습니다."
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "이력서는 byterangestart 매개 변수와 동시에 사용할 수 없습니다."
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget 초기화에 실패했습니다 : %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "열 수 없다 %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "ID가있는 로그 처리기 %ld 존재하지 않는다."
@@ -467,17 +477,17 @@ msgstr "여유 공간이 부족합니다. %1$s: 필요 %2$s, 이용 가능 %3$s"
 msgid "failed to set root"
 msgstr "루트를 설정하지 못했습니다."
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "오류 %i 실행중인 트랜잭션 테스트"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "오류 %i 실행중인 거래"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "트랜잭션이 쓰기 단계로 이동하지 않았지만 오류를 반환하지 않았습니다 (%i)"
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "서명이 확인하지 않음 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "열지 못했습니다 (일반 오류). %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "에 대한 키를 확인하지 못했습니다. %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "사용할 수없는 공개 키 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "서명이 없습니다. %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "설치 요소를 추가하지 못했습니다. %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "트랜잭션 실행 오류 : %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "트랜잭션을 실행하는 중 오류가 발생했으며 아무런 문제도보고되지 않았습니다!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "치명적인 오류, 데이터베이스 복구 실행"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "꾸러미를 찾지 못했습니다. %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "요소 지우기를 추가 할 수 없습니다. %1$s(%2$i)"
@@ -685,7 +722,7 @@ msgstr "변환 할 수 없습니다 '%s'~ 바이트"
 msgid "unknown unit '%s'"
 msgstr "알 수없는 단위 '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "백분율 '%s'범위를 벗어났습니다."
@@ -719,59 +756,59 @@ msgstr "구성 : ID가 \"%s\" 이미 존재 함"
 msgid "could not convert '%s' to seconds"
 msgstr "변환 할 수 없습니다 '%s'초까지"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "아니 %1$d 문자열 %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "solv를 추가하지 못했습니다."
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "열지 못했습니다 : %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "임시 파일을 만들 수 없습니다. %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "여는 tmp 파일을 열지 못했습니다. %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() failed writing data: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main ()이 작성된 solv 파일을 다시로드하지 못했습니다."
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "임시 파일을 만들 수 없습니다. %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) has failed: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo md 파일"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "파일을 읽을 수 없습니다. %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() has failed."
 
@@ -788,19 +825,19 @@ msgstr "아키텍처 자동 검색에 실패했습니다."
 msgid "failed creating cachedir %s"
 msgstr "캐시 된 생성 실패 %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "RPMDB 체크섬 계산 실패"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "RPMDB로드 실패"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "변압기 : 역사를 열 수 없습니다."
 
diff --git a/po/libdnf.pot b/po/libdnf.pot
index 9a9bc82..8758be0 100644
--- a/po/libdnf.pot
+++ b/po/libdnf.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -266,157 +266,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of "
 "minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -468,17 +478,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -579,65 +589,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -686,7 +723,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -720,59 +757,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -789,19 +826,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/mai.po b/po/mai.po
index e439035..4f81d24 100644
--- a/po/mai.po
+++ b/po/mai.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 03:58+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Maithili\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/ml.po b/po/ml.po
index 6a45318..78df0fc 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 04:03+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Malayalam\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/mr.po b/po/mr.po
index a748240..9c183ba 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 04:08+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Marathi\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/nb.po b/po/nb.po
index 2e75b44..0c2ac09 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 04:14+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Norwegian Bokmål\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/nl.po b/po/nl.po
index a597625..c2256e7 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2017-06-18 09:17+0000\n"
 "Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
 "Language-Team: Dutch\n"
@@ -262,160 +262,170 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Repository %s heeft geen spiegel of baseurl set."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Kan geen geldige baseurl voor repo vinden: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Maximale download snelheid is lader dan het minimum. Verander de "
 "configuratie van minrate of throttle"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "vernieuwen: repo '%s' wordt overgeslagen, geen metalink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "vernieuwen: repo '%s' wordt overgeslagen, geen bruikbare hash."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "reviving: mislukte voor '%s', niet overeenkomende %s som."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "reviving: '%s' kan verniewd worden - metalink checksums komen overeen."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "reviving: '%s' kan vernieuwd worden - repomd komt overeen."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "reviving: mislukte voor '%s', repomd kpmt niet overeen."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo: cache wordt gebruikt voor: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Cache-only aangezet maar er is geen cache voor '%s'"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Kan '%s' niet downloaden: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Synchroniseren van cache voor repo '%s' is niet gelukt"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "onbekende unit '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "percentage '%s' valt buiten de reeks"
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/or.po b/po/or.po
index ee057b7..9898fd4 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 04:27+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Oriya\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/pa.po b/po/pa.po
index 009fc45..5d27393 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-04-15 10:02+0000\n"
 "Last-Translator: A S Alam <aalam@fedoraproject.org>\n"
 "Language-Team: Punjabi\n"
@@ -262,157 +262,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "'%s' ਨੂੰ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ: %s।"
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "'%s' ਰਿਪੋਜ਼ਟਰੀ ਨਾਲ ਕੈਸ਼ ਨੂੰ ਸੈਕਰੋਨਾਈਜ਼ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -464,17 +474,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -575,65 +585,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -682,7 +719,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "ਅਣਪਛਾਤੀ ਇਕਾਈ '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "'%s' ਫ਼ੀਸਦੀ ਹੱਦ ਤੋਂ ਬਾਹਰ ਹੈ"
@@ -716,59 +753,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -785,19 +822,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/pl.po b/po/pl.po
index 0ef2651..32d1616 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -12,8 +12,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2019-04-20 11:26+0000\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2019-06-18 04:44+0000\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/dnf/language/pl/)\n"
 "Language: pl\n"
@@ -280,166 +280,175 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "Działanie spowodowałoby usunięcie tych chronionych pakietów: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr "Błędny identyfikator dla repozytorium: %s, bajt = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 "Repozytorium %s nie ma ustawionego serwera lustrzanego ani podstawowego "
 "adresu URL."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr "Repozytorium „%s” ma nieobsługiwany typ: „type=%s”, pomijanie."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 "Nie można odnaleźć prawidłowego podstawowego adresu URL dla repozytorium: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Maksymalna prędkość pobierania jest mniejsza niż minimalna. Proszę zmienić "
 "konfigurację „minrate” lub „throttle”"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "nie można wyświetlić listy kluczy: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr "%s: gpgme_set_protocol(): %s"
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr "%s: gpgme_op_assuan_transact_ext(): %s"
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repozytorium %s: 0x%s jest już zaimportowane"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repozytorium %s: zaimportowano klucz 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "odnawianie: pominięto repozytorium „%s”, brak metaodnośnika."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 "odnawianie: pominięto repozytorium „%s”, brak sumy kontrolnej możliwej do "
 "użycia."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "odnawianie: niepowodzenie dla „%s”, suma kontrolna %s się nie zgadza."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "odnawianie: można odnowić „%s” — sumy kontrolne metaodnośnika się zgadzają."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "odnawianie: można odnowić „%s” — repomd się zgadza."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "odnawianie: niepowodzenie dla „%s”, repomd się nie zgadza."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr "Nie można utworzyć katalogu docelowego repozytorium „%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Nie można utworzyć katalogu tymczasowego repozytorium „%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Nie można utworzyć katalogu „%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Nie można zmienić nazwy katalogu „%s” na „%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repozytorium: używanie pamięci podręcznej dla: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Włączono tylko pamięć podręczną, ale brak pamięci podręcznej dla „%s”"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repozytorium: pobieranie z serwera: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Nie można pobrać „%s”: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr ""
-"Synchronizacja pamięci podręcznej dla repozytorium „%s” się nie powiodła"
+msgid "Failed to download metadata for repo '%s'"
+msgstr "Pobranie metadanych repozytorium „%s” się nie powiodło"
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): obliczenie sumy SHA256 się nie powiodło"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "nie można używać wznawiania jednocześnie z parametrem byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Inicjacja PackageTarget się nie powiodła: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Nie można otworzyć %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Program obsługujący dziennik o identyfikatorze %ld nie istnieje"
@@ -496,17 +505,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr "ustawienie roota się nie powiodło"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Błąd %i podczas wykonywania testu transakcji"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Błąd %i podczas wykonywania transakcji"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -608,66 +617,96 @@ msgstr "Brak PLATFORM_ID w %s"
 msgid "No valid Platform ID detected"
 msgstr "Nie wykryto prawidłowego identyfikatora platformy"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr "Nie można włączyć wielu strumieni dla modułu „%s”"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr "Sprzeczne domyślne z repozytorium „%s”: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr "Wczytanie modularnych danych Fail-Safe w „%s” się nie powiodło"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+"Wczytanie modularnych danych Fail-Safe dla modułu „%s:%s” się nie powiodło"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr "Usunięcie modularnych danych Fail Safe w „%s” się nie powiodło"
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+"Brak dostępnych modularnych metadanych dla modularnego pakietu „%s”, nie "
+"można zainstalować na komputerze"
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "podpis nie jest poprawny dla %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "otwarcie się nie powiodło (ogólny błąd): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "sprawdzenie poprawności klucza dla %s się nie powiodło"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "klucz publiczny dla %s jest niedostępny"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "nie odnaleziono podpisu dla %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "dodanie elementu instalacji się nie powiodło: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Błąd podczas wykonywania transakcji: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 "Błąd podczas wykonywania transakcji, ale nie zgłoszono żadnych błędów."
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Błąd krytyczny, proszę wykonać przywracanie bazy danych"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "odnalezienie pakietu %s się nie powiodło"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "nie można dodać elementu usunięcia %1$s(%2$i)"
@@ -716,7 +755,7 @@ msgstr "nie można przekonwertować „%s” na bajty"
 msgid "unknown unit '%s'"
 msgstr "nieznana jednostka „%s”"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "procent „%s” jest poza zakresem"
@@ -750,61 +789,61 @@ msgstr "Konfiguracja: OptionBinding o identyfikatorze „%s” już istnieje"
 msgid "could not convert '%s' to seconds"
 msgstr "nie można przekonwertować „%s” na sekundy"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "brak ciągu %1$d dla %2$s"
+msgid "no %1$s string for %2$s"
+msgstr "brak ciągu %1$s dla %2$s"
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "dodanie mechanizmu rozwiązywania się nie powiodło"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "otwarcie się nie powiodło: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "nie można utworzyć pliku tymczasowego: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "otwarcie pliku tymczasowego się nie powiodło: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "zapisanie danych przez write_main() się nie powiodło: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 "ponowne wczytanie zapisanego pliku mechanizmu rozwiązywania przez "
 "write_main() się nie powiodło"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "nie można utworzyć pliku tymczasowego %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) się nie powiodło: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "pusty plik md repozytorium"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "nie można odczytać pliku %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() się nie powiodło."
 
@@ -821,19 +860,19 @@ msgstr "automatyczne wykrycie architektury się nie powiodło"
 msgid "failed creating cachedir %s"
 msgstr "utworzenie katalogu pamięci podręcznej %s się nie powiodło"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "obliczenie sumy kontrolnej bazy danych RPM się nie powiodło"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "wczytanie bazy danych RPM się nie powiodło"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr "Nie odnaleziono domyślnych modułu"
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformer: nie można otworzyć katalogu trwałej historii"
 
diff --git a/po/pt.po b/po/pt.po
index 6d2338e..fe74fae 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2017-01-14 05:19+0000\n"
 "Last-Translator: Joao Almeida <intjalmeida@gmail.com>\n"
 "Language-Team: Portuguese\n"
@@ -262,157 +262,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Não foi possível descarregar '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Falha ao sincronizar a cache para o repositório '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -464,17 +474,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -575,65 +585,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -682,7 +719,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "unidade desconhecida '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "a percentagem '%s' está fora do intervalo"
@@ -716,59 +753,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -785,19 +822,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/pt_BR.po b/po/pt_BR.po
index c0c8b6d..67b9c97 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-11-02 05:26+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Portuguese (Brazil)\n"
@@ -21,40 +21,44 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "Falha ao renomear %1$s para %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "Falha na configuração de perms on %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "Não foi possível descartar a transação; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i problema detectado:\n"
+msgstr[1] "%i problemas detectados:\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " Problema %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " Problema: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
 msgstr ""
+"Seletor mal formado, presença de múltiplos objetos de correspondência no "
+"filtro"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
 msgstr ""
+"Seletor mal formado usado para a operação, tipo de comparação incorreto"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -236,189 +240,199 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "nenhum conjunto de solver"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "não conseguiu fazer %s absoluto"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "Falha ao gravar debugdata para %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "sem solv na meta"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "sem solução, não é possível remover o pacote protegido"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "nenhuma solução possível"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
-msgstr ""
+msgstr "A operação resultaria na remoção dos seguintes pacotes protegidos: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "Bad id para repo: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Repositório %s não possui espelho ou baseurl definido."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "Repositório%s'tem tipo não suportado:' type =%s', pulando."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Impossível encontrar uma baseurl válida para o repo: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Velocidade máxima de download é menor que o mínimo. Altere a configuração de"
 " minrate ou throttle."
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "não pode listar chaves: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repo %s: 0 x%s já importado"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repo %s: chave importada 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "reativando: repo '%s' ignorado, sem metalink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "reativando: repo '%s' ignorado, nenhum hash utilizável."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "reativando: falhou por '%s', checksum %s não coincide."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "reativando: '%s' pode ser reativado - checksum do metalink coincide."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "reativando: '%s' pode ser reativado - repomd coincide."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "reativando: falhou por '%s', repomd não coincide."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Não é possível criar o diretório temporário do repositório \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Não é possível criar o diretório \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Não é possível renomear o diretório \"%s\" para \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo: utilizando cache para: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Cache-only habilitado mas sem cache para '%s'"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: download do controle remoto: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Não foi possível baixar '%s':%s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Falha ao sincronizar cache para o repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir (): Falha na computação de SHA256"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 "currículo não pode ser usado simultaneamente com o parâmetro byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Falha na inicialização do PackageTarget: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Não pode abrir %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Manipulador de log com id %ld não existe"
@@ -474,17 +488,17 @@ msgstr "Não há espaço livre suficiente %1$s: necessário %2$s, acessível %3$
 msgid "failed to set root"
 msgstr "não conseguiu definir raiz"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Erro %i executando o teste de transação"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Erro %i transação em execução"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -587,65 +601,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "assinatura não verifica para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "Falha ao abrir (erro genérico): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "Falha ao verificar chave para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "chave pública indisponível para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "assinatura não encontrada para %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "Falha ao adicionar o elemento de instalação: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Erro ao executar a transação: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "Erro ao executar a transação e nenhum problema foi relatado!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Erro fatal, execute a recuperação do banco de dados"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "não encontrou o pacote %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "não foi possível adicionar o elemento apagar %1$s(%2$i)"
@@ -694,7 +735,7 @@ msgstr "não foi possível converter '%s'para bytes"
 msgid "unknown unit '%s'"
 msgstr "unidade desconhecida '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "porcentagem '%s' está fora do intervalo"
@@ -728,59 +769,59 @@ msgstr "Configuração: OptionBinding com id \"%s\" já existe"
 msgid "could not convert '%s' to seconds"
 msgstr "não foi possível converter '%s'para segundos"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "não %1$d string para %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "não conseguiu adicionar solv"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "falhou para abrir: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "não é possível criar um arquivo temporário: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "Falha ao abrir o arquivo tmp: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main () falhou ao gravar dados: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main () falhou ao recarregar um arquivo resolvido por escrito"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "não pode criar um arquivo temporário %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) has failed: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "arquivo nulo repo md"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "não consigo ler o arquivo %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv () falhou."
 
@@ -797,19 +838,19 @@ msgstr "Falha ao detectar automaticamente a arquitetura"
 msgid "failed creating cachedir %s"
 msgstr "Falha ao criar o Cachedir %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "Falha ao calcular a soma de verificação do RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "falha ao carregar o RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformador: não é possível abrir o histórico persistir dir"
 
diff --git a/po/ru.po b/po/ru.po
index c800c70..bbd2d89 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-11-02 05:26+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Russian\n"
@@ -18,40 +18,44 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "Неудачное переименование %1$s в %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "Не удалось установить perms on %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "Не удалось выполнить деполяцию; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i обнаружена проблема:\n"
+msgstr[1] "%i обнаруженные проблемы:\n"
+msgstr[2] "%i обнаруженные проблемы:\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " проблема %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " Проблема: %s\n"
 
 #: ../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:93
 msgid " does not belong to a distupgrade repository"
@@ -233,195 +237,205 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "нет решателя"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "не удалось %s абсолютный"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "не удалось написать debugdata для %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "нет solv в цели"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "нет решения, невозможно удалить защищенный пакет"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "невозможно решение"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
-msgstr ""
+msgstr "Операция приведет к удалению следующих защищенных пакетов: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "Плохой идентификатор для репо: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Для репозитория %s не заданы зеркала или baseurl."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "Репозиторий '%s'имеет неподдерживаемый тип:' type =%s', пропуская."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Не удается найти правильный baseurl для репозитория: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Максимальная скорость загрузки ниже минимальной. Измените настройку minrate "
 "или throttle"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "не может перечислить ключи: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "Сделки рЕПО %s: 0x%s уже импортировано"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "Сделки рЕПО %s: импортированный ключ 0x%s"
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "восстановление: репозиторий «%s» игнорируется, нет метассылок."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 "восстановление: репозиторий «%s» игнорируется, нет пригодного хэш-кода."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "восстановление: не удалось для «%s», сумма %s не совпадает."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "восстановление: «%s» может быть восстановлен - контрольные суммы метассылок "
 "совпадают."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 "восстановление: «%s» может быть восстановлен - совпадают метаданные "
 "репозитория."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 "восстановление: не удалось для «%s», не совпадают метаданные репозитория."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Невозможно создать временный каталог репо \"%s«: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Невозможно создать каталог \"%s«: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Невозможно переименовать каталог \"%s\"to\"%s«: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "репозиторий: используется кэш для: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Использование режима cacheonly включено, но нет кэша для «%s»"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "РЕПО: загрузка с удаленного устройства: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Не удается загрузить «%s»: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Не удается синхронизировать кэш для репозитория «%s»"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir (): вычисление SHA256 не выполнено"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 "резюме не может использоваться одновременно с параметром byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Не удалось инициализировать PackageTarget: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Не могу открыть %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Обработчик журнала с идентификатором %ld не существует"
@@ -477,17 +491,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr "не удалось установить корень"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "ошибка %i проверка транзакции"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "ошибка %i выполняемая транзакция"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "Транзакция не перешла на этап написания, но не вернула ошибку (%i)"
@@ -588,65 +602,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "подпись не проверяет %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "не удалось открыть (общая ошибка): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "не удалось проверить ключ для %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "открытый ключ недоступен для %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "подпись не найдена для %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "не удалось добавить элемент установки: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Ошибка при выполнении транзакции: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "Ошибка при выполнении транзакции и никаких проблем не сообщалось!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Неустранимая ошибка, запустить восстановление базы данных"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "не удалось найти пакет %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "не удалось добавить элемент стирания %1$s(%2$i)"
@@ -695,7 +736,7 @@ msgstr "не удалось преобразовать '%s'к байтам"
 msgid "unknown unit '%s'"
 msgstr "неизвестная единица «%s»"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "процентная величина «%s» вне диапазона"
@@ -729,59 +770,59 @@ msgstr "Конфигурация: OptionBinding с идентификаторо
 msgid "could not convert '%s' to seconds"
 msgstr "не удалось преобразовать '%s'секунд"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "нет %1$d строка для %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "не удалось добавить solv"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "не удалось открыть: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "не может создать временный файл: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "не удалось открыть файл tmp: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main () не удалось записать данные: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() failed to re-load written solv file"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "не удается создать временный файл %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) has failed: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo md file"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "невозможно прочитать файл %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() has failed."
 
@@ -798,19 +839,19 @@ msgstr "не удалось автоматически определить ар
 msgid "failed creating cachedir %s"
 msgstr "не удалось создать кешир %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "не удалось вычислить контрольную сумму RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "не удалось загрузить RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Трансформатор: невозможно открыть историю сохранения"
 
diff --git a/po/sk.po b/po/sk.po
index 6913d22..3e4d3ca 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -3,8 +3,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2016-10-11 08:25+0000\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2016-10-11 08:24+0000\n"
 "Last-Translator: feonsu <feonsu@gmail.com>\n"
 "Language-Team: Slovak\n"
 "Language: sk\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Nie je možné stiahnuť '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Zlyhala synchronizácia vyrovnávacej pamäte pre repozitár '%s'"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -715,59 +752,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -784,19 +821,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/sq.po b/po/sq.po
index df4a9b3..1d1ed81 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 08:13+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Albanian\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/sr.po b/po/sr.po
index 02e0bb2..08980cc 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 08:17+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Serbian\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/sr@latin.po b/po/sr@latin.po
index 4bdd895..3c5ba36 100644
--- a/po/sr@latin.po
+++ b/po/sr@latin.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 08:25+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Serbian (LATIN)\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/sv.po b/po/sv.po
index ace675d..3fe2552 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2018-09-08 03:31+0000\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish\n"
@@ -19,40 +19,41 @@ msgstr ""
 #: ../libdnf/hy-iutil.cpp:316
 #, c-format
 msgid "Failed renaming %1$s to %2$s: %3$s"
-msgstr ""
+msgstr "Misslyckades att byta namn på %1$s till %2$s: %3$s"
 
 #: ../libdnf/hy-iutil.cpp:324
 #, c-format
 msgid "Failed setting perms on %1$s: %2$s"
-msgstr ""
+msgstr "Misslyckades att sätta rättigheter på %1$s: %2$s"
 
 #: ../libdnf/dnf-goal.cpp:67
 msgid "Could not depsolve transaction; "
-msgstr ""
+msgstr "Kunde inte göra beroendeupplösning av transaktionen; "
 
 #: ../libdnf/dnf-goal.cpp:69
 #, c-format
 msgid "%i problem detected:\n"
 msgid_plural "%i problems detected:\n"
-msgstr[0] ""
+msgstr[0] "%i problem upptäckt:\n"
+msgstr[1] "%i problem upptäckta:\n"
 
 #: ../libdnf/dnf-goal.cpp:77
 #, c-format
 msgid " Problem %1$i: %2$s\n"
-msgstr ""
+msgstr " Problem %1$i: %2$s\n"
 
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " Problem: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
-msgstr ""
+msgstr "Felformaterad selektor, det finns flera matchande objekt i filtret"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
-msgstr ""
+msgstr "Felformaterad selektor använd för åtgärden, felaktig jämförelsetyp"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -234,189 +235,200 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "ingen lösare angiven"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "misslyckades att göra %s absolut"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "misslyckades att skriva felsökningsdata till %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "ingen lösare i målet"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "ingen lösning, kan inte ta bort skyddat paket"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "ingen lösning är möjlig"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
+"Åtgärden skulle resultera i att man tog bort följande skyddade paket: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "Felaktigt id för förrådet: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Förrådet %s har ingen spegel eller bas-url satt."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "Förrådet ”%s” har en typ som inte stödjs: ”type=%s”, hoppar över."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Kan inte hitta en giltig bas-url för förrådet: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Maximal hämtningshastighet är mindre än minimum.  Ändra konfigurationen av "
 "minrate eller throttle"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "kan inte lista nycklar: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "förrådet %s: 0x%s är redan importerad"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "förrådet %s: importerade nyckeln 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "återupplivar: förrådet ”%s” överhoppat, ingen metalink."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "återupplivar: förrådet ”%s” överhoppat, ingen användbar hash."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "återupplivar: misslyckades med ”%s”, %s-summor stämmer inte."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "återupplivar: ”%s” kan återupplivas – metalänkens kontrollsummor stämmer."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "återupplivar: ”%s” kan återupplivas – repomd stämmer."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "återupplivar: misslyckades med ”%s”, repomd stämmer inte."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Kaan inte skapa den temporära förrådskatalogen ”%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Kan inte skapa katalogen ”%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Kan inte byta namn på katalogen ”%s” till ”%s”: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "förråd: använder cache för: %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Enbart-cache aktiverat men ingen cache för ”%s”"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "förråd: hämtar från fjärrförråd: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Kan inte hämta ”%s”: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Misslyckades att synkronisera cachen för förrådet ”%s”"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): Beräkningen av SHA256 misslyckades"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume kan inte användas samtidigt med parametern byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Initiering av PackageTarget misslyckades: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Kan inte öppna %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Logghanterare med id %ld finns inte"
@@ -473,17 +485,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr "misslyckades att sätta roten"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Fel %i när transaktionstesten kördes"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Fel %i när transaktionen kördes"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "Transaktionen kom inte till skrivfasen, men returnerade inget fel(%i)"
@@ -584,65 +596,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "signaturen stämmer inte för %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "misslyckades att öppna (allmänt fel): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "misslyckades att verifiera nyckeln för %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "den publika nyckeln är inte tillgänglig för %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "signaturen hittades inte för %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "misslyckades att lägga till installationselement: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Fel när transaktionen kördes: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "Fel när transaktionen kördes och inga problem rapporterades!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Ödesdigert fel, kör återställning av databasen"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "misslyckades att hitta paketet %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "kunde inte lägga till borttagningselement %1$s(%2$i)"
@@ -691,7 +730,7 @@ msgstr "kunde inte konvertera ”%s” till byte"
 msgid "unknown unit '%s'"
 msgstr "okänd enhet ”%s”"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "procentsatsen ”%s” är utanför intervallet"
@@ -727,59 +766,59 @@ msgstr "Konfiguration: OptionBinding med id ”%s” finns redan"
 msgid "could not convert '%s' to seconds"
 msgstr "kunde inte konvertera ”%s” till sekunder"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "ingen %1$d-sträng för %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "misslyckades att lägga till lösning"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "misslyckades att öppna: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "kan inte skapa temporärfil: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "misslyckades att öppna temporärfil: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() misslyckades att skriva data: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() misslyckades att läsa om en skriven lösningsfil"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "kan inte skapa den temporära filen %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) har misslyckats: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo-md-fil"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "kan inte läsa filen %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() har misslyckats."
 
@@ -796,19 +835,19 @@ msgstr "misslyckades att automatdetektera arkitekturen"
 msgid "failed creating cachedir %s"
 msgstr "misslyckades att skapa cache-katalogen %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "misslyckades att beräkna RPMDB-kontrollsumma"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "misslyckades att läsa in RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformerare: kan inte öppna historisk varaktig katalog"
 
diff --git a/po/ta.po b/po/ta.po
index d13d844..239521b 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 08:38+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Tamil\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/te.po b/po/te.po
index 0750af7..40257f6 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 08:46+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Telugu\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/th.po b/po/th.po
index 8eaef3d..f11768e 100644
--- a/po/th.po
+++ b/po/th.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2015-03-23 08:56+0000\n"
 "Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
 "Language-Team: Thai\n"
@@ -265,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
+msgid "Failed to download metadata for repo '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -467,17 +477,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -578,65 +588,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -685,7 +722,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr ""
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr ""
@@ -719,59 +756,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -788,19 +825,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/tr.po b/po/tr.po
index 91c7b0e..bfb556e 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2016-11-17 05:30+0000\n"
 "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
 "Language-Team: Turkish\n"
@@ -261,157 +261,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr ""
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "'%s' indirilemiyor: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "'%s' deposu için önbellek eşzamanlanamıyor"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr ""
@@ -463,17 +473,17 @@ msgstr ""
 msgid "failed to set root"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr ""
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -574,65 +584,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr ""
@@ -681,7 +718,7 @@ msgstr ""
 msgid "unknown unit '%s'"
 msgstr "bilinmeyen birim '%s'"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "'%s' yüzdesi aralık dışında"
@@ -715,59 +752,59 @@ msgstr ""
 msgid "could not convert '%s' to seconds"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
+msgid "no %1$s string for %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr ""
 
@@ -784,19 +821,19 @@ msgstr ""
 msgid "failed creating cachedir %s"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr ""
 
diff --git a/po/uk.po b/po/uk.po
index deafb84..e0759ff 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2019-04-20 06:00+0000\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian\n"
@@ -273,161 +273,171 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "Дія призведе до вилучення таких захищених пакунків: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr "Помилковий ідентифікатор сховища: %s, байт = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "Для сховища %s не встановлено дзеркала або базової адреси."
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr ""
 "Сховище «%s» належить до непідтримуваного типу: «type=%s», пропускаємо."
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "Не вдалося знайти коректну базову адресу для сховища: %s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr ""
 "Максимальна швидкість отримання даних є меншою за мінімальну. Будь ласка, "
 "змініть значення для minrate або throttle"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "не вдалося побудувати список ключів: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "сховище %s: 0x%s вже імпортовано"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "сховище %s: імпортовано ключ 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "відновлюємо: сховище «%s» пропущено, немає метапосилання."
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "відновлюємо: сховище «%s» пропущено, немає придатного хешу."
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "відновлюємо: помилка обробки «%s», невідповідна контрольна сума %s."
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr ""
 "відновлюємо: «%s» можна відновити — контрольні суми метапосилань збігаються."
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "відновлюємо: «%s» можна відновити — значення repomd збігаються."
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "відновлюємо: помилка обробки «%s», невідповідність repomd."
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr "Не вдалося створити каталог призначення сховища «%s»: %s"
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "Не вдалося створити тимчасовий каталог сховища «%s»: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "Не вдалося створити каталог «%s»: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "Не вдалося перейменувати каталог «%s» на «%s»: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "сховище: використовуємо кеш для %s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "Увімкнено отримання даних лише з кешу, але немає кешу для «%s»"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "сховище: отримуємо з віддаленого сховища: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "Не вдалося отримати «%s»: %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "Не вдалося синхронізувати кеш для сховища «%s»"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): помилка під час обчислення SHA256"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume не можна використовувати одночасно з параметром byterangestart"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "Помилка ініціалізації PackageTarget: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "Не вдалося відкрити %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "Обробника журналу із ідентифікатором %ld не існує"
@@ -483,17 +493,17 @@ msgstr "Недостатньо вільного місця у %1$s: потріб
 msgid "failed to set root"
 msgstr "не вдалося встановити root"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "Помилка %i під час перевірки операції"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "Помилка %i під час виконання операції"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr ""
@@ -597,66 +607,93 @@ msgstr "Пропущено PLATFORM_ID у %s"
 msgid "No valid Platform ID detected"
 msgstr "Не виявлено коректного ідентифікатора платформи"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr "Не вдалося увімкнути декілька потоків для модуля «%s»"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr "Конфлікт типових параметрів із сховищем «%s»: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "не перевірено підпис для %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "не вдалося відкрити (загальна помилка): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "не вдалося перевірити ключ для %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "відкритий ключ для %s недоступний"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "не знайдено підпису для %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "не вдалося додати елемент встановлення: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "Помилка під час виконання операції: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr ""
 "Помилка під час виконання операції, а звітів щодо проблем не надходило!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "Критична помилка, виконуємо відновлення бази даних"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "не вдалося знайти пакунок %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "не вдалося додати елемент вилучення %1$s(%2$i)"
@@ -705,7 +742,7 @@ msgstr "не вдалося перетворити «%s» на байти"
 msgid "unknown unit '%s'"
 msgstr "невідома одиниця, «%s»"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "значення відсотків, «%s», поза припустимим діапазоном"
@@ -739,59 +776,59 @@ msgstr "Налаштування: OptionBinding з ідентифікаторо
 msgid "could not convert '%s' to seconds"
 msgstr "не вдалося перетворити «%s» на секунди"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "немає рядка %1$d для %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "не вдалося додати solv"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "не вдалося відкрити: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "не вдалося створити тимчасовий файл: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "не вдалося відкрити тимчасовий файл: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() не вдалося записати дані: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() не вдалося перезавантажити записаний файл solv"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "не вдалося створити тимчасовий файл %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "помилка write_ext(%1$d): %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "порожній файл md сховища"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "не вдалося прочитати файл %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "помилка repo_add_solv()."
 
@@ -808,19 +845,19 @@ msgstr "не вдалося автоматично визначити архіт
 msgid "failed creating cachedir %s"
 msgstr "не вдалося створити каталог кешу %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "не вдалося обчислити контрольну суму RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "не вдалося завантажити RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr "Не знайдено типових налаштувань модуля"
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Трансформер: не вдалося відкрити сталий каталог журналу"
 
diff --git a/po/zanata.xml b/po/zanata.xml
index 1df88b1..9610010 100644
--- a/po/zanata.xml
+++ b/po/zanata.xml
@@ -2,6 +2,6 @@
 <config xmlns="http://zanata.org/namespace/config/">
   <url>https://fedora.zanata.org/</url>
   <project>libdnf</project>
-  <project-version>master</project-version>
+  <project-version>rhel-8.1</project-version>
   <project-type>gettext</project-type>
 </config>
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 0a31ce6..705b0e5 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,14 +1,15 @@
-# Qi Fan <fun224@gmail.com>, 2016. #zanata
 # Tommy He <lovenemesis@fedoraproject.org>, 2016. #zanata
 # Jerry Lee <lchopn@gmail.com>, 2017. #zanata
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+# Ludek Janda <ljanda@redhat.com>, 2019. #zanata
+# Tony Fu <tfu@redhat.com>, 2019. #zanata
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
-"PO-Revision-Date: 2018-09-18 02:42+0000\n"
-"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
+"PO-Revision-Date: 2019-07-30 10:35+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
 "Language-Team: Chinese (China)\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -57,181 +58,181 @@ msgstr "这个操作使用了 Ill-formed Selector,不正确的比较类型"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
-msgstr ""
+msgstr " 不属于 distupgrade 仓库"
 
 #: ../libdnf/goal/Goal.cpp:68 ../libdnf/goal/Goal.cpp:94
 msgid " has inferior architecture"
-msgstr ""
+msgstr " 有 inferior 架构"
 
 #: ../libdnf/goal/Goal.cpp:69
 msgid "problem with installed package "
-msgstr ""
+msgstr "安装的软件包的问题 "
 
 #: ../libdnf/goal/Goal.cpp:70 ../libdnf/goal/Goal.cpp:96
 msgid "conflicting requests"
-msgstr ""
+msgstr "冲突的请求"
 
 #: ../libdnf/goal/Goal.cpp:71 ../libdnf/goal/Goal.cpp:97
 msgid "unsupported request"
-msgstr ""
+msgstr "不支持的请求"
 
 #: ../libdnf/goal/Goal.cpp:72 ../libdnf/goal/Goal.cpp:98
 msgid "nothing provides requested "
-msgstr ""
+msgstr "没有提供请求的。 "
 
 #: ../libdnf/goal/Goal.cpp:73
 #, c-format
 msgid "package %s does not exist"
-msgstr ""
+msgstr "软件包 %s 不存在"
 
 #: ../libdnf/goal/Goal.cpp:74 ../libdnf/goal/Goal.cpp:100
 msgid " is provided by the system"
-msgstr ""
+msgstr " 由系统提供"
 
 #: ../libdnf/goal/Goal.cpp:75 ../libdnf/goal/Goal.cpp:101
 msgid "some dependency problem"
-msgstr ""
+msgstr "一些依赖性问题"
 
 #: ../libdnf/goal/Goal.cpp:76
 msgid "cannot install the best update candidate for package "
-msgstr ""
+msgstr "无法为软件包安装最佳更新选择 "
 
 #: ../libdnf/goal/Goal.cpp:77 ../libdnf/goal/Goal.cpp:103
 msgid "cannot install the best candidate for the job"
-msgstr ""
+msgstr "无法为任务安装最佳选择"
 
 #: ../libdnf/goal/Goal.cpp:78
 #, c-format
 msgid "package %s is excluded"
-msgstr ""
+msgstr "软件包 %s 已被排除"
 
 #: ../libdnf/goal/Goal.cpp:79
 #, c-format
 msgid "package %s does not have a compatible architecture"
-msgstr ""
+msgstr "软件包 %s 没有兼容的架构"
 
 #: ../libdnf/goal/Goal.cpp:80
 #, c-format
 msgid "package %s is not installable"
-msgstr ""
+msgstr "软件包 %s 是不可安装的"
 
 #: ../libdnf/goal/Goal.cpp:81
 #, c-format
 msgid "nothing provides %s needed by %s"
-msgstr ""
+msgstr "没有提供 %s(%s 需要)"
 
 #: ../libdnf/goal/Goal.cpp:82
 #, c-format
 msgid "cannot install both %s and %s"
-msgstr ""
+msgstr "无法同时安装 %s 和 %s"
 
 #: ../libdnf/goal/Goal.cpp:83
 #, c-format
 msgid "package %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "软件包 %s 与 %s(由 %s 提供)冲突"
 
 #: ../libdnf/goal/Goal.cpp:84
 #, c-format
 msgid "package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "软件包 %s 过时了 %s(由 %s 提供)"
 
 #: ../libdnf/goal/Goal.cpp:85
 #, c-format
 msgid "installed package %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "安装的软件包 %s 过时了 %s(由 %s 提供)"
 
 #: ../libdnf/goal/Goal.cpp:86
 #, c-format
 msgid "package %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "软件包 %s 隐式过期了 %s(由 %s 提供)"
 
 #: ../libdnf/goal/Goal.cpp:87
 #, c-format
 msgid "package %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "软件包 %s 需要 %s,但没有供应商可以安装"
 
 #: ../libdnf/goal/Goal.cpp:88
 #, c-format
 msgid "package %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "软件包 %s 与自己提供的 %s 冲突"
 
 #: ../libdnf/goal/Goal.cpp:89
 #, c-format
 msgid "both package %s and %s obsolete %s"
-msgstr ""
+msgstr "软件包 %s 和 %s 都过期了 %s"
 
 #: ../libdnf/goal/Goal.cpp:95
 msgid "problem with installed module "
-msgstr ""
+msgstr "安装的模块的问题 "
 
 #: ../libdnf/goal/Goal.cpp:99
 #, c-format
 msgid "module %s does not exist"
-msgstr ""
+msgstr "模块 %s 不存在"
 
 #: ../libdnf/goal/Goal.cpp:102
 msgid "cannot install the best update candidate for module "
-msgstr ""
+msgstr "无法为模块安装最佳更新选择 "
 
 #: ../libdnf/goal/Goal.cpp:104
 #, c-format
 msgid "module %s is disabled"
-msgstr ""
+msgstr "模块 %s 被禁用"
 
 #: ../libdnf/goal/Goal.cpp:105
 #, c-format
 msgid "module %s does not have a compatible architecture"
-msgstr ""
+msgstr "模块 %s 没有兼容的架构"
 
 #: ../libdnf/goal/Goal.cpp:106
 #, c-format
 msgid "module %s is not installable"
-msgstr ""
+msgstr "模块 %s 不可安装"
 
 #: ../libdnf/goal/Goal.cpp:107
 #, c-format
 msgid "nothing provides %s needed by module %s"
-msgstr ""
+msgstr "没有提供 %s(模块 %s 需要它)"
 
 #: ../libdnf/goal/Goal.cpp:108
 #, c-format
 msgid "cannot install both modules %s and %s"
-msgstr ""
+msgstr "无法同时安装模块 %s 和 %s"
 
 #: ../libdnf/goal/Goal.cpp:109
 #, c-format
 msgid "module %s conflicts with %s provided by %s"
-msgstr ""
+msgstr "模块 %s 与 %s (由 %s 提供)冲突"
 
 #: ../libdnf/goal/Goal.cpp:110
 #, c-format
 msgid "module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "模块 %s 过时了 %s(由 %s 提供)"
 
 #: ../libdnf/goal/Goal.cpp:111
 #, c-format
 msgid "installed module %s obsoletes %s provided by %s"
-msgstr ""
+msgstr "安装的模块 %s 过时了 %s(由 %s 提供)"
 
 #: ../libdnf/goal/Goal.cpp:112
 #, c-format
 msgid "module %s implicitly obsoletes %s provided by %s"
-msgstr ""
+msgstr "模块 %s 隐式过时了 %s(由 %s 提供)"
 
 #: ../libdnf/goal/Goal.cpp:113
 #, c-format
 msgid "module %s requires %s, but none of the providers can be installed"
-msgstr ""
+msgstr "模块 %s 需要 %s,但没有供应商可以安装"
 
 #: ../libdnf/goal/Goal.cpp:114
 #, c-format
 msgid "module %s conflicts with %s provided by itself"
-msgstr ""
+msgstr "模块 %s 与自己提供的 %s 冲突"
 
 #: ../libdnf/goal/Goal.cpp:115
 #, c-format
 msgid "both module %s and %s obsolete %s"
-msgstr ""
+msgstr "模块 %s 和 %s 都过期了 %s"
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
@@ -264,157 +265,167 @@ msgid ""
 "The operation would result in removing the following protected packages: "
 msgstr "这个操作可能会导致删除以下受保护的软件包: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
 msgstr "repo 的 id 无效: %s, byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "软件仓库 %s 没有设置镜像或者 baseurl。"
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
 msgstr "仓库 '%s' 有不被支持的类型: 'type=%s', 忽略。"
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "无法为仓库 %s 找到一个有效的 baseurl"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr "最大下载速度低于最小值。请修改 minrate 或 throttle 的配置"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "不能列出 key: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr "%s: gpgme_set_protocol(): %s"
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr "%s: gpgme_op_assuan_transact_ext(): %s"
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "repo %s: 0x%s 已被导入"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "repo %s: 导入的 key 0x%s."
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "恢复中: 仓库 '%s' 已被跳过,无 metalink。"
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "恢复中: 仓库 '%s' 已被跳过,无可用 hash。"
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "恢复: '%s' 失败,不匹配的 %s sum。"
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "恢复中: '%s' 可以被恢复 - metalink 校验和匹配。"
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "恢复: '%s' 可用被恢复 - repomd 匹配。"
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "恢复: '%s' 失败,不匹配的 repomd。"
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
-msgstr ""
+msgstr "无法创建 repo 目标目录 \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "无法创建 repo 临时目录 \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "无法创建目录 \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "无法把目录 \"%s\" 重命名为 \"%s\": %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "仓库: 正在为 %s 使用缓存"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "仅使用缓存已开启但没有 '%s' 的缓存"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo: 从远程下载: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "无法下载 '%s': %s."
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "同步仓库 '%s' 缓存失败"
+msgid "Failed to download metadata for repo '%s'"
+msgstr "为 repo '%s' 下载元数据失败"
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir(): 计算 SHA256 失败"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume 不能和 the byterangestart 参数同时使用"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget 初始失败: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "无法打开 %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "id 为 %ld 的日志处理器不存在"
@@ -466,17 +477,17 @@ msgstr "%1$s 没有足够的空闲空间: 需要 %2$s,可用 %3$s"
 msgid "failed to set root"
 msgstr "设置 root 失败"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "错误 %i 运行事务测试"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "错误 %i 运行事务"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "事务没有进入写阶段,但没有返回错误(%i)"
@@ -494,37 +505,37 @@ msgstr "无法删除 %s"
 #: ../libdnf/plugin/plugin.cpp:46
 #, c-format
 msgid "Can't load shared library \"%s\": %s"
-msgstr ""
+msgstr "无法加载共享库 \"%s\": %s"
 
 #: ../libdnf/plugin/plugin.cpp:61 ../libdnf/plugin/plugin.cpp:67
 #: ../libdnf/plugin/plugin.cpp:73 ../libdnf/plugin/plugin.cpp:79
 #, c-format
 msgid "Can't obtain address of symbol \"%s\": %s"
-msgstr ""
+msgstr "无法获取符号 \"%s\" 的地址 : %s"
 
 #: ../libdnf/plugin/plugin.cpp:86
 #, c-format
 msgid "Loading plugin file=\"%s\""
-msgstr ""
+msgstr "加载插件文件=\"%s\""
 
 #: ../libdnf/plugin/plugin.cpp:89
 #, c-format
 msgid "Loaded plugin name=\"%s\", version=\"%s\""
-msgstr ""
+msgstr "加载插件名=\"%s\", 版本=\"%s\""
 
 #: ../libdnf/plugin/plugin.cpp:96
 msgid "Plugins::loadPlugins() dirPath cannot be empty"
-msgstr ""
+msgstr "Plugins::loadPlugins() dirPath 不能为空"
 
 #: ../libdnf/plugin/plugin.cpp:105
 #, c-format
 msgid "Can't read plugin directory \"%s\": %s"
-msgstr ""
+msgstr "无法读插件目录 \"%s\": %s"
 
 #: ../libdnf/plugin/plugin.cpp:114
 #, c-format
 msgid "Can't load plugin \"%s\": %s"
-msgstr ""
+msgstr "无法加载插件 \"%s\": %s"
 
 #: ../libdnf/dnf-state.cpp:1183
 #, c-format
@@ -553,89 +564,116 @@ msgstr "已是 100%% 状态 [%s]"
 #: ../libdnf/module/ModulePackage.cpp:413
 #, c-format
 msgid "Invalid format of Platform module: %s"
-msgstr ""
+msgstr "Platform 模块无效的格式 : %s"
 
 #: ../libdnf/module/ModulePackage.cpp:428
 msgid "Multiple module platforms provided by available packages\n"
-msgstr ""
+msgstr "由可用软件包提供的多个模块平台\n"
 
 #: ../libdnf/module/ModulePackage.cpp:441
 msgid "Multiple module platforms provided by installed packages\n"
-msgstr ""
+msgstr "由安装的软件包提供的多个模块平台\n"
 
 #: ../libdnf/module/ModulePackage.cpp:468
 #, c-format
 msgid "Detection of Platform Module in %s failed: %s"
-msgstr ""
+msgstr "删除 %s 中的 Platform 模块失败 : %s"
 
 #: ../libdnf/module/ModulePackage.cpp:477
 #, c-format
 msgid "Missing PLATFORM_ID in %s"
-msgstr ""
+msgstr "在 %s 中缺少 PLATFORM_ID"
 
 #: ../libdnf/module/ModulePackage.cpp:482
 msgid "No valid Platform ID detected"
-msgstr ""
+msgstr "没有检测到有效的 Platform ID"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
-msgstr ""
+msgstr "无法为模块 '%s' 启用多个流"
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
-msgstr ""
+msgstr "默认设置与 repo '%s' 冲突 : %s"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr "无法在 '%s' 加载模块 Fail-Safe 数据"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr "无法为模块 '%s:%s' 加载模块 Fail-Safe 数据"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr "无法把模块 Fail Safe 数据 safe 为 '%s'"
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr "无法在 '%s' 中删除一个模块的 Fail Safe 数据"
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr "模块软件包 '%s' 没有可用的元数据,它不能在系统上安装"
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "没有为 %s 验证签名"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "无法打开(一般错误): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "无法为 %s 验证密钥"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "没有 %s 的公钥"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "没有找到 %s 的签名"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "无法添加安装元素: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "错误运行事务: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "错误运行事务并且没有报告问题!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "严重错误,运行数据库恢复"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "无法找到软件包 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "无法添加删除元素 %1$s(%2$i)"
@@ -684,7 +722,7 @@ msgstr "无法把 '%s' 转换为字节"
 msgid "unknown unit '%s'"
 msgstr "未知单元 “%s”"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "百分数 '%s' 超出范围"
@@ -718,59 +756,59 @@ msgstr "配置:ID 为 \"%s\"  的 OptionBinding 已存在"
 msgid "could not convert '%s' to seconds"
 msgstr "无法把 '%s' 转换为秒"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "没有为 %2$s 的 %1$d 字符串"
+msgid "no %1$s string for %2$s"
+msgstr "没有为 %2$s 的 %1$s 字符串"
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "添加 solv 失败"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "打开失败:%s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "不能创建临时文件: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "打开 tmp 文件失败: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main() 写数据失败: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main() 重新加载写的 solv 文件失败"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "不能创建临时文件 %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) 已失败: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo md 文件"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "不能读文件 %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv() 已失败。"
 
@@ -787,19 +825,19 @@ msgstr "自动检测架构失败"
 msgid "failed creating cachedir %s"
 msgstr "无法创建 cachedir %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "无法计算 RPMDB checksum"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "无法加载 RPMDB"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
-msgstr ""
+msgstr "没有找到模块默认设置"
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "Transformer: 无法打开 history persist dir"
 
diff --git a/po/zh_TW.po b/po/zh_TW.po
index e1124f8..bd35935 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-06-05 11:00+0200\n"
+"POT-Creation-Date: 2019-07-30 11:16+0200\n"
 "PO-Revision-Date: 2019-04-02 05:41+0000\n"
 "Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
 "Language-Team: Chinese (Taiwan)\n"
@@ -44,15 +44,15 @@ msgstr " 第 %1$i 個問題:%2$s\n"
 #: ../libdnf/dnf-goal.cpp:79
 #, c-format
 msgid " Problem: %s\n"
-msgstr ""
+msgstr " 問題: %s\n"
 
 #: ../libdnf/goal/Goal.cpp:55
 msgid "Ill-formed Selector, presence of multiple match objects in the filter"
-msgstr ""
+msgstr "形狀錯誤的選擇器,過濾器中存在多個匹配對象"
 
 #: ../libdnf/goal/Goal.cpp:56
 msgid "Ill-formed Selector used for the operation, incorrect comparison type"
-msgstr ""
+msgstr "用於操作的錯誤選擇器,不正確的比較類型"
 
 #: ../libdnf/goal/Goal.cpp:67 ../libdnf/goal/Goal.cpp:93
 msgid " does not belong to a distupgrade repository"
@@ -234,186 +234,196 @@ msgstr ""
 
 #: ../libdnf/goal/Goal.cpp:994
 msgid "no solver set"
-msgstr ""
+msgstr "沒有解算器集"
 
 #: ../libdnf/goal/Goal.cpp:999
 #, c-format
 msgid "failed to make %s absolute"
-msgstr ""
+msgstr "未能成功 %s 絕對"
 
 #: ../libdnf/goal/Goal.cpp:1006
 #, c-format
 msgid "failed writing debugdata to %1$s: %2$s"
-msgstr ""
+msgstr "寫入debugdata失敗了 %1$s: %2$s"
 
 #: ../libdnf/goal/Goal.cpp:1018
 msgid "no solv in the goal"
-msgstr ""
+msgstr "沒有解決目標"
 
 #: ../libdnf/goal/Goal.cpp:1020
 msgid "no solution, cannot remove protected package"
-msgstr ""
+msgstr "沒有解決方案,無法刪除受保護的包"
 
 #: ../libdnf/goal/Goal.cpp:1023
 msgid "no solution possible"
-msgstr ""
+msgstr "無法解決問題"
 
 #: ../libdnf/goal/Goal.cpp:1429
 msgid ""
 "The operation would result in removing the following protected packages: "
-msgstr ""
+msgstr "該操作將導致刪除以下受保護的包: "
 
-#: ../libdnf/repo/Repo.cpp:324
+#: ../libdnf/repo/Repo.cpp:315
 #, c-format
 msgid "Bad id for repo: %s, byte = %s %d"
-msgstr ""
+msgstr "回購的錯誤ID: %s, ,byte = %s %d"
 
-#: ../libdnf/repo/Repo.cpp:349
+#: ../libdnf/repo/Repo.cpp:340
 #, c-format
 msgid "Repository %s has no mirror or baseurl set."
 msgstr "「%s」軟體庫沒有設定任何鏡像或 baseurl。"
 
-#: ../libdnf/repo/Repo.cpp:358
+#: ../libdnf/repo/Repo.cpp:349
 #, c-format
 msgid "Repository '%s' has unsupported type: 'type=%s', skipping."
-msgstr ""
+msgstr "存儲庫'%s'有不支持的類型:'type =%s',跳過。"
 
-#: ../libdnf/repo/Repo.cpp:562
+#: ../libdnf/repo/Repo.cpp:553
 #, c-format
 msgid "Cannot find a valid baseurl for repo: %s"
 msgstr "無法找到軟體庫的有效 baseurl:%s"
 
-#: ../libdnf/repo/Repo.cpp:598 ../libdnf/repo/Repo.cpp:1508
+#: ../libdnf/repo/Repo.cpp:589 ../libdnf/repo/Repo.cpp:1526
 msgid ""
 "Maximum download speed is lower than minimum. Please change configuration of"
 " minrate or throttle"
 msgstr "最大下載速度低於最低下載速度。請調整 minrate 或 throttle 的設定檔"
 
-#: ../libdnf/repo/Repo.cpp:648 ../libdnf/repo/Repo.cpp:670
+#: ../libdnf/repo/Repo.cpp:639 ../libdnf/repo/Repo.cpp:661
 #, c-format
 msgid "%s: gpgme_data_new_from_fd(): %s"
 msgstr "%s: gpgme_data_new_from_fd(): %s"
 
-#: ../libdnf/repo/Repo.cpp:656 ../libdnf/repo/Repo.cpp:678
+#: ../libdnf/repo/Repo.cpp:647 ../libdnf/repo/Repo.cpp:669
 #, c-format
 msgid "%s: gpgme_op_import(): %s"
 msgstr "%s: gpgme_op_import(): %s"
 
-#: ../libdnf/repo/Repo.cpp:701 ../libdnf/repo/Repo.cpp:767
-#: ../libdnf/repo/Repo.cpp:861
+#: ../libdnf/repo/Repo.cpp:692 ../libdnf/repo/Repo.cpp:758
+#: ../libdnf/repo/Repo.cpp:830 ../libdnf/repo/Repo.cpp:872
 #, c-format
 msgid "%s: gpgme_ctx_set_engine_info(): %s"
 msgstr "%s: gpgme_ctx_set_engine_info(): %s"
 
-#: ../libdnf/repo/Repo.cpp:728 ../libdnf/repo/Repo.cpp:792
+#: ../libdnf/repo/Repo.cpp:719 ../libdnf/repo/Repo.cpp:783
 #, c-format
 msgid "can not list keys: %s"
 msgstr "無法列出鍵: %s"
 
+#: ../libdnf/repo/Repo.cpp:823
+#, c-format
+msgid "%s: gpgme_set_protocol(): %s"
+msgstr ""
+
 #: ../libdnf/repo/Repo.cpp:836
 #, c-format
+msgid "%s: gpgme_op_assuan_transact_ext(): %s"
+msgstr ""
+
+#: ../libdnf/repo/Repo.cpp:851
+#, c-format
 msgid "repo %s: 0x%s already imported"
 msgstr "回購 %s:0x%s 已經導入"
 
-#: ../libdnf/repo/Repo.cpp:868
+#: ../libdnf/repo/Repo.cpp:886
 #, c-format
 msgid "repo %s: imported key 0x%s."
 msgstr "回購 %s:導入的密鑰0x%s。"
 
-#: ../libdnf/repo/Repo.cpp:1007
+#: ../libdnf/repo/Repo.cpp:1025
 #, c-format
 msgid "reviving: repo '%s' skipped, no metalink."
 msgstr "reviving:由於沒有 Metalink,所以跳過軟體庫「%s」"
 
-#: ../libdnf/repo/Repo.cpp:1026
+#: ../libdnf/repo/Repo.cpp:1044
 #, c-format
 msgid "reviving: repo '%s' skipped, no usable hash."
 msgstr "reviving:由於沒有可使用的雜湊值,跳過軟體庫「%s」"
 
-#: ../libdnf/repo/Repo.cpp:1049
+#: ../libdnf/repo/Repo.cpp:1067
 #, c-format
 msgid "reviving: failed for '%s', mismatched %s sum."
 msgstr "reviving:因為 %s 總和不符合,「%s」失敗"
 
-#: ../libdnf/repo/Repo.cpp:1055
+#: ../libdnf/repo/Repo.cpp:1073
 #, c-format
 msgid "reviving: '%s' can be revived - metalink checksums match."
 msgstr "reviving:可以重生(revived)「%s」 - metalink checksum 符合。"
 
-#: ../libdnf/repo/Repo.cpp:1080
+#: ../libdnf/repo/Repo.cpp:1098
 #, c-format
 msgid "reviving: '%s' can be revived - repomd matches."
 msgstr "reviving:可以復活 (revived)「%s」 - repomd 符合。"
 
-#: ../libdnf/repo/Repo.cpp:1082
+#: ../libdnf/repo/Repo.cpp:1100
 #, c-format
 msgid "reviving: failed for '%s', mismatched repomd."
 msgstr "reviving:由於不符合的 repomd,「%s」失敗。"
 
-#: ../libdnf/repo/Repo.cpp:1100
+#: ../libdnf/repo/Repo.cpp:1118
 #, c-format
 msgid "Cannot create repo destination directory \"%s\": %s"
 msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1106
+#: ../libdnf/repo/Repo.cpp:1124
 #, c-format
 msgid "Cannot create repo temporary directory \"%s\": %s"
 msgstr "無法創建repo臨時目錄“%s“: %s"
 
-#: ../libdnf/repo/Repo.cpp:1120
+#: ../libdnf/repo/Repo.cpp:1138
 #, c-format
 msgid "Cannot create directory \"%s\": %s"
 msgstr "無法創建目錄“%s“: %s"
 
-#: ../libdnf/repo/Repo.cpp:1143
+#: ../libdnf/repo/Repo.cpp:1161
 #, c-format
 msgid "Cannot rename directory \"%s\" to \"%s\": %s"
 msgstr "無法重命名目錄“%s“ 至 ”%s“: %s"
 
-#: ../libdnf/repo/Repo.cpp:1163
+#: ../libdnf/repo/Repo.cpp:1181
 #, c-format
 msgid "repo: using cache for: %s"
 msgstr "repo:使用快取為:%s"
 
-#: ../libdnf/repo/Repo.cpp:1175
+#: ../libdnf/repo/Repo.cpp:1193
 #, c-format
 msgid "Cache-only enabled but no cache for '%s'"
 msgstr "已啟用「只快取 (cache-only)」,但是沒有 %s 的快取。"
 
-#: ../libdnf/repo/Repo.cpp:1179
+#: ../libdnf/repo/Repo.cpp:1197
 #, c-format
 msgid "repo: downloading from remote: %s"
 msgstr "repo:從遠程下載: %s"
 
-#: ../libdnf/repo/Repo.cpp:1185
+#: ../libdnf/repo/Repo.cpp:1203
 #, c-format
 msgid "Cannot download '%s': %s."
 msgstr "無法下載「%s」:%s。"
 
-#: ../libdnf/repo/Repo.cpp:1186
+#: ../libdnf/repo/Repo.cpp:1204
 #, c-format
-msgid "Failed to synchronize cache for repo '%s'"
-msgstr "無法為「%s」軟體庫同步快取"
+msgid "Failed to download metadata for repo '%s'"
+msgstr ""
 
-#: ../libdnf/repo/Repo.cpp:1212
+#: ../libdnf/repo/Repo.cpp:1230
 msgid "getCachedir(): Computation of SHA256 failed"
 msgstr "getCachedir():SHA256的計算失敗"
 
-#: ../libdnf/repo/Repo.cpp:1598
+#: ../libdnf/repo/Repo.cpp:1616
 msgid "resume cannot be used simultaneously with the byterangestart param"
 msgstr "resume不能與byterangestart param同時使用"
 
-#: ../libdnf/repo/Repo.cpp:1609
+#: ../libdnf/repo/Repo.cpp:1627
 #, c-format
 msgid "PackageTarget initialization failed: %s"
 msgstr "PackageTarget初始化失敗: %s"
 
-#: ../libdnf/repo/Repo.cpp:1726
+#: ../libdnf/repo/Repo.cpp:1744
 #, c-format
 msgid "Cannot open %s: %s"
 msgstr "不能打開 %s: %s"
 
-#: ../libdnf/repo/Repo.cpp:1770
+#: ../libdnf/repo/Repo.cpp:1788
 #, c-format
 msgid "Log handler with id %ld doesn't exist"
 msgstr "帶有id的日誌處理程序 %ld 不存在"
@@ -465,17 +475,17 @@ msgstr "沒有足夠的可用空間 %1$s:需要 %2$s, ,可用 %3$s"
 msgid "failed to set root"
 msgstr "無法設置root"
 
-#: ../libdnf/dnf-transaction.cpp:1390
+#: ../libdnf/dnf-transaction.cpp:1391
 #, c-format
 msgid "Error %i running transaction test"
 msgstr "錯誤 %i 執行處理事項測試"
 
-#: ../libdnf/dnf-transaction.cpp:1430
+#: ../libdnf/dnf-transaction.cpp:1431
 #, c-format
 msgid "Error %i running transaction"
 msgstr "錯誤 %i 執行處理事項"
 
-#: ../libdnf/dnf-transaction.cpp:1445
+#: ../libdnf/dnf-transaction.cpp:1446
 #, c-format
 msgid "Transaction did not go to writing phase, but returned no error(%i)"
 msgstr "處理事項沒有進入寫入階段,但沒有傳回錯誤 (%i)"
@@ -576,65 +586,92 @@ msgstr ""
 msgid "No valid Platform ID detected"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:57
+#: ../libdnf/module/ModulePackageContainer.cpp:68
 #, c-format
 msgid "Cannot enable multiple streams for module '%s'"
 msgstr ""
 
-#: ../libdnf/module/ModulePackageContainer.cpp:219
+#: ../libdnf/module/ModulePackageContainer.cpp:290
 #, c-format
 msgid "Conflicting defaults with repo '%s': %s"
 msgstr ""
 
-#: ../libdnf/dnf-rpmts.cpp:88 ../libdnf/dnf-rpmts.cpp:133
+#: ../libdnf/module/ModulePackageContainer.cpp:1554
+#, c-format
+msgid "Unable to load modular Fail-Safe data at '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1560
+#, c-format
+msgid "Unable to load modular Fail-Safe data for module '%s:%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1640
+#, c-format
+msgid "Unable to save a modular Fail Safe data to '%s'"
+msgstr ""
+
+#: ../libdnf/module/ModulePackageContainer.cpp:1665
+#, c-format
+msgid "Unable to remove a modular Fail Safe data in '%s'"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:73
+#, c-format
+msgid ""
+"No available modular metadata for modular package '%s'; cannot be installed "
+"on the system"
+msgstr ""
+
+#: ../libdnf/dnf-rpmts.cpp:115 ../libdnf/dnf-rpmts.cpp:160
 #, c-format
 msgid "signature does not verify for %s"
 msgstr "簽名無法驗證 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:96 ../libdnf/dnf-rpmts.cpp:141
+#: ../libdnf/dnf-rpmts.cpp:123 ../libdnf/dnf-rpmts.cpp:168
 #, c-format
 msgid "failed to open(generic error): %s"
 msgstr "無法打開(一般錯誤): %s"
 
-#: ../libdnf/dnf-rpmts.cpp:109
+#: ../libdnf/dnf-rpmts.cpp:136
 #, c-format
 msgid "failed to verify key for %s"
 msgstr "無法驗證密鑰 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:117
+#: ../libdnf/dnf-rpmts.cpp:144
 #, c-format
 msgid "public key unavailable for %s"
 msgstr "公鑰不可用 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:125
+#: ../libdnf/dnf-rpmts.cpp:152
 #, c-format
 msgid "signature not found for %s"
 msgstr "找不到簽名 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:154
+#: ../libdnf/dnf-rpmts.cpp:187
 #, c-format
 msgid "failed to add install element: %1$s [%2$i]"
 msgstr "無法添加安裝元素: %1$s [%2$i]"
 
-#: ../libdnf/dnf-rpmts.cpp:210
+#: ../libdnf/dnf-rpmts.cpp:268
 #, c-format
 msgid "Error running transaction: %s"
 msgstr "執行處理事項時出錯: %s"
 
-#: ../libdnf/dnf-rpmts.cpp:219
+#: ../libdnf/dnf-rpmts.cpp:277
 msgid "Error running transaction and no problems were reported!"
 msgstr "執行處理事項時出錯並且沒有回報任何問題!"
 
-#: ../libdnf/dnf-rpmts.cpp:282
+#: ../libdnf/dnf-rpmts.cpp:340
 msgid "Fatal error, run database recovery"
 msgstr "重大錯誤,執行資料庫恢復"
 
-#: ../libdnf/dnf-rpmts.cpp:291
+#: ../libdnf/dnf-rpmts.cpp:349
 #, c-format
 msgid "failed to find package %s"
 msgstr "找不到包裹 %s"
 
-#: ../libdnf/dnf-rpmts.cpp:337
+#: ../libdnf/dnf-rpmts.cpp:395
 #, c-format
 msgid "could not add erase element %1$s(%2$i)"
 msgstr "無法添加擦除元素 %1$s(%2$i)"
@@ -683,7 +720,7 @@ msgstr "無法轉換'%s'到字節"
 msgid "unknown unit '%s'"
 msgstr "未知的單位「%s」"
 
-#: ../libdnf/conf/ConfigMain.cpp:320
+#: ../libdnf/conf/ConfigMain.cpp:322
 #, c-format
 msgid "percentage '%s' is out of range"
 msgstr "「%s」百分比超出範圍"
@@ -717,59 +754,59 @@ msgstr "配置:具有id的OptionBinding“%s“ 已經存在"
 msgid "could not convert '%s' to seconds"
 msgstr "無法轉換'%s'到秒"
 
-#: ../libdnf/dnf-sack.cpp:399
+#: ../libdnf/dnf-sack.cpp:400
 #, c-format
-msgid "no %1$d string for %2$s"
-msgstr "沒有 %1$d 字符串 %2$s"
+msgid "no %1$s string for %2$s"
+msgstr ""
 
-#: ../libdnf/dnf-sack.cpp:422
+#: ../libdnf/dnf-sack.cpp:423
 msgid "failed to add solv"
 msgstr "未能添加solv"
 
-#: ../libdnf/dnf-sack.cpp:440
+#: ../libdnf/dnf-sack.cpp:441
 #, c-format
 msgid "failed to open: %s"
 msgstr "未能打開: %s"
 
-#: ../libdnf/dnf-sack.cpp:519
+#: ../libdnf/dnf-sack.cpp:520
 #, c-format
 msgid "cannot create temporary file: %s"
 msgstr "無法創建臨時文件: %s"
 
-#: ../libdnf/dnf-sack.cpp:529
+#: ../libdnf/dnf-sack.cpp:530
 #, c-format
 msgid "failed opening tmp file: %s"
 msgstr "打開tmp文件失敗: %s"
 
-#: ../libdnf/dnf-sack.cpp:541
+#: ../libdnf/dnf-sack.cpp:542
 #, c-format
 msgid "write_main() failed writing data: %i"
 msgstr "write_main()寫入資料失敗: %i"
 
-#: ../libdnf/dnf-sack.cpp:558
+#: ../libdnf/dnf-sack.cpp:559
 msgid "write_main() failed to re-load written solv file"
 msgstr "write_main()無法重新加載寫入的solv文件"
 
-#: ../libdnf/dnf-sack.cpp:623
+#: ../libdnf/dnf-sack.cpp:624
 #, c-format
 msgid "can not create temporary file %s"
 msgstr "無法創建臨時文件 %s"
 
-#: ../libdnf/dnf-sack.cpp:641
+#: ../libdnf/dnf-sack.cpp:642
 #, c-format
 msgid "write_ext(%1$d) has failed: %2$d"
 msgstr "write_ext(%1$d) 失敗了: %2$d"
 
-#: ../libdnf/dnf-sack.cpp:696
+#: ../libdnf/dnf-sack.cpp:697
 msgid "null repo md file"
 msgstr "null repo md文件"
 
-#: ../libdnf/dnf-sack.cpp:705
+#: ../libdnf/dnf-sack.cpp:706
 #, c-format
 msgid "can not read file %1$s: %2$s"
 msgstr "無法讀取文件 %1$s: %2$s"
 
-#: ../libdnf/dnf-sack.cpp:719
+#: ../libdnf/dnf-sack.cpp:720
 msgid "repo_add_solv() has failed."
 msgstr "repo_add_solv()失敗了。"
 
@@ -786,19 +823,19 @@ msgstr "無法自動檢測架構"
 msgid "failed creating cachedir %s"
 msgstr "創建cachedir失敗了 %s"
 
-#: ../libdnf/dnf-sack.cpp:1700
+#: ../libdnf/dnf-sack.cpp:1702
 msgid "failed calculating RPMDB checksum"
 msgstr "計算RPMDB校驗和失敗"
 
-#: ../libdnf/dnf-sack.cpp:1724
+#: ../libdnf/dnf-sack.cpp:1726
 msgid "failed loading RPMDB"
 msgstr "加載RPMDB失敗"
 
-#: ../libdnf/dnf-sack.cpp:2387
+#: ../libdnf/dnf-sack.cpp:2393
 msgid "No module defaults found"
 msgstr ""
 
-#: ../libdnf/transaction/Transformer.cpp:658
+#: ../libdnf/transaction/Transformer.cpp:659
 msgid "Transformer: can't open history persist dir"
 msgstr "變形金剛:無法打開歷史堅持導演"
 
--
libgit2 0.28.2