Blob Blame History Raw
From 7844c40c75b3b753284982398962d399f63ef6f0 Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Fri, 18 Mar 2022 15:29:49 +0100
Subject: [PATCH] Update translations (RhBug:2017271)

---
 po/dnf-plugins-core.pot | 434 +++++++++++++++------
 po/fr.po                | 518 ++++++++++++++++++-------
 po/ja.po                | 706 ++++++++++++++++++++++++----------
 po/ko.po                | 832 +++++++++++++++++++++++++++-------------
 po/zh_CN.po             | 681 +++++++++++++++++++++-----------
 po/zh_TW.po             | 512 ++++++++++++++++++-------
 6 files changed, 2580 insertions(+), 1103 deletions(-)

diff --git a/po/dnf-plugins-core.pot b/po/dnf-plugins-core.pot
index 7cd717e..3ec9a50 100644
--- a/po/dnf-plugins-core.pot
+++ b/po/dnf-plugins-core.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
+"POT-Creation-Date: 2022-02-28 11:53+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -137,91 +137,91 @@ msgstr ""
 msgid "Changelogs for {}"
 msgstr ""
 
-#: plugins/config_manager.py:37
+#: plugins/config_manager.py:38
 #, python-brace-format
 msgid "manage {prog} configuration options and repositories"
 msgstr ""
 
-#: plugins/config_manager.py:44
+#: plugins/config_manager.py:45
 msgid "repo to modify"
 msgstr ""
 
-#: plugins/config_manager.py:47
+#: plugins/config_manager.py:48
 msgid "save the current options (useful with --setopt)"
 msgstr ""
 
-#: plugins/config_manager.py:50
+#: plugins/config_manager.py:51
 msgid "add (and enable) the repo from the specified file or url"
 msgstr ""
 
-#: plugins/config_manager.py:53
+#: plugins/config_manager.py:54
 msgid "print current configuration values to stdout"
 msgstr ""
 
-#: plugins/config_manager.py:56
+#: plugins/config_manager.py:57
 msgid "print variable values to stdout"
 msgstr ""
 
-#: plugins/config_manager.py:60
+#: plugins/config_manager.py:61
 msgid "enable repos (automatically saves)"
 msgstr ""
 
-#: plugins/config_manager.py:63
+#: plugins/config_manager.py:64
 msgid "disable repos (automatically saves)"
 msgstr ""
 
-#: plugins/config_manager.py:77
+#: plugins/config_manager.py:78
 msgid "one of the following arguments is required: {}"
 msgstr ""
 
-#: plugins/config_manager.py:86
+#: plugins/config_manager.py:87
 msgid ""
 "Warning: --enablerepo/--disablerepo arguments have no meaningwith config "
 "manager. Use --set-enabled/--set-disabled instead."
 msgstr ""
 
-#: plugins/config_manager.py:131
+#: plugins/config_manager.py:132
 #, python-format
 msgid "No matching repo to modify: %s."
 msgstr ""
 
-#: plugins/config_manager.py:182
+#: plugins/config_manager.py:183
 #, python-format
 msgid "Adding repo from: %s"
 msgstr ""
 
-#: plugins/config_manager.py:206
+#: plugins/config_manager.py:207
 msgid "Configuration of repo failed"
 msgid_plural "Configuration of repos failed"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/config_manager.py:216
+#: plugins/config_manager.py:217
 #, python-format
 msgid "Could not save repo to repofile %s: %s"
 msgstr ""
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "y"
 msgstr ""
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "yes"
 msgstr ""
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "n"
 msgstr ""
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "no"
 msgstr ""
 
-#: plugins/copr.py:79
+#: plugins/copr.py:84
 msgid "Interact with Copr repositories."
 msgstr ""
 
-#: plugins/copr.py:81
+#: plugins/copr.py:86
 msgid ""
 "\n"
 "  enable name/project [chroot]\n"
@@ -242,53 +242,63 @@ msgid ""
 "    "
 msgstr ""
 
-#: plugins/copr.py:107
+#: plugins/copr.py:112
 msgid "List all installed Copr repositories (default)"
 msgstr ""
 
-#: plugins/copr.py:109
+#: plugins/copr.py:114
 msgid "List enabled Copr repositories"
 msgstr ""
 
-#: plugins/copr.py:111
+#: plugins/copr.py:116
 msgid "List disabled Copr repositories"
 msgstr ""
 
-#: plugins/copr.py:113
+#: plugins/copr.py:118
 msgid "List available Copr repositories by user NAME"
 msgstr ""
 
-#: plugins/copr.py:115
+#: plugins/copr.py:120
 msgid "Specify an instance of Copr to work with"
 msgstr ""
 
-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:237
+#: plugins/copr.py:154 plugins/copr.py:222 plugins/copr.py:249
 msgid "Error: "
 msgstr ""
 
-#: plugins/copr.py:150
+#: plugins/copr.py:155
 msgid ""
 "specify Copr hub either with `--hub` or using `copr_hub/copr_username/"
 "copr_projectname` format"
 msgstr ""
 
-#: plugins/copr.py:153
+#: plugins/copr.py:158
 msgid "multiple hubs specified"
 msgstr ""
 
-#: plugins/copr.py:218 plugins/copr.py:222
+#: plugins/copr.py:223 plugins/copr.py:227
 msgid "exactly two additional parameters to copr command are required"
 msgstr ""
 
-#: plugins/copr.py:238
+#: plugins/copr.py:232
+msgid "Too many arguments."
+msgstr ""
+
+#: plugins/copr.py:235
+msgid ""
+"Bad format of optional chroot. The format is distribution-version-"
+"architecture."
+msgstr ""
+
+#: plugins/copr.py:250
 msgid "use format `copr_username/copr_projectname` to reference copr project"
 msgstr ""
 
-#: plugins/copr.py:240
+#: plugins/copr.py:252
 msgid "bad copr project format"
 msgstr ""
 
-#: plugins/copr.py:254
+#: plugins/copr.py:266
 msgid ""
 "\n"
 "Enabling a Copr repository. Please note that this repository is not part\n"
@@ -304,71 +314,71 @@ msgid ""
 "Bugzilla. In case of problems, contact the owner of this repository.\n"
 msgstr ""
 
-#: plugins/copr.py:271
+#: plugins/copr.py:283
 msgid "Repository successfully enabled."
 msgstr ""
 
-#: plugins/copr.py:276
+#: plugins/copr.py:288
 msgid "Repository successfully disabled."
 msgstr ""
 
-#: plugins/copr.py:280
+#: plugins/copr.py:292
 msgid "Repository successfully removed."
 msgstr ""
 
-#: plugins/copr.py:284 plugins/copr.py:693
+#: plugins/copr.py:296 plugins/copr.py:697
 msgid "Unknown subcommand {}."
 msgstr ""
 
-#: plugins/copr.py:341
+#: plugins/copr.py:353
 msgid ""
 "* These coprs have repo file with an old format that contains no information "
 "about Copr hub - the default one was assumed. Re-enable the project to fix "
 "this."
 msgstr ""
 
-#: plugins/copr.py:353
+#: plugins/copr.py:366
 msgid "Can't parse repositories for username '{}'."
 msgstr ""
 
-#: plugins/copr.py:356
+#: plugins/copr.py:369
 msgid "List of {} coprs"
 msgstr ""
 
-#: plugins/copr.py:364
+#: plugins/copr.py:374
 msgid "No description given"
 msgstr ""
 
-#: plugins/copr.py:376
+#: plugins/copr.py:386
 msgid "Can't parse search for '{}'."
 msgstr ""
 
-#: plugins/copr.py:379
+#: plugins/copr.py:389
 msgid "Matched: {}"
 msgstr ""
 
-#: plugins/copr.py:387
+#: plugins/copr.py:394
 msgid "No description given."
 msgstr ""
 
-#: plugins/copr.py:410
+#: plugins/copr.py:416
 msgid "Safe and good answer. Exiting."
 msgstr ""
 
-#: plugins/copr.py:417
+#: plugins/copr.py:423
 msgid "This command has to be run under the root user."
 msgstr ""
 
-#: plugins/copr.py:481
+#: plugins/copr.py:485
 msgid ""
 "This repository does not have any builds yet so you cannot enable it now."
 msgstr ""
 
-#: plugins/copr.py:484
+#: plugins/copr.py:488
 msgid "Such repository does not exist."
 msgstr ""
 
-#: plugins/copr.py:528
+#: plugins/copr.py:532
 #, python-brace-format
 msgid ""
 "Maintainer of the enabled Copr repository decided to make\n"
@@ -385,44 +395,44 @@ msgid ""
 "These repositories have been enabled automatically."
 msgstr ""
 
-#: plugins/copr.py:549
+#: plugins/copr.py:553
 msgid "Do you want to keep them enabled?"
 msgstr ""
 
-#: plugins/copr.py:582
+#: plugins/copr.py:586
 #, python-brace-format
 msgid "Failed to remove copr repo {0}/{1}/{2}"
 msgstr ""
 
-#: plugins/copr.py:593
+#: plugins/copr.py:597
 msgid "Failed to disable copr repo {}/{}"
 msgstr ""
 
-#: plugins/copr.py:611 plugins/copr.py:648
+#: plugins/copr.py:615 plugins/copr.py:652
 msgid "Unknown response from server."
 msgstr ""
 
-#: plugins/copr.py:633
+#: plugins/copr.py:637
 msgid "Interact with Playground repository."
 msgstr ""
 
-#: plugins/copr.py:639
+#: plugins/copr.py:643
 msgid "Enabling a Playground repository."
 msgstr ""
 
-#: plugins/copr.py:640
+#: plugins/copr.py:644
 msgid "Do you want to continue?"
 msgstr ""
 
-#: plugins/copr.py:683
+#: plugins/copr.py:687
 msgid "Playground repositories successfully enabled."
 msgstr ""
 
-#: plugins/copr.py:686
+#: plugins/copr.py:690
 msgid "Playground repositories successfully disabled."
 msgstr ""
 
-#: plugins/copr.py:690
+#: plugins/copr.py:694
 msgid "Playground repositories successfully updated."
 msgstr ""
 
@@ -541,7 +551,7 @@ msgstr ""
 msgid "limit  the  query to packages of given architectures."
 msgstr ""
 
-#: plugins/download.py:62
+#: plugins/download.py:62 plugins/modulesync.py:51
 msgid "resolve and download needed dependencies"
 msgstr ""
 
@@ -560,7 +570,7 @@ msgstr ""
 msgid "when running with --url, limit to specific protocols"
 msgstr ""
 
-#: plugins/download.py:121 plugins/reposync.py:293
+#: plugins/download.py:121 plugins/reposync.py:314
 #, python-format
 msgid "Failed to get mirror for package: %s"
 msgstr ""
@@ -583,6 +593,120 @@ msgstr ""
 msgid "No package %s available."
 msgstr ""
 
+#: plugins/groups_manager.py:49
+msgid "Invalid group id"
+msgstr ""
+
+#: plugins/groups_manager.py:58
+msgid "Invalid translated data, should be in form 'lang:text'"
+msgstr ""
+
+#: plugins/groups_manager.py:61
+msgid "Invalid/empty language for translated data"
+msgstr ""
+
+#: plugins/groups_manager.py:71
+msgid "Can't generate group id from '{}'. Please specify group id using --id."
+msgstr ""
+
+#: plugins/groups_manager.py:79
+msgid "create and edit groups metadata file"
+msgstr ""
+
+#: plugins/groups_manager.py:90
+msgid "load groups metadata from file"
+msgstr ""
+
+#: plugins/groups_manager.py:93
+msgid "save groups metadata to file"
+msgstr ""
+
+#: plugins/groups_manager.py:95
+msgid "load and save groups metadata to file"
+msgstr ""
+
+#: plugins/groups_manager.py:97
+msgid "print the result metadata to stdout"
+msgstr ""
+
+#: plugins/groups_manager.py:100
+msgid "group id"
+msgstr ""
+
+#: plugins/groups_manager.py:101
+msgid "group name"
+msgstr ""
+
+#: plugins/groups_manager.py:103
+msgid "group description"
+msgstr ""
+
+#: plugins/groups_manager.py:105
+msgid "group display order"
+msgstr ""
+
+#: plugins/groups_manager.py:108
+msgid "translated name for the group"
+msgstr ""
+
+#: plugins/groups_manager.py:111
+msgid "translated description for the group"
+msgstr ""
+
+#: plugins/groups_manager.py:115
+msgid "make the group user visible (default)"
+msgstr ""
+
+#: plugins/groups_manager.py:118
+msgid "make the group user invisible"
+msgstr ""
+
+#: plugins/groups_manager.py:123
+msgid "add packages to the mandatory section"
+msgstr ""
+
+#: plugins/groups_manager.py:125
+msgid "add packages to the optional section"
+msgstr ""
+
+#: plugins/groups_manager.py:127
+msgid "remove packages from the group instead of adding them"
+msgstr ""
+
+#: plugins/groups_manager.py:129
+msgid "include also direct dependencies for packages"
+msgstr ""
+
+#: plugins/groups_manager.py:132
+msgid "package specification"
+msgstr ""
+
+#: plugins/groups_manager.py:156
+msgid "Can't edit group without specifying it (use --id or --name)"
+msgstr ""
+
+#: plugins/groups_manager.py:190
+msgid "Can't load file \"{}\": {}"
+msgstr ""
+
+#: plugins/groups_manager.py:206
+msgid "Can't save file \"{}\": {}"
+msgstr ""
+
+#: plugins/groups_manager.py:261
+msgid "No match for argument: {}"
+msgstr ""
+
+#: plugins/groups_manager.py:298
+msgid "Can't remove packages from non-existent group"
+msgstr ""
+
+#: plugins/groups_manager.py:307
+msgid ""
+"Group id '{}' generated from '{}' is duplicit. Please specify group id using "
+"--id."
+msgstr ""
+
 #: plugins/leaves.py:32
 msgid "List installed packages not required by any other package"
 msgstr ""
@@ -615,43 +739,103 @@ msgstr ""
 msgid "Migrating history data..."
 msgstr ""
 
-#: plugins/needs_restarting.py:65
+#: plugins/modulesync.py:37
+msgid ""
+"Download packages from modules and/or create a repository with modular data"
+msgstr ""
+
+#: plugins/modulesync.py:44
+msgid "MODULE"
+msgstr ""
+
+#: plugins/modulesync.py:45
+msgid "modules to download"
+msgstr ""
+
+#: plugins/modulesync.py:47
+msgid "enable repositories with source packages"
+msgstr ""
+
+#: plugins/modulesync.py:49
+msgid "enable repositories with debug-info and debug-source packages"
+msgstr ""
+
+#: plugins/modulesync.py:53
+msgid "download only packages from newest modules"
+msgstr ""
+
+#: plugins/modulesync.py:85
+msgid "Unable to find a match for argument: '{}'"
+msgid_plural "Unable to find a match for arguments: '{}'"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/modulesync.py:107
+msgid ""
+"Creation of repository failed with return code {}. All downloaded content "
+"was kept on the system"
+msgstr ""
+
+#: plugins/modulesync.py:144
+#, python-brace-format
+msgid "No match for artifact '{0}' from module '{1}'"
+msgstr ""
+
+#: plugins/modulesync.py:162
+#, python-brace-format
+msgid "No match for package name '{0}' in profile {1} from module {2}"
+msgstr ""
+
+#: plugins/modulesync.py:166
+msgid "No mach for argument '{}'"
+msgstr ""
+
+#. TODO(jmracek) Shell we end with an error or with RC 1?
+#: plugins/modulesync.py:198
+msgid "Unable to satisfy require {}"
+msgstr ""
+
+#: plugins/needs_restarting.py:66
 #, python-brace-format
 msgid ""
 "No installed package found for package name \"{pkg}\" specified in needs-"
 "restarting file \"{file}\"."
 msgstr ""
 
-#: plugins/needs_restarting.py:199
+#: plugins/needs_restarting.py:220
 msgid "determine updated binaries that need restarting"
 msgstr ""
 
-#: plugins/needs_restarting.py:204
+#: plugins/needs_restarting.py:225
 msgid "only consider this user's processes"
 msgstr ""
 
-#: plugins/needs_restarting.py:206
+#: plugins/needs_restarting.py:227
 msgid ""
 "only report whether a reboot is required (exit code 1) or not (exit code 0)"
 msgstr ""
 
 #: plugins/needs_restarting.py:230
+msgid "only report affected systemd services"
+msgstr ""
+
+#: plugins/needs_restarting.py:253
 msgid "Core libraries or services have been updated since boot-up:"
 msgstr ""
 
-#: plugins/needs_restarting.py:235
+#: plugins/needs_restarting.py:258
 msgid "Reboot is required to fully utilize these updates."
 msgstr ""
 
-#: plugins/needs_restarting.py:236
+#: plugins/needs_restarting.py:259
 msgid "More information:"
 msgstr ""
 
-#: plugins/needs_restarting.py:240
+#: plugins/needs_restarting.py:263
 msgid "No core libraries or services have been updated since boot-up."
 msgstr ""
 
-#: plugins/needs_restarting.py:242
+#: plugins/needs_restarting.py:265
 msgid "Reboot should not be necessary."
 msgstr ""
 
@@ -666,13 +850,13 @@ msgstr ""
 msgid "Bad Transaction State: %s"
 msgstr ""
 
-#: plugins/post-transaction-actions.py:153
-#: plugins/post-transaction-actions.py:155
+#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:159
 #, python-format
 msgid "post-transaction-actions: %s"
 msgstr ""
 
-#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:161
 #, python-format
 msgid "post-transaction-actions: Bad Command \"%s\": %s"
 msgstr ""
@@ -843,112 +1027,124 @@ msgstr ""
 msgid "Pass either --old or --new, not both!"
 msgstr ""
 
-#: plugins/repomanage.py:71
+#: plugins/repomanage.py:89
 msgid "No files to process"
 msgstr ""
 
-#: plugins/repomanage.py:93
+#: plugins/repomanage.py:96
 msgid "Could not open {}"
 msgstr ""
 
-#: plugins/repomanage.py:177
+#: plugins/repomanage.py:180
 msgid "Print the older packages"
 msgstr ""
 
-#: plugins/repomanage.py:179
+#: plugins/repomanage.py:182
 msgid "Print the newest packages"
 msgstr ""
 
-#: plugins/repomanage.py:181
+#: plugins/repomanage.py:184
 msgid "Space separated output, not newline"
 msgstr ""
 
-#: plugins/repomanage.py:183
+#: plugins/repomanage.py:186
 msgid "Newest N packages to keep - defaults to 1"
 msgstr ""
 
-#: plugins/repomanage.py:186
+#: plugins/repomanage.py:189
 msgid "Path to directory"
 msgstr ""
 
-#: plugins/reposync.py:54
+#: plugins/reposync.py:55
 msgid "download all packages from remote repo"
 msgstr ""
 
-#: plugins/reposync.py:63
+#: plugins/reposync.py:64
 msgid "download only packages for this ARCH"
 msgstr ""
 
-#: plugins/reposync.py:65
+#: plugins/reposync.py:66
 msgid "delete local packages no longer present in repository"
 msgstr ""
 
-#: plugins/reposync.py:67
-msgid "also download and uncompress comps.xml"
-msgstr ""
-
-#: plugins/reposync.py:69
+#: plugins/reposync.py:68
 msgid "download all the metadata."
 msgstr ""
 
-#: plugins/reposync.py:71
-msgid "download only newest packages per-repo"
+#: plugins/reposync.py:70
+msgid "Remove packages that fail GPG signature checking after downloading"
 msgstr ""
 
 #: plugins/reposync.py:73
-msgid "where to store downloaded repositories"
+msgid "also download and uncompress comps.xml"
 msgstr ""
 
 #: plugins/reposync.py:75
-msgid "Don't add the reponame to the download path."
-msgstr ""
-
-#: plugins/reposync.py:77
 msgid ""
 "where to store downloaded repository metadata. Defaults to the value of --"
 "download-path."
 msgstr ""
 
+#: plugins/reposync.py:78
+msgid "download only newest packages per-repo"
+msgstr ""
+
 #: plugins/reposync.py:80
-msgid "operate on source packages"
+msgid "Don't add the reponame to the download path."
 msgstr ""
 
 #: plugins/reposync.py:82
+msgid "where to store downloaded repositories"
+msgstr ""
+
+#: plugins/reposync.py:84
 msgid "try to set local timestamps of local files by the one on the server"
 msgstr ""
 
-#: plugins/reposync.py:85
+#: plugins/reposync.py:87
+msgid "download only source packages"
+msgstr ""
+
+#: plugins/reposync.py:89
 msgid "Just list urls of what would be downloaded, don't download"
 msgstr ""
 
-#: plugins/reposync.py:109
+#: plugins/reposync.py:113
 msgid "Can't use --norepopath with multiple repositories"
 msgstr ""
 
-#: plugins/reposync.py:127
+#: plugins/reposync.py:132
 #, python-format
 msgid "Failed to get mirror for metadata: %s"
 msgstr ""
 
-#: plugins/reposync.py:144
+#: plugins/reposync.py:149
 msgid "Failed to get mirror for the group file."
 msgstr ""
 
+#: plugins/reposync.py:168
+msgid "Removing {}: {}"
+msgstr ""
+
 #: plugins/reposync.py:175
+msgid "GPG signature check failed."
+msgstr ""
+
+#: plugins/reposync.py:196
 msgid "Download target '{}' is outside of download path '{}'."
 msgstr ""
 
-#: plugins/reposync.py:190
+#: plugins/reposync.py:211
 #, python-format
 msgid "[DELETED] %s"
 msgstr ""
 
-#: plugins/reposync.py:192
+#: plugins/reposync.py:213
 #, python-format
 msgid "failed to delete file %s"
 msgstr ""
 
-#: plugins/reposync.py:201
+#: plugins/reposync.py:222
 #, python-format
 msgid "comps.xml for repository %s saved"
 msgstr ""
@@ -957,64 +1153,68 @@ msgstr ""
 msgid "New leaves:"
 msgstr ""
 
-#: plugins/versionlock.py:32
+#: plugins/versionlock.py:33
 #, python-format
 msgid "Unable to read version lock configuration: %s"
 msgstr ""
 
-#: plugins/versionlock.py:33
+#: plugins/versionlock.py:34
 msgid "Locklist not set"
 msgstr ""
 
-#: plugins/versionlock.py:34
+#: plugins/versionlock.py:35
 msgid "Adding versionlock on:"
 msgstr ""
 
-#: plugins/versionlock.py:35
+#: plugins/versionlock.py:36
 msgid "Adding exclude on:"
 msgstr ""
 
-#: plugins/versionlock.py:36
+#: plugins/versionlock.py:37
 msgid "Package already locked in equivalent form:"
 msgstr ""
 
-#: plugins/versionlock.py:37
+#: plugins/versionlock.py:38
 msgid "Package {} is already locked"
 msgstr ""
 
-#: plugins/versionlock.py:38
+#: plugins/versionlock.py:39
 msgid "Package {} is already excluded"
 msgstr ""
 
-#: plugins/versionlock.py:39
+#: plugins/versionlock.py:40
 msgid "Deleting versionlock for:"
 msgstr ""
 
-#: plugins/versionlock.py:40
+#: plugins/versionlock.py:41
 msgid "No package found for:"
 msgstr ""
 
-#: plugins/versionlock.py:41
+#: plugins/versionlock.py:42
 msgid "Excludes from versionlock plugin were not applied"
 msgstr ""
 
-#: plugins/versionlock.py:42
+#: plugins/versionlock.py:43
 msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
 msgstr ""
 
-#: plugins/versionlock.py:43
+#: plugins/versionlock.py:44
 msgid ""
 "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
 msgstr ""
 
-#: plugins/versionlock.py:44
+#: plugins/versionlock.py:45
 msgid "Versionlock plugin: could not parse pattern:"
 msgstr ""
 
-#: plugins/versionlock.py:130
+#: plugins/versionlock.py:134
 msgid "control package version locks"
 msgstr ""
 
-#: plugins/versionlock.py:136
+#: plugins/versionlock.py:140
 msgid "Use package specifications as they are, do not try to parse them"
 msgstr ""
+
+#: plugins/versionlock.py:160
+msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead."
+msgstr ""
diff --git a/po/fr.po b/po/fr.po
index dfa06ad..f70bfb2 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,23 +3,26 @@
 # José Fournier <jaaf64@zoraldia.com>, 2017. #zanata
 # Jérôme Fenal <jfenal@gmail.com>, 2017. #zanata
 # Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>, 2018. #zanata, 2020.
-# Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+# Ludek Janda <ljanda@redhat.com>, 2018. #zanata, 2021, 2022.
 # Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>, 2019. #zanata, 2020.
 # Julien Humbert <julroy67@gmail.com>, 2020.
+# Sundeep Anand <suanand@redhat.com>, 2021.
+# Transtats <suanand@redhat.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-07-09 13:27+0000\n"
-"Last-Translator: Julien Humbert <julroy67@gmail.com>\n"
-"Language-Team: French <https://translate.fedoraproject.org/projects/dnf/dnf-plugins-core-l10n-master/fr/>\n"
+"POT-Creation-Date: 2022-02-28 11:53+0100\n"
+"PO-Revision-Date: 2022-03-09 12:39+0000\n"
+"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
+"Language-Team: French <https://translate.fedoraproject.org/projects/dnf/"
+"dnf-plugins-core-rhel-8/fr/>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.11.2\n"
 
 #: plugins/builddep.py:45
 msgid "[PACKAGE|PACKAGE.spec]"
@@ -40,8 +43,7 @@ msgstr "définit une macro pour l’interprétation du fichier spec"
 
 #: plugins/builddep.py:95
 msgid "skip build dependencies not available in repositories"
-msgstr ""
-"ignorer les dépendances de compilation non disponibles dans les dépôts"
+msgstr "ignorer les dépendances de compilation non disponibles dans les dépôts"
 
 #: plugins/builddep.py:98
 msgid "treat commandline arguments as spec files"
@@ -60,8 +62,7 @@ msgid "Some packages could not be found."
 msgstr "Certains paquets n’ont pu être trouvés."
 
 #. No provides, no files
-#. Richdeps can have no matches but it could be correct (solver must decide
-#. later)
+#. Richdeps can have no matches but it could be correct (solver must decide later)
 #: plugins/builddep.py:173
 #, python-format
 msgid "No matching package to install: '%s'"
@@ -150,45 +151,45 @@ msgstr "Liste tous les changements"
 msgid "Changelogs for {}"
 msgstr "Changements pour {}"
 
-#: plugins/config_manager.py:37
+#: plugins/config_manager.py:38
 #, python-brace-format
 msgid "manage {prog} configuration options and repositories"
 msgstr "gestion de la configuration et des dépôts {prog}"
 
-#: plugins/config_manager.py:44
+#: plugins/config_manager.py:45
 msgid "repo to modify"
 msgstr "dépôt à modifier"
 
-#: plugins/config_manager.py:47
+#: plugins/config_manager.py:48
 msgid "save the current options (useful with --setopt)"
 msgstr "enregistrer les options actuelles (utile avec --setopt)"
 
-#: plugins/config_manager.py:50
+#: plugins/config_manager.py:51
 msgid "add (and enable) the repo from the specified file or url"
 msgstr "ajoute (et active) le dépôt à partir du fichier ou de l’url indiqué"
 
-#: plugins/config_manager.py:53
+#: plugins/config_manager.py:54
 msgid "print current configuration values to stdout"
 msgstr ""
 "affiche les valeurs de la configuration actuelle sur la sortie standard"
 
-#: plugins/config_manager.py:56
+#: plugins/config_manager.py:57
 msgid "print variable values to stdout"
 msgstr "affiche les valeurs des variables sur la sortie standard"
 
-#: plugins/config_manager.py:60
+#: plugins/config_manager.py:61
 msgid "enable repos (automatically saves)"
 msgstr "activer les dépôts (enregistre automatiquement)"
 
-#: plugins/config_manager.py:63
+#: plugins/config_manager.py:64
 msgid "disable repos (automatically saves)"
 msgstr "désactiver les dépôts (enregistre automatiquement)"
 
-#: plugins/config_manager.py:77
+#: plugins/config_manager.py:78
 msgid "one of the following arguments is required: {}"
 msgstr "un des paramètres suivants est nécessaire : {}"
 
-#: plugins/config_manager.py:86
+#: plugins/config_manager.py:87
 msgid ""
 "Warning: --enablerepo/--disablerepo arguments have no meaningwith config "
 "manager. Use --set-enabled/--set-disabled instead."
@@ -197,48 +198,48 @@ msgstr ""
 "signification avec le gestionnaire de configuration. Utilisez plutôt --set-"
 "enabled/--set-disabled."
 
-#: plugins/config_manager.py:131
+#: plugins/config_manager.py:132
 #, python-format
 msgid "No matching repo to modify: %s."
 msgstr "Aucun dépôt correspondant à modifier : %s."
 
-#: plugins/config_manager.py:182
+#: plugins/config_manager.py:183
 #, python-format
 msgid "Adding repo from: %s"
 msgstr "Ajout du dépôt depuis : %s"
 
-#: plugins/config_manager.py:206
+#: plugins/config_manager.py:207
 msgid "Configuration of repo failed"
 msgid_plural "Configuration of repos failed"
 msgstr[0] "La configuration du dépôt a échoué"
 msgstr[1] "La configuration des dépôts a échoué"
 
-#: plugins/config_manager.py:216
+#: plugins/config_manager.py:217
 #, python-format
 msgid "Could not save repo to repofile %s: %s"
 msgstr "Sauvegarde impossible du dépôt dans le fichier du dépôt %s : %s"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "y"
 msgstr "o"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "yes"
 msgstr "oui"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "n"
 msgstr "n"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "no"
 msgstr "non"
 
-#: plugins/copr.py:79
+#: plugins/copr.py:84
 msgid "Interact with Copr repositories."
 msgstr "Interagit avec les dépôts Copr."
 
-#: plugins/copr.py:81
+#: plugins/copr.py:86
 msgid ""
 "\n"
 "  enable name/project [chroot]\n"
@@ -276,57 +277,69 @@ msgstr ""
 "  copr search tests\n"
 "    "
 
-#: plugins/copr.py:107
+#: plugins/copr.py:112
 msgid "List all installed Copr repositories (default)"
 msgstr "Lister tous les dépôts Copr installés (par défaut)"
 
-#: plugins/copr.py:109
+#: plugins/copr.py:114
 msgid "List enabled Copr repositories"
 msgstr "Lister les dépôts Copr activés"
 
-#: plugins/copr.py:111
+#: plugins/copr.py:116
 msgid "List disabled Copr repositories"
 msgstr "Lister les dépôts Copr désactivés"
 
-#: plugins/copr.py:113
+#: plugins/copr.py:118
 msgid "List available Copr repositories by user NAME"
 msgstr "Lister les dépôts Copr disponibles par NOM d’utilisateur"
 
-#: plugins/copr.py:115
+#: plugins/copr.py:120
 msgid "Specify an instance of Copr to work with"
 msgstr "Précisez une instance Copr avec laquelle travailler"
 
-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:237
+#: plugins/copr.py:154 plugins/copr.py:222 plugins/copr.py:249
 msgid "Error: "
 msgstr "Erreur : "
 
-#: plugins/copr.py:150
+#: plugins/copr.py:155
 msgid ""
-"specify Copr hub either with `--hub` or using "
-"`copr_hub/copr_username/copr_projectname` format"
+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/"
+"copr_projectname` format"
 msgstr ""
-"précisez un hub Copr soit via `--hub` ou en utilisant le format "
-"`hub_copr/utilisateur_copr/projet_copr`"
+"précisez un hub Copr soit via `--hub` ou en utilisant le format `hub_copr/"
+"utilisateur_copr/projet_copr`"
 
-#: plugins/copr.py:153
+#: plugins/copr.py:158
 msgid "multiple hubs specified"
 msgstr "de multiples hubs ont été renseignés"
 
-#: plugins/copr.py:218 plugins/copr.py:222
+#: plugins/copr.py:223 plugins/copr.py:227
 msgid "exactly two additional parameters to copr command are required"
 msgstr "la commande copr requiert exactement deux paramètres additionnels"
 
-#: plugins/copr.py:238
+#: plugins/copr.py:232
+msgid "Too many arguments."
+msgstr "Trop d'arguments."
+
+#: plugins/copr.py:235
+msgid ""
+"Bad format of optional chroot. The format is distribution-version-"
+"architecture."
+msgstr ""
+"Mauvais format du chroot optionnel. Le format est distribution-version-"
+"architecture."
+
+#: plugins/copr.py:250
 msgid "use format `copr_username/copr_projectname` to reference copr project"
 msgstr ""
 "utilisez le format `copr_username/copr_projectname` pour faire référence au "
 "projet copr"
 
-#: plugins/copr.py:240
+#: plugins/copr.py:252
 msgid "bad copr project format"
 msgstr "mauvais format de projet copr"
 
-#: plugins/copr.py:254
+#: plugins/copr.py:266
 msgid ""
 "\n"
 "Enabling a Copr repository. Please note that this repository is not part\n"
@@ -334,7 +347,8 @@ msgid ""
 "\n"
 "The Fedora Project does not exercise any power over the contents of\n"
 "this repository beyond the rules outlined in the Copr FAQ at\n"
-"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>,\n"
 "and packages are not held to any quality or security level.\n"
 "\n"
 "Please do not file bug reports about these packages in Fedora\n"
@@ -346,83 +360,85 @@ msgstr ""
 "\n"
 "Le projet Fedora n’exerce aucun pouvoir sur le contenu de ce dépôt au delà\n"
 "des règles précisées dans la FAQ Copr \n"
-"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>,\n"
 "et les paquets ne sont tenus à aucun niveau de qualité ou de sécurité.\n"
 "\n"
-"Veuillez ne pas signaler de bogues à propos de ces paquets dans le Bugzilla de Fedora.\n"
+"Veuillez ne pas signaler de bogues à propos de ces paquets dans le Bugzilla "
+"de Fedora.\n"
 "En cas de problèmes, contactez le propriétaire de ce dépôt.\n"
 
-#: plugins/copr.py:271
+#: plugins/copr.py:283
 msgid "Repository successfully enabled."
 msgstr "Activation du dépôt réussie."
 
-#: plugins/copr.py:276
+#: plugins/copr.py:288
 msgid "Repository successfully disabled."
 msgstr "Désactivation du dépôt réussie."
 
-#: plugins/copr.py:280
+#: plugins/copr.py:292
 msgid "Repository successfully removed."
 msgstr "Suppression du dépôt réussie."
 
-#: plugins/copr.py:284 plugins/copr.py:693
+#: plugins/copr.py:296 plugins/copr.py:697
 msgid "Unknown subcommand {}."
 msgstr "Sous-commande inconnue {}."
 
-#: plugins/copr.py:341
+#: plugins/copr.py:353
 msgid ""
-"* These coprs have repo file with an old format that contains no information"
-" about Copr hub - the default one was assumed. Re-enable the project to fix "
+"* These coprs have repo file with an old format that contains no information "
+"about Copr hub - the default one was assumed. Re-enable the project to fix "
 "this."
 msgstr ""
 "* Ces Copr ont des fichiers de dépôts avec un ancien format qui ne contient "
 "aucune information à propos de Copr hub - celui par défaut a été utilisé. "
 "Réactivez le projet pour résoudre le problème."
 
-#: plugins/copr.py:353
+#: plugins/copr.py:366
 msgid "Can't parse repositories for username '{}'."
 msgstr ""
 "Ne peut analyser les dépôts pour y chercher le nom d’utilisateur « {} »."
 
-#: plugins/copr.py:356
+#: plugins/copr.py:369
 msgid "List of {} coprs"
 msgstr "Liste de {} coprs"
 
-#: plugins/copr.py:364
+#: plugins/copr.py:374
 msgid "No description given"
 msgstr "Aucune description fournie"
 
-#: plugins/copr.py:376
+#: plugins/copr.py:386
 msgid "Can't parse search for '{}'."
 msgstr "Impossible d’analyser la recherche pour « {} »."
 
-#: plugins/copr.py:379
+#: plugins/copr.py:389
 msgid "Matched: {}"
 msgstr "Correspondance : {}"
 
-#: plugins/copr.py:387
+#: plugins/copr.py:394
 msgid "No description given."
 msgstr "Pas de description fournie."
 
-#: plugins/copr.py:410
+#: plugins/copr.py:416
 msgid "Safe and good answer. Exiting."
 msgstr "Réponse sûre et exacte. Fin."
 
-#: plugins/copr.py:417
+#: plugins/copr.py:423
 msgid "This command has to be run under the root user."
 msgstr "Cette commande requiert les privilèges du super utilisateur."
 
-#: plugins/copr.py:481
+#: plugins/copr.py:485
 msgid ""
 "This repository does not have any builds yet so you cannot enable it now."
 msgstr ""
 "Ce dépôt ne contient pas encore d’exécutables vous ne pouvez donc pas "
 "l’activer."
 
-#: plugins/copr.py:484
+#: plugins/copr.py:488
 msgid "Such repository does not exist."
 msgstr "Ce dépôt n’existe pas."
 
-#: plugins/copr.py:528
+#: plugins/copr.py:532
 #, python-brace-format
 msgid ""
 "Maintainer of the enabled Copr repository decided to make\n"
@@ -451,44 +467,44 @@ msgstr ""
 "\n"
 "Ces dépôts ont été activés automatiquement."
 
-#: plugins/copr.py:549
+#: plugins/copr.py:553
 msgid "Do you want to keep them enabled?"
 msgstr "Souhaitez-vous les maintenir activés ?"
 
-#: plugins/copr.py:582
+#: plugins/copr.py:586
 #, python-brace-format
 msgid "Failed to remove copr repo {0}/{1}/{2}"
 msgstr "Échec de la suppression du dépôt Copr {0}/{1}/{2}"
 
-#: plugins/copr.py:593
+#: plugins/copr.py:597
 msgid "Failed to disable copr repo {}/{}"
 msgstr "Échec de la désactivation du dépôt copr {}/{}"
 
-#: plugins/copr.py:611 plugins/copr.py:648
+#: plugins/copr.py:615 plugins/copr.py:652
 msgid "Unknown response from server."
 msgstr "Réponse inconnue du serveur."
 
-#: plugins/copr.py:633
+#: plugins/copr.py:637
 msgid "Interact with Playground repository."
 msgstr "Interagit avec le dépôt Playground."
 
-#: plugins/copr.py:639
+#: plugins/copr.py:643
 msgid "Enabling a Playground repository."
 msgstr "Activation d’un dépôt Playground."
 
-#: plugins/copr.py:640
+#: plugins/copr.py:644
 msgid "Do you want to continue?"
 msgstr "Souhaitez-vous continuer ?"
 
-#: plugins/copr.py:683
+#: plugins/copr.py:687
 msgid "Playground repositories successfully enabled."
 msgstr "Activation des dépôts Playground réussie."
 
-#: plugins/copr.py:686
+#: plugins/copr.py:690
 msgid "Playground repositories successfully disabled."
 msgstr "Désactivation des dépôts Playground réussie."
 
-#: plugins/copr.py:690
+#: plugins/copr.py:694
 msgid "Playground repositories successfully updated."
 msgstr "Mise à jour des dépôts Playground réussie."
 
@@ -574,8 +590,7 @@ msgstr ""
 msgid ""
 "Could not find debugsource package for the following available packages: %s"
 msgstr ""
-"Impossible de trouver le paquet debugsource pour ces paquets disponibles : "
-"%s"
+"Impossible de trouver le paquet debugsource pour ces paquets disponibles : %s"
 
 #: plugins/debuginfo-install.py:190
 #, python-format
@@ -619,7 +634,7 @@ msgstr "télécharge plutôt le paquet -debugsource"
 msgid "limit  the  query to packages of given architectures."
 msgstr "limite les requêtes de paquets aux architectures spécifiées."
 
-#: plugins/download.py:62
+#: plugins/download.py:62 plugins/modulesync.py:51
 msgid "resolve and download needed dependencies"
 msgstr "résout et télécharge les dépendances nécessaires"
 
@@ -642,7 +657,7 @@ msgstr ""
 msgid "when running with --url, limit to specific protocols"
 msgstr "si --url est renseigné, limite aux protocoles spécifiés"
 
-#: plugins/download.py:121 plugins/reposync.py:293
+#: plugins/download.py:121 plugins/reposync.py:314
 #, python-format
 msgid "Failed to get mirror for package: %s"
 msgstr "Échec de l’obtention du miroir pour le paquet : %s"
@@ -665,6 +680,125 @@ msgstr "Aucune source définie pour %s"
 msgid "No package %s available."
 msgstr "Aucun paquet %s n’est disponible."
 
+#: plugins/groups_manager.py:49
+msgid "Invalid group id"
+msgstr "id de groupe invalide"
+
+#: plugins/groups_manager.py:58
+msgid "Invalid translated data, should be in form 'lang:text'"
+msgstr "Données traduites invalides, doivent être au format « lang : text »"
+
+#: plugins/groups_manager.py:61
+msgid "Invalid/empty language for translated data"
+msgstr "Langue non valide / vide pour les données traduites"
+
+#: plugins/groups_manager.py:71
+msgid "Can't generate group id from '{}'. Please specify group id using --id."
+msgstr ""
+"Impossible de générer l'id du groupe à partir de «{}». Veuillez spécifier "
+"l'id du groupe en utilisant --id."
+
+#: plugins/groups_manager.py:79
+msgid "create and edit groups metadata file"
+msgstr "créer et modifier le fichier de métadonnées des groupes"
+
+#: plugins/groups_manager.py:90
+msgid "load groups metadata from file"
+msgstr "charger des métadonnées de groupes à partir d'un fichier"
+
+#: plugins/groups_manager.py:93
+msgid "save groups metadata to file"
+msgstr "enregistrer les métadonnées des groupes dans un fichier"
+
+#: plugins/groups_manager.py:95
+msgid "load and save groups metadata to file"
+msgstr "charge et enregistre les métadonnées des groupes dans un fichier"
+
+#: plugins/groups_manager.py:97
+msgid "print the result metadata to stdout"
+msgstr "affiche les métadonnées du résultat sur la sortie standard"
+
+#: plugins/groups_manager.py:100
+msgid "group id"
+msgstr "id du groupe"
+
+#: plugins/groups_manager.py:101
+msgid "group name"
+msgstr "Nom du groupe"
+
+#: plugins/groups_manager.py:103
+msgid "group description"
+msgstr "description du groupe"
+
+#: plugins/groups_manager.py:105
+msgid "group display order"
+msgstr "ordre d'affichage du groupe"
+
+#: plugins/groups_manager.py:108
+msgid "translated name for the group"
+msgstr "nom traduit pour le groupe"
+
+#: plugins/groups_manager.py:111
+msgid "translated description for the group"
+msgstr "description traduite pour le groupe"
+
+#: plugins/groups_manager.py:115
+msgid "make the group user visible (default)"
+msgstr "rendre l'utilisateur du groupe visible (par défaut)"
+
+#: plugins/groups_manager.py:118
+msgid "make the group user invisible"
+msgstr "rendre l'utilisateur du groupe invisible"
+
+#: plugins/groups_manager.py:123
+msgid "add packages to the mandatory section"
+msgstr "ajoute les paquets à la section obligatoire"
+
+#: plugins/groups_manager.py:125
+msgid "add packages to the optional section"
+msgstr "ajoute les paquets à la section optionnelle"
+
+#: plugins/groups_manager.py:127
+msgid "remove packages from the group instead of adding them"
+msgstr "supprime les paquets du groupe au lieu de les ajouter"
+
+#: plugins/groups_manager.py:129
+msgid "include also direct dependencies for packages"
+msgstr "inclus également les dépendances directes pour les paquets"
+
+#: plugins/groups_manager.py:132
+msgid "package specification"
+msgstr "spécification du paquet"
+
+#: plugins/groups_manager.py:156
+msgid "Can't edit group without specifying it (use --id or --name)"
+msgstr ""
+"Un groupe ne peut pas être édité sans le spécifier (utilisez --id ou --name)"
+
+#: plugins/groups_manager.py:190
+msgid "Can't load file \"{}\": {}"
+msgstr "Impossible de charger le fichier « {} » : {}"
+
+#: plugins/groups_manager.py:206
+msgid "Can't save file \"{}\": {}"
+msgstr "Impossible d’enregistrer le fichier « {} » : {}"
+
+#: plugins/groups_manager.py:261
+msgid "No match for argument: {}"
+msgstr "Aucune correspondance pour l’argument : {}"
+
+#: plugins/groups_manager.py:298
+msgid "Can't remove packages from non-existent group"
+msgstr "Les paquets ne peuvent pas être retirés d'un groupe qui n'existe pas"
+
+#: plugins/groups_manager.py:307
+msgid ""
+"Group id '{}' generated from '{}' is duplicit. Please specify group id using "
+"--id."
+msgstr ""
+"L'id du groupe « {} » qui a été généré pour « {} » est en double. Veuillez "
+"le spécifier en utilisant --id."
+
 #: plugins/leaves.py:32
 msgid "List installed packages not required by any other package"
 msgstr ""
@@ -698,7 +832,69 @@ msgstr "migrer les données d’historique, de groupe et de yumdb, vers dnf"
 msgid "Migrating history data..."
 msgstr "Migration des données d’historique …"
 
-#: plugins/needs_restarting.py:65
+#: plugins/modulesync.py:37
+msgid ""
+"Download packages from modules and/or create a repository with modular data"
+msgstr ""
+"Télécharger les paquets des modules et/ou créer un référentiel avec les "
+"données des modules"
+
+#: plugins/modulesync.py:44
+msgid "MODULE"
+msgstr "MODULE"
+
+#: plugins/modulesync.py:45
+msgid "modules to download"
+msgstr "modules à télécharger"
+
+#: plugins/modulesync.py:47
+msgid "enable repositories with source packages"
+msgstr "activer les dépôts avec les paquets sources"
+
+#: plugins/modulesync.py:49
+msgid "enable repositories with debug-info and debug-source packages"
+msgstr "activer les dépôts avec les paquets debug-info et debug-source"
+
+#: plugins/modulesync.py:53
+msgid "download only packages from newest modules"
+msgstr "télécharger uniquement les paquets des modules les plus récents"
+
+#: plugins/modulesync.py:85
+msgid "Unable to find a match for argument: '{}'"
+msgid_plural "Unable to find a match for arguments: '{}'"
+msgstr[0] "Impossible de trouver une correspondance pour l'argument : '{}'"
+msgstr[1] "Impossible de trouver une correspondance pour les arguments : '{}'"
+
+#: plugins/modulesync.py:107
+msgid ""
+"Creation of repository failed with return code {}. All downloaded content "
+"was kept on the system"
+msgstr ""
+"La création du référentiel a échoué avec le code de retour {}. Tout le "
+"contenu téléchargé a été conservé sur le système"
+
+#: plugins/modulesync.py:144
+#, python-brace-format
+msgid "No match for artifact '{0}' from module '{1}'"
+msgstr "Aucune correspondance pour l'artefact '{0}' du module '{1}'"
+
+#: plugins/modulesync.py:162
+#, python-brace-format
+msgid "No match for package name '{0}' in profile {1} from module {2}"
+msgstr ""
+"Aucune correspondance pour le nom de paquet '{0}' dans le profil {1} du "
+"module {2}"
+
+#: plugins/modulesync.py:166
+msgid "No mach for argument '{}'"
+msgstr "Pas de correspondance pour l'argument '{}'"
+
+#. TODO(jmracek) Shell we end with an error or with RC 1?
+#: plugins/modulesync.py:198
+msgid "Unable to satisfy require {}"
+msgstr "Impossible de satisfaire le besoin {}"
+
+#: plugins/needs_restarting.py:66
 #, python-brace-format
 msgid ""
 "No installed package found for package name \"{pkg}\" specified in needs-"
@@ -707,15 +903,15 @@ msgstr ""
 "Aucun paquet installé trouvé pour le nom de paquet « {pkg} » spécifié dans "
 "needs-restarting du fichier « {file} »."
 
-#: plugins/needs_restarting.py:199
+#: plugins/needs_restarting.py:220
 msgid "determine updated binaries that need restarting"
 msgstr "détermine les binaires mis à jour qui nécessitent un redémarrage"
 
-#: plugins/needs_restarting.py:204
+#: plugins/needs_restarting.py:225
 msgid "only consider this user's processes"
 msgstr "considère uniquement les processus de cet utilisateur"
 
-#: plugins/needs_restarting.py:206
+#: plugins/needs_restarting.py:227
 msgid ""
 "only report whether a reboot is required (exit code 1) or not (exit code 0)"
 msgstr ""
@@ -723,28 +919,32 @@ msgstr ""
 "(exit code 0)"
 
 #: plugins/needs_restarting.py:230
+msgid "only report affected systemd services"
+msgstr "signaler uniquement les services systemd affectés"
+
+#: plugins/needs_restarting.py:253
 msgid "Core libraries or services have been updated since boot-up:"
 msgstr ""
 "les bibliothèques et les services de base ont été mis à jour depuis le "
 "démarrage (boot-up) :"
 
-#: plugins/needs_restarting.py:235
+#: plugins/needs_restarting.py:258
 msgid "Reboot is required to fully utilize these updates."
 msgstr ""
 "Un nouveau démarrage est requis pour pouvoir bénéficier totalement de ces "
 "mises à jour."
 
-#: plugins/needs_restarting.py:236
+#: plugins/needs_restarting.py:259
 msgid "More information:"
 msgstr "Plus d’information :"
 
-#: plugins/needs_restarting.py:240
+#: plugins/needs_restarting.py:263
 msgid "No core libraries or services have been updated since boot-up."
 msgstr ""
 "Aucune bibliothèque ou service de base n’a été mis à jour depuis le "
 "démarrage."
 
-#: plugins/needs_restarting.py:242
+#: plugins/needs_restarting.py:265
 msgid "Reboot should not be necessary."
 msgstr "Un nouveau démarrage ne devrait pas être utile."
 
@@ -759,13 +959,13 @@ msgstr "Mauvaise ligne d’action « %s » : %s"
 msgid "Bad Transaction State: %s"
 msgstr "Mauvais état de transaction : %s"
 
-#: plugins/post-transaction-actions.py:153
-#: plugins/post-transaction-actions.py:155
+#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:159
 #, python-format
 msgid "post-transaction-actions: %s"
 msgstr "post-transaction-actions : %s"
 
-#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:161
 #, python-format
 msgid "post-transaction-actions: Bad Command \"%s\": %s"
 msgstr "post-transaction-actions : mauvaise commande « %s » : %s"
@@ -822,11 +1022,10 @@ msgstr "Affichez des données supplémentaires sur la taille des changements."
 
 #: plugins/repodiff.py:69
 msgid ""
-"Compare packages also by arch. By default packages are compared just by "
-"name."
+"Compare packages also by arch. By default packages are compared just by name."
 msgstr ""
-"Compare également les paquets par architecture. Par défaut, les paquets sont"
-" uniquement comparés par nom."
+"Compare également les paquets par architecture. Par défaut, les paquets sont "
+"uniquement comparés par nom."
 
 #: plugins/repodiff.py:72
 msgid "Output a simple one line message for modified packages."
@@ -953,119 +1152,133 @@ msgstr "Gère un dossier de paquets rpm"
 msgid "Pass either --old or --new, not both!"
 msgstr "Passez soit --old, soit --new, mais pas les deux !"
 
-#: plugins/repomanage.py:71
+#: plugins/repomanage.py:89
 msgid "No files to process"
 msgstr "Aucun fichier à traiter"
 
-#: plugins/repomanage.py:93
+#: plugins/repomanage.py:96
 msgid "Could not open {}"
 msgstr "Ouverture de {} impossible"
 
-#: plugins/repomanage.py:177
+#: plugins/repomanage.py:180
 msgid "Print the older packages"
 msgstr "Afficher les paquets plus anciens"
 
-#: plugins/repomanage.py:179
+#: plugins/repomanage.py:182
 msgid "Print the newest packages"
 msgstr "Afficher les paquets les plus récents"
 
-#: plugins/repomanage.py:181
+#: plugins/repomanage.py:184
 msgid "Space separated output, not newline"
 msgstr "Sorties séparées par des espaces plutôt que des retours à la ligne"
 
-#: plugins/repomanage.py:183
+#: plugins/repomanage.py:186
 msgid "Newest N packages to keep - defaults to 1"
 msgstr "N paquets les plus récents à conserver — par défaut 1"
 
-#: plugins/repomanage.py:186
+#: plugins/repomanage.py:189
 msgid "Path to directory"
 msgstr "Chemin vers le répertoire"
 
-#: plugins/reposync.py:54
+#: plugins/reposync.py:55
 msgid "download all packages from remote repo"
 msgstr "télécharger tous les paquets depuis le dépôt distant"
 
-#: plugins/reposync.py:63
+#: plugins/reposync.py:64
 msgid "download only packages for this ARCH"
 msgstr "télécharger seulement les paquets s’appliquant à cette ARCH"
 
-#: plugins/reposync.py:65
+#: plugins/reposync.py:66
 msgid "delete local packages no longer present in repository"
 msgstr "supprimer les paquets locaux qui ne sont plus présents dans le dépôt"
 
-#: plugins/reposync.py:67
-msgid "also download and uncompress comps.xml"
-msgstr "également télécharger et décompresser comps.xml"
-
-#: plugins/reposync.py:69
+#: plugins/reposync.py:68
 msgid "download all the metadata."
 msgstr "télécharger toutes les métadonnées."
 
-#: plugins/reposync.py:71
-msgid "download only newest packages per-repo"
-msgstr "ne télécharger que les nouveaux paquets per-rep"
+#: plugins/reposync.py:70
+msgid "Remove packages that fail GPG signature checking after downloading"
+msgstr ""
+"Retire les paquets qui ont échoué la vérification de la signature GPG après "
+"téléchargement"
 
 #: plugins/reposync.py:73
-msgid "where to store downloaded repositories"
-msgstr "lieu où stocker les dépôts téléchargés"
+msgid "also download and uncompress comps.xml"
+msgstr "également télécharger et décompresser comps.xml"
 
 #: plugins/reposync.py:75
-msgid "Don't add the reponame to the download path."
-msgstr "N’ajoutez pas le nom du dépôt dans le chemin de téléchargement."
-
-#: plugins/reposync.py:77
 msgid ""
-"where to store downloaded repository metadata. Defaults to the value of "
-"--download-path."
+"where to store downloaded repository metadata. Defaults to the value of --"
+"download-path."
 msgstr ""
-"là où stocker les métadonnées du dépôt. Prend par défaut la valeur de "
-"--download-path."
+"là où stocker les métadonnées du dépôt. Prend par défaut la valeur de --"
+"download-path."
+
+#: plugins/reposync.py:78
+msgid "download only newest packages per-repo"
+msgstr "ne télécharger que les nouveaux paquets per-rep"
 
 #: plugins/reposync.py:80
-msgid "operate on source packages"
-msgstr "opère sur les paquets source"
+msgid "Don't add the reponame to the download path."
+msgstr "N’ajoutez pas le nom du dépôt dans le chemin de téléchargement."
 
 #: plugins/reposync.py:82
+msgid "where to store downloaded repositories"
+msgstr "lieu où stocker les dépôts téléchargés"
+
+#: plugins/reposync.py:84
 msgid "try to set local timestamps of local files by the one on the server"
 msgstr ""
 "essayez de définir les horodatages locaux des fichiers locaux par celui du "
 "serveur"
 
-#: plugins/reposync.py:85
+#: plugins/reposync.py:87
+msgid "download only source packages"
+msgstr "télécharger uniquement les packages sources"
+
+#: plugins/reposync.py:89
 msgid "Just list urls of what would be downloaded, don't download"
 msgstr ""
 "Uniquement lister les URL qui seraient téléchargées, ne pas télécharger"
 
-#: plugins/reposync.py:109
+#: plugins/reposync.py:113
 msgid "Can't use --norepopath with multiple repositories"
 msgstr "Impossible d’utiliser --norepopath avec de multiples dépôts"
 
-#: plugins/reposync.py:127
+#: plugins/reposync.py:132
 #, python-format
 msgid "Failed to get mirror for metadata: %s"
 msgstr "Échec de l’obtention du miroir pour les métadonnées : %s"
 
-#: plugins/reposync.py:144
+#: plugins/reposync.py:149
 msgid "Failed to get mirror for the group file."
 msgstr "Échec de l’obtention du miroir pour le fichier de groupe."
 
+#: plugins/reposync.py:168
+msgid "Removing {}: {}"
+msgstr "Suppression de « {} » : {}"
+
 #: plugins/reposync.py:175
+msgid "GPG signature check failed."
+msgstr "La vérification de la signature GPG a échoué."
+
+#: plugins/reposync.py:196
 msgid "Download target '{}' is outside of download path '{}'."
 msgstr ""
 "La cible de téléchargement « {} » est en dehors du chemin de téléchargement "
 "« {} »."
 
-#: plugins/reposync.py:190
+#: plugins/reposync.py:211
 #, python-format
 msgid "[DELETED] %s"
 msgstr "[DELETED] %s"
 
-#: plugins/reposync.py:192
+#: plugins/reposync.py:213
 #, python-format
 msgid "failed to delete file %s"
 msgstr "n’a pas pu supprimer le fichier %s"
 
-#: plugins/reposync.py:201
+#: plugins/reposync.py:222
 #, python-format
 msgid "comps.xml for repository %s saved"
 msgstr "comps.xml pour le dépôt %s sauvegardé"
@@ -1074,73 +1287,80 @@ msgstr "comps.xml pour le dépôt %s sauvegardé"
 msgid "New leaves:"
 msgstr "Nouvelles feuilles :"
 
-#: plugins/versionlock.py:32
+#: plugins/versionlock.py:33
 #, python-format
 msgid "Unable to read version lock configuration: %s"
 msgstr "Ne peut lire la configuration du verrouillage de version : %s"
 
-#: plugins/versionlock.py:33
+#: plugins/versionlock.py:34
 msgid "Locklist not set"
 msgstr "Liste des verrouillages non établie"
 
-#: plugins/versionlock.py:34
+#: plugins/versionlock.py:35
 msgid "Adding versionlock on:"
 msgstr "Verrouille la version de :"
 
-#: plugins/versionlock.py:35
+#: plugins/versionlock.py:36
 msgid "Adding exclude on:"
 msgstr "Exclusion de :"
 
-#: plugins/versionlock.py:36
+#: plugins/versionlock.py:37
 msgid "Package already locked in equivalent form:"
 msgstr "Paquet déjà verrouillé sous une forme équivalente :"
 
-#: plugins/versionlock.py:37
+#: plugins/versionlock.py:38
 msgid "Package {} is already locked"
 msgstr "Le paquet {} est déjà verrouillé"
 
-#: plugins/versionlock.py:38
+#: plugins/versionlock.py:39
 msgid "Package {} is already excluded"
 msgstr "Le paquet {} est déjà exclu"
 
-#: plugins/versionlock.py:39
+#: plugins/versionlock.py:40
 msgid "Deleting versionlock for:"
 msgstr "Déverrouille la version de :"
 
-#: plugins/versionlock.py:40
+#: plugins/versionlock.py:41
 msgid "No package found for:"
 msgstr "Aucun paquet trouvé pour :"
 
-#: plugins/versionlock.py:41
+#: plugins/versionlock.py:42
 msgid "Excludes from versionlock plugin were not applied"
 msgstr "Les exclusions du plugin versionlock n’ont pas été appliquées"
 
-#: plugins/versionlock.py:42
+#: plugins/versionlock.py:43
 msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
 msgstr ""
 "Plugin versionlock : nombre de règles de verrouillage du fichier \"{}\" "
 "appliquées : {}"
 
-#: plugins/versionlock.py:43
-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
+#: plugins/versionlock.py:44
+msgid ""
+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
 msgstr ""
 "Plugin versionlock : nombre de règles d’exclusion du fichier \"{}\" "
 "appliquées : {}"
 
-#: plugins/versionlock.py:44
+#: plugins/versionlock.py:45
 msgid "Versionlock plugin: could not parse pattern:"
 msgstr "Plugin versionlock : n’a pas pu analyser le modèle :"
 
-#: plugins/versionlock.py:130
+#: plugins/versionlock.py:134
 msgid "control package version locks"
 msgstr "contrôle le verrouillage de version des paquets"
 
-#: plugins/versionlock.py:136
+#: plugins/versionlock.py:140
 msgid "Use package specifications as they are, do not try to parse them"
 msgstr ""
 "Utiliser les spécifications de paquet telles quelles, ne pas essayer de les "
 "analyser"
 
+#: plugins/versionlock.py:160
+msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead."
+msgstr ""
+"La sous-commande '{}' est obsolète. Utilisez plutôt la sous-commande "
+"'exclude'."
+
 #~ msgid ""
 #~ "\n"
 #~ "These repositories have been enabled automatically.\n"
diff --git a/po/ja.po b/po/ja.po
index 5e443ec..c5c4691 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,20 +1,23 @@
 # Ooyama Yosiyuki <qqke6wd9k@apricot.ocn.ne.jp>, 2015. #zanata
-# Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+# Ludek Janda <ljanda@redhat.com>, 2018. #zanata, 2021.
 # Casey Jones <nahareport@yahoo.com>, 2020.
+# Sundeep Anand <suanand@redhat.com>, 2021.
+# Transtats <suanand@redhat.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-05-04 06:40+0000\n"
-"Last-Translator: Casey Jones <nahareport@yahoo.com>\n"
-"Language-Team: Japanese <https://translate.fedoraproject.org/projects/dnf/dnf-plugins-core-l10n-master/ja/>\n"
+"POT-Creation-Date: 2022-02-28 11:53+0100\n"
+"PO-Revision-Date: 2022-03-09 12:39+0000\n"
+"Last-Translator: Transtats <suanand@redhat.com>\n"
+"Language-Team: Japanese <https://translate.fedoraproject.org/projects/dnf/"
+"dnf-plugins-core-rhel-8/ja/>\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0.3\n"
+"X-Generator: Weblate 4.11.2\n"
 
 #: plugins/builddep.py:45
 msgid "[PACKAGE|PACKAGE.spec]"
@@ -35,7 +38,7 @@ msgstr "スペックファイルの解析にマクロを定義"
 
 #: plugins/builddep.py:95
 msgid "skip build dependencies not available in repositories"
-msgstr ""
+msgstr "リポジトリーで利用できないビルドの依存関係をスキップします"
 
 #: plugins/builddep.py:98
 msgid "treat commandline arguments as spec files"
@@ -54,8 +57,7 @@ msgid "Some packages could not be found."
 msgstr "一部のパッケージは見つかりませんでした。"
 
 #. No provides, no files
-#. Richdeps can have no matches but it could be correct (solver must decide
-#. later)
+#. Richdeps can have no matches but it could be correct (solver must decide later)
 #: plugins/builddep.py:173
 #, python-format
 msgid "No matching package to install: '%s'"
@@ -64,7 +66,8 @@ msgstr "インストール用の一致するパッケージがありません: '
 #: plugins/builddep.py:191
 #, python-format
 msgid "Failed to open: '%s', not a valid source rpm file."
-msgstr "開くことに失敗しました: '%s'、有効なソース rpm ファイルではありません。"
+msgstr ""
+"開くことに失敗しました: '%s'、有効なソース rpm ファイルではありません。"
 
 #: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237
 msgid "Not all dependencies satisfied"
@@ -83,31 +86,35 @@ msgstr "一致するパッケージはありません: %s"
 #: plugins/changelog.py:37
 #, python-brace-format
 msgid "Not a valid date: \"{0}\"."
-msgstr ""
+msgstr "有効な日付ではありません: \"{0}\"。"
 
 #: plugins/changelog.py:43
 msgid "Show changelog data of packages"
-msgstr ""
+msgstr "パッケージの changelog データを表示します"
 
 #: plugins/changelog.py:51
 msgid ""
 "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format "
 "is recommended."
 msgstr ""
+"DATE 以降の changelog エントリーを表示します。不明瞭さを避けるため、YYYY-MM-"
+"DD のフォーマットが推奨されます。"
 
 #: plugins/changelog.py:55
 msgid "show given number of changelog entries per package"
-msgstr ""
+msgstr "パッケージごとの changelog エントリーの与えられた数を表示します"
 
 #: plugins/changelog.py:58
 msgid ""
 "show only new changelog entries for packages, that provide an upgrade for "
 "some of already installed packages."
 msgstr ""
+"パッケージ向けの新しい changelog エントリーのみを表示します。これは、インス"
+"トール済みのパッケージの一部にアップグレードを提供します。"
 
 #: plugins/changelog.py:60
 msgid "PACKAGE"
-msgstr ""
+msgstr "パッケージ"
 
 #: plugins/changelog.py:81 plugins/debuginfo-install.py:90
 #, python-format
@@ -116,109 +123,113 @@ msgstr "一致した引数がありません: %s"
 
 #: plugins/changelog.py:109
 msgid "Listing changelogs since {}"
-msgstr ""
+msgstr "{} 以降の changelogs を一覧表示します"
 
 #: plugins/changelog.py:111
 msgid "Listing only latest changelog"
 msgid_plural "Listing {} latest changelogs"
-msgstr[0] ""
+msgstr[0] "最新の changelog のみを一覧表示します"
 
 #: plugins/changelog.py:116
 msgid "Listing only new changelogs since installed version of the package"
 msgstr ""
+"パッケージのインストールされたバージョン以降の新しい changelogs のみを一覧表"
+"示します"
 
 #: plugins/changelog.py:118
 msgid "Listing all changelogs"
-msgstr ""
+msgstr "すべての changelogs を一覧表示します"
 
 #: plugins/changelog.py:122
 msgid "Changelogs for {}"
 msgstr "{} の Changelogs"
 
-#: plugins/config_manager.py:37
+#: plugins/config_manager.py:38
 #, python-brace-format
 msgid "manage {prog} configuration options and repositories"
-msgstr ""
+msgstr "{prog} 設定オプションおよびリポジトリーを管理します"
 
-#: plugins/config_manager.py:44
+#: plugins/config_manager.py:45
 msgid "repo to modify"
 msgstr "修正する repo"
 
-#: plugins/config_manager.py:47
+#: plugins/config_manager.py:48
 msgid "save the current options (useful with --setopt)"
 msgstr "現在のオプションを保存 (--setopt で有用)"
 
-#: plugins/config_manager.py:50
+#: plugins/config_manager.py:51
 msgid "add (and enable) the repo from the specified file or url"
 msgstr "指定されたファイルまたは url から repo を追加 (および有効化)"
 
-#: plugins/config_manager.py:53
+#: plugins/config_manager.py:54
 msgid "print current configuration values to stdout"
 msgstr "stdout に現在の設定値を印刷"
 
-#: plugins/config_manager.py:56
+#: plugins/config_manager.py:57
 msgid "print variable values to stdout"
 msgstr "stdout に変数値を印刷"
 
-#: plugins/config_manager.py:60
+#: plugins/config_manager.py:61
 msgid "enable repos (automatically saves)"
-msgstr ""
+msgstr "レポを有効にする (自動保存)"
 
-#: plugins/config_manager.py:63
+#: plugins/config_manager.py:64
 msgid "disable repos (automatically saves)"
-msgstr ""
+msgstr "レポを無効にする (自動保存)"
 
-#: plugins/config_manager.py:77
+#: plugins/config_manager.py:78
 msgid "one of the following arguments is required: {}"
-msgstr ""
+msgstr "以下のいずれかの引数が必要です。{}"
 
-#: plugins/config_manager.py:86
+#: plugins/config_manager.py:87
 msgid ""
 "Warning: --enablerepo/--disablerepo arguments have no meaningwith config "
 "manager. Use --set-enabled/--set-disabled instead."
 msgstr ""
+"警告: --enablerepo/--disablerepo の引数は config manager では意味がありませ"
+"ん。代わりに -set-enabled/--set-disabled を使用してください。"
 
-#: plugins/config_manager.py:131
+#: plugins/config_manager.py:132
 #, python-format
 msgid "No matching repo to modify: %s."
 msgstr "修正用の一致する repo はありません: %s."
 
-#: plugins/config_manager.py:182
+#: plugins/config_manager.py:183
 #, python-format
 msgid "Adding repo from: %s"
 msgstr "repo の追加: %s"
 
-#: plugins/config_manager.py:206
+#: plugins/config_manager.py:207
 msgid "Configuration of repo failed"
 msgid_plural "Configuration of repos failed"
 msgstr[0] "repo の設定に失敗しました"
 
-#: plugins/config_manager.py:216
+#: plugins/config_manager.py:217
 #, python-format
 msgid "Could not save repo to repofile %s: %s"
 msgstr "repofile %s に repo を保存できませんでした: %s"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "y"
 msgstr "y"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "yes"
 msgstr "はい"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "n"
 msgstr "n"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "no"
 msgstr "いいえ"
 
-#: plugins/copr.py:79
+#: plugins/copr.py:84
 msgid "Interact with Copr repositories."
 msgstr "Copr リポジトリーとの対話。"
 
-#: plugins/copr.py:81
+#: plugins/copr.py:86
 msgid ""
 "\n"
 "  enable name/project [chroot]\n"
@@ -246,7 +257,7 @@ msgstr ""
 "  list --available-by-user=NAME\n"
 "  search project\n"
 "\n"
-"  Examples:\n"
+"  例:\n"
 "  copr enable rhscl/perl516 epel-6-x86_64\n"
 "  copr enable ignatenkobrain/ocltoys\n"
 "  copr disable rhscl/perl516\n"
@@ -256,53 +267,69 @@ msgstr ""
 "  copr search tests\n"
 "    "
 
-#: plugins/copr.py:107
+#: plugins/copr.py:112
 msgid "List all installed Copr repositories (default)"
-msgstr "インストール済みのすべての Copr リポジトリーを一覧表示します (デフォルト)"
+msgstr ""
+"インストール済みのすべての Copr リポジトリーを一覧表示します (デフォルト)"
 
-#: plugins/copr.py:109
+#: plugins/copr.py:114
 msgid "List enabled Copr repositories"
 msgstr "有効化された Copr リポジトリーを一覧表示します"
 
-#: plugins/copr.py:111
+#: plugins/copr.py:116
 msgid "List disabled Copr repositories"
 msgstr "無効化された Copr リポジトリーを一覧表示します"
 
-#: plugins/copr.py:113
+#: plugins/copr.py:118
 msgid "List available Copr repositories by user NAME"
 msgstr "利用可能な Copr リポジトリーをユーザー NAME ごとに一覧表示します"
 
-#: plugins/copr.py:115
+#: plugins/copr.py:120
 msgid "Specify an instance of Copr to work with"
-msgstr ""
+msgstr "作業する Copr のインスタンスを指定します"
 
-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:237
+#: plugins/copr.py:154 plugins/copr.py:222 plugins/copr.py:249
 msgid "Error: "
 msgstr "エラー: "
 
-#: plugins/copr.py:150
+#: plugins/copr.py:155
 msgid ""
-"specify Copr hub either with `--hub` or using "
-"`copr_hub/copr_username/copr_projectname` format"
+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/"
+"copr_projectname` format"
 msgstr ""
+"`--hub` または `copr_hub/copr_username/copr_projectname` フォーマットを使っ"
+"て、Copr ハブを指定します"
 
-#: plugins/copr.py:153
+#: plugins/copr.py:158
 msgid "multiple hubs specified"
-msgstr ""
+msgstr "複数のハブが指定されています"
 
-#: plugins/copr.py:218 plugins/copr.py:222
+#: plugins/copr.py:223 plugins/copr.py:227
 msgid "exactly two additional parameters to copr command are required"
 msgstr "copr コマンドに厳密に 2 つの追加パラメーターが必要です"
 
-#: plugins/copr.py:238
+#: plugins/copr.py:232
+msgid "Too many arguments."
+msgstr "引数が多すぎます。"
+
+#: plugins/copr.py:235
+msgid ""
+"Bad format of optional chroot. The format is distribution-version-"
+"architecture."
+msgstr "オプションの chroot の形式が無効です。正しい形式は distribution-version-"
+"architecture です。"
+
+#: plugins/copr.py:250
 msgid "use format `copr_username/copr_projectname` to reference copr project"
-msgstr "copr プロジェクトを参照するには `copr_username/copr_projectname` 形式を使用します"
+msgstr ""
+"copr プロジェクトを参照するには `copr_username/copr_projectname` 形式を使用し"
+"ます"
 
-#: plugins/copr.py:240
+#: plugins/copr.py:252
 msgid "bad copr project format"
 msgstr "不正な copr プロジェクト形式"
 
-#: plugins/copr.py:254
+#: plugins/copr.py:266
 msgid ""
 "\n"
 "Enabling a Copr repository. Please note that this repository is not part\n"
@@ -310,78 +337,96 @@ msgid ""
 "\n"
 "The Fedora Project does not exercise any power over the contents of\n"
 "this repository beyond the rules outlined in the Copr FAQ at\n"
-"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>,\n"
 "and packages are not held to any quality or security level.\n"
 "\n"
 "Please do not file bug reports about these packages in Fedora\n"
 "Bugzilla. In case of problems, contact the owner of this repository.\n"
 msgstr ""
+"\n"
+"Copr リポジトリーを有効化しています。このリポジトリーは\n"
+"主要ディストリビューションの一部ではないため、品質が一定していない点に注意し"
+"てください。\n"
+"\n"
+"Fedora Project は、このリポジトリーのコンテンツに関して、<https://docs."
+"pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr> の \n"
+"Copr FAQ で示されたルールを超えて権利を行使することは\n"
+"ありません。また、パッケージは、任意の品質またはセキュリ\n"
+"ティーレベルを固守していません。\n"
+"\n"
+"Fedora Bugzilla でこれらのパッケージに関するバグ報告をしないでください。\n"
+"問題が発生した場合は、このリポジトリーのオーナーに連絡してください。\n"
 
-#: plugins/copr.py:271
+#: plugins/copr.py:283
 msgid "Repository successfully enabled."
 msgstr "リポジトリが正常に有効化されました。"
 
-#: plugins/copr.py:276
+#: plugins/copr.py:288
 msgid "Repository successfully disabled."
 msgstr "リポジトリが正常に無効化されました。"
 
-#: plugins/copr.py:280
+#: plugins/copr.py:292
 msgid "Repository successfully removed."
 msgstr "リポジトリーが正常に削除されました。"
 
-#: plugins/copr.py:284 plugins/copr.py:693
+#: plugins/copr.py:296 plugins/copr.py:697
 msgid "Unknown subcommand {}."
 msgstr "不明なサブコマンド {}。"
 
-#: plugins/copr.py:341
+#: plugins/copr.py:353
 msgid ""
-"* These coprs have repo file with an old format that contains no information"
-" about Copr hub - the default one was assumed. Re-enable the project to fix "
+"* These coprs have repo file with an old format that contains no information "
+"about Copr hub - the default one was assumed. Re-enable the project to fix "
 "this."
 msgstr ""
+"* これらの coprs には、Copr ハブに関する情報がない古いフォーマットの repo "
+"ファイルがあります。デフォルトは仮定です。これを修正するには、プロジェクトを"
+"再度有効化してください。"
 
-#: plugins/copr.py:353
+#: plugins/copr.py:366
 msgid "Can't parse repositories for username '{}'."
 msgstr "ユーザー名 '{}' のリポジトリーを解析できません。"
 
-#: plugins/copr.py:356
+#: plugins/copr.py:369
 msgid "List of {} coprs"
 msgstr "{} coprs の一覧"
 
-#: plugins/copr.py:364
+#: plugins/copr.py:374
 msgid "No description given"
 msgstr "説明がありません"
 
-#: plugins/copr.py:376
+#: plugins/copr.py:386
 msgid "Can't parse search for '{}'."
 msgstr "'{}' の検索を解析できません。"
 
-#: plugins/copr.py:379
+#: plugins/copr.py:389
 msgid "Matched: {}"
 msgstr "一致: {}"
 
-#: plugins/copr.py:387
+#: plugins/copr.py:394
 msgid "No description given."
 msgstr "説明が与えられていません。"
 
-#: plugins/copr.py:410
+#: plugins/copr.py:416
 msgid "Safe and good answer. Exiting."
 msgstr "安全で優れた回答。終了中。"
 
-#: plugins/copr.py:417
+#: plugins/copr.py:423
 msgid "This command has to be run under the root user."
 msgstr "このコマンドは root ユーザーの下で実行する必要があります。"
 
-#: plugins/copr.py:481
+#: plugins/copr.py:485
 msgid ""
 "This repository does not have any builds yet so you cannot enable it now."
-msgstr "このリポジトリーにはまだビルドがありませんので、今すぐ有効化できません。"
+msgstr ""
+"このリポジトリーにはまだビルドがありませんので、今すぐ有効化できません。"
 
-#: plugins/copr.py:484
+#: plugins/copr.py:488
 msgid "Such repository does not exist."
 msgstr "そのようなリポジトリーは存在しません。"
 
-#: plugins/copr.py:528
+#: plugins/copr.py:532
 #, python-brace-format
 msgid ""
 "Maintainer of the enabled Copr repository decided to make\n"
@@ -397,47 +442,58 @@ msgid ""
 "\n"
 "These repositories have been enabled automatically."
 msgstr ""
+"有効化した Copr リポジトリーの管理者は\n"
+"他のリポジトリーに依存するように決めました。\n"
+"そのようなリポジトリーは通常、主な Corp "
+"レジストリー(ランタイム依存関係を提供) から RPM を\n"
+"正常にインストールするために必要です。\n"
+"\n"
+"上記の品質とバグ報告についての注意点がここでも適用\n"
+"されますが、Fedora Project は内容を管理していないことに\n"
+"注意してください。以下のリストを確認してください。\n"
+"\n"
+"{0}\n"
+"\n"
+"これらのリポジトリーは自動的に有効になっています。"
 
-#: plugins/copr.py:549
+#: plugins/copr.py:553
 msgid "Do you want to keep them enabled?"
-msgstr ""
+msgstr "有効にしておきますか?"
 
-#: plugins/copr.py:582
+#: plugins/copr.py:586
 #, python-brace-format
 msgid "Failed to remove copr repo {0}/{1}/{2}"
-msgstr ""
+msgstr "copr repo {0}/{1}/{2} の削除に失敗しました"
 
-#: plugins/copr.py:593
+#: plugins/copr.py:597
 msgid "Failed to disable copr repo {}/{}"
-msgstr "copr repo {}/{} の無効化に失敗しました。"
+msgstr "copr repo {}/{} の無効化に失敗しました"
 
-#: plugins/copr.py:611 plugins/copr.py:648
+#: plugins/copr.py:615 plugins/copr.py:652
 msgid "Unknown response from server."
 msgstr "サーバーからの不明な応答です。"
 
-#: plugins/copr.py:633
+#: plugins/copr.py:637
 msgid "Interact with Playground repository."
 msgstr "Playground リポジトリーとの対話。"
 
-#: plugins/copr.py:639
-#, fuzzy
-#| msgid "Interact with Playground repository."
+#: plugins/copr.py:643
 msgid "Enabling a Playground repository."
-msgstr "Playground リポジトリーとの対話。"
+msgstr "Playgroundのリポジトリーの有効化。"
 
-#: plugins/copr.py:640
+#: plugins/copr.py:644
 msgid "Do you want to continue?"
-msgstr ""
+msgstr "続行しますか?"
 
-#: plugins/copr.py:683
+#: plugins/copr.py:687
 msgid "Playground repositories successfully enabled."
 msgstr "Playground リポジトリーが正常に有効化されました。"
 
-#: plugins/copr.py:686
+#: plugins/copr.py:690
 msgid "Playground repositories successfully disabled."
 msgstr "Playground リポジトリーが正常に無効化されました。"
 
-#: plugins/copr.py:690
+#: plugins/copr.py:694
 msgid "Playground repositories successfully updated."
 msgstr "Playground リポジトリーが正常に更新されました。"
 
@@ -474,7 +530,9 @@ msgstr "記録されたパッケージの最新バージョンをインストー
 msgid ""
 "Ignore architecture and install missing packages matching the name, epoch, "
 "version and release."
-msgstr "アーキテクチャーを無視し、名前、エポック、バージョン、およびリリースと一致する不足のパッケージをインストールします。"
+msgstr ""
+"アーキテクチャーを無視し、名前、エポック、バージョン、およびリリースと一致す"
+"る不足のパッケージをインストールします。"
 
 #: plugins/debug.py:196
 msgid "limit to specified type"
@@ -485,6 +543,8 @@ msgid ""
 "Allow removing of install-only packages. Using this option may result in an "
 "attempt to remove the running kernel."
 msgstr ""
+"インストールのみのパッケージの削除を許可します。このオプションを使用すると、"
+"実行しているカーネルの削除を試みる可能性があります。"
 
 #: plugins/debug.py:202
 msgid "name of dump file"
@@ -509,24 +569,30 @@ msgstr "debuginfo パッケージのインストール"
 msgid ""
 "Could not find debuginfo package for the following available packages: %s"
 msgstr ""
+"次の利用可能なパッケージの debuginfo パッケージが見つかりませんでした: %s"
 
 #: plugins/debuginfo-install.py:185
 #, python-format
 msgid ""
 "Could not find debugsource package for the following available packages: %s"
 msgstr ""
+"次の利用可能なパッケージの debugsource パッケージが見つかりませんでした: %s"
 
 #: plugins/debuginfo-install.py:190
 #, python-format
 msgid ""
 "Could not find debuginfo package for the following installed packages: %s"
 msgstr ""
+"次のインストールされたパッケージの debuginfo パッケージが見つかりませんでし"
+"た: %s"
 
 #: plugins/debuginfo-install.py:195
 #, python-format
 msgid ""
 "Could not find debugsource package for the following installed packages: %s"
 msgstr ""
+"次のインストールされたパッケージの debugsource パッケージが見つかりませんでし"
+"た: %s"
 
 #: plugins/debuginfo-install.py:199
 msgid "Unable to find a match"
@@ -550,13 +616,13 @@ msgstr "代わりに -debuginfo パッケージをダウンロードします"
 
 #: plugins/download.py:57
 msgid "download the -debugsource package instead"
-msgstr ""
+msgstr "代わりに、-debugsource パッケージをダウンロードします"
 
 #: plugins/download.py:60
 msgid "limit  the  query to packages of given architectures."
 msgstr "特定のアーキテクチャーのパッケージへのクエリーを制限します。"
 
-#: plugins/download.py:62
+#: plugins/download.py:62 plugins/modulesync.py:51
 msgid "resolve and download needed dependencies"
 msgstr "必要な依存関係を解決し、ダウンロードします"
 
@@ -565,17 +631,20 @@ msgid ""
 "when running with --resolve, download all dependencies (do not exclude "
 "already installed ones)"
 msgstr ""
+"--resolve で実行する場合、すべての依存関係をダウンロードします (インストール"
+"済みのものを除外しないでください)"
 
 #: plugins/download.py:67
 msgid ""
 "print list of urls where the rpms can be downloaded instead of downloading"
-msgstr "ダウンロードする代わりに、rpm をダウンロードできる url の一覧を印刷します"
+msgstr ""
+"ダウンロードする代わりに、rpm をダウンロードできる url の一覧を印刷します"
 
 #: plugins/download.py:72
 msgid "when running with --url, limit to specific protocols"
 msgstr "--url で実行中の際は、特定のプロトコルに限定します"
 
-#: plugins/download.py:121 plugins/reposync.py:293
+#: plugins/download.py:121 plugins/reposync.py:314
 #, python-format
 msgid "Failed to get mirror for package: %s"
 msgstr "パッケージのミラー取得に失敗しました: %s"
@@ -598,9 +667,129 @@ msgstr "%s に対して定義されているソース rpm はありません"
 msgid "No package %s available."
 msgstr "利用可能なパッケージ %s はありません。"
 
+#: plugins/groups_manager.py:49
+msgid "Invalid group id"
+msgstr "'無効なグループ ID"
+
+#: plugins/groups_manager.py:58
+msgid "Invalid translated data, should be in form 'lang:text'"
+msgstr "無効な翻訳データです。'lang:text' の形式で指定する必要があります"
+
+#: plugins/groups_manager.py:61
+msgid "Invalid/empty language for translated data"
+msgstr "翻訳されたデータの無効または空な言語"
+
+#: plugins/groups_manager.py:71
+msgid "Can't generate group id from '{}'. Please specify group id using --id."
+msgstr ""
+"'{}' からグループ ID を生成できません。--id を使用してグループ ID を指定して"
+"ください。"
+
+#: plugins/groups_manager.py:79
+msgid "create and edit groups metadata file"
+msgstr "グループメタデータファイルの作成および編集"
+
+#: plugins/groups_manager.py:90
+msgid "load groups metadata from file"
+msgstr "ファイルからグループメタデータを読み込みます"
+
+#: plugins/groups_manager.py:93
+msgid "save groups metadata to file"
+msgstr "グループメタデータをファイルに保存します"
+
+#: plugins/groups_manager.py:95
+msgid "load and save groups metadata to file"
+msgstr "グループメタデータをファイルにロードして保存します"
+
+#: plugins/groups_manager.py:97
+msgid "print the result metadata to stdout"
+msgstr "生成されたメタデータを stdout に出力します"
+
+#: plugins/groups_manager.py:100
+msgid "group id"
+msgstr "グループ id"
+
+#: plugins/groups_manager.py:101
+msgid "group name"
+msgstr "グループ名"
+
+#: plugins/groups_manager.py:103
+msgid "group description"
+msgstr "グループ説明"
+
+#: plugins/groups_manager.py:105
+msgid "group display order"
+msgstr "グループ表示順序"
+
+#: plugins/groups_manager.py:108
+msgid "translated name for the group"
+msgstr "グループの翻訳名"
+
+#: plugins/groups_manager.py:111
+msgid "translated description for the group"
+msgstr "グループの翻訳説明"
+
+#: plugins/groups_manager.py:115
+msgid "make the group user visible (default)"
+msgstr "グループユーザーを表示させる (デフォルト)"
+
+#: plugins/groups_manager.py:118
+msgid "make the group user invisible"
+msgstr "グループユーザーを非表示の状態にする"
+
+#: plugins/groups_manager.py:123
+msgid "add packages to the mandatory section"
+msgstr "必須セクションへのパッケージの追加"
+
+#: plugins/groups_manager.py:125
+msgid "add packages to the optional section"
+msgstr "オプションセクションへのパッケージの追加"
+
+#: plugins/groups_manager.py:127
+msgid "remove packages from the group instead of adding them"
+msgstr "パッケージを追加する代わりに、グループからパッケージを削除します"
+
+#: plugins/groups_manager.py:129
+msgid "include also direct dependencies for packages"
+msgstr "リポジトリーの直接の依存関係を含みます"
+
+#: plugins/groups_manager.py:132
+msgid "package specification"
+msgstr "パッケージ仕様"
+
+#: plugins/groups_manager.py:156
+msgid "Can't edit group without specifying it (use --id or --name)"
+msgstr ""
+"指定せずにはグループを編集できません (--id または --name を使用してください)"
+
+#: plugins/groups_manager.py:190
+msgid "Can't load file \"{}\": {}"
+msgstr "ファイル '{}' を書き込みできません: {}"
+
+#: plugins/groups_manager.py:206
+msgid "Can't save file \"{}\": {}"
+msgstr "ファイル '{}' を保存できません: {}"
+
+#: plugins/groups_manager.py:261
+msgid "No match for argument: {}"
+msgstr "一致した引数がありません: {}"
+
+#: plugins/groups_manager.py:298
+msgid "Can't remove packages from non-existent group"
+msgstr "存在しないグループからパッケージを削除できません"
+
+#: plugins/groups_manager.py:307
+msgid ""
+"Group id '{}' generated from '{}' is duplicit. Please specify group id using "
+"--id."
+msgstr ""
+"'{}' から生成されたグループ ID '{}' は重複しています。--id を使用してグルー"
+"プ ID を指定してください。"
+
 #: plugins/leaves.py:32
 msgid "List installed packages not required by any other package"
-msgstr "他のパッケージから必要とされないインスール済みパッケージを一覧表示します"
+msgstr ""
+"他のパッケージから必要とされないインスール済みパッケージを一覧表示します"
 
 #: plugins/local.py:122
 msgid "Unable to create a directory '{}' due to '{}'"
@@ -630,67 +819,134 @@ msgstr "yum の履歴、グループ、および yumdb データを dnf へ移
 msgid "Migrating history data..."
 msgstr "履歴データを移行中..."
 
-#: plugins/needs_restarting.py:65
+#: plugins/modulesync.py:37
+msgid ""
+"Download packages from modules and/or create a repository with modular data"
+msgstr "モジュールからパッケージをダウンロードしたり、モジュラーデータでリポジトリー"
+"を作成したりします"
+
+#: plugins/modulesync.py:44
+msgid "MODULE"
+msgstr "MODULE"
+
+#: plugins/modulesync.py:45
+msgid "modules to download"
+msgstr "ダウンロードするモジュール"
+
+#: plugins/modulesync.py:47
+msgid "enable repositories with source packages"
+msgstr "ソースパッケージを含むリポジトリーを有効にします"
+
+#: plugins/modulesync.py:49
+msgid "enable repositories with debug-info and debug-source packages"
+msgstr "debug-info パッケージおよび debug-source "
+"パッケージでリポジトリーを有効にします"
+
+#: plugins/modulesync.py:53
+msgid "download only packages from newest modules"
+msgstr "最新のモジュールからパッケージのみをダウンロードします"
+
+#: plugins/modulesync.py:85
+msgid "Unable to find a match for argument: '{}'"
+msgid_plural "Unable to find a match for arguments: '{}'"
+msgstr[0] "引数に一致するものが見つかりませんでした: '{}'"
+
+#: plugins/modulesync.py:107
+msgid ""
+"Creation of repository failed with return code {}. All downloaded content "
+"was kept on the system"
+msgstr "リポジトリーの作成は戻りコード {} "
+"で失敗しました。ダウンロードされたコンテンツはすべてシステムに保持されました"
+
+#: plugins/modulesync.py:144
+#, python-brace-format
+msgid "No match for artifact '{0}' from module '{1}'"
+msgstr "モジュール '{1}' のアーティファクト '{0}' に一致するものはありません"
+
+#: plugins/modulesync.py:162
+#, python-brace-format
+msgid "No match for package name '{0}' in profile {1} from module {2}"
+msgstr "モジュール {2} からのプロファイル {1} のパッケージ名 '{0}' "
+"に一致するものはありません"
+
+#: plugins/modulesync.py:166
+msgid "No mach for argument '{}'"
+msgstr "引数 '{}' に一致するものはありません"
+
+#. TODO(jmracek) Shell we end with an error or with RC 1?
+#: plugins/modulesync.py:198
+msgid "Unable to satisfy require {}"
+msgstr "要求 {} を満たすことができません"
+
+#: plugins/needs_restarting.py:66
 #, python-brace-format
 msgid ""
 "No installed package found for package name \"{pkg}\" specified in needs-"
 "restarting file \"{file}\"."
 msgstr ""
+"needs-restarting ファイル \"{file}\" に指定されている \"{pkg}\" "
+"というパッケージのインストール済みパッケージが見つかりません。"
 
-#: plugins/needs_restarting.py:199
+#: plugins/needs_restarting.py:220
 msgid "determine updated binaries that need restarting"
 msgstr "再起動が必要な更新済みバイナリーを決定します"
 
-#: plugins/needs_restarting.py:204
+#: plugins/needs_restarting.py:225
 msgid "only consider this user's processes"
 msgstr "このユーザーのプロセスのみを検討します"
 
-#: plugins/needs_restarting.py:206
+#: plugins/needs_restarting.py:227
 msgid ""
 "only report whether a reboot is required (exit code 1) or not (exit code 0)"
 msgstr ""
+"再起動が必要か (終了コード 1) 必要でないか (終了コード 0) のみを報告します"
 
 #: plugins/needs_restarting.py:230
+msgid "only report affected systemd services"
+msgstr "影響を受ける systemd サービスのみを報告"
+
+#: plugins/needs_restarting.py:253
 msgid "Core libraries or services have been updated since boot-up:"
-msgstr ""
+msgstr "起動以降にコアライブラリーまたはサービスがアップデートされました:"
 
-#: plugins/needs_restarting.py:235
+#: plugins/needs_restarting.py:258
 msgid "Reboot is required to fully utilize these updates."
-msgstr ""
+msgstr "これらのアップデートを完全に活用するには、再起動が必要です。"
 
-#: plugins/needs_restarting.py:236
+#: plugins/needs_restarting.py:259
 msgid "More information:"
-msgstr ""
+msgstr "詳細情報:"
 
-#: plugins/needs_restarting.py:240
+#: plugins/needs_restarting.py:263
 msgid "No core libraries or services have been updated since boot-up."
 msgstr ""
+"起動以降にアップデートされたコアライブラリーまたはサービスはありません。"
 
-#: plugins/needs_restarting.py:242
+#: plugins/needs_restarting.py:265
 msgid "Reboot should not be necessary."
-msgstr ""
+msgstr "再起動な必要ありません。"
 
 #: plugins/post-transaction-actions.py:71
 #, python-format
 msgid "Bad Action Line \"%s\": %s"
-msgstr ""
+msgstr "不正なアクション行 \"%s\": %s"
 
 #. unsupported state, skip it
 #: plugins/post-transaction-actions.py:130
 #, python-format
 msgid "Bad Transaction State: %s"
-msgstr ""
+msgstr "不正なトランザクション状態: %s"
 
-#: plugins/post-transaction-actions.py:153
-#: plugins/post-transaction-actions.py:155
+#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:159
 #, python-format
 msgid "post-transaction-actions: %s"
-msgstr ""
+msgstr "post-transaction-actions: %s"
 
-#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:161
 #, python-format
 msgid "post-transaction-actions: Bad Command \"%s\": %s"
-msgstr ""
+msgstr "post-transaction-actions: 不正なコマンド \"%s\": %s"
 
 #: plugins/repoclosure.py:42
 msgid "Display a list of unresolved dependencies for repositories"
@@ -718,129 +974,142 @@ msgstr "このパッケージのみのクロージャーを確認します"
 
 #: plugins/repodiff.py:45
 msgid "List differences between two sets of repositories"
-msgstr ""
+msgstr "2 セットのリポジトリー間の違いを一覧表示します"
 
 #: plugins/repodiff.py:58
 msgid "Specify old repository, can be used multiple times"
-msgstr ""
+msgstr "古いリポジトリーを指定します、これは複数回使用できます"
 
 #: plugins/repodiff.py:60
 msgid "Specify new repository, can be used multiple times"
-msgstr ""
+msgstr "新しいリポジトリーを指定します、これは複数回使用できます"
 
 #: plugins/repodiff.py:63
 msgid ""
 "Specify architectures to compare, can be used multiple times. By default, "
 "only source rpms are compared."
 msgstr ""
+"比較するアーキテクチャーを指定します、これは複数回使用できます。デフォルト"
+"で、ソース rpms のみが比較されます。"
 
 #: plugins/repodiff.py:67
 msgid "Output additional data about the size of the changes."
-msgstr ""
+msgstr "変更サイズに関する追加データを出力します。"
 
 #: plugins/repodiff.py:69
 msgid ""
-"Compare packages also by arch. By default packages are compared just by "
-"name."
+"Compare packages also by arch. By default packages are compared just by name."
 msgstr ""
+"パッケージを Arch でも比較します。デフォルトで、パッケージは名前のみで比較さ"
+"れます。"
 
 #: plugins/repodiff.py:72
 msgid "Output a simple one line message for modified packages."
-msgstr ""
+msgstr "変更されたパッケージに簡単な 1 行メッセージを出力します。"
 
 #: plugins/repodiff.py:74
 msgid ""
 "Split the data for modified packages between upgraded and downgraded "
 "packages."
 msgstr ""
+"アップグレードされたパッケージとダウングレードされたパッケージとの間で、変更"
+"されたパッケージのデータを分割します。"
 
 #: plugins/repodiff.py:86
 msgid "Both old and new repositories must be set."
-msgstr ""
+msgstr "新旧両方のリポジトリーを設定する必要があります。"
 
 #: plugins/repodiff.py:178
 msgid "Size change: {} bytes"
-msgstr ""
+msgstr "サイズの変更: {} バイト"
 
 #: plugins/repodiff.py:184
 msgid "Added package  : {}"
-msgstr ""
+msgstr "追加されたパッケージ  : {}"
 
 #: plugins/repodiff.py:187
 msgid "Removed package: {}"
-msgstr ""
+msgstr "削除されたパッケージ: {}"
 
 #: plugins/repodiff.py:190
 msgid "Obsoleted by   : {}"
-msgstr ""
+msgstr "により廃止されました: {}"
 
 #: plugins/repodiff.py:195
 msgid ""
 "\n"
 "Upgraded packages"
 msgstr ""
+"\n"
+"アップグレードされたパッケージ"
 
 #: plugins/repodiff.py:200
 msgid ""
 "\n"
 "Downgraded packages"
 msgstr ""
+"\n"
+"ダウングレードされたパッケージ"
 
 #: plugins/repodiff.py:207
 msgid ""
 "\n"
 "Modified packages"
 msgstr ""
+"\n"
+"変更されたパッケージ"
 
 #: plugins/repodiff.py:212
 msgid ""
 "\n"
 "Summary"
 msgstr ""
+"\n"
+"サマリー"
 
 #: plugins/repodiff.py:213
 msgid "Added packages: {}"
-msgstr ""
+msgstr "追加されたパッケージ: {}"
 
 #: plugins/repodiff.py:214
 msgid "Removed packages: {}"
-msgstr ""
+msgstr "削除されたパッケージ: {}"
 
 #: plugins/repodiff.py:216
 msgid "Upgraded packages: {}"
-msgstr ""
+msgstr "アップグレードされたパッケージ: {}"
 
 #: plugins/repodiff.py:217
 msgid "Downgraded packages: {}"
-msgstr ""
+msgstr "ダウングレードされたパッケージ: {}"
 
 #: plugins/repodiff.py:219
 msgid "Modified packages: {}"
-msgstr ""
+msgstr "変更されたパッケージ: {}"
 
 #: plugins/repodiff.py:222
 msgid "Size of added packages: {}"
-msgstr ""
+msgstr "追加されたパッケージのサイズ: {}"
 
 #: plugins/repodiff.py:223
 msgid "Size of removed packages: {}"
-msgstr ""
+msgstr "削除されたパッケージのサイズ: {}"
 
 #: plugins/repodiff.py:225
 msgid "Size of modified packages: {}"
-msgstr ""
+msgstr "変更されたパッケージのサイズ: {}"
 
 #: plugins/repodiff.py:228
 msgid "Size of upgraded packages: {}"
-msgstr ""
+msgstr "アップグレードされたパッケージのサイズ: {}"
 
 #: plugins/repodiff.py:230
 msgid "Size of downgraded packages: {}"
-msgstr ""
+msgstr "ダウングレードされたパッケージのサイズ: {}"
 
 #: plugins/repodiff.py:232
 msgid "Size change: {}"
-msgstr ""
+msgstr "サイズの変更: {}"
 
 #: plugins/repograph.py:50
 msgid "Output a full package dependency graph in dot format"
@@ -859,180 +1128,203 @@ msgstr "rpm パッケージのディレクトリーを管理します"
 msgid "Pass either --old or --new, not both!"
 msgstr "--old または --new のいずれかを渡します。両方ではありません。"
 
-#: plugins/repomanage.py:71
+#: plugins/repomanage.py:89
 msgid "No files to process"
 msgstr "処理するファイルはありません"
 
-#: plugins/repomanage.py:93
+#: plugins/repomanage.py:96
 msgid "Could not open {}"
 msgstr "{} を開くことができません"
 
-#: plugins/repomanage.py:177
+#: plugins/repomanage.py:180
 msgid "Print the older packages"
 msgstr "古いパッケージを印刷します"
 
-#: plugins/repomanage.py:179
+#: plugins/repomanage.py:182
 msgid "Print the newest packages"
 msgstr "最新のパッケージを印刷します"
 
-#: plugins/repomanage.py:181
+#: plugins/repomanage.py:184
 msgid "Space separated output, not newline"
 msgstr "スペースで区切られた出力で、改行ではありません"
 
-#: plugins/repomanage.py:183
+#: plugins/repomanage.py:186
 msgid "Newest N packages to keep - defaults to 1"
 msgstr "維持する最新の N パッケージ - デフォルトは 1 に設定されます"
 
-#: plugins/repomanage.py:186
+#: plugins/repomanage.py:189
 msgid "Path to directory"
 msgstr "ディレクトリーへのパス"
 
-#: plugins/reposync.py:54
+#: plugins/reposync.py:55
 msgid "download all packages from remote repo"
 msgstr "リモート repo からすべてのパッケージをダウンロードします"
 
-#: plugins/reposync.py:63
+#: plugins/reposync.py:64
 msgid "download only packages for this ARCH"
 msgstr "この ARCH 向けのパッケージのみをダウンロード"
 
-#: plugins/reposync.py:65
+#: plugins/reposync.py:66
 msgid "delete local packages no longer present in repository"
 msgstr "リポジトリーにもはや存在しないローカルパッケージを削除"
 
-#: plugins/reposync.py:67
-msgid "also download and uncompress comps.xml"
-msgstr ""
-
-#: plugins/reposync.py:69
+#: plugins/reposync.py:68
 msgid "download all the metadata."
-msgstr ""
+msgstr "すべてのメタデータをダウンロードします。"
 
-#: plugins/reposync.py:71
-msgid "download only newest packages per-repo"
-msgstr "最新のパッケージ per-repo のみをダウンロード"
+#: plugins/reposync.py:70
+msgid "Remove packages that fail GPG signature checking after downloading"
+msgstr "ダウンロード後に GPG 署名の確認に失敗するパッケージを削除します"
 
 #: plugins/reposync.py:73
-msgid "where to store downloaded repositories"
-msgstr ""
+msgid "also download and uncompress comps.xml"
+msgstr "comps.xml もダウンロードして展開します"
 
 #: plugins/reposync.py:75
-msgid "Don't add the reponame to the download path."
-msgstr ""
-
-#: plugins/reposync.py:77
 msgid ""
-"where to store downloaded repository metadata. Defaults to the value of "
-"--download-path."
+"where to store downloaded repository metadata. Defaults to the value of --"
+"download-path."
 msgstr ""
+"ダウンロード済みリポジトリーメタデータの保管場所。初期値は --download-path で"
+"す。"
+
+#: plugins/reposync.py:78
+msgid "download only newest packages per-repo"
+msgstr "最新のパッケージ per-repo のみをダウンロード"
 
 #: plugins/reposync.py:80
-msgid "operate on source packages"
-msgstr "ソースパッケージでの操作"
+msgid "Don't add the reponame to the download path."
+msgstr "ダウンロードパスにはリポネームを追加しないでください。"
 
 #: plugins/reposync.py:82
+msgid "where to store downloaded repositories"
+msgstr "ダウンロード済みリポジトリーの保管場所"
+
+#: plugins/reposync.py:84
 msgid "try to set local timestamps of local files by the one on the server"
-msgstr ""
+msgstr "サーバー上から、ローカルファイルのローカル timestamps の設定を試みます"
+
+#: plugins/reposync.py:87
+msgid "download only source packages"
+msgstr "ソースパッケージのみをダウンロード"
 
-#: plugins/reposync.py:85
+#: plugins/reposync.py:89
 msgid "Just list urls of what would be downloaded, don't download"
 msgstr ""
+"ダウンロードする予定のものの URL をリストするだけで、ダウンロードしないでくだ"
+"さい"
 
-#: plugins/reposync.py:109
+#: plugins/reposync.py:113
 msgid "Can't use --norepopath with multiple repositories"
-msgstr ""
+msgstr "複数のリポジトリーでは -norepopath は使えません"
 
-#: plugins/reposync.py:127
+#: plugins/reposync.py:132
 #, python-format
 msgid "Failed to get mirror for metadata: %s"
-msgstr ""
+msgstr "メタデータのミラー取得に失敗しました: %s"
 
-#: plugins/reposync.py:144
+#: plugins/reposync.py:149
 msgid "Failed to get mirror for the group file."
-msgstr ""
+msgstr "グループファイルのミラー取得に失敗しました。"
+
+#: plugins/reposync.py:168
+msgid "Removing {}: {}"
+msgstr "{} の削除中: {}"
 
 #: plugins/reposync.py:175
+msgid "GPG signature check failed."
+msgstr "GPG 署名の確認に失敗しました。"
+
+#: plugins/reposync.py:196
 msgid "Download target '{}' is outside of download path '{}'."
-msgstr ""
+msgstr "ダウンロードターゲット '{}' は、ダウンロードパス '{}' の外にあります。"
 
-#: plugins/reposync.py:190
+#: plugins/reposync.py:211
 #, python-format
 msgid "[DELETED] %s"
 msgstr "[DELETED] %s"
 
-#: plugins/reposync.py:192
+#: plugins/reposync.py:213
 #, python-format
 msgid "failed to delete file %s"
 msgstr "ファイル %s の削除に失敗しました"
 
-#: plugins/reposync.py:201
+#: plugins/reposync.py:222
 #, python-format
 msgid "comps.xml for repository %s saved"
 msgstr "リポジトリー %s の comps.xml が保存されました"
 
 #: plugins/show_leaves.py:54
 msgid "New leaves:"
-msgstr "新規のリーフパッケージ (他のパッケージから依存されていないパッケージ) :"
+msgstr ""
+"新規のリーフパッケージ (他のパッケージから依存されていないパッケージ) :"
 
-#: plugins/versionlock.py:32
+#: plugins/versionlock.py:33
 #, python-format
 msgid "Unable to read version lock configuration: %s"
 msgstr "バージョンロック設定の読み込みができません: %s"
 
-#: plugins/versionlock.py:33
+#: plugins/versionlock.py:34
 msgid "Locklist not set"
 msgstr "ロックリストが設定されていません"
 
-#: plugins/versionlock.py:34
+#: plugins/versionlock.py:35
 msgid "Adding versionlock on:"
 msgstr "versionlock を追加:"
 
-#: plugins/versionlock.py:35
+#: plugins/versionlock.py:36
 msgid "Adding exclude on:"
 msgstr "除外を追加:"
 
-#: plugins/versionlock.py:36
+#: plugins/versionlock.py:37
 msgid "Package already locked in equivalent form:"
-msgstr ""
+msgstr "同等の形で既にロックされているパッケージ:"
 
-#: plugins/versionlock.py:37
+#: plugins/versionlock.py:38
 msgid "Package {} is already locked"
-msgstr ""
+msgstr "パッケージ {} は既にロックされています"
 
-#: plugins/versionlock.py:38
+#: plugins/versionlock.py:39
 msgid "Package {} is already excluded"
-msgstr ""
+msgstr "パッケージ{}はすでに除外されています"
 
-#: plugins/versionlock.py:39
+#: plugins/versionlock.py:40
 msgid "Deleting versionlock for:"
 msgstr "versionlock を削除:"
 
-#: plugins/versionlock.py:40
+#: plugins/versionlock.py:41
 msgid "No package found for:"
 msgstr "パッケージが見つかりませんでした:"
 
-#: plugins/versionlock.py:41
+#: plugins/versionlock.py:42
 msgid "Excludes from versionlock plugin were not applied"
 msgstr "versionlock プラグインからの除外は適用されませんでした"
 
-#: plugins/versionlock.py:42
+#: plugins/versionlock.py:43
 msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
 msgstr "versionlock プラグイン: ファイル \"{}\" のロックルールの数を適用: {}"
 
-#: plugins/versionlock.py:43
-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
+#: plugins/versionlock.py:44
+msgid ""
+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
 msgstr "versionlock プラグイン: ファイル \"{}\" の除外ルールの数を適用: {}"
 
-#: plugins/versionlock.py:44
+#: plugins/versionlock.py:45
 msgid "Versionlock plugin: could not parse pattern:"
 msgstr "versionlock プラグイン: パターンを解析できませんでした:"
 
-#: plugins/versionlock.py:130
+#: plugins/versionlock.py:134
 msgid "control package version locks"
 msgstr "パッケージバージョンロックの制御"
 
-#: plugins/versionlock.py:136
+#: plugins/versionlock.py:140
 msgid "Use package specifications as they are, do not try to parse them"
-msgstr ""
+msgstr "パッケージ仕様をそのまま使用し、解析を試みないでください"
+
+#: plugins/versionlock.py:160
+msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead."
+msgstr "サブコマンド '{}' は非推奨になりました。代わりに 'exclude' "
+"サブコマンドを使用してください。"
 
 #~ msgid ""
 #~ "\n"
diff --git a/po/ko.po b/po/ko.po
index 3f4eb89..307ccc7 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -1,222 +1,230 @@
 # Ludek Janda <ljanda@redhat.com>, 2018. #zanata, 2020.
+# simmon <simmon@nplob.com>, 2021.
+# Kim InSoo <simmon@nplob.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-09-12 11:29+0000\n"
-"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
-"Language-Team: Korean <https://translate.fedoraproject.org/projects/dnf/dnf-plugins-core-l10n-master/ko/>\n"
+"POT-Creation-Date: 2022-02-28 11:53+0100\n"
+"PO-Revision-Date: 2022-03-02 04:16+0000\n"
+"Last-Translator: Kim InSoo <simmon@nplob.com>\n"
+"Language-Team: Korean <https://translate.fedoraproject.org/projects/dnf/"
+"dnf-plugins-core-rhel-8/ko/>\n"
 "Language: ko\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.2.2\n"
+"X-Generator: Weblate 4.11\n"
 
 #: plugins/builddep.py:45
 msgid "[PACKAGE|PACKAGE.spec]"
-msgstr ""
+msgstr "[PACKAGE|PACKAGE.spec]"
 
 #: plugins/builddep.py:85
 #, python-format
 msgid "'%s' is not of the format 'MACRO EXPR'"
-msgstr ""
+msgstr "'%s'는 'MACRO EXPR' 형식이 아닙니다"
 
 #: plugins/builddep.py:90
 msgid "packages with builddeps to install"
-msgstr ""
+msgstr "설치 할 builddeps가 있는 꾸러미(package)"
 
 #: plugins/builddep.py:93
 msgid "define a macro for spec file parsing"
-msgstr ""
+msgstr "특정한 파일 구문분석을 위해 매크로를 정의한다"
 
 #: plugins/builddep.py:95
 msgid "skip build dependencies not available in repositories"
-msgstr ""
+msgstr "저장소에서 사용 할 수 없는 구성 의존성을 건너띄기 한다"
 
 #: plugins/builddep.py:98
 msgid "treat commandline arguments as spec files"
-msgstr ""
+msgstr "명령줄 인수를 지정한 파일로 다룬다"
 
 #: plugins/builddep.py:100
 msgid "treat commandline arguments as source rpm"
-msgstr ""
+msgstr "명령줄 인수를 rpm 소스로 다룬다"
 
 #: plugins/builddep.py:144
 msgid "RPM: {}"
-msgstr ""
+msgstr "RPM: {}"
 
 #: plugins/builddep.py:153
 msgid "Some packages could not be found."
-msgstr ""
+msgstr "몇몇 꾸러미(packages)를 찾을 수 없습니다."
 
 #. No provides, no files
-#. Richdeps can have no matches but it could be correct (solver must decide
-#. later)
+#. Richdeps can have no matches but it could be correct (solver must decide later)
 #: plugins/builddep.py:173
 #, python-format
 msgid "No matching package to install: '%s'"
-msgstr ""
+msgstr "설치: '%s' 꾸러미(package)가 일치하지 않습니다"
 
 #: plugins/builddep.py:191
 #, python-format
 msgid "Failed to open: '%s', not a valid source rpm file."
-msgstr ""
+msgstr "여는데 실패하였습니다: '%s', 유효한 rpm 파일 출처가 아닙니다."
 
 #: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237
 msgid "Not all dependencies satisfied"
-msgstr ""
+msgstr "모든 의존성을 만족하지 않습니다"
 
 #: plugins/builddep.py:211
 #, python-format
 msgid "Failed to open: '%s', not a valid spec file: %s"
-msgstr ""
+msgstr "여는데 실패하였습니다 '%s', 지정한 파일: %s가 유효하지 않습니다"
 
 #: plugins/builddep.py:230 plugins/repoclosure.py:118
 #, python-format
 msgid "no package matched: %s"
-msgstr "일치하는 패키지 없음 : %s"
+msgstr "일치하는 꾸러미(package) 없음: %s"
 
 #: plugins/changelog.py:37
 #, python-brace-format
 msgid "Not a valid date: \"{0}\"."
-msgstr ""
+msgstr "유효한 날자가 아닙니다: \"{0}\"."
 
 #: plugins/changelog.py:43
 msgid "Show changelog data of packages"
-msgstr ""
+msgstr "꾸러미(packages)의 변화 기록자료를 보여줍니다"
 
 #: plugins/changelog.py:51
 msgid ""
 "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format "
 "is recommended."
 msgstr ""
+"DATE 이후에 변화기록를 보여줍니다. 모호함을 피하기 위하여, YYYY-MM-DD 형식을 "
+"추천합니다."
 
 #: plugins/changelog.py:55
 msgid "show given number of changelog entries per package"
-msgstr ""
+msgstr "주어진 수의 꾸러미(package) 마다 변화기록 항목을 보여줍니다"
 
 #: plugins/changelog.py:58
 msgid ""
 "show only new changelog entries for packages, that provide an upgrade for "
 "some of already installed packages."
 msgstr ""
+"몇몇 이미 설치된 꾸러미(package)들의 최신화를 제공하는 꾸러미를 위하여 새로"
+"운 변화기록만을 보여줍니다."
 
 #: plugins/changelog.py:60
 msgid "PACKAGE"
-msgstr ""
+msgstr "꾸러미(package)"
 
 #: plugins/changelog.py:81 plugins/debuginfo-install.py:90
 #, python-format
 msgid "No match for argument: %s"
-msgstr "인수와 일치하는 항목 없음 : %s"
+msgstr "인수가 일치하지 않습니다: %s"
 
 #: plugins/changelog.py:109
 msgid "Listing changelogs since {}"
-msgstr ""
+msgstr "{} 이 후의 변화기록 목록"
 
 #: plugins/changelog.py:111
 msgid "Listing only latest changelog"
 msgid_plural "Listing {} latest changelogs"
-msgstr[0] ""
+msgstr[0] "최신화된 변화기록 목록 {}"
 
 #: plugins/changelog.py:116
 msgid "Listing only new changelogs since installed version of the package"
-msgstr ""
+msgstr "꾸러미 설치 버전 이후의 새로운 변화 기록만 목록화함"
 
 #: plugins/changelog.py:118
 msgid "Listing all changelogs"
-msgstr ""
+msgstr "모든 변화기록 목록"
 
 #: plugins/changelog.py:122
 msgid "Changelogs for {}"
-msgstr ""
+msgstr "{}의 변경 사항"
 
-#: plugins/config_manager.py:37
+#: plugins/config_manager.py:38
 #, python-brace-format
 msgid "manage {prog} configuration options and repositories"
-msgstr ""
+msgstr "{prog} 환경 선택과 저장소 관리"
 
-#: plugins/config_manager.py:44
+#: plugins/config_manager.py:45
 msgid "repo to modify"
 msgstr "수정할 repo"
 
-#: plugins/config_manager.py:47
+#: plugins/config_manager.py:48
 msgid "save the current options (useful with --setopt)"
 msgstr "현재 옵션 저장 (--setopt와 함께 유용함)"
 
-#: plugins/config_manager.py:50
+#: plugins/config_manager.py:51
 msgid "add (and enable) the repo from the specified file or url"
 msgstr "지정된 파일 또는 URL에서 repo를 추가 (및 활성화)"
 
-#: plugins/config_manager.py:53
+#: plugins/config_manager.py:54
 msgid "print current configuration values to stdout"
 msgstr "현재 구성 값을 표준 출력으로 인쇄"
 
-#: plugins/config_manager.py:56
+#: plugins/config_manager.py:57
 msgid "print variable values to stdout"
 msgstr "변수 값을 표준 출력으로 출력"
 
-#: plugins/config_manager.py:60
+#: plugins/config_manager.py:61
 msgid "enable repos (automatically saves)"
-msgstr ""
+msgstr "저장소 활성화 (자동으로 저장합니다)"
 
-#: plugins/config_manager.py:63
+#: plugins/config_manager.py:64
 msgid "disable repos (automatically saves)"
-msgstr ""
+msgstr "저장소 비활성화 (자동으로 저장합니다)"
 
-#: plugins/config_manager.py:77
+#: plugins/config_manager.py:78
 msgid "one of the following arguments is required: {}"
-msgstr ""
+msgstr "다음 인수 중 하나가 필요합니다: {}"
 
-#: plugins/config_manager.py:86
+#: plugins/config_manager.py:87
 msgid ""
 "Warning: --enablerepo/--disablerepo arguments have no meaningwith config "
 "manager. Use --set-enabled/--set-disabled instead."
 msgstr ""
+"경고: -- --enablerepo/--disablerepo 인수는 설정 관리자와 함께 의미를 갖고 있"
+"지 않습니다. 대신에 --set-enabled/--set-disabled를 사용하세요."
 
-#: plugins/config_manager.py:131
+#: plugins/config_manager.py:132
 #, python-format
 msgid "No matching repo to modify: %s."
 msgstr "수정할 일치하는 Repo가 없습니다. %s."
 
-#: plugins/config_manager.py:182
+#: plugins/config_manager.py:183
 #, python-format
 msgid "Adding repo from: %s"
 msgstr "다음 위치에서 레포 추가 : %s"
 
-#: plugins/config_manager.py:206
+#: plugins/config_manager.py:207
 msgid "Configuration of repo failed"
 msgid_plural "Configuration of repos failed"
-msgstr[0] "저장소 구성에 실패했습니다."
+msgstr[0] "저장소 구성에 실패했습니다"
 
-#: plugins/config_manager.py:216
+#: plugins/config_manager.py:217
 #, python-format
 msgid "Could not save repo to repofile %s: %s"
 msgstr "repofile에 repo를 저장할 수 없습니다. %s: %s"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "y"
 msgstr "y"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "yes"
 msgstr "예"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "n"
 msgstr "n"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "no"
 msgstr "아니"
 
-#: plugins/copr.py:79
+#: plugins/copr.py:84
 msgid "Interact with Copr repositories."
 msgstr "Copr 저장소와 상호 작용하십시오."
 
-#: plugins/copr.py:81
+#: plugins/copr.py:86
 msgid ""
 "\n"
 "  enable name/project [chroot]\n"
@@ -237,56 +245,84 @@ msgid ""
 "    "
 msgstr ""
 "\n"
-"  프로젝트 이름 / 프로젝트 제거 - 설치 / 사용 / 사용 안 함 목록 - 사용 가능 사용자 = NAME 검색 프로젝트 예 : copr enable rhscl / perl516 epel-6-x86_64 copr enable ignatenkobrain / ocltoys copr 비활성화 rhscl / perl516 copr 제거 rhscl / perl516 copr 목록 - 사용 가능 목록 - 사용 가능 사용자 = ignatenkobrain copr 검색 테스트\n"
+"  enable name/project [chroot]\n"
+" disable name/project\n"
+" remove name/project\n"
+" list --installed/enabled/disabled\n"
+" list --available-by-user=NAME\n"
+" search project\n"
+"\n"
+" Examples:\n"
+" copr enable rhscl/perl516 epel-6-x86_64\n"
+" copr enable ignatenkobrain/ocltoys\n"
+" copr disable rhscl/perl516\n"
+" copr remove rhscl/perl516\n"
+" copr list --enabled\n"
+" copr list --available-by-user=ignatenkobrain\n"
+" copr search tests\n"
 "    "
 
-#: plugins/copr.py:107
+#: plugins/copr.py:112
 msgid "List all installed Copr repositories (default)"
 msgstr "설치된 모든 Copr 저장소 나열 (기본값)"
 
-#: plugins/copr.py:109
+#: plugins/copr.py:114
 msgid "List enabled Copr repositories"
 msgstr "사용 가능한 Copr 저장소 목록"
 
-#: plugins/copr.py:111
+#: plugins/copr.py:116
 msgid "List disabled Copr repositories"
 msgstr "비활성화 된 Copr 저장소 목록"
 
-#: plugins/copr.py:113
+#: plugins/copr.py:118
 msgid "List available Copr repositories by user NAME"
 msgstr "사용자가 사용할 수있는 Copr 저장소를 나열합니다. NAME"
 
-#: plugins/copr.py:115
+#: plugins/copr.py:120
 msgid "Specify an instance of Copr to work with"
-msgstr ""
+msgstr "일하는 Copr의 예를 지정합니다"
 
-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:237
+#: plugins/copr.py:154 plugins/copr.py:222 plugins/copr.py:249
 msgid "Error: "
 msgstr "오류: "
 
-#: plugins/copr.py:150
+#: plugins/copr.py:155
 msgid ""
-"specify Copr hub either with `--hub` or using "
-"`copr_hub/copr_username/copr_projectname` format"
+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/"
+"copr_projectname` format"
 msgstr ""
+"Corp hub를 `--hub` 또는 사용하기 `copr_hub/copr_username/copr_projectname`형"
+"식으로 지정합니다"
 
-#: plugins/copr.py:153
+#: plugins/copr.py:158
 msgid "multiple hubs specified"
-msgstr ""
+msgstr "지정된 여러 허브"
 
-#: plugins/copr.py:218 plugins/copr.py:222
+#: plugins/copr.py:223 plugins/copr.py:227
 msgid "exactly two additional parameters to copr command are required"
-msgstr "copr 명령에 정확히 두 개의 추가 매개 변수가 필요합니다."
+msgstr "copr 명령에 정확히 두 개의 추가 매개 변수가 필요합니다"
+
+#: plugins/copr.py:232
+msgid "Too many arguments."
+msgstr "너무 많은 인수."
 
-#: plugins/copr.py:238
+#: plugins/copr.py:235
+msgid ""
+"Bad format of optional chroot. The format is distribution-version-"
+"architecture."
+msgstr "선택적인 chroot의 나쁜 형식. 형식은 배포-버전-구조입니다."
+
+#: plugins/copr.py:250
 msgid "use format `copr_username/copr_projectname` to reference copr project"
-msgstr "copr 프로젝트를 참조하기 위해`copr_username / copr_projectname` 형식을 사용하십시오"
+msgstr ""
+"copr 프로젝트를 참조하기 위해`copr_username / copr_projectname` 형식을 사용하"
+"십시오"
 
-#: plugins/copr.py:240
+#: plugins/copr.py:252
 msgid "bad copr project format"
 msgstr "나쁜 copr 프로젝트 형식"
 
-#: plugins/copr.py:254
+#: plugins/copr.py:266
 msgid ""
 "\n"
 "Enabling a Copr repository. Please note that this repository is not part\n"
@@ -294,78 +330,95 @@ msgid ""
 "\n"
 "The Fedora Project does not exercise any power over the contents of\n"
 "this repository beyond the rules outlined in the Copr FAQ at\n"
-"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>,\n"
 "and packages are not held to any quality or security level.\n"
 "\n"
 "Please do not file bug reports about these packages in Fedora\n"
 "Bugzilla. In case of problems, contact the owner of this repository.\n"
 msgstr ""
+"\n"
+"Core 저정소를 활성화합니다. 이 저장소는 주요 배포판 부분이 아님을 알고 있기 "
+"바라고,\n"
+"품질이 다를 수 있습니다.\n"
+"\n"
+"페도라 프로젝트는\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>에\n"
+"Core FAQ에 있는 설명된 규칙을 넘는 저장소 내용 이상의 권한을 시험하지 않으"
+"며,\n"
+"그리고 꾸러미(package)는 어떤 품질이나 보안 수준을 유지하지 않습니다.\n"
+"\n"
+"페도라 버그질라에 이들 꾸러미에 대한 파일 결점 보고를 제출하지 마세요.\n"
+"이들 문제는, 이들 저장소 소유자와 접촉하세요.\n"
 
-#: plugins/copr.py:271
+#: plugins/copr.py:283
 msgid "Repository successfully enabled."
 msgstr "저장소가 사용 설정되었습니다."
 
-#: plugins/copr.py:276
+#: plugins/copr.py:288
 msgid "Repository successfully disabled."
 msgstr "저장소가 사용 중지되었습니다."
 
-#: plugins/copr.py:280
+#: plugins/copr.py:292
 msgid "Repository successfully removed."
 msgstr "저장소가 제거되었습니다."
 
-#: plugins/copr.py:284 plugins/copr.py:693
+#: plugins/copr.py:296 plugins/copr.py:697
 msgid "Unknown subcommand {}."
 msgstr "알 수없는 부속 명령 {}."
 
-#: plugins/copr.py:341
+#: plugins/copr.py:353
 msgid ""
-"* These coprs have repo file with an old format that contains no information"
-" about Copr hub - the default one was assumed. Re-enable the project to fix "
+"* These coprs have repo file with an old format that contains no information "
+"about Copr hub - the default one was assumed. Re-enable the project to fix "
 "this."
 msgstr ""
+"* 이들 coprs은 Copr hub에 대하여 어떤 정보도 포함하지 않는 오래된 형태의 저장"
+"소 파일을 갖고 있습니다. 이 문제를 수정하기 위하여 프로젝트를 재활성화하세요."
 
-#: plugins/copr.py:353
+#: plugins/copr.py:366
 msgid "Can't parse repositories for username '{}'."
 msgstr "사용자 이름 '{}'에 대한 리포지토리를 구문 분석 할 수 없습니다."
 
-#: plugins/copr.py:356
+#: plugins/copr.py:369
 msgid "List of {} coprs"
 msgstr "{} 명의 경찰 목록"
 
-#: plugins/copr.py:364
+#: plugins/copr.py:374
 msgid "No description given"
-msgstr "설명이 없습니다."
+msgstr "설명이 없습니다"
 
-#: plugins/copr.py:376
+#: plugins/copr.py:386
 msgid "Can't parse search for '{}'."
 msgstr "'{}'에 대한 검색을 구문 분석 할 수 없습니다."
 
-#: plugins/copr.py:379
+#: plugins/copr.py:389
 msgid "Matched: {}"
 msgstr "일치하는 항목 : {}"
 
-#: plugins/copr.py:387
+#: plugins/copr.py:394
 msgid "No description given."
 msgstr "설명이 없습니다."
 
-#: plugins/copr.py:410
+#: plugins/copr.py:416
 msgid "Safe and good answer. Exiting."
 msgstr "안전하고 좋은 대답. 나가기."
 
-#: plugins/copr.py:417
+#: plugins/copr.py:423
 msgid "This command has to be run under the root user."
 msgstr "이 명령은 루트 사용자로 실행해야합니다."
 
-#: plugins/copr.py:481
+#: plugins/copr.py:485
 msgid ""
 "This repository does not have any builds yet so you cannot enable it now."
 msgstr "이 저장소에는 빌드가 아직 없으므로 지금 사용할 수 없습니다."
 
-#: plugins/copr.py:484
+#: plugins/copr.py:488
 msgid "Such repository does not exist."
 msgstr "이러한 저장소는 존재하지 않습니다."
 
-#: plugins/copr.py:528
+#: plugins/copr.py:532
 #, python-brace-format
 msgid ""
 "Maintainer of the enabled Copr repository decided to make\n"
@@ -381,53 +434,63 @@ msgid ""
 "\n"
 "These repositories have been enabled automatically."
 msgstr ""
+"활성화된 Core 저장소의 유지는 다른 저장소에 이를 독립적으로\n"
+"만드는 것으로 결정하였습니다.\n"
+"그런 저장소는 주요 Corp 저장소에서 성공적인 RPM 설치를\n"
+"위하여 일반적으로 필요합니다(이들은 실행 의존성을 제공합니다).\n"
+"\n"
+"위도 여기에 적용되며 품질과 결점-보고에 대한 참고 사항을 알아야 하고,\n"
+"페도라 프로젝트는 그 내용을 통제하지 않습니다.\n"
+"목록을 다시 검토합니다:\n"
+"\n"
+"{0}\n"
+"\n"
+"이들 저장소는 자동으로 활성화 됩니다."
 
-#: plugins/copr.py:549
+#: plugins/copr.py:553
 msgid "Do you want to keep them enabled?"
-msgstr ""
+msgstr "계속 사용하길 원하시나요?"
 
-#: plugins/copr.py:582
+#: plugins/copr.py:586
 #, python-brace-format
 msgid "Failed to remove copr repo {0}/{1}/{2}"
-msgstr ""
+msgstr "copr repo {0}/{1}/{2} 제거를 실패하였습니다"
 
-#: plugins/copr.py:593
+#: plugins/copr.py:597
 msgid "Failed to disable copr repo {}/{}"
-msgstr "copr repo {} / {}를 사용 중지하지 못했습니다."
+msgstr "copr repo {} / {}를 사용 중지를 실패하였습니다"
 
-#: plugins/copr.py:611 plugins/copr.py:648
+#: plugins/copr.py:615 plugins/copr.py:652
 msgid "Unknown response from server."
 msgstr "서버에서 알 수없는 응답."
 
-#: plugins/copr.py:633
+#: plugins/copr.py:637
 msgid "Interact with Playground repository."
 msgstr "놀이터 저장소와 상호 작용하십시오."
 
-#: plugins/copr.py:639
-#, fuzzy
-#| msgid "Interact with Playground repository."
+#: plugins/copr.py:643
 msgid "Enabling a Playground repository."
-msgstr "놀이터 저장소와 상호 작용하십시오."
+msgstr "동작 저장소와 활용하기."
 
-#: plugins/copr.py:640
+#: plugins/copr.py:644
 msgid "Do you want to continue?"
-msgstr ""
+msgstr "계속하기를 원하십니까?"
 
-#: plugins/copr.py:683
+#: plugins/copr.py:687
 msgid "Playground repositories successfully enabled."
 msgstr "놀이터 저장소를 사용하도록 설정했습니다."
 
-#: plugins/copr.py:686
+#: plugins/copr.py:690
 msgid "Playground repositories successfully disabled."
 msgstr "놀이터 저장소가 사용 중지되었습니다."
 
-#: plugins/copr.py:690
+#: plugins/copr.py:694
 msgid "Playground repositories successfully updated."
 msgstr "놀이터 저장소가 성공적으로 업데이트되었습니다."
 
 #: plugins/debug.py:53
 msgid "dump information about installed rpm packages to file"
-msgstr "설치된 rpm 패키지에 대한 정보를 파일에 덤프하십시오."
+msgstr "설치된 rpm 꾸러미(package)에 대한 정보를 파일에 덤프하십시오"
 
 #: plugins/debug.py:67
 msgid "do not attempt to dump the repository contents."
@@ -444,7 +507,7 @@ msgstr "작성된 출력 : %s"
 
 #: plugins/debug.py:172
 msgid "restore packages recorded in debug-dump file"
-msgstr "디버그 덤프 파일에 기록 된 패키지 복원"
+msgstr "디버그 덤프 파일에 기록 된 꾸러미(package) 복원"
 
 #: plugins/debug.py:185
 msgid "output commands that would be run to stdout."
@@ -452,13 +515,15 @@ msgstr "stdout으로 실행될 출력 명령."
 
 #: plugins/debug.py:188
 msgid "Install the latest version of recorded packages."
-msgstr "기록 된 패키지의 최신 버전을 설치하십시오."
+msgstr "기록 된 꾸러미의 최신 버전을 설치하십시오."
 
 #: plugins/debug.py:191
 msgid ""
 "Ignore architecture and install missing packages matching the name, epoch, "
 "version and release."
-msgstr "아키텍처를 무시하고 이름, 기원, 버전 및 릴리스와 일치하는 누락 된 패키지를 설치하십시오."
+msgstr ""
+"구조를 무시하고 이름, 기원, 버전및 출시와 일치하는 누락 된 꾸러미를 설치하십"
+"시오."
 
 #: plugins/debug.py:196
 msgid "limit to specified type"
@@ -469,6 +534,8 @@ msgid ""
 "Allow removing of install-only packages. Using this option may result in an "
 "attempt to remove the running kernel."
 msgstr ""
+"설치전용 꾸리미 제거를 허용합니다. 이 선택의 사용은 동작하고 있는 커널을 제거"
+"하는 결과가 나타날 수 있습니다."
 
 #: plugins/debug.py:202
 msgid "name of dump file"
@@ -477,7 +544,7 @@ msgstr "덤프 파일의 이름"
 #: plugins/debug.py:273
 #, python-format
 msgid "Package %s is not available"
-msgstr "꾸러미 %s 사용할 수 없습니다"
+msgstr "꾸러미(package) %s 사용 할 수 없습니다"
 
 #: plugins/debug.py:283
 #, python-format
@@ -486,31 +553,39 @@ msgstr "잘못된 dnf 디버그 파일 : %s"
 
 #: plugins/debuginfo-install.py:56
 msgid "install debuginfo packages"
-msgstr "debuginfo 패키지 설치"
+msgstr "디버그정보 꾸러미(package) 설치"
 
 #: plugins/debuginfo-install.py:180
 #, python-format
 msgid ""
 "Could not find debuginfo package for the following available packages: %s"
 msgstr ""
+"다음 사용가능한 꾸러미(package): %s 를 위하여 디버그정보 꾸러미를 찾을 수 없"
+"습니다"
 
 #: plugins/debuginfo-install.py:185
 #, python-format
 msgid ""
 "Could not find debugsource package for the following available packages: %s"
 msgstr ""
+"다음 가용한 꾸러미(package): %s 를 위하여 디버그자원 꾸러미(package)를 찾을 "
+"수 없습니다"
 
 #: plugins/debuginfo-install.py:190
 #, python-format
 msgid ""
 "Could not find debuginfo package for the following installed packages: %s"
 msgstr ""
+"다음 설치된 꾸러미(package): %s 를 위한 디버그정보 꾸러미(package)를 찾을 수 "
+"없습니다"
 
 #: plugins/debuginfo-install.py:195
 #, python-format
 msgid ""
 "Could not find debugsource package for the following installed packages: %s"
 msgstr ""
+"다음 설치된 꾸러미(package): %s 를 위하여 디버그자원 꾸러미(package)를 찾을 "
+"수 없습니다"
 
 #: plugins/debuginfo-install.py:199
 msgid "Unable to find a match"
@@ -518,51 +593,53 @@ msgstr "일치하는 항목을 찾을 수 없습니다"
 
 #: plugins/download.py:41
 msgid "Download package to current directory"
-msgstr "현재 디렉토리에 패키지 다운로드"
+msgstr "현재 디렉토리에 꾸러미 내려받기"
 
 #: plugins/download.py:51
 msgid "packages to download"
-msgstr "다운로드 할 패키지"
+msgstr "내려받기 할 꾸러미"
 
 #: plugins/download.py:53
 msgid "download the src.rpm instead"
-msgstr "대신 src.rpm을 다운로드하십시오."
+msgstr "대신 src.rpm을 내려받으세요"
 
 #: plugins/download.py:55
 msgid "download the -debuginfo package instead"
-msgstr "대신 -debuginfo 패키지를 다운로드하십시오."
+msgstr "대신 -debuginfo 꾸러미(package)를 내려받아요"
 
 #: plugins/download.py:57
 msgid "download the -debugsource package instead"
-msgstr ""
+msgstr "대신 -debuginfo 꾸러미(package)를 내려받으세요"
 
 #: plugins/download.py:60
 msgid "limit  the  query to packages of given architectures."
-msgstr "쿼리를 주어진 아키텍처의 패키지로 제한하십시오."
+msgstr "요청를 주어진 구조 꾸러미(package)로 제한하십시오."
 
-#: plugins/download.py:62
+#: plugins/download.py:62 plugins/modulesync.py:51
 msgid "resolve and download needed dependencies"
-msgstr "필요한 종속성을 해결하고 다운로드하십시오."
+msgstr "필요한 종속성을 해결하고 내려받아요"
 
 #: plugins/download.py:64
 msgid ""
 "when running with --resolve, download all dependencies (do not exclude "
 "already installed ones)"
 msgstr ""
+"--resolve 와 함께 실행 할 때에, 모든 의존성을 내려받습니다 (이미 설치된 것들"
+"은 포함하지 않습니다)"
 
 #: plugins/download.py:67
 msgid ""
 "print list of urls where the rpms can be downloaded instead of downloading"
-msgstr "다운로드 대신 rpms를 다운로드 할 수있는 URL 목록 인쇄"
+msgstr "내려받기 대신 rpms를 내려받기 할 수 있는 URL 목록 인쇄"
 
 #: plugins/download.py:72
 msgid "when running with --url, limit to specific protocols"
-msgstr "--url을 사용하여 실행하면 특정 프로토콜로 제한됩니다."
+msgstr "--url을 사용하여 실행하면 특정 통신규약이 제한됩니다"
 
-#: plugins/download.py:121 plugins/reposync.py:293
+#: plugins/download.py:121 plugins/reposync.py:314
 #, python-format
 msgid "Failed to get mirror for package: %s"
-msgstr "패키지 미러링에 실패했습니다. %s"
+msgstr "꾸러미 연결주소 얻기에 실패했습니다: %s"
 
 #: plugins/download.py:243
 msgid "Exiting due to strict setting."
@@ -570,7 +647,7 @@ msgstr "엄격한 설정으로 인해 종료됩니다."
 
 #: plugins/download.py:261
 msgid "Error in resolve of packages:"
-msgstr "패키지 해결 오류 :"
+msgstr "꾸러미(package) 해결 오류 :"
 
 #: plugins/download.py:279
 #, python-format
@@ -580,27 +657,145 @@ msgstr "소스 rpm이 정의되지 않았습니다. %s"
 #: plugins/download.py:296 plugins/download.py:309
 #, python-format
 msgid "No package %s available."
-msgstr "패키지 없음 %s 유효한."
+msgstr "가용한 꾸러미(package) %s가 없습니다."
+
+#: plugins/groups_manager.py:49
+msgid "Invalid group id"
+msgstr "유효하지 않는 그룹 id"
+
+#: plugins/groups_manager.py:58
+msgid "Invalid translated data, should be in form 'lang:text'"
+msgstr "잘못 번역된 자료, 형식 'lang:text' 에 있어야 합니다"
+
+#: plugins/groups_manager.py:61
+msgid "Invalid/empty language for translated data"
+msgstr "번역된 자료가 유효하지 않음/비워짐"
+
+#: plugins/groups_manager.py:71
+msgid "Can't generate group id from '{}'. Please specify group id using --id."
+msgstr ""
+"'{}' 에서 그룹 id를 발생 할 수 없습니다. --id를 사용하여 그룹 id를 지정해 주"
+"세요."
+
+#: plugins/groups_manager.py:79
+msgid "create and edit groups metadata file"
+msgstr "그룹 메타데이타 파일 생성하고 수정합니다"
+
+#: plugins/groups_manager.py:90
+msgid "load groups metadata from file"
+msgstr "파일에서 그룹 메타파일을 적재합니다"
+
+#: plugins/groups_manager.py:93
+msgid "save groups metadata to file"
+msgstr "그룹 메타자료를 파일에 저장합니다"
+
+#: plugins/groups_manager.py:95
+msgid "load and save groups metadata to file"
+msgstr "그룹 메타파일을 파일에 적재하고 저장합니다"
+
+#: plugins/groups_manager.py:97
+msgid "print the result metadata to stdout"
+msgstr "결과 메타데이타를 표준출력으로 출력한다"
+
+#: plugins/groups_manager.py:100
+msgid "group id"
+msgstr "그룹 id"
+
+#: plugins/groups_manager.py:101
+msgid "group name"
+msgstr "그룹 이름"
+
+#: plugins/groups_manager.py:103
+msgid "group description"
+msgstr "그룹 설명"
+
+#: plugins/groups_manager.py:105
+msgid "group display order"
+msgstr "그룸 표시 순서"
+
+#: plugins/groups_manager.py:108
+msgid "translated name for the group"
+msgstr "그룹을 위한 번역된 이름"
+
+#: plugins/groups_manager.py:111
+msgid "translated description for the group"
+msgstr "그룹을 위한 번역 설명"
+
+#: plugins/groups_manager.py:115
+msgid "make the group user visible (default)"
+msgstr "그룹 사용자를 표시 (기본값)"
+
+#: plugins/groups_manager.py:118
+msgid "make the group user invisible"
+msgstr "그룹 사용자를 보이지 않게 표시"
+
+#: plugins/groups_manager.py:123
+msgid "add packages to the mandatory section"
+msgstr "꾸러미(package)를 필 수 부분에 추가합니다"
+
+#: plugins/groups_manager.py:125
+msgid "add packages to the optional section"
+msgstr "꾸러미(package)를 선택 부분에 추가합니다"
+
+#: plugins/groups_manager.py:127
+msgid "remove packages from the group instead of adding them"
+msgstr "추가하기 대신에 그룹에서 꾸러미(package)를 제거합니다"
+
+#: plugins/groups_manager.py:129
+msgid "include also direct dependencies for packages"
+msgstr "꾸러미(package)를 위해 직접적인 의존성을 포함한다"
+
+#: plugins/groups_manager.py:132
+msgid "package specification"
+msgstr "꾸러미(package) 사양"
+
+#: plugins/groups_manager.py:156
+msgid "Can't edit group without specifying it (use --id or --name)"
+msgstr "이것(user --id 또느 --name)을 특정하지 않고 그룹을 수정 할 수 없습니다"
+
+#: plugins/groups_manager.py:190
+msgid "Can't load file \"{}\": {}"
+msgstr "파일 \"{}\": {} 를 적재 할 수 없습니다"
+
+#: plugins/groups_manager.py:206
+msgid "Can't save file \"{}\": {}"
+msgstr "파일 \"{}\": {}을 저장 할 수 없습니다"
+
+#: plugins/groups_manager.py:261
+msgid "No match for argument: {}"
+msgstr "일치하는 인수가 없습니다 :{}"
+
+#: plugins/groups_manager.py:298
+msgid "Can't remove packages from non-existent group"
+msgstr "존재하지 않는 그룹에서 꾸러미(package)를 제거 할 수 없습니다"
+
+#: plugins/groups_manager.py:307
+msgid ""
+"Group id '{}' generated from '{}' is duplicit. Please specify group id using "
+"--id."
+msgstr ""
+"'{}'에서 발생한 그룹 id '{}'는 중복되었습니다. --id를 사용하여 그룹 id를 지정"
+"하기 바랍니다."
 
 #: plugins/leaves.py:32
 msgid "List installed packages not required by any other package"
-msgstr "다른 패키지에서 필요하지 않은 설치된 패키지 나열"
+msgstr "다른 꾸러미(package)에서 필요하지 않은 설치된 꾸러미(packages) 나열"
 
 #: plugins/local.py:122
 msgid "Unable to create a directory '{}' due to '{}'"
-msgstr "'{}'(으)로 인해 '{}'디렉토리를 만들 수 없습니다."
+msgstr "'{}'(으)로 인해 '{}'디렉토리를 만들 수 없습니다"
 
 #: plugins/local.py:126
 msgid "'{}' is not a directory"
-msgstr "'{}'은 (는) 디렉토리가 아닙니다."
+msgstr "'{}'는 디렉토리가 아닙니다"
 
 #: plugins/local.py:135
 msgid "Copying '{}' to local repo"
-msgstr "'{}'을 (를) 로컬 저장소로 복사 중입니다."
+msgstr "'{}'을 로컬 저장소로 복사 중입니다"
 
 #: plugins/local.py:141
 msgid "Can't write file '{}'"
-msgstr "'{}'파일을 쓸 수 없습니다."
+msgstr "'{}'파일을 쓸 수 없습니다"
 
 #: plugins/local.py:156
 msgid "Rebuilding local repo"
@@ -608,73 +803,135 @@ msgstr "지역 레포 복구"
 
 #: plugins/migrate.py:45
 msgid "migrate yum's history, group and yumdb data to dnf"
-msgstr "yum의 히스토리, 그룹 및 yumdb 데이터를 dnf로 마이그레이션합니다."
+msgstr "yum 사용기록, 그룹 및 yumdb 데이터를 dnf로 마이그레이션합니다"
 
 #: plugins/migrate.py:54
 msgid "Migrating history data..."
 msgstr "기록 데이터 마이그레이션 중 ..."
 
-#: plugins/needs_restarting.py:65
+#: plugins/modulesync.py:37
+msgid ""
+"Download packages from modules and/or create a repository with modular data"
+msgstr "모듈에서 꾸러미를 내려 받기와/또는 모듈식 자료를 갖고 있는 저장소를 생성"
+
+#: plugins/modulesync.py:44
+msgid "MODULE"
+msgstr "모듈"
+
+#: plugins/modulesync.py:45
+msgid "modules to download"
+msgstr "내려받아야 할 모듈"
+
+#: plugins/modulesync.py:47
+msgid "enable repositories with source packages"
+msgstr "원천 꾸러미와 함께 저장소를 활성화"
+
+#: plugins/modulesync.py:49
+msgid "enable repositories with debug-info and debug-source packages"
+msgstr "디버그-정보와 디버그-원천 꾸러미와 함께 저장소 활성화"
+
+#: plugins/modulesync.py:53
+msgid "download only packages from newest modules"
+msgstr "최신 모듈에서 꾸러미만 내려받기"
+
+#: plugins/modulesync.py:85
+msgid "Unable to find a match for argument: '{}'"
+msgid_plural "Unable to find a match for arguments: '{}'"
+msgstr[0] "인수와 일치하는 항목을 찾을 수 없습니다: '{}'"
+
+#: plugins/modulesync.py:107
+msgid ""
+"Creation of repository failed with return code {}. All downloaded content "
+"was kept on the system"
+msgstr "반환 코드 {}로 인하여 저장소 생성에 실패함. 모두 내려받기된 내용은 "
+"시스템에서 보관됩니다"
+
+#: plugins/modulesync.py:144
+#, python-brace-format
+msgid "No match for artifact '{0}' from module '{1}'"
+msgstr "모듈 '{1}'에서 인위 결과물 '{0}'과 일치하는 부분이 없습니다"
+
+#: plugins/modulesync.py:162
+#, python-brace-format
+msgid "No match for package name '{0}' in profile {1} from module {2}"
+msgstr "모듈 {2}에서 프로파일 {1}인 꾸러미 이름 '{0}'과 일치하는 부분이 없습니다"
+
+#: plugins/modulesync.py:166
+msgid "No mach for argument '{}'"
+msgstr "인수와 일치하는 항목이 없습니다 '{}'"
+
+#. TODO(jmracek) Shell we end with an error or with RC 1?
+#: plugins/modulesync.py:198
+msgid "Unable to satisfy require {}"
+msgstr "필요사항 {}를 만족 할 수 없음"
+
+#: plugins/needs_restarting.py:66
 #, python-brace-format
 msgid ""
 "No installed package found for package name \"{pkg}\" specified in needs-"
 "restarting file \"{file}\"."
-msgstr ""
+msgstr "재시작이 필요한 파일 \"{file}\" 에 지정한 꾸러미 이름 \"{pkg}\"을 위하여 "
+"설치된 꾸러미를 찾을 수 없습니다."
 
-#: plugins/needs_restarting.py:199
+#: plugins/needs_restarting.py:220
 msgid "determine updated binaries that need restarting"
 msgstr "다시 시작해야하는 업데이트 된 바이너리 결정"
 
-#: plugins/needs_restarting.py:204
+#: plugins/needs_restarting.py:225
 msgid "only consider this user's processes"
-msgstr "이 사용자의 프로세스 만 고려하십시오."
+msgstr "이 사용자의 프로세스만 고려하세요"
 
-#: plugins/needs_restarting.py:206
+#: plugins/needs_restarting.py:227
 msgid ""
 "only report whether a reboot is required (exit code 1) or not (exit code 0)"
 msgstr ""
+"재시작이 요구되는 (exit code 1) 또는 아닌(exit code0) 경우에만 보고합니다"
 
 #: plugins/needs_restarting.py:230
+msgid "only report affected systemd services"
+msgstr "systemd 서비스에 영향을 미치는 것만 보고합니다"
+
+#: plugins/needs_restarting.py:253
 msgid "Core libraries or services have been updated since boot-up:"
-msgstr ""
+msgstr "Core 라이브러리와 서비스는 재시작 이 후에 최신화 됩니다:"
 
-#: plugins/needs_restarting.py:235
+#: plugins/needs_restarting.py:258
 msgid "Reboot is required to fully utilize these updates."
-msgstr ""
+msgstr "재시작은 이들 최신화를 완전히 사용하려면 필요합니다."
 
-#: plugins/needs_restarting.py:236
+#: plugins/needs_restarting.py:259
 msgid "More information:"
-msgstr ""
+msgstr "자세한 정보:"
 
-#: plugins/needs_restarting.py:240
+#: plugins/needs_restarting.py:263
 msgid "No core libraries or services have been updated since boot-up."
-msgstr ""
+msgstr "핵심 라이브러리와 서비스는 재시작 이 후에 최신화 되지 않습니다."
 
-#: plugins/needs_restarting.py:242
+#: plugins/needs_restarting.py:265
 msgid "Reboot should not be necessary."
-msgstr ""
+msgstr "재시작은 필요하지 않을 수 있습니다."
 
 #: plugins/post-transaction-actions.py:71
 #, python-format
 msgid "Bad Action Line \"%s\": %s"
-msgstr ""
+msgstr "잘못된 동작 선 \"%s\": %s"
 
 #. unsupported state, skip it
 #: plugins/post-transaction-actions.py:130
 #, python-format
 msgid "Bad Transaction State: %s"
-msgstr ""
+msgstr "잘못된 연결 상태: %s"
 
-#: plugins/post-transaction-actions.py:153
-#: plugins/post-transaction-actions.py:155
+#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:159
 #, python-format
 msgid "post-transaction-actions: %s"
-msgstr ""
+msgstr "연결 후 동작: %s"
 
-#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:161
 #, python-format
 msgid "post-transaction-actions: Bad Command \"%s\": %s"
-msgstr ""
+msgstr "연결 후 동작: 잘못된 명령 \"%s\": %s"
 
 #: plugins/repoclosure.py:42
 msgid "Display a list of unresolved dependencies for repositories"
@@ -686,149 +943,160 @@ msgstr "재구 축은 해결되지 않은 종속성으로 종료되었습니다.
 
 #: plugins/repoclosure.py:153
 msgid "check packages of the given archs, can be specified multiple times"
-msgstr "지정된 아치의 패키지를 검사하고 여러 번 지정할 수 있습니다."
+msgstr "지정된 아치의 꾸러미(package)를 검사하고 여러 번 지정할 수 있습니다"
 
 #: plugins/repoclosure.py:156
 msgid "Specify repositories to check"
-msgstr "확인할 저장소를 지정하십시오."
+msgstr "점검 할 저장소를 지정하세요"
 
 #: plugins/repoclosure.py:158
 msgid "Check only the newest packages in the repos"
-msgstr "리포지토리의 최신 패키지 만 확인하십시오."
+msgstr "저장소 최신 꾸러미(package)만 확인하세요"
 
 #: plugins/repoclosure.py:161
 msgid "Check closure for this package only"
-msgstr "이 패키지의 폐쇄 만 확인하십시오."
+msgstr "이 꾸러미(package)의 폐쇄만 확인하세요"
 
 #: plugins/repodiff.py:45
 msgid "List differences between two sets of repositories"
-msgstr ""
+msgstr "두 개의 저장소 구성 사이의 목록 차이점"
 
 #: plugins/repodiff.py:58
 msgid "Specify old repository, can be used multiple times"
-msgstr ""
+msgstr "여러번 사용될 수 있는, 오래된 저장소를 지정합니다"
 
 #: plugins/repodiff.py:60
 msgid "Specify new repository, can be used multiple times"
-msgstr ""
+msgstr "여러 번 사용 될 수 있는, 새로운 저장소를 지정합니다"
 
 #: plugins/repodiff.py:63
 msgid ""
 "Specify architectures to compare, can be used multiple times. By default, "
 "only source rpms are compared."
 msgstr ""
+"비교 할 구조를 지정하고, 여러 번 사용 될 수 있습니다. 기본적으로, 자원 rpms"
+"만 비교됩니다."
 
 #: plugins/repodiff.py:67
 msgid "Output additional data about the size of the changes."
-msgstr ""
+msgstr "크기 변화에 대한 추가 자료를 출력합니다."
 
 #: plugins/repodiff.py:69
 msgid ""
-"Compare packages also by arch. By default packages are compared just by "
-"name."
+"Compare packages also by arch. By default packages are compared just by name."
 msgstr ""
+"구조에 의해 꾸러미(package) 또한 비교합니다. 기본적으로 꾸러미(package)는 이"
+"름으로만 비교됩니다."
 
 #: plugins/repodiff.py:72
 msgid "Output a simple one line message for modified packages."
-msgstr ""
+msgstr "수정된 꾸러미(pacakage)지를 위해 단순히 한 줄 메시지를 출력합니다."
 
 #: plugins/repodiff.py:74
 msgid ""
 "Split the data for modified packages between upgraded and downgraded "
 "packages."
-msgstr ""
+msgstr "향상 또는 향상 꾸러미 사이에서 변형된 꾸러미를 위해 자료를 분할합니다."
 
 #: plugins/repodiff.py:86
 msgid "Both old and new repositories must be set."
-msgstr ""
+msgstr "오래된 것과 새로운 저장소 모두 구성되어야 합니다."
 
 #: plugins/repodiff.py:178
 msgid "Size change: {} bytes"
-msgstr ""
+msgstr "크기 변화: {} bytes"
 
 #: plugins/repodiff.py:184
 msgid "Added package  : {}"
-msgstr ""
+msgstr "추가된 꾸러미(package) : {}"
 
 #: plugins/repodiff.py:187
 msgid "Removed package: {}"
-msgstr ""
+msgstr "제거된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:190
 msgid "Obsoleted by   : {}"
-msgstr ""
+msgstr "사용되지 않음  : {}"
 
 #: plugins/repodiff.py:195
 msgid ""
 "\n"
 "Upgraded packages"
 msgstr ""
+"\n"
+"향상된 꾸러미(package)"
 
 #: plugins/repodiff.py:200
 msgid ""
 "\n"
 "Downgraded packages"
 msgstr ""
+"\n"
+"꾸러미 하향설치"
 
 #: plugins/repodiff.py:207
 msgid ""
 "\n"
 "Modified packages"
 msgstr ""
+"\n"
+"변형된 꾸러미(package)"
 
 #: plugins/repodiff.py:212
 msgid ""
 "\n"
 "Summary"
 msgstr ""
+"\n"
+"요약"
 
 #: plugins/repodiff.py:213
 msgid "Added packages: {}"
-msgstr ""
+msgstr "추가된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:214
 msgid "Removed packages: {}"
-msgstr ""
+msgstr "제거된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:216
 msgid "Upgraded packages: {}"
-msgstr ""
+msgstr "향상된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:217
 msgid "Downgraded packages: {}"
-msgstr ""
+msgstr "하향설치된 꾸러미: {}"
 
 #: plugins/repodiff.py:219
 msgid "Modified packages: {}"
-msgstr ""
+msgstr "변형된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:222
 msgid "Size of added packages: {}"
-msgstr ""
+msgstr "크기가 증가된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:223
 msgid "Size of removed packages: {}"
-msgstr ""
+msgstr "크기가 제거된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:225
 msgid "Size of modified packages: {}"
-msgstr ""
+msgstr "크기가 변형된 꾸러미(package): {}"
 
 #: plugins/repodiff.py:228
 msgid "Size of upgraded packages: {}"
-msgstr ""
+msgstr "크기가 향상된 꾸러미: {}"
 
 #: plugins/repodiff.py:230
 msgid "Size of downgraded packages: {}"
-msgstr ""
+msgstr "크기가 하향설치된 꾸러미: {}"
 
 #: plugins/repodiff.py:232
 msgid "Size change: {}"
-msgstr ""
+msgstr "크기 변경: {}"
 
 #: plugins/repograph.py:50
 msgid "Output a full package dependency graph in dot format"
-msgstr "도트 형식의 전체 패키지 종속성 그래프 출력"
+msgstr "도트 형식의 전체 꾸러미(package) 종속성 그래프 출력"
 
 #: plugins/repograph.py:110
 #, python-format
@@ -837,186 +1105,206 @@ msgstr "아무것도 제공하지 않습니다 : '%s'"
 
 #: plugins/repomanage.py:45
 msgid "Manage a directory of rpm packages"
-msgstr "rpm 패키지 디렉토리 관리"
+msgstr "rpm 꾸러미(package) 디렉토리 관리"
 
 #: plugins/repomanage.py:59
 msgid "Pass either --old or --new, not both!"
-msgstr "--old 또는 --new 중 하나를 전달하십시오."
+msgstr "--old 또는 --new 중 하나를 전달하세요!"
 
-#: plugins/repomanage.py:71
+#: plugins/repomanage.py:89
 msgid "No files to process"
-msgstr "처리 할 파일이 없습니다."
+msgstr "처리 할 파일 없음"
 
-#: plugins/repomanage.py:93
+#: plugins/repomanage.py:96
 msgid "Could not open {}"
-msgstr "{}을 (를) 열 수 없습니다."
+msgstr "{}을 열 수 없습니다"
 
-#: plugins/repomanage.py:177
+#: plugins/repomanage.py:180
 msgid "Print the older packages"
-msgstr "이전 패키지 인쇄"
+msgstr "이전 꾸러미(package) 인쇄"
 
-#: plugins/repomanage.py:179
+#: plugins/repomanage.py:182
 msgid "Print the newest packages"
-msgstr "최신 패키지 인쇄"
+msgstr "최신 꾸러미(package) 인쇄"
 
-#: plugins/repomanage.py:181
+#: plugins/repomanage.py:184
 msgid "Space separated output, not newline"
 msgstr "공백으로 구분 된 출력이 아닌 개행 문자"
 
-#: plugins/repomanage.py:183
+#: plugins/repomanage.py:186
 msgid "Newest N packages to keep - defaults to 1"
-msgstr "보관할 최신 N 패키지 - 기본값은 1입니다."
+msgstr "보관할 최신 N 꾸러미(package) - 기본값은 1입니다"
 
-#: plugins/repomanage.py:186
+#: plugins/repomanage.py:189
 msgid "Path to directory"
 msgstr "디렉토리 경로"
 
-#: plugins/reposync.py:54
+#: plugins/reposync.py:55
 msgid "download all packages from remote repo"
-msgstr "원격 저장소에서 모든 패키지를 다운로드하십시오."
+msgstr "원격 저장소에서 모든 꾸러미(package)를 내려받아요"
 
-#: plugins/reposync.py:63
+#: plugins/reposync.py:64
 msgid "download only packages for this ARCH"
-msgstr "이 ARCH 용 패키지 만 다운로드하십시오."
+msgstr "이 ARCH용 꾸러미(package)만 내려받아요"
 
-#: plugins/reposync.py:65
+#: plugins/reposync.py:66
 msgid "delete local packages no longer present in repository"
-msgstr "저장소에 더 이상 존재하지 않는 로컬 패키지 삭제"
+msgstr "저장소에 더 이상 존재하지 않는 로컬 꾸러미(package) 삭제"
 
-#: plugins/reposync.py:67
-msgid "also download and uncompress comps.xml"
-msgstr ""
-
-#: plugins/reposync.py:69
+#: plugins/reposync.py:68
 msgid "download all the metadata."
-msgstr ""
+msgstr "모든 메타데이타 내려받기."
 
-#: plugins/reposync.py:71
-msgid "download only newest packages per-repo"
-msgstr "repo 당 최신 패키지 만 다운로드하십시오."
+#: plugins/reposync.py:70
+msgid "Remove packages that fail GPG signature checking after downloading"
+msgstr "내려받기 후에 점검한 GPG 서명이 실패한 꾸러미를 제거합니다"
 
 #: plugins/reposync.py:73
-msgid "where to store downloaded repositories"
-msgstr ""
+msgid "also download and uncompress comps.xml"
+msgstr "또한 comps.xml 내려받기와 압축 풀기"
 
 #: plugins/reposync.py:75
-msgid "Don't add the reponame to the download path."
-msgstr ""
-
-#: plugins/reposync.py:77
 msgid ""
-"where to store downloaded repository metadata. Defaults to the value of "
-"--download-path."
+"where to store downloaded repository metadata. Defaults to the value of --"
+"download-path."
 msgstr ""
+"내려받은 저장소 메타데이타를 저장하기 위한 장소. --download-path의 값으로 기"
+"본 지정합니다."
+
+#: plugins/reposync.py:78
+msgid "download only newest packages per-repo"
+msgstr "저장소 최신 꾸러미(package)만 내려받아요"
 
 #: plugins/reposync.py:80
-msgid "operate on source packages"
-msgstr "소스 패키지를 조작한다."
+msgid "Don't add the reponame to the download path."
+msgstr "내려받기 경로에 저장소이름을 추가하지 않습니다."
 
 #: plugins/reposync.py:82
+msgid "where to store downloaded repositories"
+msgstr "내려받기 한 저장소를 저장할 위치"
+
+#: plugins/reposync.py:84
 msgid "try to set local timestamps of local files by the one on the server"
-msgstr ""
+msgstr "서버에 있는 하나에서 로컬파일의 로컬 타임스템프 설정을 시도하세요"
+
+#: plugins/reposync.py:87
+msgid "download only source packages"
+msgstr "원천 꾸러미만 내려받기"
 
-#: plugins/reposync.py:85
+#: plugins/reposync.py:89
 msgid "Just list urls of what would be downloaded, don't download"
-msgstr ""
+msgstr "내려 받을 수 있는 url만 목록화하며, 내려 받지 않습니다"
 
-#: plugins/reposync.py:109
+#: plugins/reposync.py:113
 msgid "Can't use --norepopath with multiple repositories"
-msgstr ""
+msgstr "다중 저장소와 함께 --norepath를 사용 할 수 없습니다"
 
-#: plugins/reposync.py:127
+#: plugins/reposync.py:132
 #, python-format
 msgid "Failed to get mirror for metadata: %s"
-msgstr ""
+msgstr "메타데이타에 대한 연결주소 얻기를 실패하였습니다:%s"
 
-#: plugins/reposync.py:144
+#: plugins/reposync.py:149
 msgid "Failed to get mirror for the group file."
-msgstr ""
+msgstr "그룹 파일을 위하여 연결주소 얻기에 실패하였습니다."
+
+#: plugins/reposync.py:168
+msgid "Removing {}: {}"
+msgstr "제거하기{}: {}"
 
 #: plugins/reposync.py:175
+msgid "GPG signature check failed."
+msgstr "GPG 서명 점검이 실패하였습니다."
+
+#: plugins/reposync.py:196
 msgid "Download target '{}' is outside of download path '{}'."
-msgstr ""
+msgstr "내려받기 대상 '{}'는 내려받기 경로'{}'의 밖에 있습니다."
 
-#: plugins/reposync.py:190
+#: plugins/reposync.py:211
 #, python-format
 msgid "[DELETED] %s"
 msgstr "[DELETED] %s"
 
-#: plugins/reposync.py:192
+#: plugins/reposync.py:213
 #, python-format
 msgid "failed to delete file %s"
 msgstr "파일을 삭제하지 못했습니다. %s"
 
-#: plugins/reposync.py:201
+#: plugins/reposync.py:222
 #, python-format
 msgid "comps.xml for repository %s saved"
 msgstr "저장소에 대한 comps.xml %s 저장된"
 
 #: plugins/show_leaves.py:54
 msgid "New leaves:"
-msgstr "새 잎 :"
+msgstr "독립 꾸러미(package):"
 
-#: plugins/versionlock.py:32
+#: plugins/versionlock.py:33
 #, python-format
 msgid "Unable to read version lock configuration: %s"
 msgstr "버전 잠금 설정을 읽을 수 없습니다 : %s"
 
-#: plugins/versionlock.py:33
-msgid "Locklist not set"
-msgstr "잠금 목록이 설정되지 않았습니다."
-
 #: plugins/versionlock.py:34
-msgid "Adding versionlock on:"
-msgstr ""
+msgid "Locklist not set"
+msgstr "잠금 목록 설정되지 않음"
 
 #: plugins/versionlock.py:35
-msgid "Adding exclude on:"
-msgstr ""
+msgid "Adding versionlock on:"
+msgstr "버전잠금 설정 추가하기:"
 
 #: plugins/versionlock.py:36
-msgid "Package already locked in equivalent form:"
-msgstr ""
+msgid "Adding exclude on:"
+msgstr "제외 하기 추가하기:"
 
 #: plugins/versionlock.py:37
-msgid "Package {} is already locked"
-msgstr ""
+msgid "Package already locked in equivalent form:"
+msgstr "꾸러미(package)는 이미 동일한 형태로 잠겨졌습니다:"
 
 #: plugins/versionlock.py:38
-msgid "Package {} is already excluded"
-msgstr ""
+msgid "Package {} is already locked"
+msgstr "꾸러미(package) {} 는 이미 잠겨졌습니다"
 
 #: plugins/versionlock.py:39
-msgid "Deleting versionlock for:"
-msgstr ""
+msgid "Package {} is already excluded"
+msgstr "꾸러미(package) {} 는 이미 제외되었습니다"
 
 #: plugins/versionlock.py:40
-msgid "No package found for:"
-msgstr ""
+msgid "Deleting versionlock for:"
+msgstr "버전 잠금을 제거하기:"
 
 #: plugins/versionlock.py:41
-msgid "Excludes from versionlock plugin were not applied"
-msgstr ""
+msgid "No package found for:"
+msgstr "찾고자 하는 꾸러미(package)가 없습니다:"
 
 #: plugins/versionlock.py:42
-msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
-msgstr ""
+msgid "Excludes from versionlock plugin were not applied"
+msgstr "버전 잠금 플러그인에서 제외는 적용되지 않습니다"
 
 #: plugins/versionlock.py:43
-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
-msgstr ""
+msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
+msgstr "버전 잠금 플러그인: 적용된 파일 \"{} \"에서 잠금 규칙의 수: {}"
 
 #: plugins/versionlock.py:44
+msgid ""
+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
+msgstr "버전 잠금 플러그인: 적용된 파일 \"{} \"에서 제외 규칙의 수: {}"
+
+#: plugins/versionlock.py:45
 msgid "Versionlock plugin: could not parse pattern:"
-msgstr ""
+msgstr "버전 잠금 플러그인: 유형을 구문 분석 할 수 없습니다:"
 
-#: plugins/versionlock.py:130
+#: plugins/versionlock.py:134
 msgid "control package version locks"
-msgstr ""
+msgstr "꾸러미 버전 잠금을 제어합니다"
 
-#: plugins/versionlock.py:136
+#: plugins/versionlock.py:140
 msgid "Use package specifications as they are, do not try to parse them"
-msgstr ""
+msgstr "꾸러미(package) 사양을 그대로 사용하며, 구문 분석을 시도하지 않습니다"
+
+#: plugins/versionlock.py:160
+msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead."
+msgstr "하위명령 '{}'는 더 이상 사용하지 않습니다. 대신에 하위명령 'exclude'를 "
+"사용합니다."
 
 #~ msgid ""
 #~ "\n"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 151441d..5e5627e 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,24 +1,28 @@
 # Tommy He <lovenemesis@fedoraproject.org>, 2015. #zanata
 # Tommy He <lovenemesis@fedoraproject.org>, 2016. #zanata
 # mosquito <sensor.wen@gmail.com>, 2016. #zanata
-# Charles Lee <lchopn@gmail.com>, 2017. #zanata, 2020.
+# Charles Lee <lchopn@gmail.com>, 2017. #zanata, 2020, 2021.
 # cheng ye <18969068329@163.com>, 2017. #zanata
-# Ludek Janda <ljanda@redhat.com>, 2018. #zanata
+# Ludek Janda <ljanda@redhat.com>, 2018. #zanata, 2021.
 # Hongqiao Chen <harrychen0314@gmail.com>, 2020.
+# Sundeep Anand <suanand@redhat.com>, 2021.
+# Qiyu Yan <yanqiyu01@gmail.com>, 2021.
+# Transtats <suanand@redhat.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
-"PO-Revision-Date: 2020-07-09 13:27+0000\n"
-"Last-Translator: Charles Lee <lchopn@gmail.com>\n"
-"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/dnf/dnf-plugins-core-l10n-master/zh_CN/>\n"
+"POT-Creation-Date: 2022-02-28 11:53+0100\n"
+"PO-Revision-Date: 2022-03-09 12:39+0000\n"
+"Last-Translator: Transtats <suanand@redhat.com>\n"
+"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
+"projects/dnf/dnf-plugins-core-rhel-8/zh_CN/>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.11.2\n"
 
 #: plugins/builddep.py:45
 msgid "[PACKAGE|PACKAGE.spec]"
@@ -39,7 +43,7 @@ msgstr "定义一个用于处理 Spec 文件的宏"
 
 #: plugins/builddep.py:95
 msgid "skip build dependencies not available in repositories"
-msgstr ""
+msgstr "跳过存储库中不可用的构建依赖项"
 
 #: plugins/builddep.py:98
 msgid "treat commandline arguments as spec files"
@@ -51,15 +55,14 @@ msgstr "将命令行参数作为源码 RPM 处理"
 
 #: plugins/builddep.py:144
 msgid "RPM: {}"
-msgstr ""
+msgstr "RPM软件包: {}"
 
 #: plugins/builddep.py:153
 msgid "Some packages could not be found."
 msgstr "某些软件包无法找到。"
 
 #. No provides, no files
-#. Richdeps can have no matches but it could be correct (solver must decide
-#. later)
+#. Richdeps can have no matches but it could be correct (solver must decide later)
 #: plugins/builddep.py:173
 #, python-format
 msgid "No matching package to install: '%s'"
@@ -87,27 +90,28 @@ msgstr "无匹配软件包: %s"
 #: plugins/changelog.py:37
 #, python-brace-format
 msgid "Not a valid date: \"{0}\"."
-msgstr ""
+msgstr "无效的日期 : \"{0}\"。"
 
 #: plugins/changelog.py:43
 msgid "Show changelog data of packages"
-msgstr ""
+msgstr "查看软件包的改变日志数据"
 
 #: plugins/changelog.py:51
 msgid ""
 "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format "
 "is recommended."
 msgstr ""
+"显示自 DATE 开始的改变日志信息。为了避免混淆,推荐使用 YYYY-MM-DD 格式。"
 
 #: plugins/changelog.py:55
 msgid "show given number of changelog entries per package"
-msgstr ""
+msgstr "每个软件包显示指定数量的改变日志信息"
 
 #: plugins/changelog.py:58
 msgid ""
 "show only new changelog entries for packages, that provide an upgrade for "
 "some of already installed packages."
-msgstr ""
+msgstr "只显示软件包新的改变日志信息,为已安装的软件包提供升级。"
 
 #: plugins/changelog.py:60
 msgid "PACKAGE"
@@ -120,109 +124,111 @@ msgstr "未找到匹配的参数: %s"
 
 #: plugins/changelog.py:109
 msgid "Listing changelogs since {}"
-msgstr ""
+msgstr "列出自 {} 后的改变日志信息"
 
 #: plugins/changelog.py:111
 msgid "Listing only latest changelog"
 msgid_plural "Listing {} latest changelogs"
-msgstr[0] ""
+msgstr[0] "只列出最新 {} 项更改日志"
 
 #: plugins/changelog.py:116
 msgid "Listing only new changelogs since installed version of the package"
-msgstr ""
+msgstr "在列出安装的软件包版本后的新改变日志"
 
 #: plugins/changelog.py:118
 msgid "Listing all changelogs"
-msgstr ""
+msgstr "列出所有改变日志"
 
 #: plugins/changelog.py:122
 msgid "Changelogs for {}"
 msgstr "{}的变更记录"
 
-#: plugins/config_manager.py:37
+#: plugins/config_manager.py:38
 #, python-brace-format
 msgid "manage {prog} configuration options and repositories"
-msgstr ""
+msgstr "管理 {prog} 配置选项和软件仓库"
 
-#: plugins/config_manager.py:44
+#: plugins/config_manager.py:45
 msgid "repo to modify"
 msgstr "要修改的仓库"
 
-#: plugins/config_manager.py:47
+#: plugins/config_manager.py:48
 msgid "save the current options (useful with --setopt)"
 msgstr "保存当前选项(与 --setopt 和用)"
 
-#: plugins/config_manager.py:50
+#: plugins/config_manager.py:51
 msgid "add (and enable) the repo from the specified file or url"
 msgstr "从指定文件或 URL 添加(并启用)仓库"
 
-#: plugins/config_manager.py:53
+#: plugins/config_manager.py:54
 msgid "print current configuration values to stdout"
 msgstr "打印当前配置值到标准输出"
 
-#: plugins/config_manager.py:56
+#: plugins/config_manager.py:57
 msgid "print variable values to stdout"
 msgstr "打印变量值到标准输出"
 
-#: plugins/config_manager.py:60
+#: plugins/config_manager.py:61
 msgid "enable repos (automatically saves)"
-msgstr ""
+msgstr "启用仓库(自动保存)"
 
-#: plugins/config_manager.py:63
+#: plugins/config_manager.py:64
 msgid "disable repos (automatically saves)"
-msgstr ""
+msgstr "禁用仓库(自动保存)"
 
-#: plugins/config_manager.py:77
+#: plugins/config_manager.py:78
 msgid "one of the following arguments is required: {}"
-msgstr ""
+msgstr "需要以下参数之一:{}"
 
-#: plugins/config_manager.py:86
+#: plugins/config_manager.py:87
 msgid ""
 "Warning: --enablerepo/--disablerepo arguments have no meaningwith config "
 "manager. Use --set-enabled/--set-disabled instead."
 msgstr ""
+"警告:--enablerepo/--disablerepo 参数对于 config manager 没有作用。请使用 --"
+"set-enabled/--set-disabled。"
 
-#: plugins/config_manager.py:131
+#: plugins/config_manager.py:132
 #, python-format
 msgid "No matching repo to modify: %s."
 msgstr "没有匹配的仓库可以修改:%s 。"
 
-#: plugins/config_manager.py:182
+#: plugins/config_manager.py:183
 #, python-format
 msgid "Adding repo from: %s"
 msgstr "添加仓库自:%s"
 
-#: plugins/config_manager.py:206
+#: plugins/config_manager.py:207
 msgid "Configuration of repo failed"
 msgid_plural "Configuration of repos failed"
 msgstr[0] "配置仓库失败"
 
-#: plugins/config_manager.py:216
+#: plugins/config_manager.py:217
 #, python-format
 msgid "Could not save repo to repofile %s: %s"
 msgstr "无法保存仓库至仓库文件 %s:%s"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "y"
 msgstr "y"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "yes"
 msgstr "是"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "n"
 msgstr "n"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "no"
 msgstr "否"
 
-#: plugins/copr.py:79
+#: plugins/copr.py:84
 msgid "Interact with Copr repositories."
-msgstr "与 Copr 仓库交互"
+msgstr "与 Copr 仓库交互。"
 
-#: plugins/copr.py:81
+#: plugins/copr.py:86
 msgid ""
 "\n"
 "  enable name/project [chroot]\n"
@@ -250,7 +256,7 @@ msgstr ""
 "  list --available-by-user=NAME\n"
 "  search project\n"
 "\n"
-"  Examples:\n"
+"  例如:\n"
 "  copr enable rhscl/perl516 epel-6-x86_64\n"
 "  copr enable ignatenkobrain/ocltoys\n"
 "  copr disable rhscl/perl516\n"
@@ -260,53 +266,65 @@ msgstr ""
 "  copr search tests\n"
 "    "
 
-#: plugins/copr.py:107
+#: plugins/copr.py:112
 msgid "List all installed Copr repositories (default)"
 msgstr "列出所有安装的 Copr 仓库(默认)"
 
-#: plugins/copr.py:109
+#: plugins/copr.py:114
 msgid "List enabled Copr repositories"
 msgstr "列出启动的 Copr 仓库"
 
-#: plugins/copr.py:111
+#: plugins/copr.py:116
 msgid "List disabled Copr repositories"
 msgstr "列出禁用的 Copr 仓库"
 
-#: plugins/copr.py:113
+#: plugins/copr.py:118
 msgid "List available Copr repositories by user NAME"
 msgstr "按照用户 NAME 列出可用的 Copr 仓库"
 
-#: plugins/copr.py:115
+#: plugins/copr.py:120
 msgid "Specify an instance of Copr to work with"
-msgstr ""
+msgstr "指定需要使用的 Copr 实例"
 
-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:237
+#: plugins/copr.py:154 plugins/copr.py:222 plugins/copr.py:249
 msgid "Error: "
 msgstr "错误: "
 
-#: plugins/copr.py:150
+#: plugins/copr.py:155
 msgid ""
-"specify Copr hub either with `--hub` or using "
-"`copr_hub/copr_username/copr_projectname` format"
+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/"
+"copr_projectname` format"
 msgstr ""
+"使用 `--hub` 或使用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr "
+"hub"
 
-#: plugins/copr.py:153
+#: plugins/copr.py:158
 msgid "multiple hubs specified"
-msgstr ""
+msgstr "指定多个 hub"
 
-#: plugins/copr.py:218 plugins/copr.py:222
+#: plugins/copr.py:223 plugins/copr.py:227
 msgid "exactly two additional parameters to copr command are required"
 msgstr "Copr 命令要求有且仅有两个额外参数"
 
-#: plugins/copr.py:238
+#: plugins/copr.py:232
+msgid "Too many arguments."
+msgstr "参数过多。"
+
+#: plugins/copr.py:235
+msgid ""
+"Bad format of optional chroot. The format is distribution-version-"
+"architecture."
+msgstr "可选 chroot 的错误格式。格式为 distribution-version-architecture。"
+
+#: plugins/copr.py:250
 msgid "use format `copr_username/copr_projectname` to reference copr project"
 msgstr "使用格式 `copr_username/copr_projectname` 来引用 Copr 项目"
 
-#: plugins/copr.py:240
+#: plugins/copr.py:252
 msgid "bad copr project format"
 msgstr "错误的 Copr 项目格式"
 
-#: plugins/copr.py:254
+#: plugins/copr.py:266
 msgid ""
 "\n"
 "Enabling a Copr repository. Please note that this repository is not part\n"
@@ -314,78 +332,93 @@ msgid ""
 "\n"
 "The Fedora Project does not exercise any power over the contents of\n"
 "this repository beyond the rules outlined in the Copr FAQ at\n"
-"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>,\n"
 "and packages are not held to any quality or security level.\n"
 "\n"
 "Please do not file bug reports about these packages in Fedora\n"
 "Bugzilla. In case of problems, contact the owner of this repository.\n"
 msgstr ""
+"\n"
+"启用一个 Copr 仓库。请注意这个仓库\n"
+"不是主发行版本的一部分,质量可能会有所不同。\n"
+"\n"
+"Fedora 项目对其不行使除了于 Copr 常见问题\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>\n"
+"中所提出的规则外的任何权力,并且其软件包不保证达到特定质量\n"
+"和安全水准。\n"
+"\n"
+"请不要在 Fedora Bugzilla 中报告这些软件包中出现的\n"
+"问题。当出现问题时,请联系仓库的所有者。\n"
 
-#: plugins/copr.py:271
+#: plugins/copr.py:283
 msgid "Repository successfully enabled."
 msgstr "启用软件仓库成功。"
 
-#: plugins/copr.py:276
+#: plugins/copr.py:288
 msgid "Repository successfully disabled."
 msgstr "禁用软件仓库成功。"
 
-#: plugins/copr.py:280
+#: plugins/copr.py:292
 msgid "Repository successfully removed."
 msgstr "软件仓库已成功删除。"
 
-#: plugins/copr.py:284 plugins/copr.py:693
+#: plugins/copr.py:296 plugins/copr.py:697
 msgid "Unknown subcommand {}."
 msgstr "未知的子命令 {}。"
 
-#: plugins/copr.py:341
+#: plugins/copr.py:353
 msgid ""
-"* These coprs have repo file with an old format that contains no information"
-" about Copr hub - the default one was assumed. Re-enable the project to fix "
+"* These coprs have repo file with an old format that contains no information "
+"about Copr hub - the default one was assumed. Re-enable the project to fix "
 "this."
 msgstr ""
+"* 这些 coprs 有使用旧格式的 repo 文件,它们没有包括 Copr hub 的信息 - 假设使"
+"用默认值。重新启用项目来解决这个问题。"
 
-#: plugins/copr.py:353
+#: plugins/copr.py:366
 msgid "Can't parse repositories for username '{}'."
 msgstr "无法为用户名 username '{}' 解析仓库。"
 
-#: plugins/copr.py:356
+#: plugins/copr.py:369
 msgid "List of {} coprs"
 msgstr "{} Coprs 列表"
 
-#: plugins/copr.py:364
+#: plugins/copr.py:374
 msgid "No description given"
 msgstr "没有给出描述"
 
-#: plugins/copr.py:376
+#: plugins/copr.py:386
 msgid "Can't parse search for '{}'."
 msgstr "无法解析针对 '{}' 的搜索。"
 
-#: plugins/copr.py:379
+#: plugins/copr.py:389
 msgid "Matched: {}"
 msgstr "匹配:{}"
 
-#: plugins/copr.py:387
+#: plugins/copr.py:394
 msgid "No description given."
 msgstr "没有给出描述。"
 
-#: plugins/copr.py:410
+#: plugins/copr.py:416
 msgid "Safe and good answer. Exiting."
 msgstr "安全及明智的答案。退出。"
 
-#: plugins/copr.py:417
+#: plugins/copr.py:423
 msgid "This command has to be run under the root user."
-msgstr "该命令必须以 root 用户运行"
+msgstr "该命令必须以 root 用户运行。"
 
-#: plugins/copr.py:481
+#: plugins/copr.py:485
 msgid ""
 "This repository does not have any builds yet so you cannot enable it now."
 msgstr "该仓库尚未包含任何构建所以您现在无法启用它。"
 
-#: plugins/copr.py:484
+#: plugins/copr.py:488
 msgid "Such repository does not exist."
 msgstr "该软件仓库不存在。"
 
-#: plugins/copr.py:528
+#: plugins/copr.py:532
 #, python-brace-format
 msgid ""
 "Maintainer of the enabled Copr repository decided to make\n"
@@ -401,47 +434,57 @@ msgid ""
 "\n"
 "These repositories have been enabled automatically."
 msgstr ""
+"启用的 Copr 仓库的维护人员决定\n"
+"它需要依赖于其他仓库。这些仓库\n"
+"通常是必需的,如果需要从主 Copr 仓库\n"
+"(它们会提供运行时依赖软件包)安装 RPM。\n"
+"\n"
+"请注意上面关于质量和程序错误报告的备注\n"
+"也适用于这里,Fedora Project 不控制内容。\n"
+"请检查列表:\n"
+"\n"
+"{0}\n"
+"\n"
+"这些仓库已被自动启用。"
 
-#: plugins/copr.py:549
+#: plugins/copr.py:553
 msgid "Do you want to keep them enabled?"
-msgstr ""
+msgstr "您需要保持它们被启用吗?"
 
-#: plugins/copr.py:582
+#: plugins/copr.py:586
 #, python-brace-format
 msgid "Failed to remove copr repo {0}/{1}/{2}"
-msgstr ""
+msgstr "删除 copr 仓库 {0}/{1}/{2} 失败"
 
-#: plugins/copr.py:593
+#: plugins/copr.py:597
 msgid "Failed to disable copr repo {}/{}"
 msgstr "无法禁用 Copr 软件仓库 {}/{}"
 
-#: plugins/copr.py:611 plugins/copr.py:648
+#: plugins/copr.py:615 plugins/copr.py:652
 msgid "Unknown response from server."
 msgstr "来自服务器的未知响应。"
 
-#: plugins/copr.py:633
+#: plugins/copr.py:637
 msgid "Interact with Playground repository."
 msgstr "与 Playground 仓库交互。"
 
-#: plugins/copr.py:639
-#, fuzzy
-#| msgid "Interact with Playground repository."
+#: plugins/copr.py:643
 msgid "Enabling a Playground repository."
-msgstr "与 Playground 仓库交互。"
+msgstr "启用 Playground 仓库。"
 
-#: plugins/copr.py:640
+#: plugins/copr.py:644
 msgid "Do you want to continue?"
-msgstr ""
+msgstr "您希望继续吗?"
 
-#: plugins/copr.py:683
+#: plugins/copr.py:687
 msgid "Playground repositories successfully enabled."
 msgstr "启用 Playground 仓库成功。"
 
-#: plugins/copr.py:686
+#: plugins/copr.py:690
 msgid "Playground repositories successfully disabled."
 msgstr "禁用 Playground 仓库成功。"
 
-#: plugins/copr.py:690
+#: plugins/copr.py:694
 msgid "Playground repositories successfully updated."
 msgstr "更新 Playground 仓库成功。"
 
@@ -489,6 +532,8 @@ msgid ""
 "Allow removing of install-only packages. Using this option may result in an "
 "attempt to remove the running kernel."
 msgstr ""
+"允许删除仅安装(install-only)的软件包。使用这个选项可能会导致尝试删除正在运行"
+"的内核。"
 
 #: plugins/debug.py:202
 msgid "name of dump file"
@@ -497,7 +542,7 @@ msgstr "转储文件名称"
 #: plugins/debug.py:273
 #, python-format
 msgid "Package %s is not available"
-msgstr "软件包 %s 不可用。"
+msgstr "软件包 %s 不可用"
 
 #: plugins/debug.py:283
 #, python-format
@@ -512,25 +557,25 @@ msgstr "安装调试信息软件包"
 #, python-format
 msgid ""
 "Could not find debuginfo package for the following available packages: %s"
-msgstr ""
+msgstr "无法为以下可用的软件包找到 debuginfo 软件包: %s"
 
 #: plugins/debuginfo-install.py:185
 #, python-format
 msgid ""
 "Could not find debugsource package for the following available packages: %s"
-msgstr ""
+msgstr "无法为以下可用的软件包找到 debugsource 软件包: %s"
 
 #: plugins/debuginfo-install.py:190
 #, python-format
 msgid ""
 "Could not find debuginfo package for the following installed packages: %s"
-msgstr ""
+msgstr "无法为以下安装的软件包找到 debuginfo 软件包: %s"
 
 #: plugins/debuginfo-install.py:195
 #, python-format
 msgid ""
 "Could not find debugsource package for the following installed packages: %s"
-msgstr ""
+msgstr "无法为以下安装的软件包找到 debugsource 软件包: %s"
 
 #: plugins/debuginfo-install.py:199
 msgid "Unable to find a match"
@@ -554,13 +599,13 @@ msgstr "取而代之下载 -debuginfo 软件包"
 
 #: plugins/download.py:57
 msgid "download the -debugsource package instead"
-msgstr ""
+msgstr "取而代之下载 -debugsource 软件包"
 
 #: plugins/download.py:60
 msgid "limit  the  query to packages of given architectures."
-msgstr "限定查询指定架构的软件包"
+msgstr "限定查询指定架构的软件包。"
 
-#: plugins/download.py:62
+#: plugins/download.py:62 plugins/modulesync.py:51
 msgid "resolve and download needed dependencies"
 msgstr "解析并下载所需的依赖关系"
 
@@ -568,7 +613,7 @@ msgstr "解析并下载所需的依赖关系"
 msgid ""
 "when running with --resolve, download all dependencies (do not exclude "
 "already installed ones)"
-msgstr ""
+msgstr "当运行时使用 --resolve,下载所有依赖软件包 (不排除已安装的软件包)"
 
 #: plugins/download.py:67
 msgid ""
@@ -579,7 +624,7 @@ msgstr "打印 rpm 可被下载的 url 列表而不是直接下载"
 msgid "when running with --url, limit to specific protocols"
 msgstr "当执行时带有 --url 参数,则限制使用指定协议"
 
-#: plugins/download.py:121 plugins/reposync.py:293
+#: plugins/download.py:121 plugins/reposync.py:314
 #, python-format
 msgid "Failed to get mirror for package: %s"
 msgstr "获取针对以下软件包的镜像失败:%s"
@@ -602,13 +647,127 @@ msgstr "未找到所定义 %s 的源代码软件包 SRPM"
 msgid "No package %s available."
 msgstr "没有可用的软件包 %s。"
 
+#: plugins/groups_manager.py:49
+msgid "Invalid group id"
+msgstr "无效的组 ID"
+
+#: plugins/groups_manager.py:58
+msgid "Invalid translated data, should be in form 'lang:text'"
+msgstr "无效的翻译数据,格式应该是 'lang:text'"
+
+#: plugins/groups_manager.py:61
+msgid "Invalid/empty language for translated data"
+msgstr "翻译数据的无效/空语言"
+
+#: plugins/groups_manager.py:71
+msgid "Can't generate group id from '{}'. Please specify group id using --id."
+msgstr "无法从 '{}' 生成组 ID。请使用 --id 指定组 ID。"
+
+#: plugins/groups_manager.py:79
+msgid "create and edit groups metadata file"
+msgstr "创建并编辑组元数据文件"
+
+#: plugins/groups_manager.py:90
+msgid "load groups metadata from file"
+msgstr "从文件加载组元数据"
+
+#: plugins/groups_manager.py:93
+msgid "save groups metadata to file"
+msgstr "将组元数据保存到文件中"
+
+#: plugins/groups_manager.py:95
+msgid "load and save groups metadata to file"
+msgstr "将组元数据加载并保存到文件中"
+
+#: plugins/groups_manager.py:97
+msgid "print the result metadata to stdout"
+msgstr "将结果元数据输出到标准输出"
+
+#: plugins/groups_manager.py:100
+msgid "group id"
+msgstr "组 id"
+
+#: plugins/groups_manager.py:101
+msgid "group name"
+msgstr "组名称"
+
+#: plugins/groups_manager.py:103
+msgid "group description"
+msgstr "组描述"
+
+#: plugins/groups_manager.py:105
+msgid "group display order"
+msgstr "组显示顺序"
+
+#: plugins/groups_manager.py:108
+msgid "translated name for the group"
+msgstr "组的翻译名称"
+
+#: plugins/groups_manager.py:111
+msgid "translated description for the group"
+msgstr "组的翻译描述"
+
+#: plugins/groups_manager.py:115
+msgid "make the group user visible (default)"
+msgstr "使组用户可见(默认)"
+
+#: plugins/groups_manager.py:118
+msgid "make the group user invisible"
+msgstr "使组用户不可见"
+
+#: plugins/groups_manager.py:123
+msgid "add packages to the mandatory section"
+msgstr "在必填部分添加软件包"
+
+#: plugins/groups_manager.py:125
+msgid "add packages to the optional section"
+msgstr "在可选部分添加软件包"
+
+#: plugins/groups_manager.py:127
+msgid "remove packages from the group instead of adding them"
+msgstr "从组群中删除软件包而不是添加它们"
+
+#: plugins/groups_manager.py:129
+msgid "include also direct dependencies for packages"
+msgstr "同时包括软件包的直接依赖软件包"
+
+#: plugins/groups_manager.py:132
+msgid "package specification"
+msgstr "软件包规格"
+
+#: plugins/groups_manager.py:156
+msgid "Can't edit group without specifying it (use --id or --name)"
+msgstr "没有指定组(使用 --id 或 --name)就无法编辑组"
+
+#: plugins/groups_manager.py:190
+msgid "Can't load file \"{}\": {}"
+msgstr "无法加载文件 \"{}\": {}"
+
+#: plugins/groups_manager.py:206
+msgid "Can't save file \"{}\": {}"
+msgstr "无法保存文件 \"{}\": {}"
+
+#: plugins/groups_manager.py:261
+msgid "No match for argument: {}"
+msgstr "未找到匹配的参数: {}"
+
+#: plugins/groups_manager.py:298
+msgid "Can't remove packages from non-existent group"
+msgstr "无法从不存在的组中删除软件包"
+
+#: plugins/groups_manager.py:307
+msgid ""
+"Group id '{}' generated from '{}' is duplicit. Please specify group id using "
+"--id."
+msgstr "从 '{}' 生成的组 id '{}' 是显式的。请使用 --id 指定组 ID。"
+
 #: plugins/leaves.py:32
 msgid "List installed packages not required by any other package"
 msgstr "列出已安装但不被任何其他软件包所需要的软件包"
 
 #: plugins/local.py:122
 msgid "Unable to create a directory '{}' due to '{}'"
-msgstr "无法创建目录  '{}' 由于 '{}'"
+msgstr "无法创建目录 '{}' 由于 '{}'"
 
 #: plugins/local.py:126
 msgid "'{}' is not a directory"
@@ -634,67 +793,127 @@ msgstr "迁移 yum 的历史、分组以及 yumdb 数据至 dnf"
 msgid "Migrating history data..."
 msgstr "正在迁移历史数据…"
 
-#: plugins/needs_restarting.py:65
+#: plugins/modulesync.py:37
+msgid ""
+"Download packages from modules and/or create a repository with modular data"
+msgstr "从模块下载软件包和/或创建带有模块化数据的存储库"
+
+#: plugins/modulesync.py:44
+msgid "MODULE"
+msgstr "模块"
+
+#: plugins/modulesync.py:45
+msgid "modules to download"
+msgstr "要下载的模块"
+
+#: plugins/modulesync.py:47
+msgid "enable repositories with source packages"
+msgstr "启用带有源软件包的软件仓库"
+
+#: plugins/modulesync.py:49
+msgid "enable repositories with debug-info and debug-source packages"
+msgstr "启用带有 debug-info 和 debug-source 软件包的软件仓库"
+
+#: plugins/modulesync.py:53
+msgid "download only packages from newest modules"
+msgstr "只从最新的模块中下载软件包"
+
+#: plugins/modulesync.py:85
+msgid "Unable to find a match for argument: '{}'"
+msgid_plural "Unable to find a match for arguments: '{}'"
+msgstr[0] "找不到与参数:'{}'相匹配的项"
+
+#: plugins/modulesync.py:107
+msgid ""
+"Creation of repository failed with return code {}. All downloaded content "
+"was kept on the system"
+msgstr "创建存储库会失败,并显示返回码 {}。所有下载的内容都保存在系统上"
+
+#: plugins/modulesync.py:144
+#, python-brace-format
+msgid "No match for artifact '{0}' from module '{1}'"
+msgstr "没有与模块 '{1}' 的工件 '{0}' 相匹配的项"
+
+#: plugins/modulesync.py:162
+#, python-brace-format
+msgid "No match for package name '{0}' in profile {1} from module {2}"
+msgstr "没有与模块 {2} 中配置文件 {1} 的软件包名称 '{0}' 相匹配的项"
+
+#: plugins/modulesync.py:166
+msgid "No mach for argument '{}'"
+msgstr "没有与参数 '{}' 相匹配的项"
+
+#. TODO(jmracek) Shell we end with an error or with RC 1?
+#: plugins/modulesync.py:198
+msgid "Unable to satisfy require {}"
+msgstr "无法满足要求 {}"
+
+#: plugins/needs_restarting.py:66
 #, python-brace-format
 msgid ""
 "No installed package found for package name \"{pkg}\" specified in needs-"
 "restarting file \"{file}\"."
-msgstr ""
+msgstr "未找到在需要重新启动文件 \"{file}\" 中指定的软件包名为 \"{pkg}\" "
+"的已安装的软件包。"
 
-#: plugins/needs_restarting.py:199
+#: plugins/needs_restarting.py:220
 msgid "determine updated binaries that need restarting"
 msgstr "判断所升级的二进制文件是否需要重启"
 
-#: plugins/needs_restarting.py:204
+#: plugins/needs_restarting.py:225
 msgid "only consider this user's processes"
 msgstr "仅考虑当前用户的进程"
 
-#: plugins/needs_restarting.py:206
+#: plugins/needs_restarting.py:227
 msgid ""
 "only report whether a reboot is required (exit code 1) or not (exit code 0)"
-msgstr ""
+msgstr "只报告需要重新引导 (退出代码为 1) 或不需要重新引导 (退出代码为 0)"
 
 #: plugins/needs_restarting.py:230
+msgid "only report affected systemd services"
+msgstr "只报告受影响的 systemd 服务"
+
+#: plugins/needs_restarting.py:253
 msgid "Core libraries or services have been updated since boot-up:"
-msgstr ""
+msgstr "在引导后 Core 库或服务已被更新 :"
 
-#: plugins/needs_restarting.py:235
+#: plugins/needs_restarting.py:258
 msgid "Reboot is required to fully utilize these updates."
-msgstr ""
+msgstr "需要重新启动后才可以使这些更新完全生效。"
 
-#: plugins/needs_restarting.py:236
+#: plugins/needs_restarting.py:259
 msgid "More information:"
-msgstr ""
+msgstr "更多信息 :"
 
-#: plugins/needs_restarting.py:240
+#: plugins/needs_restarting.py:263
 msgid "No core libraries or services have been updated since boot-up."
-msgstr ""
+msgstr "在引导后没有 core 库或服务被更新。"
 
-#: plugins/needs_restarting.py:242
+#: plugins/needs_restarting.py:265
 msgid "Reboot should not be necessary."
-msgstr ""
+msgstr "不需要重新启动。"
 
 #: plugins/post-transaction-actions.py:71
 #, python-format
 msgid "Bad Action Line \"%s\": %s"
-msgstr ""
+msgstr "错误的操作行“ %s”: %s"
 
 #. unsupported state, skip it
 #: plugins/post-transaction-actions.py:130
 #, python-format
 msgid "Bad Transaction State: %s"
-msgstr ""
+msgstr "错误的事务状态: %s"
 
-#: plugins/post-transaction-actions.py:153
-#: plugins/post-transaction-actions.py:155
+#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:159
 #, python-format
 msgid "post-transaction-actions: %s"
-msgstr ""
+msgstr "事物后的操作: %s"
 
-#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:161
 #, python-format
 msgid "post-transaction-actions: Bad Command \"%s\": %s"
-msgstr ""
+msgstr "事物后的操作 : 无效的命令 \"%s\": %s"
 
 #: plugins/repoclosure.py:42
 msgid "Display a list of unresolved dependencies for repositories"
@@ -722,129 +941,136 @@ msgstr "仅为该软件包检查依赖闭合性"
 
 #: plugins/repodiff.py:45
 msgid "List differences between two sets of repositories"
-msgstr ""
+msgstr "列出两组仓库中的不同"
 
 #: plugins/repodiff.py:58
 msgid "Specify old repository, can be used multiple times"
-msgstr ""
+msgstr "指定旧的仓库,可以使用多次"
 
 #: plugins/repodiff.py:60
 msgid "Specify new repository, can be used multiple times"
-msgstr ""
+msgstr "指定新的仓库,可以使用多次"
 
 #: plugins/repodiff.py:63
 msgid ""
 "Specify architectures to compare, can be used multiple times. By default, "
 "only source rpms are compared."
-msgstr ""
+msgstr "指定要比较的架构,可以使用多次。默认情况下,只比较源 rpms。"
 
 #: plugins/repodiff.py:67
 msgid "Output additional data about the size of the changes."
-msgstr ""
+msgstr "输出关于改变大小的额外数据。"
 
 #: plugins/repodiff.py:69
 msgid ""
-"Compare packages also by arch. By default packages are compared just by "
-"name."
-msgstr ""
+"Compare packages also by arch. By default packages are compared just by name."
+msgstr "同时按架构比较软件包。在默认情况下只按名称比较软件包。"
 
 #: plugins/repodiff.py:72
 msgid "Output a simple one line message for modified packages."
-msgstr ""
+msgstr "为修改的软件包输出一个简单的单行信息。"
 
 #: plugins/repodiff.py:74
 msgid ""
 "Split the data for modified packages between upgraded and downgraded "
 "packages."
-msgstr ""
+msgstr "在升级和降级的软件包间为修改的软件包分隔数据。"
 
 #: plugins/repodiff.py:86
 msgid "Both old and new repositories must be set."
-msgstr ""
+msgstr "新仓库和旧仓库都需要被设置。"
 
 #: plugins/repodiff.py:178
 msgid "Size change: {} bytes"
-msgstr ""
+msgstr "大小的变化 : {} 字节"
 
 #: plugins/repodiff.py:184
 msgid "Added package  : {}"
-msgstr ""
+msgstr "添加的软件包  : {}"
 
 #: plugins/repodiff.py:187
 msgid "Removed package: {}"
-msgstr ""
+msgstr "删除的软件包 : {}"
 
 #: plugins/repodiff.py:190
 msgid "Obsoleted by   : {}"
-msgstr ""
+msgstr "被下述软件包弃用:{}"
 
 #: plugins/repodiff.py:195
 msgid ""
 "\n"
 "Upgraded packages"
 msgstr ""
+"\n"
+"升级的软件包"
 
 #: plugins/repodiff.py:200
 msgid ""
 "\n"
 "Downgraded packages"
 msgstr ""
+"\n"
+"降级的软件包"
 
 #: plugins/repodiff.py:207
 msgid ""
 "\n"
 "Modified packages"
 msgstr ""
+"\n"
+"修改的软件包"
 
 #: plugins/repodiff.py:212
 msgid ""
 "\n"
 "Summary"
 msgstr ""
+"\n"
+"概述"
 
 #: plugins/repodiff.py:213
 msgid "Added packages: {}"
-msgstr ""
+msgstr "添加的软件包 : {}"
 
 #: plugins/repodiff.py:214
 msgid "Removed packages: {}"
-msgstr ""
+msgstr "删除的软件包 : {}"
 
 #: plugins/repodiff.py:216
 msgid "Upgraded packages: {}"
-msgstr ""
+msgstr "升级的软件包 : {}"
 
 #: plugins/repodiff.py:217
 msgid "Downgraded packages: {}"
-msgstr ""
+msgstr "降级的软件包 : {}"
 
 #: plugins/repodiff.py:219
 msgid "Modified packages: {}"
-msgstr ""
+msgstr "修改的软件包 : {}"
 
 #: plugins/repodiff.py:222
 msgid "Size of added packages: {}"
-msgstr ""
+msgstr "添加的软件包的大小 : {}"
 
 #: plugins/repodiff.py:223
 msgid "Size of removed packages: {}"
-msgstr ""
+msgstr "删除的软件包的大小 : {}"
 
 #: plugins/repodiff.py:225
 msgid "Size of modified packages: {}"
-msgstr ""
+msgstr "修改的软件包的大小 : {}"
 
 #: plugins/repodiff.py:228
 msgid "Size of upgraded packages: {}"
-msgstr ""
+msgstr "升级的软件包的大小 : {}"
 
 #: plugins/repodiff.py:230
 msgid "Size of downgraded packages: {}"
-msgstr ""
+msgstr "降级的软件包的大小 : {}"
 
 #: plugins/repodiff.py:232
 msgid "Size change: {}"
-msgstr ""
+msgstr "大小改变 : {}"
 
 #: plugins/repograph.py:50
 msgid "Output a full package dependency graph in dot format"
@@ -863,112 +1089,124 @@ msgstr "管理 RPM 软件包目录"
 msgid "Pass either --old or --new, not both!"
 msgstr "传入 --old 或者 --new,不可同时传入!"
 
-#: plugins/repomanage.py:71
+#: plugins/repomanage.py:89
 msgid "No files to process"
 msgstr "没有可处理的文件"
 
-#: plugins/repomanage.py:93
+#: plugins/repomanage.py:96
 msgid "Could not open {}"
 msgstr "无法打开 {}"
 
-#: plugins/repomanage.py:177
+#: plugins/repomanage.py:180
 msgid "Print the older packages"
 msgstr "打印较旧的软件包"
 
-#: plugins/repomanage.py:179
+#: plugins/repomanage.py:182
 msgid "Print the newest packages"
 msgstr "打印最新的软件包"
 
-#: plugins/repomanage.py:181
+#: plugins/repomanage.py:184
 msgid "Space separated output, not newline"
 msgstr "用空格分割输出,而不是新行"
 
-#: plugins/repomanage.py:183
+#: plugins/repomanage.py:186
 msgid "Newest N packages to keep - defaults to 1"
 msgstr "要保留的最新的 N 个软件包 - 默认值为 1"
 
-#: plugins/repomanage.py:186
+#: plugins/repomanage.py:189
 msgid "Path to directory"
 msgstr "指向目录的路径"
 
-#: plugins/reposync.py:54
+#: plugins/reposync.py:55
 msgid "download all packages from remote repo"
 msgstr "下载远程仓库中的全部软件包"
 
-#: plugins/reposync.py:63
+#: plugins/reposync.py:64
 msgid "download only packages for this ARCH"
 msgstr "只下载这个 ARCH 的软件包"
 
-#: plugins/reposync.py:65
+#: plugins/reposync.py:66
 msgid "delete local packages no longer present in repository"
 msgstr "删除已不在仓库中的本地软件包"
 
-#: plugins/reposync.py:67
-msgid "also download and uncompress comps.xml"
-msgstr ""
-
-#: plugins/reposync.py:69
+#: plugins/reposync.py:68
 msgid "download all the metadata."
-msgstr ""
+msgstr "下载所有元数据。"
 
-#: plugins/reposync.py:71
-msgid "download only newest packages per-repo"
-msgstr "只下载最新的软件包 per-repo"
+#: plugins/reposync.py:70
+msgid "Remove packages that fail GPG signature checking after downloading"
+msgstr "下载后删除无法通过 GPG 签名检查的软件包"
 
 #: plugins/reposync.py:73
-msgid "where to store downloaded repositories"
-msgstr ""
+msgid "also download and uncompress comps.xml"
+msgstr "同时下载并解压 comps.xml"
 
 #: plugins/reposync.py:75
-msgid "Don't add the reponame to the download path."
-msgstr ""
-
-#: plugins/reposync.py:77
 msgid ""
-"where to store downloaded repository metadata. Defaults to the value of "
-"--download-path."
-msgstr ""
+"where to store downloaded repository metadata. Defaults to the value of --"
+"download-path."
+msgstr "存储下载的仓库元数据的位置。默认为 --download-path 的值。"
+
+#: plugins/reposync.py:78
+msgid "download only newest packages per-repo"
+msgstr "只下载最新的软件包 per-repo"
 
 #: plugins/reposync.py:80
-msgid "operate on source packages"
-msgstr "在源软件包中操作"
+msgid "Don't add the reponame to the download path."
+msgstr "不要在下载路径中添加仓库名(reponame)。"
 
 #: plugins/reposync.py:82
+msgid "where to store downloaded repositories"
+msgstr "在何处存储已下载的仓库"
+
+#: plugins/reposync.py:84
 msgid "try to set local timestamps of local files by the one on the server"
-msgstr ""
+msgstr "根据服务器上的文件设置本地文件的本地时间戳"
+
+#: plugins/reposync.py:87
+msgid "download only source packages"
+msgstr "只下载源软件包"
 
-#: plugins/reposync.py:85
+#: plugins/reposync.py:89
 msgid "Just list urls of what would be downloaded, don't download"
-msgstr ""
+msgstr "只列出要下载内容的 url,不实际下载"
 
-#: plugins/reposync.py:109
+#: plugins/reposync.py:113
 msgid "Can't use --norepopath with multiple repositories"
-msgstr ""
+msgstr "不能将 --norepopath 与多个仓库一起使用"
 
-#: plugins/reposync.py:127
+#: plugins/reposync.py:132
 #, python-format
 msgid "Failed to get mirror for metadata: %s"
-msgstr ""
+msgstr "获取元数据镜像失败:%s"
 
-#: plugins/reposync.py:144
+#: plugins/reposync.py:149
 msgid "Failed to get mirror for the group file."
-msgstr ""
+msgstr "获取组文件镜像失败。"
+
+#: plugins/reposync.py:168
+msgid "Removing {}: {}"
+msgstr "正在删除 {}: {}"
 
 #: plugins/reposync.py:175
+msgid "GPG signature check failed."
+msgstr "GPG 签名检查失败。"
+
+#: plugins/reposync.py:196
 msgid "Download target '{}' is outside of download path '{}'."
-msgstr ""
+msgstr "下载的目标 '{}' 在下载路径 '{}' 以外。"
 
-#: plugins/reposync.py:190
+#: plugins/reposync.py:211
 #, python-format
 msgid "[DELETED] %s"
 msgstr "[DELETED] %s"
 
-#: plugins/reposync.py:192
+#: plugins/reposync.py:213
 #, python-format
 msgid "failed to delete file %s"
 msgstr "无法删除文件 %s"
 
-#: plugins/reposync.py:201
+#: plugins/reposync.py:222
 #, python-format
 msgid "comps.xml for repository %s saved"
 msgstr "仓库 %s 的 comps.xml 已保存"
@@ -977,66 +1215,71 @@ msgstr "仓库 %s 的 comps.xml 已保存"
 msgid "New leaves:"
 msgstr "新增保留项:"
 
-#: plugins/versionlock.py:32
+#: plugins/versionlock.py:33
 #, python-format
 msgid "Unable to read version lock configuration: %s"
 msgstr "无法读取版本锁配置: %s"
 
-#: plugins/versionlock.py:33
+#: plugins/versionlock.py:34
 msgid "Locklist not set"
 msgstr "锁列表未设置"
 
-#: plugins/versionlock.py:34
+#: plugins/versionlock.py:35
 msgid "Adding versionlock on:"
 msgstr "正在添加版本锁:"
 
-#: plugins/versionlock.py:35
+#: plugins/versionlock.py:36
 msgid "Adding exclude on:"
 msgstr "正在添加排除:"
 
-#: plugins/versionlock.py:36
+#: plugins/versionlock.py:37
 msgid "Package already locked in equivalent form:"
-msgstr ""
+msgstr "软件包已使用等同的格式锁定:"
 
-#: plugins/versionlock.py:37
+#: plugins/versionlock.py:38
 msgid "Package {} is already locked"
-msgstr ""
+msgstr "软件包 {} 已被锁定"
 
-#: plugins/versionlock.py:38
+#: plugins/versionlock.py:39
 msgid "Package {} is already excluded"
-msgstr ""
+msgstr "软件包 {} 已被排除"
 
-#: plugins/versionlock.py:39
+#: plugins/versionlock.py:40
 msgid "Deleting versionlock for:"
 msgstr "正在删除版本锁:"
 
-#: plugins/versionlock.py:40
+#: plugins/versionlock.py:41
 msgid "No package found for:"
 msgstr "未找到软件包:"
 
-#: plugins/versionlock.py:41
+#: plugins/versionlock.py:42
 msgid "Excludes from versionlock plugin were not applied"
 msgstr "从 versionlock 插件中排除的没有被应用"
 
-#: plugins/versionlock.py:42
+#: plugins/versionlock.py:43
 msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
 msgstr "Versionlock 插件: 文件 \"{}\" 中的锁定数量规则被应用:{}"
 
-#: plugins/versionlock.py:43
-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
+#: plugins/versionlock.py:44
+msgid ""
+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
 msgstr "Versionlock 插件: 文件 \"{}\" 中的排除规则数量被应用:{}"
 
-#: plugins/versionlock.py:44
+#: plugins/versionlock.py:45
 msgid "Versionlock plugin: could not parse pattern:"
 msgstr "Versionlock 插件:不能解析特征:"
 
-#: plugins/versionlock.py:130
+#: plugins/versionlock.py:134
 msgid "control package version locks"
 msgstr "控制软件包版本锁"
 
-#: plugins/versionlock.py:136
+#: plugins/versionlock.py:140
 msgid "Use package specifications as they are, do not try to parse them"
-msgstr ""
+msgstr "按原样使用程序包规格,请勿尝试解析它们"
+
+#: plugins/versionlock.py:160
+msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead."
+msgstr "子命令 '{}' 已被弃用。改为使用 'exclude' 子命令。"
 
 #~ msgid ""
 #~ "\n"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 755d9e6..f7ea95b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -10,10 +10,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-05 09:18-0400\n"
+"POT-Creation-Date: 2022-02-28 11:53+0100\n"
 "PO-Revision-Date: 2020-08-28 21:29+0000\n"
 "Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
-"Language-Team: Chinese (Traditional) <https://translate.fedoraproject.org/projects/dnf/dnf-plugins-core-l10n-master/zh_TW/>\n"
+"Language-Team: Chinese (Traditional) <https://translate.fedoraproject.org/"
+"projects/dnf/dnf-plugins-core-l10n-master/zh_TW/>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -59,8 +60,7 @@ msgid "Some packages could not be found."
 msgstr "有些軟體包遍尋不著。"
 
 #. No provides, no files
-#. Richdeps can have no matches but it could be correct (solver must decide
-#. later)
+#. Richdeps can have no matches but it could be correct (solver must decide later)
 #: plugins/builddep.py:173
 #, python-format
 msgid "No matching package to install: '%s'"
@@ -141,92 +141,92 @@ msgstr "列出所有變更記錄"
 msgid "Changelogs for {}"
 msgstr "{} 的變更記錄"
 
-#: plugins/config_manager.py:37
+#: plugins/config_manager.py:38
 #, python-brace-format
 msgid "manage {prog} configuration options and repositories"
 msgstr "管理 {prog} 的設定選項及軟體庫"
 
-#: plugins/config_manager.py:44
+#: plugins/config_manager.py:45
 msgid "repo to modify"
 msgstr "要修改的軟體庫"
 
-#: plugins/config_manager.py:47
+#: plugins/config_manager.py:48
 msgid "save the current options (useful with --setopt)"
 msgstr "儲存目前的選項(用於 --setopt)"
 
-#: plugins/config_manager.py:50
+#: plugins/config_manager.py:51
 msgid "add (and enable) the repo from the specified file or url"
 msgstr "從指定的檔案或 URL 新增(並啟用)此軟體庫"
 
-#: plugins/config_manager.py:53
+#: plugins/config_manager.py:54
 msgid "print current configuration values to stdout"
 msgstr "輸出目前的設定檔值至標準輸出"
 
-#: plugins/config_manager.py:56
+#: plugins/config_manager.py:57
 msgid "print variable values to stdout"
 msgstr "輸出變數值至標準輸出"
 
-#: plugins/config_manager.py:60
+#: plugins/config_manager.py:61
 msgid "enable repos (automatically saves)"
 msgstr "啟用軟體庫(自動儲存)"
 
-#: plugins/config_manager.py:63
+#: plugins/config_manager.py:64
 msgid "disable repos (automatically saves)"
 msgstr "停用軟體庫(自動儲存)"
 
-#: plugins/config_manager.py:77
+#: plugins/config_manager.py:78
 msgid "one of the following arguments is required: {}"
 msgstr "需要以下任一引數:{}"
 
-#: plugins/config_manager.py:86
+#: plugins/config_manager.py:87
 msgid ""
 "Warning: --enablerepo/--disablerepo arguments have no meaningwith config "
 "manager. Use --set-enabled/--set-disabled instead."
 msgstr ""
-"警告:--enablerepo/--disablerepo 引數在組態管理員下沒有意義。請改用 --set-enabled/--set-"
-"disabled。"
+"警告:--enablerepo/--disablerepo 引數在組態管理員下沒有意義。請改用 --set-"
+"enabled/--set-disabled。"
 
-#: plugins/config_manager.py:131
+#: plugins/config_manager.py:132
 #, python-format
 msgid "No matching repo to modify: %s."
 msgstr "沒有符合要修改的軟體庫:%s。"
 
-#: plugins/config_manager.py:182
+#: plugins/config_manager.py:183
 #, python-format
 msgid "Adding repo from: %s"
 msgstr "從下述加入軟體庫:%s"
 
-#: plugins/config_manager.py:206
+#: plugins/config_manager.py:207
 msgid "Configuration of repo failed"
 msgid_plural "Configuration of repos failed"
 msgstr[0] "設定軟體庫失敗"
 
-#: plugins/config_manager.py:216
+#: plugins/config_manager.py:217
 #, python-format
 msgid "Could not save repo to repofile %s: %s"
 msgstr "無法儲存軟體庫至 repofile %s:%s"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "y"
 msgstr "y"
 
-#: plugins/copr.py:59
+#: plugins/copr.py:64
 msgid "yes"
 msgstr "yes"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "n"
 msgstr "n"
 
-#: plugins/copr.py:60
+#: plugins/copr.py:65
 msgid "no"
 msgstr "no"
 
-#: plugins/copr.py:79
+#: plugins/copr.py:84
 msgid "Interact with Copr repositories."
 msgstr "與 Copr 軟體庫互動。"
 
-#: plugins/copr.py:81
+#: plugins/copr.py:86
 msgid ""
 "\n"
 "  enable name/project [chroot]\n"
@@ -264,54 +264,67 @@ msgstr ""
 "  copr search tests\n"
 "    "
 
-#: plugins/copr.py:107
+#: plugins/copr.py:112
 msgid "List all installed Copr repositories (default)"
 msgstr "列出所有安裝的 Copr 軟體庫(預設值)"
 
-#: plugins/copr.py:109
+#: plugins/copr.py:114
 msgid "List enabled Copr repositories"
 msgstr "列出啟用的 Copr 軟體庫"
 
-#: plugins/copr.py:111
+#: plugins/copr.py:116
 msgid "List disabled Copr repositories"
 msgstr "列出停用的 Copr 軟體庫"
 
-#: plugins/copr.py:113
+#: plugins/copr.py:118
 msgid "List available Copr repositories by user NAME"
 msgstr "列出使用者 NAME 可用的 Copr 軟體庫"
 
-#: plugins/copr.py:115
+#: plugins/copr.py:120
 msgid "Specify an instance of Copr to work with"
 msgstr "指定要使用 Copr 的實體:"
 
-#: plugins/copr.py:149 plugins/copr.py:217 plugins/copr.py:237
+#: plugins/copr.py:154 plugins/copr.py:222 plugins/copr.py:249
 msgid "Error: "
 msgstr "錯誤: "
 
-#: plugins/copr.py:150
+#: plugins/copr.py:155
 msgid ""
-"specify Copr hub either with `--hub` or using "
-"`copr_hub/copr_username/copr_projectname` format"
+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/"
+"copr_projectname` format"
 msgstr ""
-"使用 `--hub` 或者用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr hub"
+"使用 `--hub` 或者用 `copr_hub/copr_username/copr_projectname` 格式指定 Copr "
+"hub"
 
-#: plugins/copr.py:153
+#: plugins/copr.py:158
 msgid "multiple hubs specified"
 msgstr "指定了多個 hub"
 
-#: plugins/copr.py:218 plugins/copr.py:222
+#: plugins/copr.py:223 plugins/copr.py:227
 msgid "exactly two additional parameters to copr command are required"
 msgstr "傳入 copr 命令的選用參數必須剛好兩個"
 
-#: plugins/copr.py:238
+#: plugins/copr.py:232
+#, fuzzy
+#| msgid "No match for argument: %s"
+msgid "Too many arguments."
+msgstr "引數不符:%s"
+
+#: plugins/copr.py:235
+msgid ""
+"Bad format of optional chroot. The format is distribution-version-"
+"architecture."
+msgstr ""
+
+#: plugins/copr.py:250
 msgid "use format `copr_username/copr_projectname` to reference copr project"
 msgstr "使用 `copr_username/copr_projectname` 格式來參照 Copr 專案"
 
-#: plugins/copr.py:240
+#: plugins/copr.py:252
 msgid "bad copr project format"
 msgstr "Copr 專案格式無效"
 
-#: plugins/copr.py:254
+#: plugins/copr.py:266
 msgid ""
 "\n"
 "Enabling a Copr repository. Please note that this repository is not part\n"
@@ -319,7 +332,8 @@ msgid ""
 "\n"
 "The Fedora Project does not exercise any power over the contents of\n"
 "this repository beyond the rules outlined in the Copr FAQ at\n"
-"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,\n"
+"<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-"
+"in-copr>,\n"
 "and packages are not held to any quality or security level.\n"
 "\n"
 "Please do not file bug reports about these packages in Fedora\n"
@@ -330,77 +344,80 @@ msgstr ""
 "不是主散布版的一部分,並且品質不定。\n"
 "\n"
 "Fedora Project 不會對這個軟體庫的內容行使任何超出 Copr 常見問題\n"
-"(<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>)\n"
+"(<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-"
+"build-in-copr>)\n"
 "列出規則之外的權力,且軟體包並不保有任何的品質與安全性保證。\n"
 "\n"
 "請不要將這些軟體包的漏洞回報至 Fedora Bugzilla。\n"
 "假如碰到問題,請聯絡此軟體庫的擁有者。\n"
 
-#: plugins/copr.py:271
+#: plugins/copr.py:283
 msgid "Repository successfully enabled."
 msgstr "軟體庫成功啟用。"
 
-#: plugins/copr.py:276
+#: plugins/copr.py:288
 msgid "Repository successfully disabled."
 msgstr "軟體庫成功停用。"
 
-#: plugins/copr.py:280
+#: plugins/copr.py:292
 msgid "Repository successfully removed."
 msgstr "軟體庫成功移除。"
 
-#: plugins/copr.py:284 plugins/copr.py:693
+#: plugins/copr.py:296 plugins/copr.py:697
 msgid "Unknown subcommand {}."
 msgstr "{} 子命令未知。"
 
-#: plugins/copr.py:341
+#: plugins/copr.py:353
 msgid ""
-"* These coprs have repo file with an old format that contains no information"
-" about Copr hub - the default one was assumed. Re-enable the project to fix "
+"* These coprs have repo file with an old format that contains no information "
+"about Copr hub - the default one was assumed. Re-enable the project to fix "
 "this."
-msgstr "* 這些 Copr 包含可能沒有 Copr hub 資訊的舊格式 repo 檔案 — 已假設為預設 hub。請重新啟用專案以修正。"
+msgstr ""
+"* 這些 Copr 包含可能沒有 Copr hub 資訊的舊格式 repo 檔案 — 已假設為預設 hub。"
+"請重新啟用專案以修正。"
 
-#: plugins/copr.py:353
+#: plugins/copr.py:366
 msgid "Can't parse repositories for username '{}'."
 msgstr "無法解析「{}」使用者名稱的軟體庫。"
 
-#: plugins/copr.py:356
+#: plugins/copr.py:369
 msgid "List of {} coprs"
 msgstr "{} Copr 清單"
 
-#: plugins/copr.py:364
+#: plugins/copr.py:374
 msgid "No description given"
 msgstr "沒有提供描述"
 
-#: plugins/copr.py:376
+#: plugins/copr.py:386
 msgid "Can't parse search for '{}'."
 msgstr "無法解析「{}」搜尋。"
 
-#: plugins/copr.py:379
+#: plugins/copr.py:389
 msgid "Matched: {}"
 msgstr "符合項目:{}"
 
-#: plugins/copr.py:387
+#: plugins/copr.py:394
 msgid "No description given."
 msgstr "沒有提供描述。"
 
-#: plugins/copr.py:410
+#: plugins/copr.py:416
 msgid "Safe and good answer. Exiting."
 msgstr "安全且更棒的回應。結束。"
 
-#: plugins/copr.py:417
+#: plugins/copr.py:423
 msgid "This command has to be run under the root user."
 msgstr "此命令必須在 root 使用者下執行"
 
-#: plugins/copr.py:481
+#: plugins/copr.py:485
 msgid ""
 "This repository does not have any builds yet so you cannot enable it now."
 msgstr "這個軟體庫尚無任何組建,所以您尚無法啟用。"
 
-#: plugins/copr.py:484
+#: plugins/copr.py:488
 msgid "Such repository does not exist."
 msgstr "不存在此軟體庫。"
 
-#: plugins/copr.py:528
+#: plugins/copr.py:532
 #, python-brace-format
 msgid ""
 "Maintainer of the enabled Copr repository decided to make\n"
@@ -417,44 +434,44 @@ msgid ""
 "These repositories have been enabled automatically."
 msgstr ""
 
-#: plugins/copr.py:549
+#: plugins/copr.py:553
 msgid "Do you want to keep them enabled?"
 msgstr "是否保持啟用?"
 
-#: plugins/copr.py:582
+#: plugins/copr.py:586
 #, python-brace-format
 msgid "Failed to remove copr repo {0}/{1}/{2}"
 msgstr "無法移除 Copr 軟體庫 {0}/{1}/{2}"
 
-#: plugins/copr.py:593
+#: plugins/copr.py:597
 msgid "Failed to disable copr repo {}/{}"
 msgstr "無法停用 Copr 軟體庫 {}/{}"
 
-#: plugins/copr.py:611 plugins/copr.py:648
+#: plugins/copr.py:615 plugins/copr.py:652
 msgid "Unknown response from server."
 msgstr "未知的伺服器回應。"
 
-#: plugins/copr.py:633
+#: plugins/copr.py:637
 msgid "Interact with Playground repository."
 msgstr "與 Playground 軟體庫互動。"
 
-#: plugins/copr.py:639
+#: plugins/copr.py:643
 msgid "Enabling a Playground repository."
 msgstr "啟用 Playground 軟體庫。"
 
-#: plugins/copr.py:640
+#: plugins/copr.py:644
 msgid "Do you want to continue?"
 msgstr "是否繼續?"
 
-#: plugins/copr.py:683
+#: plugins/copr.py:687
 msgid "Playground repositories successfully enabled."
 msgstr "Playground 軟體庫成功啟用。"
 
-#: plugins/copr.py:686
+#: plugins/copr.py:690
 msgid "Playground repositories successfully disabled."
 msgstr "Playground 軟體庫成功停用。"
 
-#: plugins/copr.py:690
+#: plugins/copr.py:694
 msgid "Playground repositories successfully updated."
 msgstr "Playground 軟體庫成功更新。"
 
@@ -501,7 +518,9 @@ msgstr "限縮至指定類型"
 msgid ""
 "Allow removing of install-only packages. Using this option may result in an "
 "attempt to remove the running kernel."
-msgstr "允許移除僅安裝 (install-only) 軟體包。啟用這個選項可能會導致執行中內核被移除。"
+msgstr ""
+"允許移除僅安裝 (install-only) 軟體包。啟用這個選項可能會導致執行中內核被移"
+"除。"
 
 #: plugins/debug.py:202
 msgid "name of dump file"
@@ -573,7 +592,7 @@ msgstr "改下載 -debugsource 軟體包"
 msgid "limit  the  query to packages of given architectures."
 msgstr "將查詢限縮至指定架構的軟體包。"
 
-#: plugins/download.py:62
+#: plugins/download.py:62 plugins/modulesync.py:51
 msgid "resolve and download needed dependencies"
 msgstr "解析並下載需要的依賴關係"
 
@@ -592,7 +611,7 @@ msgstr "輸出可以下載 RPM 的 URL 清單而不下載"
 msgid "when running with --url, limit to specific protocols"
 msgstr "使用 --url 執行時,限縮至指定的通訊協定"
 
-#: plugins/download.py:121 plugins/reposync.py:293
+#: plugins/download.py:121 plugins/reposync.py:314
 #, python-format
 msgid "Failed to get mirror for package: %s"
 msgstr "無法取得軟體庫的鏡像站:%s"
@@ -615,6 +634,134 @@ msgstr "未指定 %s 的來源 RPM"
 msgid "No package %s available."
 msgstr "沒有 %s 軟體包可用。"
 
+#: plugins/groups_manager.py:49
+msgid "Invalid group id"
+msgstr ""
+
+#: plugins/groups_manager.py:58
+msgid "Invalid translated data, should be in form 'lang:text'"
+msgstr ""
+
+#: plugins/groups_manager.py:61
+msgid "Invalid/empty language for translated data"
+msgstr ""
+
+#: plugins/groups_manager.py:71
+msgid "Can't generate group id from '{}'. Please specify group id using --id."
+msgstr ""
+
+#: plugins/groups_manager.py:79
+msgid "create and edit groups metadata file"
+msgstr ""
+
+#: plugins/groups_manager.py:90
+msgid "load groups metadata from file"
+msgstr ""
+
+#: plugins/groups_manager.py:93
+msgid "save groups metadata to file"
+msgstr ""
+
+#: plugins/groups_manager.py:95
+msgid "load and save groups metadata to file"
+msgstr ""
+
+#: plugins/groups_manager.py:97
+#, fuzzy
+#| msgid "print variable values to stdout"
+msgid "print the result metadata to stdout"
+msgstr "輸出變數值至標準輸出"
+
+#: plugins/groups_manager.py:100
+msgid "group id"
+msgstr ""
+
+#: plugins/groups_manager.py:101
+msgid "group name"
+msgstr ""
+
+#: plugins/groups_manager.py:103
+#, fuzzy
+#| msgid "No description given"
+msgid "group description"
+msgstr "沒有提供描述"
+
+#: plugins/groups_manager.py:105
+msgid "group display order"
+msgstr ""
+
+#: plugins/groups_manager.py:108
+msgid "translated name for the group"
+msgstr ""
+
+#: plugins/groups_manager.py:111
+#, fuzzy
+#| msgid "Failed to get mirror for the group file."
+msgid "translated description for the group"
+msgstr "無法取得群組檔案的鏡像站。"
+
+#: plugins/groups_manager.py:115
+msgid "make the group user visible (default)"
+msgstr ""
+
+#: plugins/groups_manager.py:118
+msgid "make the group user invisible"
+msgstr ""
+
+#: plugins/groups_manager.py:123
+msgid "add packages to the mandatory section"
+msgstr ""
+
+#: plugins/groups_manager.py:125
+msgid "add packages to the optional section"
+msgstr ""
+
+#: plugins/groups_manager.py:127
+msgid "remove packages from the group instead of adding them"
+msgstr ""
+
+#: plugins/groups_manager.py:129
+#, fuzzy
+#| msgid "Display a list of unresolved dependencies for repositories"
+msgid "include also direct dependencies for packages"
+msgstr "顯示軟體庫中未回應的依賴關係列表"
+
+#: plugins/groups_manager.py:132
+msgid "package specification"
+msgstr ""
+
+#: plugins/groups_manager.py:156
+msgid "Can't edit group without specifying it (use --id or --name)"
+msgstr ""
+
+#: plugins/groups_manager.py:190
+#, fuzzy
+#| msgid "Can't write file '{}'"
+msgid "Can't load file \"{}\": {}"
+msgstr "無法寫入「{}」檔案"
+
+#: plugins/groups_manager.py:206
+#, fuzzy
+#| msgid "Can't write file '{}'"
+msgid "Can't save file \"{}\": {}"
+msgstr "無法寫入「{}」檔案"
+
+#: plugins/groups_manager.py:261
+#, fuzzy
+#| msgid "No match for argument: %s"
+msgid "No match for argument: {}"
+msgstr "引數不符:%s"
+
+#: plugins/groups_manager.py:298
+msgid "Can't remove packages from non-existent group"
+msgstr ""
+
+#: plugins/groups_manager.py:307
+msgid ""
+"Group id '{}' generated from '{}' is duplicit. Please specify group id using "
+"--id."
+msgstr ""
+
 #: plugins/leaves.py:32
 msgid "List installed packages not required by any other package"
 msgstr "列出其他軟體包已經不需要的安裝軟體包"
@@ -647,43 +794,112 @@ msgstr "遷移 yum 的歷史記錄、群組與 yumdb 資料至 dnf"
 msgid "Migrating history data..."
 msgstr "正在遷移歷史資料…"
 
-#: plugins/needs_restarting.py:65
+#: plugins/modulesync.py:37
+msgid ""
+"Download packages from modules and/or create a repository with modular data"
+msgstr ""
+
+#: plugins/modulesync.py:44
+msgid "MODULE"
+msgstr ""
+
+#: plugins/modulesync.py:45
+#, fuzzy
+#| msgid "packages to download"
+msgid "modules to download"
+msgstr "要下載的軟體包"
+
+#: plugins/modulesync.py:47
+#, fuzzy
+#| msgid "operate on source packages"
+msgid "enable repositories with source packages"
+msgstr "在來源軟體包上操作"
+
+#: plugins/modulesync.py:49
+msgid "enable repositories with debug-info and debug-source packages"
+msgstr ""
+
+#: plugins/modulesync.py:53
+#, fuzzy
+#| msgid "download all packages from remote repo"
+msgid "download only packages from newest modules"
+msgstr "從遠端軟體庫下載所有軟體包"
+
+#: plugins/modulesync.py:85
+#, fuzzy
+#| msgid "No match for argument: %s"
+msgid "Unable to find a match for argument: '{}'"
+msgid_plural "Unable to find a match for arguments: '{}'"
+msgstr[0] "引數不符:%s"
+
+#: plugins/modulesync.py:107
+msgid ""
+"Creation of repository failed with return code {}. All downloaded content "
+"was kept on the system"
+msgstr ""
+
+#: plugins/modulesync.py:144
+#, python-brace-format
+msgid "No match for artifact '{0}' from module '{1}'"
+msgstr ""
+
+#: plugins/modulesync.py:162
+#, python-brace-format
+msgid "No match for package name '{0}' in profile {1} from module {2}"
+msgstr ""
+
+#: plugins/modulesync.py:166
+#, fuzzy
+#| msgid "No match for argument: %s"
+msgid "No mach for argument '{}'"
+msgstr "引數不符:%s"
+
+#. TODO(jmracek) Shell we end with an error or with RC 1?
+#: plugins/modulesync.py:198
+msgid "Unable to satisfy require {}"
+msgstr ""
+
+#: plugins/needs_restarting.py:66
 #, fuzzy, python-brace-format
 msgid ""
 "No installed package found for package name \"{pkg}\" specified in needs-"
 "restarting file \"{file}\"."
 msgstr "未安裝 \"{file}\" 需要重新啟動檔案中指定的 \"{pkg}\" 軟體包。"
 
-#: plugins/needs_restarting.py:199
+#: plugins/needs_restarting.py:220
 msgid "determine updated binaries that need restarting"
 msgstr "決定需要重新啟動的已更新二進位檔"
 
-#: plugins/needs_restarting.py:204
+#: plugins/needs_restarting.py:225
 msgid "only consider this user's processes"
 msgstr "只考慮此位使用者的處理程序"
 
-#: plugins/needs_restarting.py:206
+#: plugins/needs_restarting.py:227
 msgid ""
 "only report whether a reboot is required (exit code 1) or not (exit code 0)"
 msgstr "只回報是(錯誤碼 1)否(錯誤碼 0)需要重新啟動"
 
 #: plugins/needs_restarting.py:230
+msgid "only report affected systemd services"
+msgstr ""
+
+#: plugins/needs_restarting.py:253
 msgid "Core libraries or services have been updated since boot-up:"
 msgstr "開機後更新過的核心函式庫或服務:"
 
-#: plugins/needs_restarting.py:235
+#: plugins/needs_restarting.py:258
 msgid "Reboot is required to fully utilize these updates."
 msgstr "需要重新啟動,才可以完全套用這些更新。"
 
-#: plugins/needs_restarting.py:236
+#: plugins/needs_restarting.py:259
 msgid "More information:"
 msgstr "更多資訊:"
 
-#: plugins/needs_restarting.py:240
+#: plugins/needs_restarting.py:263
 msgid "No core libraries or services have been updated since boot-up."
 msgstr "開機後沒有更新過的核心函式庫或服務。"
 
-#: plugins/needs_restarting.py:242
+#: plugins/needs_restarting.py:265
 msgid "Reboot should not be necessary."
 msgstr "應不需要重新啟動。"
 
@@ -698,13 +914,13 @@ msgstr "動作列「%s」格式錯誤:%s"
 msgid "Bad Transaction State: %s"
 msgstr "無效的處理事項狀態:%s"
 
-#: plugins/post-transaction-actions.py:153
-#: plugins/post-transaction-actions.py:155
+#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:159
 #, python-format
 msgid "post-transaction-actions: %s"
 msgstr "post-transaction-actions:%s"
 
-#: plugins/post-transaction-actions.py:157
+#: plugins/post-transaction-actions.py:161
 #, python-format
 msgid "post-transaction-actions: Bad Command \"%s\": %s"
 msgstr "post-transaction-actions:「%s」命令無效:%s"
@@ -757,8 +973,7 @@ msgstr "輸出跟變更大小有關的額外資料。"
 
 #: plugins/repodiff.py:69
 msgid ""
-"Compare packages also by arch. By default packages are compared just by "
-"name."
+"Compare packages also by arch. By default packages are compared just by name."
 msgstr "也依架構比較軟體包。預設情況下,軟體包只會依名稱比較。"
 
 #: plugins/repodiff.py:72
@@ -885,112 +1100,126 @@ msgstr "管理 rpm 軟體包目錄"
 msgid "Pass either --old or --new, not both!"
 msgstr "只能傳入 --old 或 --new 任一,而非兩者!"
 
-#: plugins/repomanage.py:71
+#: plugins/repomanage.py:89
 msgid "No files to process"
 msgstr "沒有要處理的檔案"
 
-#: plugins/repomanage.py:93
+#: plugins/repomanage.py:96
 msgid "Could not open {}"
 msgstr "無法開啟 {}"
 
-#: plugins/repomanage.py:177
+#: plugins/repomanage.py:180
 msgid "Print the older packages"
 msgstr "顯示較舊的軟體包"
 
-#: plugins/repomanage.py:179
+#: plugins/repomanage.py:182
 msgid "Print the newest packages"
 msgstr "顯示較新的軟體包"
 
-#: plugins/repomanage.py:181
+#: plugins/repomanage.py:184
 msgid "Space separated output, not newline"
 msgstr "以空白而非換行分割輸出"
 
-#: plugins/repomanage.py:183
+#: plugins/repomanage.py:186
 msgid "Newest N packages to keep - defaults to 1"
 msgstr "保留最新 N 個軟體包 — 預設值為 1"
 
-#: plugins/repomanage.py:186
+#: plugins/repomanage.py:189
 msgid "Path to directory"
 msgstr "目錄路徑"
 
-#: plugins/reposync.py:54
+#: plugins/reposync.py:55
 msgid "download all packages from remote repo"
 msgstr "從遠端軟體庫下載所有軟體包"
 
-#: plugins/reposync.py:63
+#: plugins/reposync.py:64
 msgid "download only packages for this ARCH"
 msgstr "只下載此 ARCH 的軟體包"
 
-#: plugins/reposync.py:65
+#: plugins/reposync.py:66
 msgid "delete local packages no longer present in repository"
 msgstr "刪除已不在軟體庫提供的本機軟體包"
 
-#: plugins/reposync.py:67
-msgid "also download and uncompress comps.xml"
-msgstr "亦下載並解壓縮 comps.xml"
-
-#: plugins/reposync.py:69
+#: plugins/reposync.py:68
 msgid "download all the metadata."
 msgstr "下載所有中介資料。"
 
-#: plugins/reposync.py:71
-msgid "download only newest packages per-repo"
-msgstr "只下載每個軟體庫最新的軟體包"
+#: plugins/reposync.py:70
+msgid "Remove packages that fail GPG signature checking after downloading"
+msgstr ""
 
 #: plugins/reposync.py:73
-msgid "where to store downloaded repositories"
-msgstr "儲存下載軟體庫的位置"
+msgid "also download and uncompress comps.xml"
+msgstr "亦下載並解壓縮 comps.xml"
 
 #: plugins/reposync.py:75
-msgid "Don't add the reponame to the download path."
-msgstr "不要將軟體庫名稱加進下載路徑中。"
-
-#: plugins/reposync.py:77
 msgid ""
-"where to store downloaded repository metadata. Defaults to the value of "
-"--download-path."
+"where to store downloaded repository metadata. Defaults to the value of --"
+"download-path."
 msgstr "儲存下載軟體庫之中介資料的位置。預設值為 --download-path 的值。"
 
+#: plugins/reposync.py:78
+msgid "download only newest packages per-repo"
+msgstr "只下載每個軟體庫最新的軟體包"
+
 #: plugins/reposync.py:80
-msgid "operate on source packages"
-msgstr "在來源軟體包上操作"
+msgid "Don't add the reponame to the download path."
+msgstr "不要將軟體庫名稱加進下載路徑中。"
 
 #: plugins/reposync.py:82
+msgid "where to store downloaded repositories"
+msgstr "儲存下載軟體庫的位置"
+
+#: plugins/reposync.py:84
 msgid "try to set local timestamps of local files by the one on the server"
 msgstr "嘗試將本機檔案的本地時間戳設定與伺服器一致"
 
-#: plugins/reposync.py:85
+#: plugins/reposync.py:87
+#, fuzzy
+#| msgid "operate on source packages"
+msgid "download only source packages"
+msgstr "在來源軟體包上操作"
+
+#: plugins/reposync.py:89
 msgid "Just list urls of what would be downloaded, don't download"
 msgstr "只列出會下載的 URL 而不下載"
 
-#: plugins/reposync.py:109
+#: plugins/reposync.py:113
 msgid "Can't use --norepopath with multiple repositories"
 msgstr "無法在多個軟體庫使用 --norepopath"
 
-#: plugins/reposync.py:127
+#: plugins/reposync.py:132
 #, python-format
 msgid "Failed to get mirror for metadata: %s"
 msgstr "無法取得中介資料的鏡像站:%s"
 
-#: plugins/reposync.py:144
+#: plugins/reposync.py:149
 msgid "Failed to get mirror for the group file."
 msgstr "無法取得群組檔案的鏡像站。"
 
+#: plugins/reposync.py:168
+msgid "Removing {}: {}"
+msgstr ""
+
 #: plugins/reposync.py:175
+msgid "GPG signature check failed."
+msgstr ""
+
+#: plugins/reposync.py:196
 msgid "Download target '{}' is outside of download path '{}'."
 msgstr "下載目標「{}」在下載位置「{}」之外。"
 
-#: plugins/reposync.py:190
+#: plugins/reposync.py:211
 #, python-format
 msgid "[DELETED] %s"
 msgstr "[已刪除] %s"
 
-#: plugins/reposync.py:192
+#: plugins/reposync.py:213
 #, python-format
 msgid "failed to delete file %s"
 msgstr "無法刪除 %s 檔案"
 
-#: plugins/reposync.py:201
+#: plugins/reposync.py:222
 #, python-format
 msgid "comps.xml for repository %s saved"
 msgstr "已儲存 %s 軟體庫的 comps.xml"
@@ -999,67 +1228,72 @@ msgstr "已儲存 %s 軟體庫的 comps.xml"
 msgid "New leaves:"
 msgstr "新保留:"
 
-#: plugins/versionlock.py:32
+#: plugins/versionlock.py:33
 #, python-format
 msgid "Unable to read version lock configuration: %s"
 msgstr "無法讀取版本鎖設定:%s"
 
-#: plugins/versionlock.py:33
+#: plugins/versionlock.py:34
 msgid "Locklist not set"
 msgstr "未設定鎖定列表"
 
-#: plugins/versionlock.py:34
+#: plugins/versionlock.py:35
 msgid "Adding versionlock on:"
 msgstr "加入版本鎖於:"
 
-#: plugins/versionlock.py:35
+#: plugins/versionlock.py:36
 msgid "Adding exclude on:"
 msgstr "加入排除於:"
 
-#: plugins/versionlock.py:36
+#: plugins/versionlock.py:37
 msgid "Package already locked in equivalent form:"
 msgstr "版本已鎖定在下述等同格式:"
 
-#: plugins/versionlock.py:37
+#: plugins/versionlock.py:38
 msgid "Package {} is already locked"
 msgstr "已鎖定 {} 軟體包"
 
-#: plugins/versionlock.py:38
+#: plugins/versionlock.py:39
 msgid "Package {} is already excluded"
 msgstr "已排除 {} 軟體包"
 
-#: plugins/versionlock.py:39
+#: plugins/versionlock.py:40
 msgid "Deleting versionlock for:"
 msgstr "刪除下述的版本鎖:"
 
-#: plugins/versionlock.py:40
+#: plugins/versionlock.py:41
 msgid "No package found for:"
 msgstr "找不到下述的軟體包:"
 
-#: plugins/versionlock.py:41
+#: plugins/versionlock.py:42
 msgid "Excludes from versionlock plugin were not applied"
 msgstr "不會套用到自 versionlock 插件排除的軟體包"
 
-#: plugins/versionlock.py:42
+#: plugins/versionlock.py:43
 msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}"
 msgstr "Versionlock 插件:已從「{}」檔案套用大量的鎖定規則:{}"
 
-#: plugins/versionlock.py:43
-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
+#: plugins/versionlock.py:44
+msgid ""
+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}"
 msgstr "Versionlock 插件:已從「{}」檔案套用大量的排除規則:{}"
 
-#: plugins/versionlock.py:44
+#: plugins/versionlock.py:45
 msgid "Versionlock plugin: could not parse pattern:"
 msgstr "Versionlock 插件:無法解析模式:"
 
-#: plugins/versionlock.py:130
+#: plugins/versionlock.py:134
 msgid "control package version locks"
 msgstr "控制軟體包的版本鎖"
 
-#: plugins/versionlock.py:136
+#: plugins/versionlock.py:140
 msgid "Use package specifications as they are, do not try to parse them"
 msgstr "使用其原本的軟體包規範,不要嘗試解析"
 
+#: plugins/versionlock.py:160
+msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead."
+msgstr ""
+
 #~ msgid ""
 #~ "\n"
 #~ "These repositories have been enabled automatically.\n"
-- 
2.36.1