diff --git a/SOURCES/0006-Update-translations.patch b/SOURCES/0006-Update-translations.patch new file mode 100644 index 0000000..be279ac --- /dev/null +++ b/SOURCES/0006-Update-translations.patch @@ -0,0 +1,7384 @@ +From ef35e9d6d2a5857d724eb12dcb27f2b3a613368e Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Wed, 15 Mar 2023 14:17:45 +0100 +Subject: [PATCH] Update translations + +--- + po/dnf.pot | 227 +++++++-------- + po/fr.po | 537 ++++++++++++++++++----------------- + po/ja.po | 768 +++++++++++++++++++++++++++++++------------------- + po/ko.po | 792 +++++++++++++++++++++++++++++----------------------- + po/zh_CN.po | 466 +++++++++++++++++-------------- + 5 files changed, 1571 insertions(+), 1219 deletions(-) + +diff --git a/po/dnf.pot b/po/dnf.pot +index 339582da..92eb8509 100644 +--- a/po/dnf.pot ++++ b/po/dnf.pot +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-19 03:04+0000\n" ++"POT-Creation-Date: 2023-02-28 10:24+0100\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +@@ -101,7 +101,7 @@ msgstr "" + msgid "Error: %s" + msgstr "" + +-#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 ++#: dnf/base.py:150 dnf/base.py:484 dnf/base.py:486 + msgid "loading repo '{}' failure: {}" + msgstr "" + +@@ -109,237 +109,237 @@ msgstr "" + msgid "Loading repository '{}' has failed" + msgstr "" + +-#: dnf/base.py:329 ++#: dnf/base.py:334 + msgid "Metadata timer caching disabled when running on metered connection." + msgstr "" + +-#: dnf/base.py:334 ++#: dnf/base.py:339 + msgid "Metadata timer caching disabled when running on a battery." + msgstr "" + +-#: dnf/base.py:339 ++#: dnf/base.py:344 + msgid "Metadata timer caching disabled." + msgstr "" + +-#: dnf/base.py:344 ++#: dnf/base.py:349 + msgid "Metadata cache refreshed recently." + msgstr "" + +-#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 ++#: dnf/base.py:355 dnf/cli/commands/__init__.py:91 + msgid "There are no enabled repositories in \"{}\"." + msgstr "" + +-#: dnf/base.py:357 ++#: dnf/base.py:362 + #, python-format + msgid "%s: will never be expired and will not be refreshed." + msgstr "" + +-#: dnf/base.py:359 ++#: dnf/base.py:364 + #, python-format + msgid "%s: has expired and will be refreshed." + msgstr "" + + #. expires within the checking period: +-#: dnf/base.py:363 ++#: dnf/base.py:368 + #, python-format + msgid "%s: metadata will expire after %d seconds and will be refreshed now" + msgstr "" + +-#: dnf/base.py:367 ++#: dnf/base.py:372 + #, python-format + msgid "%s: will expire after %d seconds." + msgstr "" + + #. performs the md sync +-#: dnf/base.py:373 ++#: dnf/base.py:378 + msgid "Metadata cache created." + msgstr "" + +-#: dnf/base.py:406 dnf/base.py:473 ++#: dnf/base.py:411 dnf/base.py:478 + #, python-format + msgid "%s: using metadata from %s." + msgstr "" + +-#: dnf/base.py:418 dnf/base.py:486 ++#: dnf/base.py:423 dnf/base.py:491 + #, python-format + msgid "Ignoring repositories: %s" + msgstr "" + +-#: dnf/base.py:421 ++#: dnf/base.py:426 + #, python-format + msgid "Last metadata expiration check: %s ago on %s." + msgstr "" + +-#: dnf/base.py:514 ++#: dnf/base.py:519 + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." + msgstr "" + +-#: dnf/base.py:516 ++#: dnf/base.py:521 + #, python-format + msgid "You can remove cached packages by executing '%s'." + msgstr "" + +-#: dnf/base.py:648 ++#: dnf/base.py:653 + #, python-format + msgid "Invalid tsflag in config file: %s" + msgstr "" + +-#: dnf/base.py:706 ++#: dnf/base.py:711 + #, python-format + msgid "Failed to add groups file for repository: %s - %s" + msgstr "" + +-#: dnf/base.py:968 ++#: dnf/base.py:973 + msgid "Running transaction check" + msgstr "" + +-#: dnf/base.py:976 ++#: dnf/base.py:981 + msgid "Error: transaction check vs depsolve:" + msgstr "" + +-#: dnf/base.py:982 ++#: dnf/base.py:987 + msgid "Transaction check succeeded." + msgstr "" + +-#: dnf/base.py:985 ++#: dnf/base.py:990 + msgid "Running transaction test" + msgstr "" + +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 + msgid "RPM: {}" + msgstr "" + +-#: dnf/base.py:996 ++#: dnf/base.py:1001 + msgid "Transaction test error:" + msgstr "" + +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 + msgid "Transaction test succeeded." + msgstr "" + +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 + msgid "Running transaction" + msgstr "" + +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 + msgid "Disk Requirements:" + msgstr "" + +-#: dnf/base.py:1068 ++#: dnf/base.py:1073 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "" + msgstr[1] "" + +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 + msgid "Error Summary" + msgstr "" + +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "" + +-#: dnf/base.py:1147 dnf/base.py:1155 ++#: dnf/base.py:1152 dnf/base.py:1160 + msgid "Could not run transaction." + msgstr "" + +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 + msgid "Transaction couldn't start:" + msgstr "" + +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "" + +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 + msgid "Some packages were not downloaded. Retrying." + msgstr "" + +-#: dnf/base.py:1276 ++#: dnf/base.py:1281 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "" + +-#: dnf/base.py:1280 ++#: dnf/base.py:1285 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" + msgstr "" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "" + +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 + msgid "Could not open: {}" + msgstr "" + +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 + #, python-format + msgid "Public key for %s is not installed" + msgstr "" + +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 + #, python-format + msgid "Problem opening package %s" + msgstr "" + +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "" + +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 + #, python-format + msgid "Package %s is not signed" + msgstr "" + +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 + #, python-format + msgid "Cannot remove %s" + msgstr "" + +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 + #, python-format + msgid "%s removed" + msgstr "" + +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 + msgid "No match for group package \"{}\"" + msgstr "" + +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "" + +-#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1814 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "" + +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 + msgid "No groups marked for removal." + msgstr "" + +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 + msgid "No group marked for upgrade." + msgstr "" + +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "" + +-#: dnf/base.py:2077 dnf/base.py:2096 dnf/base.py:2109 dnf/base.py:2140 +-#: dnf/base.py:2210 dnf/base.py:2218 dnf/base.py:2352 dnf/cli/cli.py:417 ++#: dnf/base.py:2082 dnf/base.py:2101 dnf/base.py:2114 dnf/base.py:2145 ++#: dnf/base.py:2215 dnf/base.py:2223 dnf/base.py:2357 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -349,127 +349,127 @@ msgstr "" + msgid "No match for argument: %s" + msgstr "" + +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "" + +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "" + +-#: dnf/base.py:2122 ++#: dnf/base.py:2127 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "" + +-#: dnf/base.py:2137 ++#: dnf/base.py:2142 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "" + +-#: dnf/base.py:2147 ++#: dnf/base.py:2152 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "" + +-#: dnf/base.py:2207 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2212 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "" + +-#: dnf/base.py:2213 ++#: dnf/base.py:2218 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "" + +-#: dnf/base.py:2238 ++#: dnf/base.py:2243 + #, python-format + msgid "No package %s installed." + msgstr "" + +-#: dnf/base.py:2256 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2261 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "" + +-#: dnf/base.py:2271 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2276 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "" + +-#: dnf/base.py:2359 dnf/cli/cli.py:428 ++#: dnf/base.py:2364 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "" + +-#: dnf/base.py:2364 ++#: dnf/base.py:2369 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "" + +-#: dnf/base.py:2464 ++#: dnf/base.py:2469 + msgid "No security updates needed, but {} update available" + msgstr "" + +-#: dnf/base.py:2466 ++#: dnf/base.py:2471 + msgid "No security updates needed, but {} updates available" + msgstr "" + +-#: dnf/base.py:2470 ++#: dnf/base.py:2475 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "" + +-#: dnf/base.py:2472 ++#: dnf/base.py:2477 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2493 ++#: dnf/base.py:2498 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "" + +-#: dnf/base.py:2501 ++#: dnf/base.py:2506 + #, python-format + msgid ". Failing package is: %s" + msgstr "" + +-#: dnf/base.py:2502 ++#: dnf/base.py:2507 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "" + +-#: dnf/base.py:2514 ++#: dnf/base.py:2519 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "" + +-#: dnf/base.py:2550 ++#: dnf/base.py:2555 + msgid "The key has been approved." + msgstr "" + +-#: dnf/base.py:2553 ++#: dnf/base.py:2558 + msgid "The key has been rejected." + msgstr "" + +-#: dnf/base.py:2586 ++#: dnf/base.py:2591 + #, python-format + msgid "Key import failed (code %d)" + msgstr "" + +-#: dnf/base.py:2588 ++#: dnf/base.py:2593 + msgid "Key imported successfully" + msgstr "" + +-#: dnf/base.py:2592 ++#: dnf/base.py:2597 + msgid "Didn't install any keys" + msgstr "" + +-#: dnf/base.py:2595 ++#: dnf/base.py:2600 + #, python-format + msgid "" + "The GPG keys listed for the \"%s\" repository are already installed but they " +@@ -477,49 +477,49 @@ msgid "" + "Check that the correct key URLs are configured for this repository." + msgstr "" + +-#: dnf/base.py:2606 ++#: dnf/base.py:2611 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "" + +-#: dnf/base.py:2659 ++#: dnf/base.py:2664 + msgid " * Maybe you meant: {}" + msgstr "" + +-#: dnf/base.py:2691 ++#: dnf/base.py:2696 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "" + +-#: dnf/base.py:2694 ++#: dnf/base.py:2699 + msgid "Some packages from local repository have incorrect checksum" + msgstr "" + +-#: dnf/base.py:2697 ++#: dnf/base.py:2702 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "" + +-#: dnf/base.py:2700 ++#: dnf/base.py:2705 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "" + +-#: dnf/base.py:2718 dnf/base.py:2738 ++#: dnf/base.py:2723 dnf/base.py:2743 + msgid "No match for argument" + msgstr "" + +-#: dnf/base.py:2726 dnf/base.py:2746 ++#: dnf/base.py:2731 dnf/base.py:2751 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "" + +-#: dnf/base.py:2728 ++#: dnf/base.py:2733 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "" + +-#: dnf/base.py:2744 ++#: dnf/base.py:2749 + msgid "All matches were installed from a different repository for argument" + msgstr "" + +-#: dnf/base.py:2791 ++#: dnf/base.py:2796 + #, python-format + msgid "Package %s is already installed." + msgstr "" +@@ -3379,7 +3379,8 @@ msgstr "" + msgid "Environment id '%s' does not exist." + msgstr "" + +-#: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 ++#: dnf/comps.py:622 dnf/transaction_sr.py:487 dnf/transaction_sr.py:497 ++#: dnf/transaction_sr.py:507 + #, python-format + msgid "Environment id '%s' is not installed." + msgstr "" +@@ -3485,6 +3486,11 @@ msgstr "" + msgid "Parsing file \"{}\" failed: {}" + msgstr "" + ++#: dnf/conf/substitutions.py:66 ++#, python-brace-format ++msgid "Error when parsing a variable from file '{0}': {1}" ++msgstr "" ++ + #: dnf/crypto.py:108 + #, python-format + msgid "repo %s: 0x%s already imported" +@@ -3508,22 +3514,22 @@ msgstr "" + msgid "retrieving repo key for %s unencrypted from %s" + msgstr "" + +-#: dnf/db/group.py:302 ++#: dnf/db/group.py:308 + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" + msgstr "" + +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 + #, python-format + msgid "An rpm exception occurred: %s" + msgstr "" + +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 + msgid "No available modular metadata for modular package" + msgstr "" + +-#: dnf/db/group.py:389 ++#: dnf/db/group.py:395 + #, python-format + msgid "Will not install a source rpm package (%s)." + msgstr "" +@@ -3553,7 +3559,7 @@ msgstr "" + msgid "Testing already imported keys for their validity." + msgstr "" + +-#: dnf/drpm.py:62 dnf/repo.py:267 ++#: dnf/drpm.py:62 dnf/repo.py:268 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "" +@@ -3803,31 +3809,31 @@ msgstr "" + msgid "Parsing file failed: %s" + msgstr "" + +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 + #, python-format + msgid "Loaded plugins: %s" + msgstr "" + +-#: dnf/plugin.py:211 ++#: dnf/plugin.py:216 + #, python-format + msgid "Failed loading plugin \"%s\": %s" + msgstr "" + +-#: dnf/plugin.py:243 ++#: dnf/plugin.py:248 + msgid "No matches found for the following enable plugin patterns: {}" + msgstr "" + +-#: dnf/plugin.py:247 ++#: dnf/plugin.py:252 + msgid "No matches found for the following disable plugin patterns: {}" + msgstr "" + +-#: dnf/repo.py:84 ++#: dnf/repo.py:85 + #, python-format + msgid "no matching payload factory for %s" + msgstr "" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "" +@@ -4013,50 +4019,51 @@ msgid "Missing object key \"{key}\" in groups.packages." + msgstr "" + + #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 ++#: dnf/transaction_sr.py:431 + #, python-format + msgid "Group id '%s' is not installed." + msgstr "" + +-#: dnf/transaction_sr.py:432 ++#: dnf/transaction_sr.py:442 + #, python-format + msgid "Environment id '%s' is not available." + msgstr "" + +-#: dnf/transaction_sr.py:456 ++#: dnf/transaction_sr.py:466 + #, python-brace-format + msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." + msgstr "" + +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "" + +-#: dnf/transaction_sr.py:542 ++#: dnf/transaction_sr.py:564 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." + msgstr "" + +-#: dnf/transaction_sr.py:547 ++#: dnf/transaction_sr.py:569 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." + msgstr "" + +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 + #, python-brace-format + msgid "" + "Unexpected value of environment action \"{action}\" for environment " + "\"{env}\"." + msgstr "" + +-#: dnf/transaction_sr.py:576 ++#: dnf/transaction_sr.py:600 + #, python-brace-format + msgid "Missing object key \"{key}\" in an environment." + msgstr "" + +-#: dnf/transaction_sr.py:615 ++#: dnf/transaction_sr.py:639 + #, python-brace-format + msgid "" + "Package nevra \"{nevra}\", which is not present in the transaction file, was " +diff --git a/po/fr.po b/po/fr.po +index d7b424b3..15c4a029 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -9,38 +9,35 @@ + # dominique bribanick , 2011 + # Jérôme Fenal , 2014 + # Kévin Raymond , 2011 +-# Jean-Baptiste Holcroft , 2016. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2016. #zanata, 2020. + # José Fournier , 2016. #zanata +-# Jean-Baptiste Holcroft , 2017. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2017. #zanata, 2020. + # José Fournier , 2017. #zanata + # Jérôme Fenal , 2017. #zanata +-# Jean-Baptiste Holcroft , 2018. #zanata, 2020, 2021. +-# Ludek Janda , 2018. #zanata +-# Jean-Baptiste Holcroft , 2019. #zanata, 2020, 2021. ++# Jean-Baptiste Holcroft , 2018. #zanata, 2020. ++# Ludek Janda , 2018. #zanata, 2022. ++# Jean-Baptiste Holcroft , 2019. #zanata, 2020. + # Julien Humbert , 2020, 2021. +-# Karim ALI ABDELMAKSOU ABDELHAMID , 2020. +-# Arnaud T. , 2020, 2021. +-# Guillaume Jacob , 2021. +-# Côme Borsoi , 2021. + # Sundeep Anand , 2021. ++# Guillaume Jacob , 2021. + # Titouan Bénard , 2021. +-# Transtats , 2022. +-# Alexandre GUIOT--VALENTIN , 2022. +-# Arthur Tavernier , 2022. ++# Transtats , 2022, 2023. ++# blutch112 , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-11 02:46+0000\n" +-"PO-Revision-Date: 2022-06-22 19:18+0000\n" +-"Last-Translator: Arthur Tavernier \n" +-"Language-Team: French \n" ++"POT-Creation-Date: 2023-02-28 10:24+0100\n" ++"PO-Revision-Date: 2023-03-06 13:20+0000\n" ++"Last-Translator: Transtats \n" ++"Language-Team: French \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.13\n" ++"X-Generator: Weblate 4.15.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -125,7 +122,7 @@ msgstr "Le système est hors-ligne." + msgid "Error: %s" + msgstr "Erreur : %s" + +-#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 ++#: dnf/base.py:150 dnf/base.py:484 dnf/base.py:486 + msgid "loading repo '{}' failure: {}" + msgstr "Erreur lors du chargement du dépôt « {} » : {}" + +@@ -133,76 +130,76 @@ msgstr "Erreur lors du chargement du dépôt « {} » : {}" + msgid "Loading repository '{}' has failed" + msgstr "Échec du chargement du dépôt « {} »" + +-#: dnf/base.py:329 ++#: dnf/base.py:334 + msgid "Metadata timer caching disabled when running on metered connection." + msgstr "" + "Mise en cache temporisée des métadonnées désactivée lors du fonctionnement " + "sur connexion limitée." + +-#: dnf/base.py:334 ++#: dnf/base.py:339 + msgid "Metadata timer caching disabled when running on a battery." + msgstr "" + "Mise en cache temporisée des métadonnées désactivée lors du fonctionnement " + "sur batterie." + +-#: dnf/base.py:339 ++#: dnf/base.py:344 + msgid "Metadata timer caching disabled." + msgstr "Mise en cache temporisée des métadonnées désactivée." + +-#: dnf/base.py:344 ++#: dnf/base.py:349 + msgid "Metadata cache refreshed recently." + msgstr "Cache des métadonnées mis à jour récemment." + +-#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 ++#: dnf/base.py:355 dnf/cli/commands/__init__.py:91 + msgid "There are no enabled repositories in \"{}\"." + msgstr "Il n’y a pas de dépôts activés dans « {} »." + +-#: dnf/base.py:357 ++#: dnf/base.py:362 + #, python-format + msgid "%s: will never be expired and will not be refreshed." + msgstr "%s : n’expirera jamais et ne sera pas réinitialisé." + +-#: dnf/base.py:359 ++#: dnf/base.py:364 + #, python-format + msgid "%s: has expired and will be refreshed." + msgstr "%s : a expiré et sera réinitialisé." + + #. expires within the checking period: +-#: dnf/base.py:363 ++#: dnf/base.py:368 + #, python-format + msgid "%s: metadata will expire after %d seconds and will be refreshed now" + msgstr "" + "%s : métadonnées expireront après %d secondes et seront réinitialisées " + "maintenant" + +-#: dnf/base.py:367 ++#: dnf/base.py:372 + #, python-format + msgid "%s: will expire after %d seconds." + msgstr "%s : expireront après %d secondes." + + #. performs the md sync +-#: dnf/base.py:373 ++#: dnf/base.py:378 + msgid "Metadata cache created." + msgstr "Cache des métadonnées créé." + +-#: dnf/base.py:406 dnf/base.py:473 ++#: dnf/base.py:411 dnf/base.py:478 + #, python-format + msgid "%s: using metadata from %s." + msgstr "%s : utilisation des métadonnées depuis le %s." + +-#: dnf/base.py:418 dnf/base.py:486 ++#: dnf/base.py:423 dnf/base.py:491 + #, python-format + msgid "Ignoring repositories: %s" + msgstr "Dépôts ignorés : %s" + +-#: dnf/base.py:421 ++#: dnf/base.py:426 + #, python-format + msgid "Last metadata expiration check: %s ago on %s." + msgstr "" +-"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le" +-" %s." ++"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le " ++"%s." + +-#: dnf/base.py:514 ++#: dnf/base.py:519 + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." +@@ -210,59 +207,59 @@ msgstr "" + "Les paquets téléchargés ont été mis en cache jusqu’à la prochaine " + "transaction réussie." + +-#: dnf/base.py:516 ++#: dnf/base.py:521 + #, python-format + msgid "You can remove cached packages by executing '%s'." + msgstr "Vous pouvez supprimer les paquets en cache en exécutant « %s »." + +-#: dnf/base.py:648 ++#: dnf/base.py:653 + #, python-format + msgid "Invalid tsflag in config file: %s" + msgstr "tsflag invalide dans le fichier de configuration : %s" + +-#: dnf/base.py:706 ++#: dnf/base.py:711 + #, python-format + msgid "Failed to add groups file for repository: %s - %s" + msgstr "Échec d’ajout du fichier de groupes pour le dépôt : %s - %s" + +-#: dnf/base.py:968 ++#: dnf/base.py:973 + msgid "Running transaction check" + msgstr "Test de la transaction" + +-#: dnf/base.py:976 ++#: dnf/base.py:981 + msgid "Error: transaction check vs depsolve:" + msgstr "" + "Erreur : vérification de transaction contre résolution des dépendances :" + +-#: dnf/base.py:982 ++#: dnf/base.py:987 + msgid "Transaction check succeeded." + msgstr "La vérification de la transaction a réussi." + +-#: dnf/base.py:985 ++#: dnf/base.py:990 + msgid "Running transaction test" + msgstr "Lancement de la transaction de test" + +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 + msgid "RPM: {}" + msgstr "RPM : {}" + +-#: dnf/base.py:996 ++#: dnf/base.py:1001 + msgid "Transaction test error:" + msgstr "Erreur de la transaction de test :" + +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 + msgid "Transaction test succeeded." + msgstr "Transaction de test réussie." + +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 + msgid "Running transaction" + msgstr "Exécution de la transaction" + +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 + msgid "Disk Requirements:" + msgstr "Besoins en espace disque :" + +-#: dnf/base.py:1068 ++#: dnf/base.py:1073 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." +@@ -270,43 +267,43 @@ msgstr[0] "" + "Au moins {0} Mio supplémentaire est nécessaire sur le système de fichiers " + "{1}." + msgstr[1] "" +-"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers" +-" {1}." ++"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers " ++"{1}." + +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 + msgid "Error Summary" + msgstr "Résumé des erreurs" + +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB modifié en dehors de {prog}." + +-#: dnf/base.py:1147 dnf/base.py:1155 ++#: dnf/base.py:1152 dnf/base.py:1160 + msgid "Could not run transaction." + msgstr "Impossible d’exécuter la transaction." + +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 + msgid "Transaction couldn't start:" + msgstr "La transaction n’a pas pu démarrer :" + +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "Échec de la suppression du fichier de transaction %s" + +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 + msgid "Some packages were not downloaded. Retrying." + msgstr "Certains paquets n’ont pas été téléchargés. Nouvel essai." + +-#: dnf/base.py:1276 ++#: dnf/base.py:1281 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "" + "Les RPM Delta ont réduit les mises à jour de %.1f Mo à %.1f Mo (%.1f%% " + "économisé)" + +-#: dnf/base.py:1280 ++#: dnf/base.py:1285 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" +@@ -314,77 +311,77 @@ msgstr "" + "Les échecs des RPM Delta ont augmenté les mises à jour de %.1f Mo à %.1f Mo " + "(%.1f%% gaspillés)" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "" + "Impossible d’ajouter des paquets locaux, car un travail de transaction " + "existe déjà" + +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 + msgid "Could not open: {}" + msgstr "Impossible d’ouvrir : {}" + +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 + #, python-format + msgid "Public key for %s is not installed" + msgstr "La clé publique pour %s n’est pas installée" + +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 + #, python-format + msgid "Problem opening package %s" + msgstr "Problème à l’ouverture du paquet %s" + +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "La clé publique pour %s n’est pas de confiance" + +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 + #, python-format + msgid "Package %s is not signed" + msgstr "Le paquet %s n’est pas signé" + +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 + #, python-format + msgid "Cannot remove %s" + msgstr "Impossible de supprimer %s" + +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 + #, python-format + msgid "%s removed" + msgstr "%s supprimé" + +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 + msgid "No match for group package \"{}\"" + msgstr "Aucune correspondance pour le paquet du groupe « {} »" + +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "Ajout de paquets en provenance du groupe « %s » : %s" + +-#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1814 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "Rien à faire." + +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 + msgid "No groups marked for removal." + msgstr "Aucun groupe marqué pour suppression." + +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 + msgid "No group marked for upgrade." + msgstr "Aucun groupe marqué pour mise à jour." + +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "Le paquet %s n’est pas installé, impossible de le rétrograder." + +-#: dnf/base.py:2077 dnf/base.py:2096 dnf/base.py:2109 dnf/base.py:2136 +-#: dnf/base.py:2206 dnf/base.py:2214 dnf/base.py:2348 dnf/cli/cli.py:417 ++#: dnf/base.py:2082 dnf/base.py:2101 dnf/base.py:2114 dnf/base.py:2145 ++#: dnf/base.py:2215 dnf/base.py:2223 dnf/base.py:2357 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -394,30 +391,30 @@ msgstr "Le paquet %s n’est pas installé, impossible de le rétrograder." + msgid "No match for argument: %s" + msgstr "Aucune correspondance pour l’argument : %s" + +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "" +-"Le paquet %s est déjà installé dans une version inférieure, impossible de le" +-" rétrograder." ++"Le paquet %s est déjà installé dans une version inférieure, impossible de le " ++"rétrograder." + +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "Le paquet %s n’est pas installé, impossible de le réinstaller." + +-#: dnf/base.py:2122 ++#: dnf/base.py:2127 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "" + "Le fichier %s est un paquet source et ne peut pas être mis à jour, ignoré." + +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "Le paquet %s n’est pas installé, impossible de le mettre à jour." + +-#: dnf/base.py:2143 ++#: dnf/base.py:2152 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." +@@ -425,173 +422,176 @@ msgstr "" + "La même une ou version supérieure de %s est déjà installée, mise à jour " + "impossible." + +-#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2212 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "Le paquet %s est disponible mais n’est pas installé." + +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "" + "Le paquet %s est disponible mais est installé pour une autre architecture." + +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 + #, python-format + msgid "No package %s installed." + msgstr "Aucun paquet %s installé." + +-#: dnf/base.py:2252 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2261 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "Format invalide : %s" + +-#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2276 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "Aucun paquet marqué pour suppression." + +-#: dnf/base.py:2355 dnf/cli/cli.py:428 ++#: dnf/base.py:2364 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "Les paquets pour le paramètre %s sont disponibles mais pas installés." + +-#: dnf/base.py:2360 ++#: dnf/base.py:2369 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "" + "La version la plus ancienne du paquet %s est déjà installée, impossible de " + "le rétrograder." + +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 + msgid "No security updates needed, but {} update available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire, mais la mise à jour {} est " + "disponible" + +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 + msgid "No security updates needed, but {} updates available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire, mais les mises à jour {} " + "sont disponibles" + +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire pour « {} », mais la mise à " + "jour {} est disponible" + +-#: dnf/base.py:2468 ++#: dnf/base.py:2477 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "" + "Aucune mise à jour de sécurité n’est nécessaire pour « {} », mais les mises " + "à jour {} sont disponibles" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2489 ++#: dnf/base.py:2498 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "" + "Impossible de récupérer une clé pour un paquet en ligne de commande : %s" + +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 + #, python-format + msgid ". Failing package is: %s" + msgstr ". Le paquet en erreur est : %s" + +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "Les clés GPG sont configurées comme : %s" + +-#: dnf/base.py:2510 ++#: dnf/base.py:2519 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "La clé GPG %s (0x%s) est déjà installée" + +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 + msgid "The key has been approved." + msgstr "La clef a été approuvée." + +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 + msgid "The key has been rejected." + msgstr "La clef a été rejetée." + +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 + #, python-format + msgid "Key import failed (code %d)" + msgstr "L’import de la clé a échoué (code %d)" + +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 + msgid "Key imported successfully" + msgstr "La clé a bien été importée" + +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 + msgid "Didn't install any keys" + msgstr "Toutes les clés n’ont pas été installées" + +-#: dnf/base.py:2591 ++#: dnf/base.py:2600 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" +-"Les clés GPG listées pour le dépôt « %s » sont déjà installées mais sont incorrectes pour ce paquet.\n" ++"Les clés GPG listées pour le dépôt « %s » sont déjà installées mais sont " ++"incorrectes pour ce paquet.\n" + "Vérifiez que les URL des clés pour ce dépôt soient correctes." + +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "" + "L’import de la ou des clés n’a pas résolu le problème, clés incorrectes ?" + +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 + msgid " * Maybe you meant: {}" + msgstr " * Peut-être vouliez-vous dire : {}" + +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" +-msgstr "Le paquet \"{}\" du dépôt local \"{}\" a une somme de contrôle incorrecte" ++msgstr "" ++"Le paquet \"{}\" du dépôt local \"{}\" a une somme de contrôle incorrecte" + +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 + msgid "Some packages from local repository have incorrect checksum" + msgstr "Certains paquets du dépôt local ont une somme de contrôle incorrecte" + +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "Le paquet \"{}\" du dépôt \"{}\" a une somme de contrôle incorrecte" + +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "" +-"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés" +-" à cause de l’option « --cacheonly »" ++"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés " ++"à cause de l’option « --cacheonly »" + +-#: dnf/base.py:2714 dnf/base.py:2734 ++#: dnf/base.py:2723 dnf/base.py:2743 + msgid "No match for argument" + msgstr "Aucune correspondance pour le paramètre" + +-#: dnf/base.py:2722 dnf/base.py:2742 ++#: dnf/base.py:2731 dnf/base.py:2751 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "" + "Toutes les correspondances ont été filtrées en excluant le filtrage pour " + "l’argument" + +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "" + "Toutes les correspondances ont été filtrées par filtrage modulaire pour les " + "arguments" + +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 + msgid "All matches were installed from a different repository for argument" + msgstr "" + "Toutes les correspondances ont été installées à partir d’un dépôt différent " + "pour le paramètre" + +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 + #, python-format + msgid "Package %s is already installed." + msgstr "Le paquet %s est déjà installé." +@@ -643,17 +643,25 @@ msgid "" + "The operation would result in switching of module '{0}' stream '{1}' to " + "stream '{2}'" + msgstr "" +-"Le résulta de l’opération sera le basculement du flux« {1} » du module « {0}" +-" » vers le flux« {2} »" ++"Le résulta de l’opération sera le basculement du flux« {1} » du module « {0} " ++"» vers le flux« {2} »" + + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." +-msgstr "" +-"Il n’est pas possible de basculer les flux actifs d’un module sauf si cela est explicitement activé par l’option de configuration module_stream_switch.\n" +-"Il est plutôt recommandé de retirer tout contenu installé par le module, et de réinitialiser le mode en utilisant la commande « {prog} module reset ». Après la réinitialisation, vous pouvez installer les autres flux." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." ++msgstr "" ++"Il n’est pas possible de basculer les flux actifs d’un module sauf si cela " ++"est explicitement activé par l’option de configuration " ++"module_stream_switch.\n" ++"Il est plutôt recommandé de retirer tout contenu installé par le module, et " ++"de réinitialiser le mode en utilisant la commande « {prog} module reset " ++" ». Après la réinitialisation, vous pouvez installer les autres " ++"flux." + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -690,7 +698,8 @@ msgid "" + "Refusing to automatically import keys when running unattended.\n" + "Use \"-y\" to override." + msgstr "" +-"Refus de l’importation automatique des clés lors d’une exécution sans surveillance.\n" ++"Refus de l’importation automatique des clés lors d’une exécution sans " ++"surveillance.\n" + "Utilisez l’option « -y » pour passer outre." + + #: dnf/cli/cli.py:337 +@@ -747,8 +756,9 @@ msgid "" + "No matches found. If searching for a file, try specifying the full path or " + "using a wildcard prefix (\"*/\") at the beginning." + msgstr "" +-"Aucun résultat. Si vous cherchez un fichier, essayez le chemin absolu or un " +-"prefixe wildcard (\"*/\") au début." ++"Aucune correspondance trouvée. Si vous recherchez un fichier, essayez de " ++"spécifier le chemin d'accès complet ou d'utiliser un préfixe joker (\"*/\") " ++"au début." + + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 + #, python-format +@@ -762,8 +772,8 @@ msgstr "Aucun dépôt ne correspond à %s" + + #: dnf/cli/cli.py:721 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." + msgstr "" + "Cette commande doit être exécutée avec les privilèges super-utilisateur " + "(sous l’utilisateur root sur la plupart des systèmes)." +@@ -796,8 +806,8 @@ msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly" +-" ou download ou system-upgrade command." ++"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly " ++"ou download ou system-upgrade command." + + #: dnf/cli/cli.py:822 + msgid "" +@@ -869,7 +879,8 @@ msgstr "" + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -881,8 +892,10 @@ msgid "" + "\n" + "For more information contact your distribution or package provider." + msgstr "" +-"Vous avez activé la vérification des paquets par clés GPG. C’est une bonne chose.\n" +-"Cependant, vous n’avez aucune clé GPG publique installée. Vous devez télécharger\n" ++"Vous avez activé la vérification des paquets par clés GPG. C’est une bonne " ++"chose.\n" ++"Cependant, vous n’avez aucune clé GPG publique installée. Vous devez " ++"télécharger\n" + "et installer les clés pour les paquets que vous souhaitez installer..\n" + "Vous pouvez le faire en lançant la commande :\n" + "rpm --import public. gpg. key\n" +@@ -892,7 +905,8 @@ msgstr "" + "pour un dépôt dans l’option « gpgkey » dans une section de configuration du\n" + "dépôt et {prog} l’installera pour vous.\n" + "\n" +-"Pour plus de renseignements, contactez votre distribution ou le fournisseur du paquet." ++"Pour plus de renseignements, contactez votre distribution ou le fournisseur " ++"du paquet." + + #: dnf/cli/commands/__init__.py:71 + #, python-format +@@ -1324,8 +1338,8 @@ msgstr "" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" + msgstr "" + "Pour la commande replay, ne vérifie pas si les paquets installés " + "correspondent à ceux en transaction" +@@ -1340,8 +1354,8 @@ msgstr "" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" + msgstr "" + "Pour la commande replay, saute les paquets qui ne sont pas disponibles ou " + "qui ont des dépendances manquantes" +@@ -1374,8 +1388,8 @@ msgstr "Vous n’avez pas accès à la base de données de l’historique : %s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." + msgstr "" + "Impossible de défaire la transaction %s ; cela aboutirait à une base de " + "données des paquets incohérente." +@@ -1421,7 +1435,8 @@ msgid "" + "Invalid transaction ID range definition '{}'.\n" + "Use '..'." + msgstr "" +-"La définition de la plage d’identifiants de transaction est invalide « {} ».\n" ++"La définition de la plage d’identifiants de transaction est invalide « {} " ++"».\n" + "Utilisez « .. »." + + #: dnf/cli/commands/history.py:294 +@@ -1491,8 +1506,7 @@ msgstr "Création des fichiers de cache pour tous les fichiers de métadonnées. + #: dnf/cli/commands/mark.py:39 + msgid "mark or unmark installed packages as installed by user." + msgstr "" +-"marquer ou démarquer les paquets installés comme installés par " +-"l’utilisateur." ++"marquer ou démarquer les paquets installés comme installés par l’utilisateur." + + #: dnf/cli/commands/mark.py:44 + msgid "" +@@ -1531,11 +1545,11 @@ msgstr "Le paquet %s n’est pas installé." + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" + msgstr "" +-"Seul le nom, le flux, l’architecture ou le profil du module est utilisé. Les" +-" paramètres inutiles ont été ignorés dans le paramètre : « {} »" ++"Seul le nom, le flux, l’architecture ou le profil du module est utilisé. Les " ++"paramètres inutiles ont été ignorés dans le paramètre : « {} »" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1831,8 +1845,8 @@ msgid "" + "shows results that requires, suggests, supplements, enhances, or recommends " + "package provides and files REQ" + msgstr "" +-"affiche les résultats qui nécessitent, suggèrent, supplémentent, améliorent " +-"ou recommandent des paquets et des fichiers REQ" ++"montre des résultats qui requièrent, suggèrent, complètent, améliorent ou " ++"recommandent le paquet fournit et classe REQ" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1870,8 +1884,8 @@ msgstr "" + #: dnf/cli/commands/repoquery.py:162 + msgid "check dependencies exactly as given, opposite of --alldeps" + msgstr "" +-"vérifie les dépendances exactement telles qu’indiquées, le contraire de " +-"--alldeps" ++"vérifie les dépendances exactement telles qu’indiquées, le contraire de --" ++"alldeps" + + #: dnf/cli/commands/repoquery.py:164 + msgid "" +@@ -1929,8 +1943,8 @@ msgstr "affiche les changelogs du paquet" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" + msgstr "" + "format d'affichage pour la liste des paquets : « %%{name} %%{version}… », " + "utilisez --querytags pour voir la liste complète des étiquettes" +@@ -2078,23 +2092,23 @@ msgstr "la clé à chercher" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"Option « --resolve » doit être utilisée en conjonction avec « --conflicts »," +-" « --depends », « --enhances », « --provides », « --recommends », « " +-"--requires », « --requires-pre », « --suggests » ou « --supplements" ++"Option « --resolve » doit être utilisée en conjonction avec « --conflicts », " ++"« --depends », « --enhances », « --provides », « --recommends », « --" ++"requires », « --requires-pre », « --suggests » ou « --supplements" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"Option « --recursive » doit être utilisée avec « --whatrequires » " +-"(optionnellement avec « --alldeps », mais pas avec « --exactdeps »), ou avec" +-" « --requires --resolve »" ++"Option « --recursive » doit être utilisée avec « --whatrequires " ++"» (optionnellement avec « --alldeps », mais pas avec « --exactdeps »), ou " ++"avec « --requires --resolve »" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -2108,16 +2122,20 @@ msgstr "Le paquet {} ne contient aucun fichier" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of the packages." + msgstr "" + "Aucune option valide spécifiée\n" +-"utilisation : {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"utilisation : {prog} repoquery [--conflicts|--enhances|--obsoletes|--" ++"provides|--recommends|--requires|--suggest|--supplements|--whatrequires] " ++"[key] [--tree]\n" + "\n" + "description :\n" +-" Afficher une arborescence des paquets pour les paquets donnés." ++" Afficher une arborescence des paquets pour le paquet donné." + + #: dnf/cli/commands/search.py:46 + msgid "search package details for the given string" +@@ -2154,8 +2172,7 @@ msgstr "Description" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2289,7 +2306,8 @@ msgstr "" + "help affiche l’aide\n" + "repository (ou repo) active, désactive ou liste les dépôts\n" + "resolvedep résout l’ensemble de transactions\n" +-"transaction (ou ts) liste, réinitialise ou exécute l’ensemble de transactions\n" ++"transaction (ou ts) liste, réinitialise ou exécute l’ensemble de " ++"transactions\n" + "run résoud et exécute l’ensemble de transactions\n" + "exit (ou quit) quitte l’interpréteur de commandes" + +@@ -2364,8 +2382,7 @@ msgstr "alertes pour les nouvelles versions de paquets installés (par défaut)" + #: dnf/cli/commands/updateinfo.py:80 + msgid "advisories about equal and older versions of installed packages" + msgstr "" +-"alertes pour des versions équivalentes ou plus anciennes de paquets " +-"installés" ++"alertes pour des versions équivalentes ou plus anciennes de paquets installés" + + #: dnf/cli/commands/updateinfo.py:83 + msgid "" +@@ -2535,8 +2552,8 @@ msgstr "Terminé." + #: dnf/cli/main.py:116 + msgid "No read/execute access in current directory, moving to /" + msgstr "" +-"Pas d’accès en lecture/exécution sur le répertoire courant, déplacement dans" +-" /" ++"Pas d’accès en lecture/exécution sur le répertoire courant, déplacement " ++"dans /" + + #: dnf/cli/main.py:135 + msgid "try to add '{}' to command line to replace conflicting packages" +@@ -2679,8 +2696,7 @@ msgstr "niveau de déboguage pour la sortie" + + #: dnf/cli/option_parser.py:236 + msgid "dumps detailed solving results into files" +-msgstr "" +-"détaille les résultats de résolution des dépendances dans des fichiers" ++msgstr "détaille les résultats de résolution des dépendances dans des fichiers" + + #: dnf/cli/option_parser.py:240 + msgid "show duplicates, in repos, in list/search commands" +@@ -2697,8 +2713,8 @@ msgid "" + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" + "active la mécanique de traitement des paquets obsolètes de {prog} pour les " +-"mises à jour ou affiche les fonctionnalités qu’un paquet rend obsolètes pour" +-" les commandes « info », « list » et « repoquery »" ++"mises à jour ou affiche les fonctionnalités qu’un paquet rend obsolètes pour " ++"les commandes « info », « list » et « repoquery »" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2718,8 +2734,8 @@ msgid "" + "Accepts an id, a comma-separated list of ids, or a glob of ids. This option " + "can be specified multiple times." + msgstr "" +-"Active temporairement les dépots lors de l'exécution de la commande dnf " +-"courante. Accepte un id, une liste d'ids séparés par des virgules, ou un " ++"Active temporairement les référentiels pour les besoins de la commande dnf " ++"actuelle. Accepte un id, une liste d'ids séparés par des virgules, ou un " + "glob d'ids. Cette option peut être spécifiée plusieurs fois." + + #: dnf/cli/option_parser.py:268 +@@ -2729,18 +2745,18 @@ msgid "" + "This option can be specified multiple times, but is mutually exclusive with " + "`--repo`." + msgstr "" +-"Désactive temporairement les dépots actifs lors de l'exécution de la " +-"commande dnf courante. Accepte un id, une liste d'ids séparés par des " +-"virgules, ou un glob d'ids. Cette option peut être spécifiée plusieurs fois," +-" mais est mutuellement exclusiver avec '--repo'." ++"Désactive temporairement les référentiels actifs pour les besoins de la " ++"commande dnf actuelle. Accepte un id, une liste d'ids séparés par des " ++"virgules, ou un glob d'ids. Cette option peut être spécifiée plusieurs fois, " ++"mais est mutuellement exclusive avec `--repo`." + + #: dnf/cli/option_parser.py:275 + msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" + msgstr "" +-"active seulement des dépôts spécifiques par id ou par le caractère générique" +-" (*), peut être spécifié plusieurs fois" ++"active seulement des dépôts spécifiques par id ou par le caractère générique " ++"(*), peut être spécifié plusieurs fois" + + #: dnf/cli/option_parser.py:280 + msgid "enable repos with config-manager command (automatically saves)" +@@ -2835,8 +2851,8 @@ msgstr "" + #: dnf/cli/option_parser.py:344 + msgid "Include packages needed to fix the given BZ, in updates" + msgstr "" +-"Inclut dans les mises à jour les paquets nécessaires pour résoudre le ticket" +-" BugZilla cité" ++"Inclut dans les mises à jour les paquets nécessaires pour résoudre le ticket " ++"BugZilla cité" + + #: dnf/cli/option_parser.py:347 + msgid "Include packages needed to fix the given CVE, in updates" +@@ -3137,8 +3153,7 @@ msgstr "Taille des paquets installés : %s" + #: dnf/cli/output.py:970 + msgid "There was an error calculating installed size" + msgstr "" +-"Une erreur est survenue pendant le calcul de la taille des paquets " +-"installées" ++"Une erreur est survenue pendant le calcul de la taille des paquets installées" + + #: dnf/cli/output.py:974 + #, python-format +@@ -3618,8 +3633,8 @@ msgstr "Inconnu" + #, python-format + msgid "Unable to find information about the locking process (PID %d)" + msgstr "" +-"Impossible de trouver des informations sur le processus de verrouillage (PID" +-" %d)" ++"Impossible de trouver des informations sur le processus de verrouillage (PID " ++"%d)" + + #: dnf/cli/utils.py:117 + #, python-format +@@ -3661,7 +3676,8 @@ msgstr "Module ou Groupe « %s » n’existe pas." + msgid "Environment id '%s' does not exist." + msgstr "L’id d’environnement « %s » n’existe pas." + +-#: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 ++#: dnf/comps.py:622 dnf/transaction_sr.py:487 dnf/transaction_sr.py:497 ++#: dnf/transaction_sr.py:507 + #, python-format + msgid "Environment id '%s' is not installed." + msgstr "L’id d’environnement « %s » n’est pas installé." +@@ -3774,6 +3790,11 @@ msgstr "" + msgid "Parsing file \"{}\" failed: {}" + msgstr "La lecture du fichier « {} » a échoué : {}" + ++#: dnf/conf/substitutions.py:66 ++#, python-brace-format ++msgid "Error when parsing a variable from file '{0}': {1}" ++msgstr "Erreur lors de l'analyse d'une variable du fichier '{0}' : {1}" ++ + #: dnf/crypto.py:108 + #, python-format + msgid "repo %s: 0x%s already imported" +@@ -3797,7 +3818,7 @@ msgstr "NON vérifié avec un enregistrement DNS." + msgid "retrieving repo key for %s unencrypted from %s" + msgstr "récupération de la clé de dépôt pour %s déchiffrée à partir de %s" + +-#: dnf/db/group.py:302 ++#: dnf/db/group.py:308 + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" +@@ -3805,16 +3826,16 @@ msgstr "" + "Aucune métadonnée de module disponible pour le paquet modulaire « {} », ne " + "peut pas être installé dans le système" + +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 + #, python-format + msgid "An rpm exception occurred: %s" + msgstr "Une exception rpm s'est produite : %s" + +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 + msgid "No available modular metadata for modular package" + msgstr "Aucune métadonnée de module disponible pour le paquet modulaire" + +-#: dnf/db/group.py:389 ++#: dnf/db/group.py:395 + #, python-format + msgid "Will not install a source rpm package (%s)." + msgstr "Un paquet source rpm ne sera pas installé (%s)." +@@ -3823,8 +3844,8 @@ msgstr "Un paquet source rpm ne sera pas installé (%s)." + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" + msgstr "" +-"L’option de configuration « gpgkey_dns_verification » nécessite " +-"python3-unbound({})" ++"L’option de configuration « gpgkey_dns_verification » nécessite python3-" ++"unbound({})" + + #: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " +@@ -3846,7 +3867,7 @@ msgstr "extension DNSSEC : " + msgid "Testing already imported keys for their validity." + msgstr "Test de validité des clefs déjà importées." + +-#: dnf/drpm.py:62 dnf/repo.py:267 ++#: dnf/drpm.py:62 dnf/repo.py:268 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "type de somme de contrôle non pris en charge : %s" +@@ -3899,10 +3920,12 @@ msgstr[1] "Problèmes de dépendance modulaire :" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "Fichier verrou malformé trouvé : %s.\n" +-"Assurez-vous qu’aucun autre processus {prog} n’est en cours d’exécution et supprimez le fichier verrou, ou exécutez systemd-tmpfiles --remove dnf.conf." ++"Assurez-vous qu’aucun autre processus dnf/yum n’est en cours d’exécution et " ++"supprimez le fichier verrou, ou exécutez systemd-tmpfiles --remove dnf.conf." + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3995,8 +4018,8 @@ msgstr "Profil inutile ignoré : {}/{}" + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" + msgstr "" +-"Toutes les correspondances pour le paramètre « {0} » dans le mode module « " +-"{1}:{2} » ne sont pas actives" ++"Toutes les correspondances pour le paramètre « {0} » dans le mode module " ++"« {1}:{2} » ne sont pas actives" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format +@@ -4018,8 +4041,7 @@ msgstr "Impossible de faire correspondre le profil pour l’argument {}" + + #: dnf/module/module_base.py:120 + msgid "No default profiles for module {}:{}. Available profiles: {}" +-msgstr "" +-"Aucun profil par défaut pour le module {}:{}. Profils disponibles : {}" ++msgstr "Aucun profil par défaut pour le module {}:{}. Profils disponibles : {}" + + #: dnf/module/module_base.py:124 + msgid "No profiles for module {}:{}" +@@ -4031,15 +4053,14 @@ msgstr "Le profil par défaut {} n’est pas disponible dans le module {} : {}" + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "" +-"L’installation du module à partir du dépôt Fail-Safe n’est pas permise" ++msgstr "L’installation du module à partir du dépôt Fail-Safe n’est pas permise" + + #: dnf/module/module_base.py:196 + #, python-brace-format + msgid "No active matches for argument '{0}' in module '{1}:{2}'" + msgstr "" +-"Aucune correspondance active pour le paramètre « {0} » dans le module « " +-"{1}:{2} »" ++"Aucune correspondance active pour le paramètre « {0} » dans le module « {1}:" ++"{2} »" + + #: dnf/module/module_base.py:228 + #, python-brace-format +@@ -4063,8 +4084,8 @@ msgstr "Impossible de résoudre le paramètre {}" + #, python-brace-format + msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" + msgstr "" +-"La mise à niveau du module « {0} » à partir du dépôt Fail-Safe {1} n’est pas" +-" permise" ++"La mise à niveau du module « {0} » à partir du dépôt Fail-Safe {1} n’est pas " ++"permise" + + #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 + msgid "Unable to match profile in argument {}" +@@ -4078,16 +4099,15 @@ msgstr "" + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" + "L'argument « {argument} » correspond à {stream_count} flux (« {streams} ») " + "du module « {module} », mais aucun des flux n'est activé ou par défaut" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "" + "Seul le nom du module est nécessaire. Les paramètres inutiles ont été " + "ignorés : « {} »" +@@ -4125,34 +4145,34 @@ msgstr "N’a pas pu déterminer l’heure du dernier makecache." + msgid "Parsing file failed: %s" + msgstr "La lecture du fichier a échoué : %s" + +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 + #, python-format + msgid "Loaded plugins: %s" + msgstr "Plugins chargés : %s" + +-#: dnf/plugin.py:211 ++#: dnf/plugin.py:216 + #, python-format + msgid "Failed loading plugin \"%s\": %s" + msgstr "Échec lors du chargement du module « %s » : %s" + +-#: dnf/plugin.py:243 ++#: dnf/plugin.py:248 + msgid "No matches found for the following enable plugin patterns: {}" + msgstr "" + "Aucun élément correspondant aux modèles de plugin d’activation suivants : {}" + +-#: dnf/plugin.py:247 ++#: dnf/plugin.py:252 + msgid "No matches found for the following disable plugin patterns: {}" + msgstr "" +-"Aucun élément correspondant aux modèles de plugin de désactivation suivants " +-": {}" ++"Aucun élément correspondant aux modèles de plugin de désactivation " ++"suivants : {}" + +-#: dnf/repo.py:84 ++#: dnf/repo.py:85 + #, python-format + msgid "no matching payload factory for %s" + msgstr "aucune fabrique de contenu ne correspond à %s" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "détermination du miroir le plus rapide (%s hôtes).. " +@@ -4196,8 +4216,8 @@ msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" + msgstr "" +-"allow_vendor_change est désactivé. Cette option n’est actuellement pas prise" +-" en charge pour les commandes downgrade et distro-sync" ++"allow_vendor_change est désactivé. Cette option n’est actuellement pas prise " ++"en charge pour les commandes downgrade et distro-sync" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4275,8 +4295,8 @@ msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." + msgstr "" +-"Version majeure incompatible « {major} », la version majeure prise en charge" +-" est « {major_supp} »." ++"Version majeure incompatible « {major} », la version majeure prise en charge " ++"est « {major_supp} »." + + #: dnf/transaction_sr.py:224 + msgid "" +@@ -4302,7 +4322,8 @@ msgstr "Clé objet « {key} » manquante dans un rpm." + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." + msgstr "" + "Valeur inattendue pour le paquet de raison « {reason} » pour le rpm nevra " + "« {nevra} »." +@@ -4339,7 +4360,8 @@ msgstr "" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." + msgstr "" + "Valeur inattendue pour l’action de paquet « {action} » pour le rpm nevra " + "« {nevra} »." +@@ -4355,16 +4377,17 @@ msgid "Missing object key \"{key}\" in groups.packages." + msgstr "Clé d’objet « {key} » manquante dans groups.packages." + + #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 ++#: dnf/transaction_sr.py:431 + #, python-format + msgid "Group id '%s' is not installed." + msgstr "ID de groupe « %s » non installé." + +-#: dnf/transaction_sr.py:432 ++#: dnf/transaction_sr.py:442 + #, python-format + msgid "Environment id '%s' is not available." + msgstr "ID d’environnement « %s » non disponible." + +-#: dnf/transaction_sr.py:456 ++#: dnf/transaction_sr.py:466 + #, python-brace-format + msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " +@@ -4373,40 +4396,42 @@ msgstr "" + "Valeur invalide « {group_type} » pour environments.groups.group_type, seuls " + "« mandatory » ou « optional » sont pris en charge." + +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "Clé d’objet « {key} » manquante dans environments.groups." + +-#: dnf/transaction_sr.py:542 ++#: dnf/transaction_sr.py:564 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." + msgstr "" + "Valeur inattendue pour l’action de groupe « {action} » pour le groupe " + "« {group} »." + +-#: dnf/transaction_sr.py:547 ++#: dnf/transaction_sr.py:569 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." + msgstr "Clé d’objet « {key} » manquante dans un groupe." + +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "" + "Valeur inattendue pour l’action d’environnement « {action} » pour " + "l’environnement « {env} »." + +-#: dnf/transaction_sr.py:576 ++#: dnf/transaction_sr.py:600 + #, python-brace-format + msgid "Missing object key \"{key}\" in an environment." + msgstr "Clé d’objet « {key} » manquante dans un environnement." + +-#: dnf/transaction_sr.py:615 ++#: dnf/transaction_sr.py:639 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." + msgstr "" + "Le paquet nevra « {nevra} », qui n’est pas présent dans le fichier de " + "transaction, a été retiré de la transaction." +@@ -4448,9 +4473,6 @@ msgstr "Échec" + msgid "" + msgstr "" + +-#~ msgid "Already downloaded" +-#~ msgstr "Déjà téléchargé" +- + #~ msgid "No Matches found" + #~ msgstr "Aucune correspondance trouvée" + +@@ -4458,15 +4480,18 @@ msgstr "" + #~ "Enable additional repositories. List option. Supports globs, can be " + #~ "specified multiple times." + #~ msgstr "" +-#~ "Active les dépôts additionnels. Option de liste. Prend en charge les globs, " +-#~ "peut être renseigné plusieurs fois." ++#~ "Active les dépôts additionnels. Option de liste. Prend en charge les " ++#~ "globs, peut être renseigné plusieurs fois." + + #~ msgid "" +-#~ "Disable repositories. List option. Supports globs, can be specified multiple" +-#~ " times." ++#~ "Disable repositories. List option. Supports globs, can be specified " ++#~ "multiple times." + #~ msgstr "" +-#~ "Désactive les dépôts. Option de liste. Prend en charge les globs, peut être " +-#~ "renseigné plusieurs fois." ++#~ "Désactive les dépôts. Option de liste. Prend en charge les globs, peut " ++#~ "être renseigné plusieurs fois." ++ ++#~ msgid "Already downloaded" ++#~ msgstr "Déjà téléchargé" + + #~ msgid "skipping." + #~ msgstr "ignorer." +@@ -4475,8 +4500,8 @@ msgstr "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." + #~ msgstr "" +-#~ "Utilisation de l’exécutable rpmkeys de {path} pour vérifier la signature du " +-#~ "paquet : {package}." ++#~ "Utilisation de l'exécutable rpmkeys de {path} pour vérifier la signature " ++#~ "du package : {package}." + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s : %s vérification a échoué : %s vs %s" +@@ -4491,7 +4516,7 @@ msgstr "" + #~ msgstr "L’identifiant de transaction fourni est introuvable" + + #~ msgid "Undoing transaction {}, from {}" +-#~ msgstr "Révocation de la transaction {}, de {}" ++#~ msgstr "Révocation de lla transaction {}, de {}" + + #~ msgid "Errors in \"{filename}\":" + #~ msgstr "Erreurs dans « {filename} » :" +@@ -4503,13 +4528,15 @@ msgstr "" + #~ msgstr "format d’affichage des paquets trouvés" + + #~ msgid "Available query-tags: use --queryformat \".. %{tag} ..\"" +-#~ msgstr "Balises de requêtes disponibles : utiliser --queryformat \"..%{tag}..\"" ++#~ msgstr "" ++#~ "Balises de requêtes disponibles : utiliser --queryformat \"..%{tag}..\"" + + #~ msgid "Bad transaction IDs, or package(s), given" + #~ msgstr "Des paquets ou identifiants de transaction fournis sont erronés" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." + #~ msgstr "" + #~ "Affiche les fonctionnalités dont le paquet dépend pour le lancement d’un " + #~ "script %%pre." +diff --git a/po/ja.po b/po/ja.po +index ab2051c5..585f7c19 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -14,7 +14,7 @@ + # Hajime Taira , 2017. #zanata + # Ooyama Yosiyuki , 2017. #zanata + # Casey Jones , 2018. #zanata +-# Ludek Janda , 2018. #zanata, 2021. ++# Ludek Janda , 2018. #zanata, 2021, 2022. + # Noriko Mizumoto , 2018. #zanata + # Ooyama Yosiyuki , 2018. #zanata + # Hajime Taira , 2019. #zanata +@@ -23,22 +23,23 @@ + # Casey Jones , 2020. + # Hajime Taira , 2020. + # Sundeep Anand , 2021. +-# Transtats , 2022. +-# Yuto Nishiwaki , 2022. ++# Transtats , 2022, 2023. ++# middlingphys , 2023. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-11 02:46+0000\n" +-"PO-Revision-Date: 2022-03-22 05:16+0000\n" +-"Last-Translator: Yuto Nishiwaki \n" +-"Language-Team: Japanese \n" ++"POT-Creation-Date: 2023-02-28 10:24+0100\n" ++"PO-Revision-Date: 2023-03-06 13:20+0000\n" ++"Last-Translator: Transtats \n" ++"Language-Team: Japanese \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.11.2\n" ++"X-Generator: Weblate 4.15.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -122,7 +123,7 @@ msgstr "システムはオフラインです。" + msgid "Error: %s" + msgstr "エラー: %s" + +-#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 ++#: dnf/base.py:150 dnf/base.py:484 dnf/base.py:486 + msgid "loading repo '{}' failure: {}" + msgstr "repo '{}' のロードに失敗しました: {}" + +@@ -130,236 +131,247 @@ msgstr "repo '{}' のロードに失敗しました: {}" + msgid "Loading repository '{}' has failed" + msgstr "repository '{}' のロードに失敗しました" + +-#: dnf/base.py:329 ++#: dnf/base.py:334 + msgid "Metadata timer caching disabled when running on metered connection." +-msgstr "metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" ++msgstr "" ++"metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" + +-#: dnf/base.py:334 ++#: dnf/base.py:339 + msgid "Metadata timer caching disabled when running on a battery." +-msgstr "バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" ++msgstr "" ++"バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" + +-#: dnf/base.py:339 ++#: dnf/base.py:344 + msgid "Metadata timer caching disabled." + msgstr "メタデータタイマーキャッシュは無効化されました。" + +-#: dnf/base.py:344 ++#: dnf/base.py:349 + msgid "Metadata cache refreshed recently." + msgstr "メタデータキャッシュは最近、リフレッシュされました。" + +-#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 ++#: dnf/base.py:355 dnf/cli/commands/__init__.py:91 + msgid "There are no enabled repositories in \"{}\"." + msgstr "\"{}\" には有効化されたリポジトリーがありません。" + +-#: dnf/base.py:357 ++#: dnf/base.py:362 + #, python-format + msgid "%s: will never be expired and will not be refreshed." + msgstr "%s: は期限切れになることはなく、リフレッシュされることもありません。" + +-#: dnf/base.py:359 ++#: dnf/base.py:364 + #, python-format + msgid "%s: has expired and will be refreshed." + msgstr "%s: は期限切れとなったのでリフレッシュされます。" + + #. expires within the checking period: +-#: dnf/base.py:363 ++#: dnf/base.py:368 + #, python-format + msgid "%s: metadata will expire after %d seconds and will be refreshed now" + msgstr "%s: メタデータは %d 秒後に期限切れとなり、すぐにリフレッシュされます" + +-#: dnf/base.py:367 ++#: dnf/base.py:372 + #, python-format + msgid "%s: will expire after %d seconds." + msgstr "%s: は %d 秒後に期限切れとなります。" + + #. performs the md sync +-#: dnf/base.py:373 ++#: dnf/base.py:378 + msgid "Metadata cache created." + msgstr "メタデータキャッシュを作成しました。" + +-#: dnf/base.py:406 dnf/base.py:473 ++#: dnf/base.py:411 dnf/base.py:478 + #, python-format + msgid "%s: using metadata from %s." + msgstr "%s: は %s から取得したメタデータを使用中。" + +-#: dnf/base.py:418 dnf/base.py:486 ++#: dnf/base.py:423 dnf/base.py:491 + #, python-format + msgid "Ignoring repositories: %s" + msgstr "リポジトリーを無視します: %s" + +-#: dnf/base.py:421 ++#: dnf/base.py:426 + #, python-format + msgid "Last metadata expiration check: %s ago on %s." +-msgstr "メタデータの期限切れの最終確認: %s 時間前の %s に実施しました。" ++msgstr "メタデータの期限切れの最終確認: %s 前の %s に実施しました。" + +-#: dnf/base.py:514 ++#: dnf/base.py:519 + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." +-msgstr "ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。" ++msgstr "" ++"ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保" ++"存されました。" + +-#: dnf/base.py:516 ++#: dnf/base.py:521 + #, python-format + msgid "You can remove cached packages by executing '%s'." + msgstr "'%s' を実行することでキャッシュパッケージを削除できます。" + +-#: dnf/base.py:648 ++#: dnf/base.py:653 + #, python-format + msgid "Invalid tsflag in config file: %s" + msgstr "設定ファイルの tsflag が無効です: %s" + +-#: dnf/base.py:706 ++#: dnf/base.py:711 + #, python-format + msgid "Failed to add groups file for repository: %s - %s" + msgstr "リポジトリーのグループファイルを追加できませんでした: %s - %s" + +-#: dnf/base.py:968 ++#: dnf/base.py:973 + msgid "Running transaction check" + msgstr "トランザクションの確認を実行中" + +-#: dnf/base.py:976 ++#: dnf/base.py:981 + msgid "Error: transaction check vs depsolve:" + msgstr "エラー: トランザクションの確認 vs depsolve:" + +-#: dnf/base.py:982 ++#: dnf/base.py:987 + msgid "Transaction check succeeded." + msgstr "トランザクションの確認に成功しました。" + +-#: dnf/base.py:985 ++#: dnf/base.py:990 + msgid "Running transaction test" + msgstr "トランザクションのテストを実行中" + +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 + msgid "RPM: {}" + msgstr "RPM: {}" + +-#: dnf/base.py:996 ++#: dnf/base.py:1001 + msgid "Transaction test error:" + msgstr "トランザクションテストエラー:" + +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 + msgid "Transaction test succeeded." + msgstr "トランザクションのテストに成功しました。" + +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 + msgid "Running transaction" + msgstr "トランザクションを実行中" + +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 + msgid "Disk Requirements:" + msgstr "ディスク要件:" + +-#: dnf/base.py:1068 ++#: dnf/base.py:1073 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "{1} ファイルシステムに最低 {0}MB の追加スペースが必要です。" + +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 + msgid "Error Summary" + msgstr "エラーの概要" + +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDBは {prog} のサポート外に変更されました。" + +-#: dnf/base.py:1147 dnf/base.py:1155 ++#: dnf/base.py:1152 dnf/base.py:1160 + msgid "Could not run transaction." + msgstr "トランザクションを実行できませんでした。" + +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 + msgid "Transaction couldn't start:" + msgstr "トランザクションを開始できませんでした:" + +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "トランザクションファイル %s の削除に失敗しました" + +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 + msgid "Some packages were not downloaded. Retrying." + msgstr "一部のパッケージはダウンロードされませんでした。再試行中です。" + +-#: dnf/base.py:1276 ++#: dnf/base.py:1281 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" +-msgstr "デルタ RPM は、更新の %.1f MB を %.1f MB に削減しました (%.1f%% 節約しました)。" ++msgstr "" ++"Delta RPM により %.1f MB の更新を %.1f MB に削減できました (%.1f%% 節約しまし" ++"た)" + +-#: dnf/base.py:1280 ++#: dnf/base.py:1285 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" +-msgstr "失敗した Delta RPMs は、更新の %.1f MB を %.1f MB に増加しました (%.1f%% は無駄になりました)" ++msgstr "" ++"非効率な Delta RPM により %.1f MB の更新が増大して %.1f MB となりました (%.1f" ++"%% が無駄になりました)" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 + msgid "Cannot add local packages, because transaction job already exists" +-msgstr "ローカルパッケージを追加できません、トランザクションジョブがすでに存在するためです" ++msgstr "" ++"ローカルパッケージを追加できません、トランザクションジョブがすでに存在するた" ++"めです" + +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 + msgid "Could not open: {}" + msgstr "開くことができませんでした: {}" + +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s の公開鍵がインストールされていません" + +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 + #, python-format + msgid "Problem opening package %s" + msgstr "パッケージ %s を開くことができません" + +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s の公開鍵は信頼されていません" + +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 + #, python-format + msgid "Package %s is not signed" + msgstr "パッケージ %s は署名されていません" + +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 + #, python-format + msgid "Cannot remove %s" + msgstr "%s を削除できません" + +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 + #, python-format + msgid "%s removed" + msgstr "%s を削除しました" + +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 + msgid "No match for group package \"{}\"" + msgstr "グループパッケージ \"{}\" に一致するものはありません" + +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "グループ '%s' からのパッケージを追加します: %s" + +-#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1814 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "行うべきことはありません。" + +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 + msgid "No groups marked for removal." + msgstr "削除対象のパッケージはありません。" + +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 + msgid "No group marked for upgrade." + msgstr "アップグレード対象のグループはありません。" + +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 + #, python-format + msgid "Package %s not installed, cannot downgrade it." +-msgstr "パッケージ %s はインストールされていないので、ダウングレードできません。" ++msgstr "" ++"パッケージ %s はインストールされていないので、ダウングレードできません。" + +-#: dnf/base.py:2077 dnf/base.py:2096 dnf/base.py:2109 dnf/base.py:2136 +-#: dnf/base.py:2206 dnf/base.py:2214 dnf/base.py:2348 dnf/cli/cli.py:417 ++#: dnf/base.py:2082 dnf/base.py:2101 dnf/base.py:2114 dnf/base.py:2145 ++#: dnf/base.py:2215 dnf/base.py:2223 dnf/base.py:2357 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -369,178 +381,196 @@ msgstr "パッケージ %s はインストールされていないので、ダ + msgid "No match for argument: %s" + msgstr "一致した引数がありません: %s" + +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." +-msgstr "下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" ++msgstr "" ++"下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできま" ++"せん。" + +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 + #, python-format + msgid "Package %s not installed, cannot reinstall it." +-msgstr "パッケージ %s はインストールされていないのでの、再インストールできません。" ++msgstr "" ++"パッケージ %s はインストールされていないのでの、再インストールできません。" + +-#: dnf/base.py:2122 ++#: dnf/base.py:2127 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "ファイル %s はソースパッケージで更新できません。無視します。" + +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "パッケージ %s はインストールされていないので、更新できません。" + +-#: dnf/base.py:2143 ++#: dnf/base.py:2152 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." +-msgstr "同じまたはさらに新しいバージョンの %s が既にインストールされています、アップデートできません。" ++msgstr "" ++"同じまたはさらに新しいバージョンの %s が既にインストールされています、アップ" ++"デートできません。" + +-#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2212 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "パッケージ %s は利用可能ですが、インストールされていません。" + +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 + #, python-format + msgid "Package %s available, but installed for different architecture." +-msgstr "パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされています。" ++msgstr "" ++"パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされてい" ++"ます。" + +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 + #, python-format + msgid "No package %s installed." + msgstr "パッケージ %s はインストールされていません。" + +-#: dnf/base.py:2252 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2261 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "有効な形式ではありません: %s" + +-#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2276 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "削除対象のパッケージはありません。" + +-#: dnf/base.py:2355 dnf/cli/cli.py:428 ++#: dnf/base.py:2364 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "引数 %s のパッケージは利用可能ですが、インストールされていません。" + +-#: dnf/base.py:2360 ++#: dnf/base.py:2369 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." +-msgstr "最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" ++msgstr "" ++"最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードでき" ++"ません。" + +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 + msgid "No security updates needed, but {} update available" + msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" + +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 + msgid "No security updates needed, but {} updates available" + msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" + +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" + +-#: dnf/base.py:2468 ++#: dnf/base.py:2477 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2489 ++#: dnf/base.py:2498 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "コマンドラインパッケージのキーを取得できません: %s" + +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 + #, python-format + msgid ". Failing package is: %s" + msgstr ". 失敗したパッケージは: %s" + +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG 鍵が設定されています: %s" + +-#: dnf/base.py:2510 ++#: dnf/base.py:2519 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "%s (0x%s) の GPG 鍵はインストール済みです" + +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 + msgid "The key has been approved." + msgstr "鍵が承認されました。" + +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 + msgid "The key has been rejected." + msgstr "鍵が拒否されました。" + +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 + #, python-format + msgid "Key import failed (code %d)" + msgstr "鍵のインポートに失敗しました (コード: %d)" + +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 + msgid "Key imported successfully" + msgstr "鍵のインポートに成功しました" + +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 + msgid "Didn't install any keys" + msgstr "鍵を 1 つもインストールしませんでした" + +-#: dnf/base.py:2591 ++#: dnf/base.py:2600 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" +-"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、このパッケージには適切ではありません。\n" ++"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、この" ++"パッケージには適切ではありません。\n" + "正しい鍵 URL がこのリポジトリー用に設定されているか確認してください。" + +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?" + +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 + msgid " * Maybe you meant: {}" + msgstr " * おそらく: {}" + +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" +-msgstr "ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" ++msgstr "" ++"ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありま" ++"せん" + +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 + msgid "Some packages from local repository have incorrect checksum" +-msgstr "ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" ++msgstr "" ++"ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" + +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" +-msgstr "リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" ++msgstr "" ++"リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" + +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" +-msgstr "いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプションによりダウンロードできません" ++msgstr "" ++"いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプ" ++"ションによりダウンロードできません" + +-#: dnf/base.py:2714 dnf/base.py:2734 ++#: dnf/base.py:2723 dnf/base.py:2743 + msgid "No match for argument" +-msgstr "一致した引数がありません" ++msgstr "引数に一致する結果がありません" + +-#: dnf/base.py:2722 dnf/base.py:2742 ++#: dnf/base.py:2731 dnf/base.py:2751 + msgid "All matches were filtered out by exclude filtering for argument" +-msgstr "すべての検索結果は引数の除外フィルタリングに一致しません (filter out)" ++msgstr "引数に一致する結果はすべて除外フィルタによって除外されました" + +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 + msgid "All matches were filtered out by modular filtering for argument" +-msgstr "すべての検出結果は引数のモジュラーフィルタリングに一致しません (filter out)" ++msgstr "引数に一致する結果はすべてモジュールのフィルタによって除外されました" + +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 + msgid "All matches were installed from a different repository for argument" +-msgstr "すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" ++msgstr "" ++"引数に一致する結果はすべて異なるリポジトリーからインストールされたものです" + +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 + #, python-format + msgid "Package %s is already installed." + msgstr "パッケージ %s は既にインストールされています。" +@@ -590,16 +620,24 @@ msgstr " ビルド : %s (日時: %s)" + msgid "" + "The operation would result in switching of module '{0}' stream '{1}' to " + "stream '{2}'" +-msgstr "オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと切り替える結果となります" ++msgstr "" ++"オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと" ++"切り替える結果となります" + + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" +-"設定オプション module_stream_switch から明示的に有効化されていない限り、モジュールの有効なストリームを切り替えることはできません。\n" +-"モジュールからインストールされた全てのコンテンツを削除し、'{prog} module reset ' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。" ++"設定オプション module_stream_switch から明示的に有効化されていない限り、モ" ++"ジュールの有効なストリームを切り替えることはできません。\n" ++"モジュールからインストールされた全てのコンテンツを削除し、'{prog} module " ++"reset ' コマンドを使用してリセットすることが推奨されます。モ" ++"ジュールのリセット後、他のストリームをインストール可能です。" + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -611,7 +649,9 @@ msgstr "{prog} はトランザクションでパッケージのダウンロー + msgid "" + "{prog} will only download packages, install gpg keys, and check the " + "transaction." +-msgstr "{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションのチェックのみ行います。" ++msgstr "" ++"{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションの" ++"チェックのみ行います。" + + #: dnf/cli/cli.py:219 + msgid "Operation aborted." +@@ -690,7 +730,9 @@ msgstr "表示するための一致したパッケージはありません" + msgid "" + "No matches found. If searching for a file, try specifying the full path or " + "using a wildcard prefix (\"*/\") at the beginning." +-msgstr "一致するものがありません。ファイルを検索している場合、絶対パスを指定するか文頭にワイルドカードプレフィックス(\"*/\")を使用してください。" ++msgstr "" ++"一致する項目はありませんでした。ファイルを検索する場合は、完全パスを指定する" ++"か、最初にワイルドカードの接頭辞 (「*/」) を使用してみてください。" + + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 + #, python-format +@@ -704,9 +746,11 @@ msgstr "一致するリポジトリーがありません: %s" + + #: dnf/cli/cli.py:721 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." +-msgstr "このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しなければいけません。" ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." ++msgstr "" ++"このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しな" ++"ければいけません。" + + #: dnf/cli/cli.py:751 + #, python-format +@@ -718,38 +762,43 @@ msgstr "そのようなコマンドはありません: %s. %s --help を使用 + msgid "" + "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" + "command(%s)'\"" +-msgstr "{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install 'dnf-command(%s)'\"" ++msgstr "" ++"{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install " ++"'dnf-command(%s)'\"" + + #: dnf/cli/cli.py:758 + #, python-brace-format + msgid "" + "It could be a {prog} plugin command, but loading of plugins is currently " + "disabled." +-msgstr "{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっているようです。" ++msgstr "" ++"{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっ" ++"ているようです。" + + #: dnf/cli/cli.py:816 + msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir または --downloaddir は、--downloadonly、download あるいは system-upgrade " +-"コマンドと共に使用する必要があります。" ++"--destdir または --downloaddir は、--downloadonly、download あるいは system-" ++"upgrade コマンドと共に使用する必要があります。" + + #: dnf/cli/cli.py:822 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable と --set-enabled および --disable と --set-disabled は、config-manager " +-"コマンドと共に使用しなければなりません。" ++"--enable と --set-enabled および --disable と --set-disabled は、config-" ++"manager コマンドと共に使用しなければなりません。" + + #: dnf/cli/cli.py:904 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" + msgstr "" +-"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバルに強制します " +-"(このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' を参照してください)" ++"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバ" ++"ルに強制します (このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' " ++"を参照してください)" + + #: dnf/cli/cli.py:924 + msgid "Config file \"{}\" does not exist" +@@ -759,7 +808,9 @@ msgstr "設定ファイル \"{}\" は存在しません" + msgid "" + "Unable to detect release version (use '--releasever' to specify release " + "version)" +-msgstr "リリースバージョンを検出できません (リリースバージョンを指定するには '--releasever' を使用してください)" ++msgstr "" ++"リリースバージョンを検出できません (リリースバージョンを指定するには '--" ++"releasever' を使用してください)" + + #: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 + msgid "argument {}: not allowed with argument {}" +@@ -794,13 +845,16 @@ msgstr "問題を診断するには実行してみてください: '%s'." + #: dnf/cli/commands/__init__.py:40 + #, python-format + msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." +-msgstr "RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる可能性があります。" ++msgstr "" ++"RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる" ++"可能性があります。" + + #: dnf/cli/commands/__init__.py:44 + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -819,11 +873,13 @@ msgstr "" + " rpm --import public.gpg.key\n" + "\n" + "\n" +-"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用し\n" ++"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用" ++"し\n" + "キーのurlを特定したのち、 {prog} がインストールされます。\n" + "\n" + "\n" +-"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトしてください。" ++"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトして" ++"ください。" + + #: dnf/cli/commands/__init__.py:71 + #, python-format +@@ -1058,7 +1114,8 @@ msgstr "一致するエイリアスがありません: %s" + #: dnf/cli/commands/autoremove.py:41 + msgid "" + "remove all unneeded packages that were originally installed as dependencies" +-msgstr "当初は依存関係としてインストールされた不要なパッケージをすべて削除します" ++msgstr "" ++"当初は依存関係としてインストールされた不要なパッケージをすべて削除します" + + #: dnf/cli/commands/autoremove.py:46 dnf/cli/commands/remove.py:59 + msgid "Package to remove" +@@ -1140,7 +1197,9 @@ msgstr "pid %d のプロセスが終了するのを待ちます。" + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "[非推奨、epoquery --deplist を使用] パッケージの依存関係とこれを提供するパッケージがどれかを一覧表示します" ++msgstr "" ++"[非推奨、epoquery --deplist を使用] パッケージの依存関係とこれを提供するパッ" ++"ケージがどれかを一覧表示します" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1246,21 +1305,27 @@ msgstr "store コマンドの場合は、トランザクションを保存する + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" +-msgstr "replay コマンドの場合は、トランザクション内のパッケージに一致するインストール済みパッケージを確認しない" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" ++msgstr "" ++"replay コマンドの場合は、トランザクション内のパッケージに一致するインストール" ++"済みパッケージを確認しない" + + #: dnf/cli/commands/history.py:71 + msgid "" + "For the replay command, don't check for extra packages pulled into the " + "transaction" +-msgstr "replay コマンドの場合は、トランザクションにプルされた追加パッケージを確認しない" ++msgstr "" ++"replay コマンドの場合は、トランザクションにプルされた追加パッケージを確認しな" ++"い" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" +-msgstr "replay コマンドの場合は、利用できないパッケージや、依存関係が不足しているパッケージをスキップ" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" ++msgstr "" ++"replay コマンドの場合は、利用できないパッケージや、依存関係が不足しているパッ" ++"ケージをスキップ" + + #: dnf/cli/commands/history.py:94 + msgid "" +@@ -1290,16 +1355,20 @@ msgstr "履歴 DB にアクセスできません: %s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." +-msgstr "トランザクション %s を取り消すことはできません。取り消すことで、パッケージデータベースに矛盾が生じます。" ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." ++msgstr "" ++"トランザクション %s を取り消すことはできません。取り消すことで、パッケージ" ++"データベースに矛盾が生じます。" + + #: dnf/cli/commands/history.py:156 + #, python-format + msgid "" + "Cannot rollback transaction %s, doing so would result in an inconsistent " + "package database." +-msgstr "トランザクション %s をロールバックすることはできません。ロールバックすることで、パッケージデータベースに矛盾が生じます。" ++msgstr "" ++"トランザクション %s をロールバックすることはできません。ロールバックすること" ++"で、パッケージデータベースに矛盾が生じます。" + + #: dnf/cli/commands/history.py:175 + msgid "No transaction ID given" +@@ -1400,7 +1469,9 @@ msgstr "すべてのメタデータファイルのキャッシュファイルを + + #: dnf/cli/commands/mark.py:39 + msgid "mark or unmark installed packages as installed by user." +-msgstr "インストール済みパッケージをユーザーがインストールしたとマークするか、またはマークをはずします。" ++msgstr "" ++"インストール済みパッケージをユーザーがインストールしたとマークするか、または" ++"マークをはずします。" + + #: dnf/cli/commands/mark.py:44 + msgid "" +@@ -1439,9 +1510,11 @@ msgstr "パッケージ %s はインストールされていません。" + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" +-msgstr "モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されています。引数: '{}' の不要な情報は無視します" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" ++msgstr "" ++"モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されて" ++"います。引数: '{}' の不要な情報は無視します" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1517,7 +1590,7 @@ msgstr "プロファイルコンテンツを表示します" + + #: dnf/cli/commands/module.py:379 + msgid "remove all modular packages" +-msgstr "すべてのモジュラーパッケージを削除" ++msgstr "モジュールに関連するすべてのパッケージを削除" + + #: dnf/cli/commands/module.py:389 + msgid "Module specification" +@@ -1712,7 +1785,9 @@ msgstr "キーワードに一致するパッケージを検索します" + msgid "" + "Query all packages (shorthand for repoquery '*' or repoquery without " + "argument)" +-msgstr "すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの repoquery)" ++msgstr "" ++"すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの " ++"repoquery)" + + #: dnf/cli/commands/repoquery.py:124 + msgid "Query all versions of packages (default)" +@@ -1731,14 +1806,12 @@ msgid "show only results that conflict REQ" + msgstr "REQ と競合する結果のみを表示します" + + #: dnf/cli/commands/repoquery.py:135 +-#, fuzzy +-#| msgid "" +-#| "shows results that requires, suggests, supplements, enhances,or recommends " +-#| "package provides and files REQ" + msgid "" + "shows results that requires, suggests, supplements, enhances, or recommends " + "package provides and files REQ" +-msgstr "REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推奨する結果を表示します" ++msgstr "" ++"REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推" ++"奨する結果を表示します" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1780,7 +1853,9 @@ msgstr "指定されたとおりに依存関係を確認します。--alldeps + msgid "" + "used with --whatrequires, and --requires --resolve, query packages " + "recursively." +-msgstr "--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的にクエリーします。" ++msgstr "" ++"--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的に" ++"クエリーします。" + + #: dnf/cli/commands/repoquery.py:166 + msgid "show a list of all dependencies and what packages provide them" +@@ -1802,7 +1877,9 @@ msgstr "対応するソース RPM で操作します" + msgid "" + "show N latest packages for a given name.arch (or latest but N if N is " + "negative)" +-msgstr "特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合は N 以外の最新のもの)" ++msgstr "" ++"特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合" ++"は N 以外の最新のもの)" + + #: dnf/cli/commands/repoquery.py:177 + msgid "list also packages of inactive module streams" +@@ -1827,11 +1904,11 @@ msgstr "パッケージの changelogs を表示します" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" + msgstr "" +-"パッケージを一覧表示するための形式の表示: \"%%{name} %%{version} ...\"。--querytags " +-"を指定して完全なタグリストを表示" ++"パッケージを一覧表示するための形式の表示: \"%%{name} %%{version} ...\"。--" ++"querytags を指定して完全なタグリストを表示" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1842,19 +1919,24 @@ msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" + msgstr "" +-"見つかったパッケージを表示するには name-epoch:version-release.architecture 形式を使用します (デフォルト)" ++"見つかったパッケージを表示するには name-epoch:version-release.architecture 形" ++"式を使用します (デフォルト)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "見つかったパッケージを表示するには name-version-release 形式を使用します (rpm クエリーデフォルト)" ++msgstr "" ++"見つかったパッケージを表示するには name-version-release 形式を使用します " ++"(rpm クエリーデフォルト)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" + "use epoch:name-version-release.architecture format for displaying found " + "packages" +-msgstr "見つかったパッケージを表示するには epoch:name-version-release.architecture 形式を使用します" ++msgstr "" ++"見つかったパッケージを表示するには epoch:name-version-release.architecture 形" ++"式を使用します" + + #: dnf/cli/commands/repoquery.py:214 + msgid "Display in which comps groups are presented selected packages" +@@ -1870,7 +1952,8 @@ msgstr "インストール済みの installonly パッケージへのクエリ + + #: dnf/cli/commands/repoquery.py:228 + msgid "limit the query to installed packages with unsatisfied dependencies" +-msgstr "未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" ++msgstr "" ++"未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" + + #: dnf/cli/commands/repoquery.py:230 + msgid "show a location from where packages can be downloaded" +@@ -1884,7 +1967,8 @@ msgstr "パッケージが競合する機能を表示します。" + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" ++msgstr "" ++"パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1909,9 +1993,10 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"このパッケージがインストールされていない場合、 %%pre と %%post " +-"スクリプトレット実行に依存するケイパビリティを表示します。このパッケージがインストールされている場合、 %%pre, %%post, %%preun と" +-" %%postun に依存するケイパビリティを表示します。" ++"このパッケージがインストールされていない場合、 %%pre と %%post スクリプトレッ" ++"ト実行に依存するケイパビリティを表示します。このパッケージがインストールされ" ++"ている場合、 %%pre, %%post, %%preun と %%postun に依存するケイパビリティを表" ++"示します。" + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1938,7 +2023,9 @@ msgstr "利用可能なリポジトリーに存在しないパッケージのみ + msgid "" + "Display only packages that provide an upgrade for some already installed " + "package." +-msgstr "インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを表示します。" ++msgstr "" ++"インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを" ++"表示します。" + + #: dnf/cli/commands/repoquery.py:256 + #, python-brace-format +@@ -1960,26 +2047,28 @@ msgstr "検索するための鍵" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--provides'、'--" +-"recommends'、'--requires'、'--requires-pre'、'--suggests' または '--supplements' " +-"オプションのいずれか 1 つと使用する必要があります" ++"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--" ++"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' また" ++"は '--supplements' オプションのいずれか 1 つと使用する必要があります" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--exactdeps' ではなく、'" +-"--alldeps' と共に使用) または '--requires --resolve' と共に使用する必要があります" ++"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--" ++"exactdeps' ではなく、'--alldeps' と共に使用) または '--requires --" ++"resolve' と共に使用する必要があります" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +-msgstr "引数 {} は --whatrequires または --whatdepends オプションを必要とします" ++msgstr "" ++"引数 {} は --whatrequires または --whatdepends オプションを必要とします" + + #: dnf/cli/commands/repoquery.py:344 + msgid "Package {} contains no files" +@@ -1989,16 +2078,20 @@ msgstr "パッケージ {} はファイルを含んでいません" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of the packages." + msgstr "" +-"正規のスイッチが指定されていません\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"有効なスイッチが指定されていません\n" ++"使用方法: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "説明:\n" +-" 与えられたパッケージではパッケージのツリーを表示します。" ++" 与えられたパッケージに対し、パッケージのツリーを出力します。" + + #: dnf/cli/commands/search.py:46 + msgid "search package details for the given string" +@@ -2035,8 +2128,7 @@ msgstr "説明" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2112,7 +2204,8 @@ msgid "" + " disable: disable repositories. option = repository id" + msgstr "" + "{} arg [オプション]\n" +-" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | glob]\n" ++" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | " ++"glob]\n" + " 有効化: リポジトリーの有効化。オプション = リポジトリー id\n" + " 無効化: リポジトリーの無効化。オプション = リポジトリー id" + +@@ -2170,7 +2263,8 @@ msgstr "" + "ヘルプ ヘルプの印刷\n" + "リポジトリー (または repo) リポジトリーの有効化、無効化、または一覧表示\n" + "resolvedep トランザクションセットの解決\n" +-"トランザクション (または ts) トランザクションセットの一覧表示、再設定、または実行\n" ++"トランザクション (または ts) トランザクションセットの一覧表示、再設定、" ++"または実行\n" + "実行 トランザクションセットの解決および実行\n" + "終了 (または 中止) シェルの終了" + +@@ -2190,7 +2284,9 @@ msgstr "シェルを終了します" + #: dnf/cli/commands/swap.py:35 + #, python-brace-format + msgid "run an interactive {prog} mod for remove and install one spec" +-msgstr "一つのspecを削除またはインストールするためインタラクティブ {prog} モジュールを実行" ++msgstr "" ++"一つのspecを削除またはインストールするためインタラクティブ {prog} モジュール" ++"を実行" + + #: dnf/cli/commands/swap.py:40 + msgid "The specs that will be removed" +@@ -2214,7 +2310,7 @@ msgstr "セキュリティー" + + #: dnf/cli/commands/updateinfo.py:48 + msgid "newpackage" +-msgstr "newpackage" ++msgstr "新しいパッケージ" + + #: dnf/cli/commands/updateinfo.py:50 + msgid "Critical/Sec." +@@ -2242,13 +2338,16 @@ msgstr "インストール済みパッケージの新しいバージョンに関 + + #: dnf/cli/commands/updateinfo.py:80 + msgid "advisories about equal and older versions of installed packages" +-msgstr "インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" ++msgstr "" ++"インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" + + #: dnf/cli/commands/updateinfo.py:83 + msgid "" + "advisories about newer versions of those installed packages for which a " + "newer version is available" +-msgstr "最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する勧告" ++msgstr "" ++"最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する" ++"勧告" + + #: dnf/cli/commands/updateinfo.py:87 + msgid "advisories about any versions of installed packages" +@@ -2389,7 +2488,8 @@ msgstr "正" + + #: dnf/cli/commands/upgrade.py:40 + msgid "upgrade a package or packages on your system" +-msgstr "システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" ++msgstr "" ++"システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" + + #: dnf/cli/commands/upgrade.py:44 + msgid "Package to upgrade" +@@ -2399,7 +2499,9 @@ msgstr "アップグレードするパッケージ" + msgid "" + "upgrade, but only 'newest' package match which fixes a problem that affects " + "your system" +-msgstr "システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします" ++msgstr "" ++"システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアッ" ++"プグレードします" + + #: dnf/cli/main.py:88 + msgid "Terminated." +@@ -2411,23 +2513,29 @@ msgstr "現在のディレクトリーには読み取り/実行権限があり + + #: dnf/cli/main.py:135 + msgid "try to add '{}' to command line to replace conflicting packages" +-msgstr "競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてください" ++msgstr "" ++"競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてくだ" ++"さい" + + #: dnf/cli/main.py:139 + msgid "try to add '{}' to skip uninstallable packages" +-msgstr "インストール不可のパッケージをスキップするには、'{}' を追加してみてください" ++msgstr "" ++"インストール不可のパッケージをスキップするには、'{}' を追加してみてください" + + #: dnf/cli/main.py:142 + msgid " or '{}' to skip uninstallable packages" +-msgstr " または、'{}' を追加して、インストール不可のパッケージをスキップしてください" ++msgstr "" ++" または、'{}' を追加して、インストール不可のパッケージをスキップしてください" + + #: dnf/cli/main.py:147 + msgid "try to add '{}' to use not only best candidate packages" +-msgstr "最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" ++msgstr "" ++"最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" + + #: dnf/cli/main.py:150 + msgid " or '{}' to use not only best candidate packages" +-msgstr " または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" ++msgstr "" ++" または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" + + #: dnf/cli/main.py:167 + msgid "Dependencies resolved." +@@ -2519,7 +2627,9 @@ msgstr "依存関係を解決するために、インストール済みパッケ + + #: dnf/cli/option_parser.py:221 + msgid "try the best available package versions in transactions." +-msgstr "トランザクションにおいて利用可能な最適なパッケージバージョンを試してください。" ++msgstr "" ++"トランザクションにおいて利用可能な最適なパッケージバージョンを試してくださ" ++"い。" + + #: dnf/cli/option_parser.py:223 + msgid "do not limit the transaction to the best candidate" +@@ -2555,8 +2665,8 @@ msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" +-"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを表示するため、 {prog} " +-"の旧プロセスロジックを有効化" ++"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを" ++"表示するため、 {prog} の旧プロセスロジックを有効化" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2576,6 +2686,9 @@ msgid "" + "Accepts an id, a comma-separated list of ids, or a glob of ids. This option " + "can be specified multiple times." + msgstr "" ++"現在の dnf コマンドを機能させるため、リポジトリーを一時的に有効にします。ID、" ++"コンマ区切りの ID 一覧、または ID の glob を使用できます。このオプションは複" ++"数回指定できます。" + + #: dnf/cli/option_parser.py:268 + msgid "" +@@ -2584,12 +2697,17 @@ msgid "" + "This option can be specified multiple times, but is mutually exclusive with " + "`--repo`." + msgstr "" ++"現在の dnf コマンドを機能させるため、アクティブなリポジトリーを一時的に無効に" ++"します。ID、コンマ区切りの ID 一覧、または ID の glob を受け入れます。このオ" ++"プションは複数回指定できますが、'-repo' と同時には使用できません。" + + #: dnf/cli/option_parser.py:275 + msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" +-msgstr "id または glob により特定のリポジトリーだけを有効にします。複数回指定することが可能です" ++msgstr "" ++"id または glob により特定のリポジトリーだけを有効にします。複数回指定すること" ++"が可能です" + + #: dnf/cli/option_parser.py:280 + msgid "enable repos with config-manager command (automatically saves)" +@@ -2611,7 +2729,9 @@ msgstr "excludepkgs を無効にします" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能です。" ++msgstr "" ++"利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能で" ++"す。" + + #: dnf/cli/option_parser.py:302 + msgid "disable removal of dependencies that are no longer used" +@@ -2659,7 +2779,7 @@ msgstr "機能拡張関連パッケージを更新に含めます" + + #: dnf/cli/option_parser.py:333 + msgid "Include newpackage relevant packages, in updates" +-msgstr "newpackage の関連パッケージを更新に含めます" ++msgstr "新しいパッケージの関連パッケージを更新に含めます" + + #: dnf/cli/option_parser.py:336 + msgid "Include security relevant packages, in updates" +@@ -3308,7 +3428,7 @@ msgstr "失敗しました:" + + #: dnf/cli/output.py:1764 dnf/cli/output.py:1766 + msgid "Releasever :" +-msgstr "Releasever :" ++msgstr "リリースバージョン :" + + #: dnf/cli/output.py:1771 dnf/cli/output.py:1773 + msgid "Command Line :" +@@ -3316,7 +3436,7 @@ msgstr "コマンドライン :" + + #: dnf/cli/output.py:1778 dnf/cli/output.py:1780 + msgid "Comment :" +-msgstr "コメント :" ++msgstr "コメント :" + + #: dnf/cli/output.py:1784 + msgid "Transaction performed with:" +@@ -3336,7 +3456,7 @@ msgstr "エラー:" + + #: dnf/cli/output.py:1815 + msgid "Dep-Install" +-msgstr "Dep-Install" ++msgstr "依存先インストール" + + #: dnf/cli/output.py:1816 + msgid "Obsoleted" +@@ -3484,7 +3604,8 @@ msgstr "モジュールまたはグループ '%s' は存在しません。" + msgid "Environment id '%s' does not exist." + msgstr "環境 id '%s' は存在しません。" + +-#: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 ++#: dnf/comps.py:622 dnf/transaction_sr.py:487 dnf/transaction_sr.py:497 ++#: dnf/transaction_sr.py:507 + #, python-format + msgid "Environment id '%s' is not installed." + msgstr "環境 id '%s' はインストールされていません。" +@@ -3516,7 +3637,7 @@ msgstr "正しくない設定値: %s=%s in %s; %s" + + #: dnf/conf/config.py:194 + msgid "Cannot set \"{}\" to \"{}\": {}" +-msgstr "\"{}\" を \"{}\": {} に設定できません。" ++msgstr "\"{}\" を \"{}\": {} に設定できません" + + #: dnf/conf/config.py:244 + msgid "Could not set cachedir: {}" +@@ -3566,11 +3687,11 @@ msgstr "警告: '%s' のロードに失敗、スキップします。" + + #: dnf/conf/read.py:72 + msgid "Bad id for repo: {} ({}), byte = {} {}" +-msgstr "repo: {} ({}) に正しくないid、 byte = {} {}" ++msgstr "repo の id が不正: {} ({}), byte = {} {}" + + #: dnf/conf/read.py:76 + msgid "Bad id for repo: {}, byte = {} {}" +-msgstr "repo: {} に正しくないid、byte = {} {}" ++msgstr "repo の id が不正: {}, byte = {} {}" + + #: dnf/conf/read.py:84 + msgid "Repository '{}' ({}): Error parsing config: {}" +@@ -3592,6 +3713,11 @@ msgstr "レポジトリ '{}' idを使用した設定内に見つかりません + msgid "Parsing file \"{}\" failed: {}" + msgstr "ファイル \"{}\" の解析に失敗しました: {}" + ++#: dnf/conf/substitutions.py:66 ++#, python-brace-format ++msgid "Error when parsing a variable from file '{0}': {1}" ++msgstr "ファイル '{0}' の変数解析エラー: {1}" ++ + #: dnf/crypto.py:108 + #, python-format + msgid "repo %s: 0x%s already imported" +@@ -3615,22 +3741,24 @@ msgstr "DNS レコードを使用して検証されませんでした。" + msgid "retrieving repo key for %s unencrypted from %s" + msgstr "%s から暗号化されていない %s の repo キーを取得しています" + +-#: dnf/db/group.py:302 ++#: dnf/db/group.py:308 + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" +-msgstr "モジュラーパッケージ '{}' のモジュラーメタデータは利用不可です、システムにインストールはできません" ++msgstr "" ++"モジュールのパッケージ '{}' のモジュールメタデータが利用不可です、システムに" ++"インストールできません" + +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 + #, python-format + msgid "An rpm exception occurred: %s" + msgstr "rpm 例外が発生しました: %s" + +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 + msgid "No available modular metadata for modular package" +-msgstr "モジュラーパッケージ のモジュラーメタデータは利用不可です" ++msgstr "モジュールのパッケージのモジュールメタデータが利用不可です" + +-#: dnf/db/group.py:389 ++#: dnf/db/group.py:395 + #, python-format + msgid "Will not install a source rpm package (%s)." + msgstr "ソース rpm パッケージ (%s) をインストールしません。" +@@ -3638,7 +3766,8 @@ msgstr "ソース rpm パッケージ (%s) をインストールしません。" + #: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" +-msgstr "設定オプション 'gpgkey_dns_verification' は python3-unbound ({}) が必要です" ++msgstr "" ++"設定オプション 'gpgkey_dns_verification' は python3-unbound ({}) が必要です" + + #: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " +@@ -3660,7 +3789,7 @@ msgstr "DNSSEC 拡張: " + msgid "Testing already imported keys for their validity." + msgstr "すでにインポートされた鍵の有効性をテストします。" + +-#: dnf/drpm.py:62 dnf/repo.py:267 ++#: dnf/drpm.py:62 dnf/repo.py:268 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "サポートされていないチェックサム形式: %s" +@@ -3700,21 +3829,23 @@ msgstr "破損したグループまたはモジュール: " + #: dnf/exceptions.py:126 + msgid "Modular dependency problem with Defaults:" + msgid_plural "Modular dependency problems with Defaults:" +-msgstr[0] "デフォルトのモジュラー依存問題:" ++msgstr[0] "モジュールのデフォルトの依存関係問題:" + + #: dnf/exceptions.py:131 dnf/module/module_base.py:857 + msgid "Modular dependency problem:" + msgid_plural "Modular dependency problems:" +-msgstr[0] "モジュラーの依存に関する問題:" ++msgstr[0] "モジュールの依存関係問題:" + + #: dnf/lock.py:100 + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "不正な形式のロックファイル: %s 。\n" +-"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除するかsystemd-tmpfiles --remove dnf.conf を実行してください。" ++"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除" ++"するかsystemd-tmpfiles --remove dnf.conf を実行してください。" + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3726,7 +3857,8 @@ msgstr "表示するものがありません。" + + #: dnf/module/__init__.py:28 + msgid "Installing newer version of '{}' than specified. Reason: {}" +-msgstr "指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" ++msgstr "" ++"指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" + + #: dnf/module/__init__.py:29 + msgid "Enabled modules: {}." +@@ -3734,7 +3866,8 @@ msgstr "有効なモジュール: {}." + + #: dnf/module/__init__.py:30 + msgid "No profile specified for '{}', please specify profile." +-msgstr "'{}' に指定したプロファイルはありません。プロファイルを指定してください。" ++msgstr "" ++"'{}' に指定したプロファイルはありません。プロファイルを指定してください。" + + #: dnf/module/exceptions.py:27 + msgid "No such module: {}" +@@ -3770,7 +3903,8 @@ msgstr "'{}' に指定したストリームはありません。ストリーム + + #: dnf/module/exceptions.py:82 + msgid "No such profile: {}. No profiles available" +-msgstr "次のようなプロファイルはありません: {}。利用できるプロファイルはありません" ++msgstr "" ++"次のようなプロファイルはありません: {}。利用できるプロファイルはありません" + + #: dnf/module/exceptions.py:88 + msgid "No profile to remove for '{}'" +@@ -3804,25 +3938,31 @@ msgstr "不要なプロファイルを無視します: '{}/{}'" + #: dnf/module/module_base.py:86 + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" +-msgstr "モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" ++msgstr "" ++"モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format + msgid "Installing module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可され" ++"ていません" + + #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 + msgid "" + "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" +-msgstr "引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" ++msgstr "" ++"引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" + + #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 + msgid "Unable to match profile for argument {}" +-msgstr "引数 {} でプロファイルが見つかりません" ++msgstr "引数 {} に一致するプロファイルが見つかりません" + + #: dnf/module/module_base.py:120 + msgid "No default profiles for module {}:{}. Available profiles: {}" +-msgstr "モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイル: {}" ++msgstr "" ++"モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイ" ++"ル: {}" + + #: dnf/module/module_base.py:124 + msgid "No profiles for module {}:{}" +@@ -3834,7 +3974,8 @@ msgstr "デフォルトのプロファイル {} はモジュール {}:{} で利 + + #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 + msgid "Installing module from Fail-Safe repository is not allowed" +-msgstr "フェイルセーフレポジトリーからのモジュールインストールは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリーからのモジュールインストールは許可されていません" + + #: dnf/module/module_base.py:196 + #, python-brace-format +@@ -3844,7 +3985,9 @@ msgstr "モジュール '{1}:{2}' の引数 '{0}' には、アクティブな一 + #: dnf/module/module_base.py:228 + #, python-brace-format + msgid "Installed profile '{0}' is not available in module '{1}' stream '{2}'" +-msgstr "インストールされたプロファイル '{0}' は、モジュール '{1}' ストリーム '{2}' では利用できません" ++msgstr "" ++"インストールされたプロファイル '{0}' は、モジュール '{1}' ストリーム '{2}' で" ++"は利用できません" + + #: dnf/module/module_base.py:267 + msgid "No packages available to distrosync for package name '{}'" +@@ -3860,7 +4003,9 @@ msgstr "引数 {} を解決できません" + #: dnf/module/module_base.py:321 + #, python-brace-format + msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" +-msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' アップグレードは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリー {1} からのモジュール '{0}' アップグレードは許可さ" ++"れていません" + + #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 + msgid "Unable to match profile in argument {}" +@@ -3868,21 +4013,22 @@ msgstr "引数 {} でプロファイルを一致できません" + + #: dnf/module/module_base.py:348 + msgid "Upgrading module from Fail-Safe repository is not allowed" +-msgstr "フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" ++msgstr "" ++"フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" + + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" +-"引数 '{argument}' は、モジュール '{module}' の {stream_count} ストリーム ('{streams}' " +-"と一致しますが、有効化されている、あるいはデフォルトのストリームはありません" ++"引数 '{argument}' は、モジュール '{module}' の {stream_count} ストリーム " ++"('{streams}' と一致しますが、有効化されている、あるいはデフォルトのストリーム" ++"はありません" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "モジュール名のみが必要です。引数で不必要な情報を無視します: '{}'" + + #: dnf/module/module_base.py:844 +@@ -3918,31 +4064,31 @@ msgstr "最後の makecache 時間の決定に失敗しました。" + msgid "Parsing file failed: %s" + msgstr "ファイルの解析に失敗しました: %s" + +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 + #, python-format + msgid "Loaded plugins: %s" + msgstr "ロードされたプラグイン: %s" + +-#: dnf/plugin.py:211 ++#: dnf/plugin.py:216 + #, python-format + msgid "Failed loading plugin \"%s\": %s" + msgstr "plugin \"%s\" のロードに失敗しました: %s" + +-#: dnf/plugin.py:243 ++#: dnf/plugin.py:248 + msgid "No matches found for the following enable plugin patterns: {}" + msgstr "以下有効プラグインパターンが見つかりません: {}" + +-#: dnf/plugin.py:247 ++#: dnf/plugin.py:252 + msgid "No matches found for the following disable plugin patterns: {}" + msgstr "以下無効プラグインパターンが見つかりません: {}" + +-#: dnf/repo.py:84 ++#: dnf/repo.py:85 + #, python-format + msgid "no matching payload factory for %s" + msgstr "%s と一致するペイロードファクトリーはありません" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "最速のミラーを確定しています (%s hosts).. " +@@ -3968,7 +4114,7 @@ msgstr "署名を検証する rpmkeys 実行ファイルが見つかりません + + #: dnf/rpm/transaction.py:70 + msgid "The openDB() function cannot open rpm database." +-msgstr "" ++msgstr "openDB() 関数は rpm データベースを開けません。" + + #: dnf/rpm/transaction.py:75 + msgid "The dbCookie() function did not return cookie of rpm database." +@@ -3983,8 +4129,8 @@ msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" + msgstr "" +-"allow_vendor_change は無効になっています。このオプションは、downgrade コマンドおよび distro-sync " +-"コマンドではサポートされていません" ++"allow_vendor_change は無効になっています。このオプションは、downgrade コマン" ++"ドおよび distro-sync コマンドではサポートされていません" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4037,7 +4183,9 @@ msgstr "準備" + msgid "" + "The following problems occurred while replaying the transaction from file " + "\"{filename}\":" +-msgstr "ファイル \"{filename}\" からのトランザクションの再生中に以下の問題が発生しました:" ++msgstr "" ++"ファイル \"{filename}\" からのトランザクションの再生中に以下の問題が発生しま" ++"した:" + + #: dnf/transaction_sr.py:68 + msgid "The following problems occurred while running a transaction:" +@@ -4058,7 +4206,9 @@ msgstr "無効なマイナーバージョン \"{minor}\"。数字が必要です + msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." +-msgstr "互換性のないメジャーバージョン \"{major}\"。サポートされているメジャーバージョンは \"{major_supp}\" です。" ++msgstr "" ++"互換性のないメジャーバージョン \"{major}\"。サポートされているメジャーバー" ++"ジョンは \"{major_supp}\" です。" + + #: dnf/transaction_sr.py:224 + msgid "" +@@ -4082,7 +4232,8 @@ msgstr "オブジェクトキー \"{key}\" が rpm にありません。" + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." + msgstr "rpm nevra \"{nevra}\" の予期しないパッケージ理由 \"{reason}\" の値。" + + #: dnf/transaction_sr.py:297 +@@ -4098,24 +4249,32 @@ msgstr "rpm nevra \"{nevra}\" を見つけることはできません。" + #: dnf/transaction_sr.py:336 + #, python-brace-format + msgid "Package \"{na}\" is already installed for action \"{action}\"." +-msgstr "パッケージ \"{na}\" は、アクション \"{action}\" 用に既にインストールされています。" ++msgstr "" ++"パッケージ \"{na}\" は、アクション \"{action}\" 用に既にインストールされてい" ++"ます。" + + #: dnf/transaction_sr.py:345 + #, python-brace-format + msgid "" + "Package nevra \"{nevra}\" not available in repositories for action " + "\"{action}\"." +-msgstr "アクション \"{action}\" に利用できる パッケージ nevra \"{nevra}\" はレポジトリーにありません。" ++msgstr "" ++"アクション \"{action}\" に利用できる パッケージ nevra \"{nevra}\" はレポジト" ++"リーにありません。" + + #: dnf/transaction_sr.py:356 + #, python-brace-format + msgid "Package nevra \"{nevra}\" not installed for action \"{action}\"." +-msgstr "アクション \"{action}\" には、パッケージ nevra \"{nevra}\" インストールされていません。" ++msgstr "" ++"アクション \"{action}\" には、パッケージ nevra \"{nevra}\" インストールされて" ++"いません。" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\" の、パッケージアクション \"{action}\" の予期しない値。" ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgstr "" ++"rpm nevra \"{nevra}\" の、パッケージアクション \"{action}\" の予期しない値。" + + #: dnf/transaction_sr.py:377 + #, python-format +@@ -4128,55 +4287,61 @@ msgid "Missing object key \"{key}\" in groups.packages." + msgstr "オブジェクトキー \"{key}\" が groups.packages に含まれません。" + + #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 ++#: dnf/transaction_sr.py:431 + #, python-format + msgid "Group id '%s' is not installed." + msgstr "グループ id '%s' がインストールされていません。" + +-#: dnf/transaction_sr.py:432 ++#: dnf/transaction_sr.py:442 + #, python-format + msgid "Environment id '%s' is not available." + msgstr "環境 id '%s' は利用できません。" + +-#: dnf/transaction_sr.py:456 ++#: dnf/transaction_sr.py:466 + #, python-brace-format + msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." + msgstr "" +-"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" または " +-"\"optional\" のみに対応しています。" ++"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" ま" ++"たは \"optional\" のみに対応しています。" + +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "オブジェクトキー \"{key}\" が environments.groups に含まれません。" + +-#: dnf/transaction_sr.py:542 ++#: dnf/transaction_sr.py:564 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." +-msgstr "グループ \"{group}\" の グループアクション \"{action}\" の予期しない値。" ++msgstr "" ++"グループ \"{group}\" の グループアクション \"{action}\" の予期しない値。" + +-#: dnf/transaction_sr.py:547 ++#: dnf/transaction_sr.py:569 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." + msgstr "オブジェクトキー \"{key}\" がグループ内にありません。" + +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "環境 \"{env}\" の環境アクション \"{action}\" の予期しない値。" + +-#: dnf/transaction_sr.py:576 ++#: dnf/transaction_sr.py:600 + #, python-brace-format + msgid "Missing object key \"{key}\" in an environment." + msgstr "オブジェクトキー \"{key}\" が環境にありません。" + +-#: dnf/transaction_sr.py:615 ++#: dnf/transaction_sr.py:639 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." +-msgstr "トランザクションファイルに存在しないパッケージ nevra \"{nevra}\" がトランザクションにプルされていました。" ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." ++msgstr "" ++"トランザクションファイルに存在しないパッケージ nevra \"{nevra}\" がトランザク" ++"ションにプルされていました。" + + # translation auto-copied from project jbpm-designer, version 6.0.1, document + # org.jbpm/jbpm-designer- +@@ -4219,25 +4384,36 @@ msgstr "失敗しました" + msgid "" + msgstr "" + +-#~ msgid "Already downloaded" +-#~ msgstr "ダウンロード済み" +- + #~ msgid "No Matches found" + #~ msgstr "一致したものは見つかりませんでした" + + #~ msgid "" + #~ "Enable additional repositories. List option. Supports globs, can be " + #~ "specified multiple times." +-#~ msgstr "追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能です。" ++#~ msgstr "" ++#~ "追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定" ++#~ "可能です。" + + #~ msgid "" +-#~ "Disable repositories. List option. Supports globs, can be specified multiple" +-#~ " times." +-#~ msgstr "追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能です。" ++#~ "Disable repositories. List option. Supports globs, can be specified " ++#~ "multiple times." ++#~ msgstr "" ++#~ "追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定" ++#~ "可能です。" ++ ++#~ msgid "Already downloaded" ++#~ msgstr "ダウンロード済み" + + #~ msgid "skipping." + #~ msgstr "スキップします。" + ++#~ msgid "" ++#~ "Using rpmkeys executable from {path} to verify signature for package: " ++#~ "{package}." ++#~ msgstr "" ++#~ "{path} から実行可能ファイル rpmkeys を使用して、パッケージの署名を検証しま" ++#~ "す: {package}。" ++ + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s の確認に失敗しました: %s vs %s" + +@@ -4263,5 +4439,7 @@ msgstr "" + #~ msgstr "不正なトランザクション ID、またはパッケージが指定されました" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." +-#~ msgstr "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." ++#~ msgstr "" ++#~ "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" +diff --git a/po/ko.po b/po/ko.po +index d94530ab..758b9832 100644 +--- a/po/ko.po ++++ b/po/ko.po +@@ -1,23 +1,24 @@ + # MinWoo Joh , 2015. #zanata + # Eun-Ju Kim , 2016. #zanata + # Ludek Janda , 2018. #zanata, 2020. +-# simmon , 2021, 2022. ++# simmon , 2021. + # Kim InSoo , 2022. +-# 김인수 , 2022. ++# 김인수 , 2022, 2023. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-11 02:46+0000\n" +-"PO-Revision-Date: 2022-05-25 10:18+0000\n" ++"POT-Creation-Date: 2023-02-28 10:24+0100\n" ++"PO-Revision-Date: 2023-03-03 22:20+0000\n" + "Last-Translator: 김인수 \n" +-"Language-Team: Korean \n" ++"Language-Team: Korean \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.12.2\n" ++"X-Generator: Weblate 4.15.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -101,7 +102,7 @@ msgstr "네트웍 끊김." + msgid "Error: %s" + msgstr "오류: %s" + +-#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 ++#: dnf/base.py:150 dnf/base.py:484 dnf/base.py:486 + msgid "loading repo '{}' failure: {}" + msgstr "repo '{}'의 적재에 실패했습니다 : {}" + +@@ -109,236 +110,238 @@ msgstr "repo '{}'의 적재에 실패했습니다 : {}" + msgid "Loading repository '{}' has failed" + msgstr "저장소 '{}'의 적재하기가 실패했습니다" + +-#: dnf/base.py:329 ++#: dnf/base.py:334 + msgid "Metadata timer caching disabled when running on metered connection." +-msgstr "데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." ++msgstr "" ++"데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." + +-#: dnf/base.py:334 ++#: dnf/base.py:339 + msgid "Metadata timer caching disabled when running on a battery." + msgstr "배터리에서 동작 할 때에 메타자료 타이머 캐싱을 비활성화합니다." + +-#: dnf/base.py:339 ++#: dnf/base.py:344 + msgid "Metadata timer caching disabled." + msgstr "메타자료 타이머 캐싱이 비활성화되었습니다." + +-#: dnf/base.py:344 ++#: dnf/base.py:349 + msgid "Metadata cache refreshed recently." + msgstr "최근에 메타 자료 캐쉬가 새로 고쳐졌습니다." + +-#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 ++#: dnf/base.py:355 dnf/cli/commands/__init__.py:91 + msgid "There are no enabled repositories in \"{}\"." + msgstr "\"{}\"에 사용 가능한 저장소가 없습니다." + +-#: dnf/base.py:357 ++#: dnf/base.py:362 + #, python-format + msgid "%s: will never be expired and will not be refreshed." + msgstr "%s: 만료되지 않고 새로 고침되지 않습니다." + +-#: dnf/base.py:359 ++#: dnf/base.py:364 + #, python-format + msgid "%s: has expired and will be refreshed." + msgstr "%s: 만료되어 새로 고침됩니다." + + #. expires within the checking period: +-#: dnf/base.py:363 ++#: dnf/base.py:368 + #, python-format + msgid "%s: metadata will expire after %d seconds and will be refreshed now" + msgstr "%s: 메타 데이터는 %d 초 이후에 만료되며 이제 새로 고침됩니다" + +-#: dnf/base.py:367 ++#: dnf/base.py:372 + #, python-format + msgid "%s: will expire after %d seconds." + msgstr "%s: %d 초 후에 만료됩니다." + + #. performs the md sync +-#: dnf/base.py:373 ++#: dnf/base.py:378 + msgid "Metadata cache created." + msgstr "메타 자료 캐쉬가 생성되었습니다." + +-#: dnf/base.py:406 dnf/base.py:473 ++#: dnf/base.py:411 dnf/base.py:478 + #, python-format + msgid "%s: using metadata from %s." + msgstr "%s: 메타 자료 사용 중 %s." + +-#: dnf/base.py:418 dnf/base.py:486 ++#: dnf/base.py:423 dnf/base.py:491 + #, python-format + msgid "Ignoring repositories: %s" + msgstr "저장소를 무시합니다: %s" + +-#: dnf/base.py:421 ++#: dnf/base.py:426 + #, python-format + msgid "Last metadata expiration check: %s ago on %s." +-msgstr "마지막 메타자료 만료확인 %s 이전인: %s." ++msgstr "마지막 메타자료 만료확인(%s 이전): %s." + +-#: dnf/base.py:514 ++#: dnf/base.py:519 + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." + msgstr "내려받기된 꾸러미는 다음 번 성공적인 연결까지 캐쉬에 저장됩니다." + +-#: dnf/base.py:516 ++#: dnf/base.py:521 + #, python-format + msgid "You can remove cached packages by executing '%s'." + msgstr "'%s' 를 실행하여 캐쉬 꾸러미를 삭제 할 수 있습니다." + +-#: dnf/base.py:648 ++#: dnf/base.py:653 + #, python-format + msgid "Invalid tsflag in config file: %s" + msgstr "설정 파일에서 tsflag 사용이 잘못되었습니다: %s" + +-#: dnf/base.py:706 ++#: dnf/base.py:711 + #, python-format + msgid "Failed to add groups file for repository: %s - %s" + msgstr "리포지토리의 그룹 파일을 추가하지 못했습니다. %s - %s" + +-#: dnf/base.py:968 ++#: dnf/base.py:973 + msgid "Running transaction check" + msgstr "연결 확인 실행 중" + +-#: dnf/base.py:976 ++#: dnf/base.py:981 + msgid "Error: transaction check vs depsolve:" + msgstr "오류: 연결 확인 및 종속성 해결 오류:" + +-#: dnf/base.py:982 ++#: dnf/base.py:987 + msgid "Transaction check succeeded." + msgstr "연결 확인에 성공했습니다." + +-#: dnf/base.py:985 ++#: dnf/base.py:990 + msgid "Running transaction test" + msgstr "연결 시험 실행 중" + +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 + msgid "RPM: {}" + msgstr "RPM: {}" + +-#: dnf/base.py:996 ++#: dnf/base.py:1001 + msgid "Transaction test error:" + msgstr "연결 시험 오류:" + +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 + msgid "Transaction test succeeded." + msgstr "연결 시험에 성공했습니다." + +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 + msgid "Running transaction" + msgstr "연결 실행 중" + +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 + msgid "Disk Requirements:" + msgstr "디스크 요구 사항 :" + +-#: dnf/base.py:1068 ++#: dnf/base.py:1073 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "{1} 파일 시스템에 최소 {0}MB의 공간이 더 필요합니다." + +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 + msgid "Error Summary" + msgstr "오류 요약" + +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB는 {prog} 외부에서 변경되었습니다." + +-#: dnf/base.py:1147 dnf/base.py:1155 ++#: dnf/base.py:1152 dnf/base.py:1160 + msgid "Could not run transaction." + msgstr "연결를 실행 할 수 없습니다." + +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 + msgid "Transaction couldn't start:" + msgstr "연결을 시작 할 수 없습니다 :" + +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "%s 연결 파일을 삭제하지 못했습니다" + +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 + msgid "Some packages were not downloaded. Retrying." + msgstr "일부 꾸러미를 내려받지 못했습니다. 다시 시도합니다." + +-#: dnf/base.py:1276 ++#: dnf/base.py:1281 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "델타 RPM은 %.1f MB의 최신화를 %.1f MB으로 줄였습니다.(%.1f%% 절약됨)" + +-#: dnf/base.py:1280 ++#: dnf/base.py:1285 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" +-msgstr "Delta RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% 낭비됨)" ++msgstr "" ++"델타 RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% 낭비됨)" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "연결 작업이 이미 존재하므로 로컬 꾸러미를 추가할 수 없습니다" + +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 + msgid "Could not open: {}" + msgstr "열 수 없음 : {}" + +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s의 공개 키는 설치되어 있지 않습니다" + +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 + #, python-format + msgid "Problem opening package %s" + msgstr "%s 꾸러미를 여는 중에 문제가 발생했습니다" + +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s의 공개 키는 신뢰 할 수 없습니다" + +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 + #, python-format + msgid "Package %s is not signed" + msgstr "%s 꾸러미가 서명되지 않았습니다" + +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 + #, python-format + msgid "Cannot remove %s" + msgstr "%s를 삭제 할 수 없습니다" + +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 + #, python-format + msgid "%s removed" + msgstr "%s가 삭제되었습니다" + +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 + msgid "No match for group package \"{}\"" + msgstr "그룹 꾸러미 \"{}\"에 일치하는 항목이 없습니다" + +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "'%s' 그룹에서 꾸러미 추가: %s" + +-#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1814 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "처리가 필요하지 않습니다." + +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 + msgid "No groups marked for removal." + msgstr "제거할 꾸러미 그룹이 없습니다." + +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 + msgid "No group marked for upgrade." + msgstr "향상을 위해 표시된 그룹이 없습니다." + +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 수 없습니다." + +-#: dnf/base.py:2077 dnf/base.py:2096 dnf/base.py:2109 dnf/base.py:2136 +-#: dnf/base.py:2206 dnf/base.py:2214 dnf/base.py:2348 dnf/cli/cli.py:417 ++#: dnf/base.py:2082 dnf/base.py:2101 dnf/base.py:2114 dnf/base.py:2145 ++#: dnf/base.py:2215 dnf/base.py:2223 dnf/base.py:2357 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -348,178 +351,182 @@ msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 + msgid "No match for argument: %s" + msgstr "인수가 일치하지 않습니다: %s" + +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." +-msgstr "%s 꾸러미의 하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." ++msgstr "하위 버전의 꾸러미 %s가 이미 설치되어 있어서, 버전을 내릴 수 없습니다." + +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "꾸러미 %s가 설치되지 않아서, 다시 설치 할 수 없습니다." + +-#: dnf/base.py:2122 ++#: dnf/base.py:2127 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." +-msgstr "%s 파일은 소스 꾸러미이며 최신화 할 수 없습니다. 무시합니다." ++msgstr "파일 %s는 원천 꾸러미이며 최신화 할 수 없고, 무시합니다." + +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 최신화 할 수 없습니다." + +-#: dnf/base.py:2143 ++#: dnf/base.py:2152 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "%s 이상의 버전이 이미 설치되어 있으므로 최신화 할 수 없습니다." + +-#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2212 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "%s 꾸러미는 사용할 수는 있지만 설치되어 있지 않습니다." + +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "%s 꾸러미는 사용 가능하지만 다른 구조용으로 설치되어 있습니다." + +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 + #, python-format + msgid "No package %s installed." + msgstr "%s 꾸러미는 설치되어 있지 않습니다." + +-#: dnf/base.py:2252 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2261 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "잘못된 형식: %s" + +-#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2276 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "제거 대상 꾸러미가 없습니다." + +-#: dnf/base.py:2355 dnf/cli/cli.py:428 ++#: dnf/base.py:2364 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "%s 인수에 대한 꾸러미를 사용할 수 있지만 설치되어 있지 않습니다." + +-#: dnf/base.py:2360 ++#: dnf/base.py:2369 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." +-msgstr "%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." ++msgstr "" ++"%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로, 버전을 내릴 수 없습니다." + +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 + msgid "No security updates needed, but {} update available" + msgstr "보안 최신화가 필요하지 않지만, {} 최신화가 가능합니다" + +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 + msgid "No security updates needed, but {} updates available" + msgstr "보안 최신화는 필요하지 않지만 {} 최신화는 가능합니다" + +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" + +-#: dnf/base.py:2468 ++#: dnf/base.py:2477 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2489 ++#: dnf/base.py:2498 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "명령줄 꾸러미: %s 대한 키를 검색 할 수 없습니다" + +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 + #, python-format + msgid ". Failing package is: %s" + msgstr "실패한 꾸러미는 다음과 같습니다. %s" + +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG 키는 다음과 같이 설정되어 있습니다. %s" + +-#: dnf/base.py:2510 ++#: dnf/base.py:2519 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "%s (0x%s)의 GPG 키가 이미 설치되어 있습니다" + +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 + msgid "The key has been approved." + msgstr "키가 승인되었습니다." + +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 + msgid "The key has been rejected." + msgstr "키가 거부되었습니다." + +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 + #, python-format + msgid "Key import failed (code %d)" + msgstr "키 가져 오기에 실패했습니다 (코드 %d)" + +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 + msgid "Key imported successfully" + msgstr "키 가져오기에 성공했습니다" + +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 + msgid "Didn't install any keys" +-msgstr "키를 하나도 설치하지 못했습니다" ++msgstr "키를 설치하지 않았습니다" + +-#: dnf/base.py:2591 ++#: dnf/base.py:2600 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" + "해당 GPG 키는 \"%s\"저장소가 이미 설치되어 있지만이 꾸러미에 맞지 않습니다.\n" + "이 저장소에 대해 올바른 키 URL이 구성되었는지 확인하십시오." + +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "가져온 키에 문제가 있습니다. 잘못된 키입니까?" + +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 + msgid " * Maybe you meant: {}" + msgstr " * 다음을 의미 할 수도 있습니다: {}" + +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "로컬 저장소 \"{}\"의 \"{}\"꾸러미에 잘못된 체크섬이 있습니다" + +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 + msgid "Some packages from local repository have incorrect checksum" + msgstr "로컬 저장소의 일부 꾸러미에 잘못된 체크섬이 있습니다" + +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "저장소 \"{}\"의 꾸러미 \"{}\"에 잘못된 체크섬이 있습니다" + +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" +-msgstr "일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려받기 할 수 없습니다" ++msgstr "" ++"일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려" ++"받기 할 수 없습니다" + +-#: dnf/base.py:2714 dnf/base.py:2734 ++#: dnf/base.py:2723 dnf/base.py:2743 + msgid "No match for argument" + msgstr "일치하는 인수가 없습니다" + +-#: dnf/base.py:2722 dnf/base.py:2742 ++#: dnf/base.py:2731 dnf/base.py:2751 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "모든 일치 항목이 인수의 제외 필터로 필터링되었습니다" + +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "모든 일치 항목이 인수의 모듈식 필터로 필터링되었습니다" + +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 + msgid "All matches were installed from a different repository for argument" + msgstr "모든 일치 항목이 인수의 다른 리포지토리에서 설치되었습니다" + +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 + #, python-format + msgid "Package %s is already installed." + msgstr "꾸러미 %s가 이미 설치되어 있습니다." +@@ -574,23 +581,29 @@ msgstr "이 작업은 '{0}' 모듈을 '{1}' 스트림에서 ‘{2}' 스트림으 + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" +-"구성 옵션 module_stream_switch를 통해 명시적으로 활성화하지 않는 한 활성화된 모듈 스트림을 전환 할 수 없습니다.\n" +-"설치된 모든 내용을 모듈에서 제거하고 ‘{prog} module reset ' 명령을 사용하여 모듈을 재설정하는 것이 좋습니다. 모듈을 재설정한 후 다른 스트림을 설치 할 수 있습니다." ++"구성 옵션 module_stream_switch를 통해 명시적으로 활성화하지 않는 한 활성화된 " ++"모듈 스트림을 전환 할 수 없습니다.\n" ++"설치된 모든 내용을 모듈에서 제거하고 ‘{prog} module reset ' 명령" ++"을 사용하여 모듈을 재설정하는 것이 좋습니다. 모듈을 재설정한 후 다른 스트림" ++"을 설치 할 수 있습니다." + + #: dnf/cli/cli.py:212 + #, python-brace-format + msgid "{prog} will only download packages for the transaction." +-msgstr "{prog}은/는 연결용 꾸러미만 내려받기합니다." ++msgstr "{prog}는 연결을 위해 꾸러미만 내려받기 합니다." + + #: dnf/cli/cli.py:215 + #, python-brace-format + msgid "" + "{prog} will only download packages, install gpg keys, and check the " + "transaction." +-msgstr "{prog}은/는 꾸러미만 내려받기하고 gpg 키를 설치하며 연결을 확인합니다." ++msgstr "{prog}는 꾸러미만 내려받기 하고, gpg 키를 설치하며 연결을 확인합니다." + + #: dnf/cli/cli.py:219 + msgid "Operation aborted." +@@ -647,7 +660,7 @@ msgstr "사용 가능한 꾸러미" + + #: dnf/cli/cli.py:497 + msgid "Autoremove Packages" +-msgstr "꾸러미 자동 삭제" ++msgstr "꾸러미 자동제거" + + # ctx::sourcefile::Systems Navigation Menu + #: dnf/cli/cli.py:499 +@@ -671,8 +684,8 @@ msgid "" + "No matches found. If searching for a file, try specifying the full path or " + "using a wildcard prefix (\"*/\") at the beginning." + msgstr "" +-"일치되는 점을 찾지 못했습니다. 만약 파일을 위해 검색하고자 한다면, 전체 경로를 지정 하거나 시작에서 와일드카드 접두사(\"*/\")를" +-" 사용하여 시도하세요." ++"일치되는 점을 찾지 못했습니다. 만약 파일을 위해 검색하고자 한다면, 전체 경로" ++"를 지정 하거나 시작에서 와일드카드 접두사 (\"*/\")를 사용하여 시도하세요." + + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 + #, python-format +@@ -686,9 +699,11 @@ msgstr "일치하는 저장소가 없습니다 : %s" + + #: dnf/cli/cli.py:721 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." +-msgstr "이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자로 실행)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." ++msgstr "" ++"이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자" ++"로 실행)." + + #: dnf/cli/cli.py:751 + #, python-format +@@ -707,31 +722,33 @@ msgstr "{PROG} 플러그인 명령일 수 있습니다: \"{prog} 'dnf-command(%s + msgid "" + "It could be a {prog} plugin command, but loading of plugins is currently " + "disabled." +-msgstr "{prog} 플러그인 명령일 수 있지만 플러그인 로딩은 현재 비활성화되어 있습니다." ++msgstr "" ++"{prog} 플러그인 명령일 수 있지만, 플러그인의 적재는 현재 비활성화되어 있습니" ++"다." + + #: dnf/cli/cli.py:816 + msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-upgrade 명령과" +-" 함께 사용해야합니다." ++"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-" ++"upgrade 명령과 함께 사용해야합니다." + + #: dnf/cli/cli.py:822 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 함께 " +-"사용해야합니다." ++"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 " ++"함께 사용해야합니다." + + #: dnf/cli/cli.py:904 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" + msgstr "" +-"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 (이 메시지를 제거하는 방법은 dnf.conf (5)의" +-" 'gpgcheck' 참조)" ++"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 " ++"(이 메시지를 제거하는 방법은 dnf.conf (5)의 'gpgcheck' 참조)" + + #: dnf/cli/cli.py:924 + msgid "Config file \"{}\" does not exist" +@@ -741,16 +758,18 @@ msgstr "설정 파일 \"{}\" 이 존재하지 않습니다" + msgid "" + "Unable to detect release version (use '--releasever' to specify release " + "version)" +-msgstr "출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십시오)" ++msgstr "" ++"출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십" ++"시오)" + + #: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 + msgid "argument {}: not allowed with argument {}" +-msgstr "인수 {}: 인수 {}과 함께 사용할 수 없습니다" ++msgstr "인수 {}: 인수 {}를 허용하지 않음" + + #: dnf/cli/cli.py:1025 + #, python-format + msgid "Command \"%s\" already defined" +-msgstr "\"%s\" 명령이 이미 정의되어 있습니다" ++msgstr "명령 \"%s\"가 이미 정의되었습니다" + + #: dnf/cli/cli.py:1045 + msgid "Excludes in dnf.conf: " +@@ -776,13 +795,15 @@ msgstr "문제를 진단하려면 다음을 실행하십시오. '%s'." + #: dnf/cli/commands/__init__.py:40 + #, python-format + msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." +-msgstr "RPMDB가 손상되었을 수 있습니다 '%s'를 실행하여 문제를 해결할 수 있습니다." ++msgstr "" ++"RPMDB가 손상되었을 수 있습니다 '%s'를 실행하여 문제를 해결할 수 있습니다." + + #: dnf/cli/commands/__init__.py:44 + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -831,7 +852,7 @@ msgstr "설치된 꾸러미만 보여주기" + + #: dnf/cli/commands/__init__.py:177 dnf/cli/commands/__init__.py:744 + msgid "show only extras packages" +-msgstr "엑스트라 꾸러미만 표시" ++msgstr "추가 꾸러미만 표시" + + #: dnf/cli/commands/__init__.py:180 dnf/cli/commands/__init__.py:183 + #: dnf/cli/commands/__init__.py:747 dnf/cli/commands/__init__.py:750 +@@ -840,7 +861,7 @@ msgstr "향상 꾸러미만 표시" + + #: dnf/cli/commands/__init__.py:186 dnf/cli/commands/__init__.py:753 + msgid "show only autoremove packages" +-msgstr "자동 삭제 꾸러미만 표시" ++msgstr "자동제거 꾸러미만 표시" + + #: dnf/cli/commands/__init__.py:189 dnf/cli/commands/__init__.py:756 + msgid "show only recently changed packages" +@@ -871,7 +892,7 @@ msgstr "PROVIDE" + + #: dnf/cli/commands/__init__.py:240 + msgid "Provide specification to search for" +-msgstr "검색할 사양 제공" ++msgstr "검색 할 사양 제공" + + #: dnf/cli/commands/__init__.py:249 dnf/cli/commands/search.py:159 + msgid "Searching Packages: " +@@ -888,11 +909,11 @@ msgstr "최신화 전에 변경기록 표시" + #: dnf/cli/commands/__init__.py:356 dnf/cli/commands/__init__.py:409 + #: dnf/cli/commands/__init__.py:465 + msgid "No package available." +-msgstr "사용할 수 있는 꾸러미가 없습니다." ++msgstr "사용 할 수 있는 꾸러미가 없습니다." + + #: dnf/cli/commands/__init__.py:371 + msgid "No packages marked for install." +-msgstr "설치용으로 표시된 꾸러미 없습니다." ++msgstr "설치를 위해 표시된 꾸러미가 없습니다." + + #: dnf/cli/commands/__init__.py:407 + msgid "No package installed." +@@ -1044,7 +1065,7 @@ msgstr "종속성으로 설치된 불필요한 꾸러미를 모두 제거합니 + + #: dnf/cli/commands/autoremove.py:46 dnf/cli/commands/remove.py:59 + msgid "Package to remove" +-msgstr "제거할 꾸러미" ++msgstr "제거 할 꾸러미" + + #: dnf/cli/commands/check.py:34 + msgid "check for problems in the packagedb" +@@ -1097,11 +1118,11 @@ msgstr "캐쉬된 자료 제거" + + #: dnf/cli/commands/clean.py:93 + msgid "Metadata type to clean" +-msgstr "메타 데이터 지우기" ++msgstr "정리하려는 메타자료 유형" + + #: dnf/cli/commands/clean.py:105 + msgid "Cleaning data: " +-msgstr "데이터 정리 중: " ++msgstr "자료 정리 중: " + + #: dnf/cli/commands/clean.py:111 + msgid "Cache was expired" +@@ -1122,7 +1143,9 @@ msgstr "PID %d 프로세스가 종료되기를 기다리고 있습니다." + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "[더 이상 사용되지 않음, repoquery --deplist 사용] 꾸러미의 종속성과 이를 제공하는 꾸러미 목록 나열" ++msgstr "" ++"[더 이상 사용되지 않음, repoquery --deplist 사용] 꾸러미의 종속성과 이를 제공" ++"하는 꾸러미 목록 나열" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1130,7 +1153,7 @@ msgstr "설치된 꾸러미를 사용 가능한 최신 버전으로 동기화합 + + #: dnf/cli/commands/distrosync.py:36 + msgid "Package to synchronize" +-msgstr "동기화할 꾸러미" ++msgstr "동기화 하려는 꾸러미" + + #: dnf/cli/commands/downgrade.py:34 + msgid "Downgrade a package" +@@ -1146,7 +1169,7 @@ msgstr "그룹 정보를 표시하거나 사용합니다" + + #: dnf/cli/commands/group.py:72 + msgid "No group data available for configured repositories." +-msgstr "설정된 리포지토리에 사용할 수있는 그룹 데이터가 없습니다." ++msgstr "구성된 저정소에 사용 할 수있는 그룹 자료가 없습니다." + + #: dnf/cli/commands/group.py:126 + #, python-format +@@ -1228,9 +1251,10 @@ msgstr "저장 명령을 위해, 트랜젝션을 저장할 파일 경로" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" +-msgstr "재생명령을 위하여, 연결에 그것들과 일치하는 설치된 꾸러미를 확인하지 마세요" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" ++msgstr "" ++"재생명령을 위하여, 연결에 그것들과 일치하는 설치된 꾸러미를 확인하지 마세요" + + #: dnf/cli/commands/history.py:71 + msgid "" +@@ -1240,9 +1264,11 @@ msgstr "응답 명령을 위하여, 연결에 추가 된 꾸러미를 확인하 + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" +-msgstr "지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건너띄기" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" ++msgstr "" ++"지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건" ++"너 뛰기" + + #: dnf/cli/commands/history.py:94 + msgid "" +@@ -1254,7 +1280,7 @@ msgstr "" + + #: dnf/cli/commands/history.py:101 + msgid "No transaction file name given." +-msgstr "제공된 트랜젝션 파일 이름이 없습니다." ++msgstr "제공된 연결 파일 이름이 없습니다." + + #: dnf/cli/commands/history.py:103 + msgid "More than one argument given as transaction file name." +@@ -1267,21 +1293,25 @@ msgstr "연결 ID 또는 꾸러미 이름이 없습니다." + #: dnf/cli/commands/history.py:142 + #, python-format + msgid "You don't have access to the history DB: %s" +-msgstr "기록 DB에 액세스할 수 없습니다: %s" ++msgstr "기록 DB에 접근 할 수 없습니다: %s" + + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." +-msgstr "%s 연결을 취소 할 수 없습니다. 취소하면 꾸러미 자료 저장소가 일치하지 않게 됩니다." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." ++msgstr "" ++"%s 연결을 취소 할 수 없습니다. 취소하면 꾸러미 자료 저장소가 일치하지 않게 됩" ++"니다." + + #: dnf/cli/commands/history.py:156 + #, python-format + msgid "" + "Cannot rollback transaction %s, doing so would result in an inconsistent " + "package database." +-msgstr "%s 연결을 되돌릴 수 없습니다. 이렇게 하면 꾸러미 데이타베이스가 일치하지 않게 됩니다." ++msgstr "" ++"%s 연결을 되돌릴 수 없습니다. 이렇게 하면 꾸러미 데이타베이스가 일치하지 않" ++"게 됩니다." + + #: dnf/cli/commands/history.py:175 + msgid "No transaction ID given" +@@ -1290,7 +1320,7 @@ msgstr "지정된 연결 ID가 없습니다" + #: dnf/cli/commands/history.py:179 + #, python-brace-format + msgid "Transaction ID \"{0}\" not found." +-msgstr "Transaction ID \"{0}\" 를 찾을 수 없음." ++msgstr "연결 ID \"{0}\" 를 찾을 수 없음." + + #: dnf/cli/commands/history.py:185 + msgid "Found more than one transaction ID!" +@@ -1323,7 +1353,7 @@ msgid "" + "Can't convert '{}' to transaction ID.\n" + "Use '', 'last', 'last-'." + msgstr "" +-"'{}'을 (를) 연결 ID로 변환 할 수 없습니다.\n" ++"'{}'를 연결 ID로 변환 할 수 없습니다.\n" + "'', 'last', 'last-' 사용." + + #: dnf/cli/commands/history.py:323 +@@ -1340,7 +1370,7 @@ msgstr "존재하기 때문에, {} 덮어 쓸 수 없습니다." + + #: dnf/cli/commands/history.py:378 + msgid "Transaction saved to {}." +-msgstr "연결이 {}에 저장되었습니다." ++msgstr "연결이 {}로 저장되었습니다." + + #: dnf/cli/commands/history.py:381 + msgid "Error storing transaction: {}" +@@ -1356,7 +1386,7 @@ msgstr "시스템에 꾸러미를 설치합니다" + + #: dnf/cli/commands/install.py:53 + msgid "Package to install" +-msgstr "설치할 꾸러미" ++msgstr "설치 하려는 꾸러미" + + #: dnf/cli/commands/install.py:118 + msgid "Unable to find a match" +@@ -1397,12 +1427,12 @@ msgstr "" + #: dnf/cli/commands/mark.py:52 + #, python-format + msgid "%s marked as user installed." +-msgstr "%s은사용자가 설치한 것으로 표시." ++msgstr "%s는 사용자가 설치한 것으로 표시." + + #: dnf/cli/commands/mark.py:56 + #, python-format + msgid "%s unmarked as user installed." +-msgstr "%s은/는 사용자가 설치한 것으로 표시되지 않았습니다." ++msgstr "%s는 사용자가 설치한 것으로 표시되지 않았습니다." + + #: dnf/cli/commands/mark.py:60 + #, python-format +@@ -1421,9 +1451,11 @@ msgstr "꾸러미 %s가 설치되지 않았습니다." + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" +-msgstr "모듈 이름, 스트림, 구조 또는 프로파일만 사용됩니다. '{}'인수에서 불필요한 정보는 무시하십시오" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" ++msgstr "" ++"모듈 이름, 스트림, 구조 또는 프로파일만 사용됩니다. 인수에서 불필요한 정보는 " ++"무시하세요: '{}'" + + #: dnf/cli/commands/module.py:80 + msgid "list all module streams, profiles and states" +@@ -1431,7 +1463,7 @@ msgstr "모든 모듈 스트림, 프로파일 및 상태 나열" + + #: dnf/cli/commands/module.py:108 dnf/cli/commands/module.py:131 + msgid "No matching Modules to list" +-msgstr "일치하는 모듈을 나열할 수 없습니다" ++msgstr "일치하는 모듈을 나열 할 수 없습니다" + + #: dnf/cli/commands/module.py:114 + msgid "print detailed information about a module" +@@ -1531,11 +1563,11 @@ msgstr "오래된 설치 전용 꾸러미 제거" + + #: dnf/cli/commands/remove.py:95 + msgid "No duplicated packages found for removal." +-msgstr "제거할 중복 꾸러미가 없습니다." ++msgstr "제거하려는 중복된 꾸러미가 없습니다." + + #: dnf/cli/commands/remove.py:127 + msgid "No old installonly packages found for removal." +-msgstr "제거할 오래된 설치 전용 꾸러미가 없습니다." ++msgstr "제거하려는 오래된 설치전용 꾸러미가 없습니다." + + #: dnf/cli/commands/repolist.py:38 dnf/cli/commands/updateinfo.py:47 + #: dnf/cli/commands/updateinfo.py:318 dnf/cli/commands/updateinfo.py:364 +@@ -1545,37 +1577,37 @@ msgstr "알 수 없음" + #: dnf/cli/commands/repolist.py:40 + #, python-format + msgid "Never (last: %s)" +-msgstr "없음 (가장 최근: %s )" ++msgstr "없음 (최근: %s )" + + #: dnf/cli/commands/repolist.py:42 + #, python-format + msgid "Instant (last: %s)" +-msgstr "인스턴트 (가장 최근: %s )" ++msgstr "즉시 (최근: %s )" + + #: dnf/cli/commands/repolist.py:45 + #, python-format + msgid "%s second(s) (last: %s)" +-msgstr "%s 초 (가장 최근: %s )" ++msgstr "%s 초 (최근: %s )" + + #: dnf/cli/commands/repolist.py:76 + msgid "display the configured software repositories" +-msgstr "구성된 소프트웨어 리포지토리를 표시" ++msgstr "구성된 소프트웨어 저장소를 표시" + + #: dnf/cli/commands/repolist.py:83 + msgid "show all repos" +-msgstr "모든 리포지토리를 표시" ++msgstr "모든 저장소를 표시" + + #: dnf/cli/commands/repolist.py:86 + msgid "show enabled repos (default)" +-msgstr "활성화된 리포지토리를 표시 (기본값)" ++msgstr "활성화된 저장소를 표시 (기본값)" + + #: dnf/cli/commands/repolist.py:89 + msgid "show disabled repos" +-msgstr "비활성화된 리포지토리를 표시" ++msgstr "비활성화된 저장소를 표시" + + #: dnf/cli/commands/repolist.py:93 + msgid "Repository specification" +-msgstr "리포지토리 사양" ++msgstr "저장소 사양" + + #: dnf/cli/commands/repolist.py:125 + msgid "No repositories available" +@@ -1587,91 +1619,91 @@ msgstr "사용" + + #: dnf/cli/commands/repolist.py:151 dnf/cli/commands/repolist.py:152 + msgid "disabled" +-msgstr "사용 안함" ++msgstr "비활성화됨" + + #: dnf/cli/commands/repolist.py:162 + msgid "Repo-id : " +-msgstr "Repo-id : " ++msgstr "저장소-id : " + + #: dnf/cli/commands/repolist.py:163 + msgid "Repo-name : " +-msgstr "Repo-name : " ++msgstr "저장소-이름 : " + + #: dnf/cli/commands/repolist.py:166 + msgid "Repo-status : " +-msgstr "Repo-status : " ++msgstr "저장소-상태 : " + + #: dnf/cli/commands/repolist.py:169 + msgid "Repo-revision : " +-msgstr "Repo-revision : " ++msgstr "저장소-정정 : " + + #: dnf/cli/commands/repolist.py:173 + msgid "Repo-tags : " +-msgstr "Repo-tags : " ++msgstr "저장소-꼬리표 : " + + #: dnf/cli/commands/repolist.py:180 + msgid "Repo-distro-tags : " +-msgstr "Repo-distro-tags : " ++msgstr "저장소-배포-꼬리표 : " + + #: dnf/cli/commands/repolist.py:192 + msgid "Repo-updated : " +-msgstr "Repo-updated : " ++msgstr "저장소-최신화됨 : " + + #: dnf/cli/commands/repolist.py:194 + msgid "Repo-pkgs : " +-msgstr "Repo-pkgs : " ++msgstr "저장소-꾸러미 : " + + #: dnf/cli/commands/repolist.py:195 + msgid "Repo-available-pkgs: " +-msgstr "저장소-이용 할 수 있는-꾸러미: " ++msgstr "저장소-사용 가능한-꾸러미: " + + #: dnf/cli/commands/repolist.py:196 + msgid "Repo-size : " +-msgstr "Repo-size : " ++msgstr "저장소-크기 : " + + #: dnf/cli/commands/repolist.py:199 + msgid "Repo-metalink : " +-msgstr "Repo-metalink : " ++msgstr "저장소-메타링크 : " + + #: dnf/cli/commands/repolist.py:204 + msgid " Updated : " +-msgstr " Updated : " ++msgstr " 최신화됨 : " + + #: dnf/cli/commands/repolist.py:206 + msgid "Repo-mirrors : " +-msgstr "Repo-mirrors : " ++msgstr "저장소-연결목록 : " + + #: dnf/cli/commands/repolist.py:210 dnf/cli/commands/repolist.py:216 + msgid "Repo-baseurl : " +-msgstr "Repo-baseurl : " ++msgstr "저장소-baseurl : " + + #: dnf/cli/commands/repolist.py:219 + msgid "Repo-expire : " +-msgstr "Repo-expire : " ++msgstr "저장소-만료 : " + + #. TRANSLATORS: Packages that are excluded - their names like (dnf systemd) + #: dnf/cli/commands/repolist.py:223 + msgid "Repo-exclude : " +-msgstr "Repo-exclude : " ++msgstr "저장소-제외 : " + + #: dnf/cli/commands/repolist.py:227 + msgid "Repo-include : " +-msgstr "Repo-include : " ++msgstr "저장소-포함 : " + + #. TRANSLATORS: Number of packages that where excluded (5) + #: dnf/cli/commands/repolist.py:232 + msgid "Repo-excluded : " +-msgstr "Repo-excluded : " ++msgstr "저장소-제외됨 : " + + #: dnf/cli/commands/repolist.py:236 + msgid "Repo-filename : " +-msgstr "Repo-filename : " ++msgstr "저장소-파일이름 : " + + #. Work out the first (id) and last (enabled/disabled/count), + #. then chop the middle (name)... + #: dnf/cli/commands/repolist.py:246 dnf/cli/commands/repolist.py:273 + msgid "repo id" +-msgstr "레포지터리 ID" ++msgstr "저장소 ID" + + #: dnf/cli/commands/repolist.py:259 dnf/cli/commands/repolist.py:260 + #: dnf/cli/commands/repolist.py:281 +@@ -1680,7 +1712,7 @@ msgstr "상태" + + #: dnf/cli/commands/repolist.py:275 dnf/cli/commands/repolist.py:277 + msgid "repo name" +-msgstr "레포지터리 이름" ++msgstr "저장소 이름" + + #: dnf/cli/commands/repolist.py:291 + msgid "Total packages: {}" +@@ -1694,7 +1726,8 @@ msgstr "키워드와 일치하는 꾸러미 검색" + msgid "" + "Query all packages (shorthand for repoquery '*' or repoquery without " + "argument)" +-msgstr "모든 꾸러미를 쿼리하십시오 (repoquery '*'의 축약형 또는 인수없는 repoquery)" ++msgstr "" ++"모든 꾸러미를 쿼리하십시오 (repoquery '*'의 축약형 또는 인수없는 repoquery)" + + #: dnf/cli/commands/repoquery.py:124 + msgid "Query all versions of packages (default)" +@@ -1716,7 +1749,9 @@ msgstr "REQ와 충돌하는 결과 만 표시" + msgid "" + "shows results that requires, suggests, supplements, enhances, or recommends " + "package provides and files REQ" +-msgstr "꾸러미 제공과 파일 REQ를 요구, 제안, 보완, 향상 또는 권장하는 결과를 표시합니다" ++msgstr "" ++"꾸러미 제공과 파일 REQ를 요구, 제안, 보완, 향상 또는 권장하는 결과를 표시합니" ++"다" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1758,7 +1793,9 @@ msgstr "지정된대로 종속성을 확인. --alldeps와 반대됩니다" + msgid "" + "used with --whatrequires, and --requires --resolve, query packages " + "recursively." +-msgstr "--whatrequires, --requires --resolve와 함계 사용하여 꾸러미를 재귀적으로 쿼리합니다." ++msgstr "" ++"--whatrequires, --requires --resolve와 함계 사용하여 꾸러미를 재귀적으로 쿼리" ++"합니다." + + #: dnf/cli/commands/repoquery.py:166 + msgid "show a list of all dependencies and what packages provide them" +@@ -1774,13 +1811,15 @@ msgstr "꾸러미의 재귀 트리를 표시합니다" + + #: dnf/cli/commands/repoquery.py:172 + msgid "operate on corresponding source RPM" +-msgstr "해당 소스 RPM에서 작동합니다" ++msgstr "해당 원천 RPM에서 작동합니다" + + #: dnf/cli/commands/repoquery.py:174 + msgid "" + "show N latest packages for a given name.arch (or latest but N if N is " + "negative)" +-msgstr "지정된 name.arch (또는 N이 음수인 경우 가장 오래된 꾸러미)에 대한 N 개의 최신 꾸러미를 표시합니다" ++msgstr "" ++"지정된 name.arch (또는 N이 음수인 경우 가장 오래된 꾸러미)에 대한 N 개의 최" ++"신 꾸러미를 표시합니다" + + #: dnf/cli/commands/repoquery.py:177 + msgid "list also packages of inactive module streams" +@@ -1796,7 +1835,7 @@ msgstr "꾸러미에 있는 파일 목록 표시" + + #: dnf/cli/commands/repoquery.py:188 + msgid "show package source RPM name" +-msgstr "꾸러미 소스 RPM 이름 표시" ++msgstr "꾸러미 원천 RPM 이름 표시" + + #: dnf/cli/commands/repoquery.py:191 + msgid "show changelogs of the package" +@@ -1805,11 +1844,11 @@ msgstr "꾸러미의 변경 로그 표시" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" + msgstr "" +-"꾸러미 목록 표시형식 : \"%%{name} %%{version} ...\" 모든 태그 목록을 보여주기 위해 --querytags " +-"사용합니다" ++"꾸러미 목록 표시형식 : \"%%{name} %%{version} ...\" 모든 태그 목록을 보여주" ++"기 위해 --querytags 사용합니다" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1819,19 +1858,25 @@ msgstr "--queryformat과 함께 사용할 수 있는 태그를 표시합니다" + msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" +-msgstr "name-epoch:version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시합니다 (기본값)" ++msgstr "" ++"name-epoch:version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시" ++"합니다 (기본값)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "name-version-release 형식을 사용하여 검색된 꾸러미를 표시합니다 (rpm 쿼리 기본값)" ++msgstr "" ++"name-version-release 형식을 사용하여 검색된 꾸러미를 표시합니다 (rpm 쿼리 기" ++"본값)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" + "use epoch:name-version-release.architecture format for displaying found " + "packages" +-msgstr "epoch : name-version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시합니다" ++msgstr "" ++"epoch : name-version-release.architecture 형식을 사용하여 검색된 꾸러미를 표" ++"시합니다" + + #: dnf/cli/commands/repoquery.py:214 + msgid "Display in which comps groups are presented selected packages" +@@ -1861,7 +1906,9 @@ msgstr "꾸러미와 충돌하는 기능을 표시합니다." + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "꾸러미가 종속 기능 강화, 개선, 권장, 제안 및 보완할 수 있는 기능을 표시합니다." ++msgstr "" ++"꾸러미가 종속 기능 강화, 개선, 권장, 제안 및 보완할 수 있는 기능을 표시합니" ++"다." + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1886,8 +1933,9 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"꾸러미가 설치되어 있지 않은 경우 %%pre 과 %%post 스크립트를 실행할 수 있는 기능이 표시됩니다. 꾸러미가 설치 되어 있는 경우" +-" %%pre, %%post , %%preun, %%postun에 종속된 기능이 표시됩니다." ++"꾸러미가 설치되어 있지 않은 경우 %%pre 과 %%post 스크립트를 실행할 수 있는 기" ++"능이 표시됩니다. 꾸러미가 설치 되어 있는 경우 %%pre, %%post , %%preun, " ++"%%postun에 종속된 기능이 표시됩니다." + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1895,7 +1943,7 @@ msgstr "꾸러미에서 제안하는 기능을 표시합니다." + + #: dnf/cli/commands/repoquery.py:244 + msgid "Display capabilities that the package can supplement." +-msgstr "꾸러미가 보완할 수있는 기능을 표시합니다." ++msgstr "꾸러미가 보완 할 수있는 기능을 표시합니다." + + #: dnf/cli/commands/repoquery.py:250 + msgid "Display only available packages." +@@ -1920,7 +1968,7 @@ msgstr "이미 설치된 일부 꾸러미에 대한 향상를 제공하는 꾸 + #, python-brace-format + msgid "" + "Display only packages that can be removed by \"{prog} autoremove\" command." +-msgstr "\"{prog} autoremove\" 명령으로 제거할 수 있는 꾸러미만 표시합니다." ++msgstr "\"{prog} autoremove\" 명령으로 제거 할 수 있는 꾸러미만 표시합니다." + + #: dnf/cli/commands/repoquery.py:258 + msgid "Display only packages that were installed by user." +@@ -1932,26 +1980,27 @@ msgstr "최근에 수정한 꾸러미만 표시합니다" + + #: dnf/cli/commands/repoquery.py:273 + msgid "the key to search for" +-msgstr "검색에 사용되는 키워드" ++msgstr "검색 할 키" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', '--" +-"recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-pre', '--" +-"suggests'또는 '--supplements'옵션들" ++"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', " ++"'--recommends', '--requires', '--requires-pre', '--suggests' 또는 '--" ++"supplements' 옵션 중의 하나를 함께 사용해야 합니다" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"옵션 '--reative'를 '--whatrequires ' (선택 옵션으로 '--exactdeps' 대신 '--" +-"alldeps'와 함께 사용), 또는 '--requires --resolve'와 함께 사용해야 합니다" ++"옵션 '--reative'를 '--whatrequires ' (선택 옵션으로 '--exactdeps' 대신 " ++"'--alldeps'와 함께 사용), 또는 '--requires --resolve'와 함께 사용해야 " ++"합니다" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -1965,15 +2014,19 @@ msgstr "꾸러미 {}에 파일이 없습니다" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of the packages." + msgstr "" +-"유효한 스위치가 지정되지 않았습니다.\n" +-"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" +-"\n" +-"설명:\n" ++"유효한 스위치가 지정되지 않았습니다 \n" ++"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree] \n" ++" \n" ++"설명: \n" + " 지정된 꾸러미의 경우 꾸러미 트리를 출력합니다." + + #: dnf/cli/commands/search.py:46 +@@ -1986,11 +2039,11 @@ msgstr "꾸러미 설명 및 URL 검색" + + #: dnf/cli/commands/search.py:52 + msgid "KEYWORD" +-msgstr "KEYWORD" ++msgstr "핵심어" + + #: dnf/cli/commands/search.py:55 + msgid "Keyword to search for" +-msgstr "검색 키워드" ++msgstr "검색 할 핵심어" + + #: dnf/cli/commands/search.py:61 dnf/cli/output.py:460 + msgctxt "long" +@@ -2011,8 +2064,7 @@ msgstr "설명" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " & " +@@ -2047,7 +2099,7 @@ msgstr "스크립트" + #: dnf/cli/commands/shell.py:69 + #, python-brace-format + msgid "Script to run in {prog} shell" +-msgstr "{prog} 쉘에서 실행할 스크립트" ++msgstr "{prog} 쉘에서 실행 할 스크립트" + + #: dnf/cli/commands/shell.py:142 + msgid "Unsupported key value." +@@ -2087,10 +2139,10 @@ msgid "" + " enable: enable repositories. option = repository id\n" + " disable: disable repositories. option = repository id" + msgstr "" +-"{} arg [option]\n" +-" list: 리포지토리 및 상태를 나열합니다. option = [all | id | glob]\n" +-"enable : 리포지토리를 활성화합니다. option = repository id\n" +-" disable : 리포지토리를 비활성화합니다. option = repository id" ++"{} arg [option] \n" ++" list: 저장소 및 상태를 나열합니다. option = [all | id | glob] \n" ++" enable : 저장소를 활성화합니다. option = repository id \n" ++" disable : 저장소를 비활성화합니다. option = repository id" + + #: dnf/cli/commands/shell.py:191 + msgid "" +@@ -2098,7 +2150,7 @@ msgid "" + " resolve the transaction set" + msgstr "" + "{}\n" +-" 연결 집합을 분석합니다" ++" 연결 집합을 분석합니다" + + #: dnf/cli/commands/shell.py:195 + msgid "" +@@ -2170,15 +2222,15 @@ msgstr "대화 형 {prog} 모드를 실행하여 사양을 제거하거나 설 + + #: dnf/cli/commands/swap.py:40 + msgid "The specs that will be removed" +-msgstr "삭제할 사양" ++msgstr "제거 되어야 할 사양" + + #: dnf/cli/commands/swap.py:42 + msgid "The specs that will be installed" +-msgstr "설치할 사양" ++msgstr "설치 되어야 할 사양" + + #: dnf/cli/commands/updateinfo.py:44 + msgid "bugfix" +-msgstr "버그 수정" ++msgstr "결점수정" + + #: dnf/cli/commands/updateinfo.py:45 + msgid "enhancement" +@@ -2300,7 +2352,7 @@ msgstr "알 수 없는 수준의 보안 공지" + + #: dnf/cli/commands/updateinfo.py:293 + msgid "Bugfix notice(s)" +-msgstr "버그 수정 공지" ++msgstr "결점수정 공지" + + #: dnf/cli/commands/updateinfo.py:294 + msgid "Enhancement notice(s)" +@@ -2359,11 +2411,11 @@ msgstr "설치되었습니다" + + #: dnf/cli/commands/updateinfo.py:385 + msgid "false" +-msgstr "false" ++msgstr "거짓" + + #: dnf/cli/commands/updateinfo.py:385 + msgid "true" +-msgstr "true" ++msgstr "참" + + #: dnf/cli/commands/upgrade.py:40 + msgid "upgrade a package or packages on your system" +@@ -2377,7 +2429,9 @@ msgstr "최신화 할 꾸러미" + msgid "" + "upgrade, but only 'newest' package match which fixes a problem that affects " + "your system" +-msgstr "최신화 하지만 ‘최신' 꾸러미에만 시스템에 영향을 줄 수 있는 수정된 문제가 있습니다" ++msgstr "" ++"최신화 하지만 ‘최신' 꾸러미에만 시스템에 영향을 줄 수 있는 수정된 문제가 있습" ++"니다" + + #: dnf/cli/main.py:88 + msgid "Terminated." +@@ -2477,15 +2531,15 @@ msgstr "지정된 이름으로 플러그인 비활성화" + + #: dnf/cli/option_parser.py:203 + msgid "override the value of $releasever in config and repo files" +-msgstr "설정 파일 및 리포지토리 파일에서 $releasever 값을 무시합니다" ++msgstr "설정 파일과 저장소 파일의 $releasever 값을 재정의합니다" + + #: dnf/cli/option_parser.py:207 + msgid "set arbitrary config and repo options" +-msgstr "임의의 설정 옵션 과 저장소 옵션 설정" ++msgstr "임의의 설정과 저장소 옵션을 설정합니다" + + #: dnf/cli/option_parser.py:210 + msgid "resolve depsolve problems by skipping packages" +-msgstr "꾸러미를 건너 뛰어 종속성 문제 해결" ++msgstr "꾸러미를 건너뛰어 종속성 문제 해결" + + #: dnf/cli/option_parser.py:213 + msgid "show command help" +@@ -2533,8 +2587,8 @@ msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" + msgstr "" +-"꾸러미가 info, list, repoquery에 더 이상 사용하지 않는 최신화 또는 표시 기능을 위해 {prog}의 더 이상 사용되지 " +-"않는 처리 로직을 활성화합니다" ++"꾸러미가 info, list, repoquery에 더 이상 사용하지 않는 최신화 또는 표시 기능" ++"을 위해 {prog}의 더 이상 사용되지 않는 처리 로직을 활성화합니다" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2554,8 +2608,9 @@ msgid "" + "Accepts an id, a comma-separated list of ids, or a glob of ids. This option " + "can be specified multiple times." + msgstr "" +-"현재 dnf 명령을 위해 임시로 저장소를 활성화합니다. id, 쉼표로-구분된 ids 목록 또는 ids의 glob을 허용합니다. 이와 같은" +-" 옵션은 여러 번 지정 할 수 있습니다." ++"임시로 현재 dnf 명령의 용도를 위해 저장소를 활성화합니다. id, 쉼표로-구분된 " ++"ids 목록 또는 ids의 glob을 허용합니다. 이와 같은 옵션은 여러 번 지정 할 수 있" ++"습니다." + + #: dnf/cli/option_parser.py:268 + msgid "" +@@ -2564,22 +2619,25 @@ msgid "" + "This option can be specified multiple times, but is mutually exclusive with " + "`--repo`." + msgstr "" +-"현재 dnf 명령을 위해 임시적으로 동적 저장소를 비활성화 할 수 있습니다. id, 쉼표로-구분된 ids의 목록 또는 ids의 glob를" +-" 허용합니다. 이와 같은 옵션은 여러 번 지정 할 수 있으나, 이는 `--repo`와 함께 상호 배타적입니다." ++"임시적으로 현재 dnf 명령의 용도를 위해 동적 저장소를 비활성화 합니다. id, 쉼" ++"표로-구분된 ids의 목록 또는 ids의 glob를 허용합니다. 이와 같은 옵션은 여러 " ++"번 지정 할 수 있으나, 이는 `--repo`와 함께 상호 배타적입니다." + + #: dnf/cli/option_parser.py:275 + msgid "" + "enable just specific repositories by an id or a glob, can be specified " + "multiple times" +-msgstr "id 나 glob로 특정 리포지토리를 활성화할 수 있습니다. 여러 번 지정할 수 있습니다" ++msgstr "" ++"id 나 glob로 특정 리포지토리를 활성화할 수 있습니다. 여러 번 지정할 수 있습니" ++"다" + + #: dnf/cli/option_parser.py:280 + msgid "enable repos with config-manager command (automatically saves)" +-msgstr "config-manager 명령으로 repos를 활성화합니다 (자동 저장)" ++msgstr "config-manager 명령으로 저장소를 활성화합니다 (자동 저장)" + + #: dnf/cli/option_parser.py:284 + msgid "disable repos with config-manager command (automatically saves)" +-msgstr "config-manager 명령으로 repos를 비활성화합니다 (자동 저장)" ++msgstr "config-manager 명령으로 저장소를 비활성화합니다 (자동 저장)" + + #: dnf/cli/option_parser.py:288 + msgid "exclude packages by name or glob" +@@ -2593,7 +2651,9 @@ msgstr "excludepkgs 비활성화" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "사용 할 추가 레포지터리에 대한 이름표와 경로 (baseurl과 동일한 경로)를 여러 번 지정와 할 수 있습니다." ++msgstr "" ++"사용 할 추가 저장소에 대한 이름표와 경로(baseurl과 동일한 경로)를 여러 번 지" ++"정 할 수 있습니다." + + #: dnf/cli/option_parser.py:302 + msgid "disable removal of dependencies that are no longer used" +@@ -2613,11 +2673,11 @@ msgstr "명령을 실행하기 전에 메타 데이터를 만료된 것으로 + + #: dnf/cli/option_parser.py:313 + msgid "resolve to IPv4 addresses only" +-msgstr "IPv4 주소 만 확인" ++msgstr "IPv4 주소만 확인" + + #: dnf/cli/option_parser.py:316 + msgid "resolve to IPv6 addresses only" +-msgstr "IPv6 주소 만 확인" ++msgstr "IPv6 주소만 확인" + + #: dnf/cli/option_parser.py:319 + msgid "set directory to copy packages to" +@@ -2633,7 +2693,7 @@ msgstr "연결에 의견을 추가하십시오" + + #: dnf/cli/option_parser.py:327 + msgid "Include bugfix relevant packages, in updates" +-msgstr "결점(bug) 수정 관련 꾸러미 최신화에 포함" ++msgstr "결점 수정 관련 꾸러미 최신화에 포함" + + #: dnf/cli/option_parser.py:330 + msgid "Include enhancement relevant packages, in updates" +@@ -2711,7 +2771,7 @@ msgstr "버전" + #. Translators: This message should be no longer than 12 characters. + #: dnf/cli/output.py:470 + msgid "Release" +-msgstr "릴리즈" ++msgstr "출시" + + #. Translators: This is abbreviated 'Architecture', used when + #. we have not enough space to display the full word. +@@ -2745,26 +2805,26 @@ msgstr "크기" + #. Translators: This message should be no longer than 12 characters. + #: dnf/cli/output.py:478 + msgid "Source" +-msgstr "소스" ++msgstr "원천" + + #. Translators: This is abbreviated 'Repository', used when + #. we have not enough space to display the full word. + #: dnf/cli/output.py:479 dnf/cli/output.py:1253 + msgctxt "short" + msgid "Repo" +-msgstr "레포지터리" ++msgstr "저장소" + + #. Translators: This is the full word 'Repository', used when + #. we have enough space. + #: dnf/cli/output.py:480 dnf/cli/output.py:1256 + msgctxt "long" + msgid "Repository" +-msgstr "레포지터리" ++msgstr "저장소" + + #. Translators: This message should be no longer than 12 chars. + #: dnf/cli/output.py:487 + msgid "From repo" +-msgstr "레포지터리에서" ++msgstr "저장소에서" + + #. :hawkey does not support changelog information + #. print(_("Committer : %s") % ucd(pkg.committer)) +@@ -2777,7 +2837,7 @@ msgstr "꾸러미 생성자" + #. Translators: This message should be no longer than 12 characters. + #: dnf/cli/output.py:495 + msgid "Buildtime" +-msgstr "빌드 시간" ++msgstr "제작시간" + + #. Translators: This message should be no longer than 12 characters. + #: dnf/cli/output.py:499 +@@ -2868,7 +2928,7 @@ msgstr " 선택적인 꾸러미 :" + + #: dnf/cli/output.py:753 + msgid " Conditional Packages:" +-msgstr " 추가 가능 꾸러미 :" ++msgstr " 조건부 꾸러미 :" + + #: dnf/cli/output.py:778 + #, python-format +@@ -2886,7 +2946,7 @@ msgstr " 필수 그룹 :" + + #: dnf/cli/output.py:788 + msgid " Optional Groups:" +-msgstr " 선택적인 그룹 :" ++msgstr " 선택적 그룹 :" + + #: dnf/cli/output.py:809 + msgid "Matched from:" +@@ -2900,7 +2960,7 @@ msgstr "파일 이름 : %s" + #: dnf/cli/output.py:848 + #, python-format + msgid "Repo : %s" +-msgstr "리포지토리 : %s" ++msgstr "저장소 : %s" + + #: dnf/cli/output.py:857 + msgid "Description : " +@@ -2928,7 +2988,7 @@ msgstr "기타 : %s" + + #: dnf/cli/output.py:940 + msgid "There was an error calculating total download size" +-msgstr "총 내려받기 크기를 계산하는 중에 오류가 발생했습니다" ++msgstr "전체 내려받기 크기를 계산하는 중에 오류가 발생했습니다" + + #: dnf/cli/output.py:946 + #, python-format +@@ -2938,7 +2998,7 @@ msgstr "전체 크기: %s" + #: dnf/cli/output.py:949 + #, python-format + msgid "Total download size: %s" +-msgstr "총계 내려받기 크기: %s" ++msgstr "전체 내려받기 크기: %s" + + #: dnf/cli/output.py:952 + #, python-format +@@ -3004,9 +3064,9 @@ msgstr "종속 꾸러미 설치 중" + msgid "Installing weak dependencies" + msgstr "취약한 종속 꾸러미 설치 중" + +-#. TRANSLATORS: This is for a list of packages to be removed. + # translation auto-copied from project subscription-manager, version 1.11.X, + # document keys ++#. TRANSLATORS: This is for a list of packages to be removed. + #: dnf/cli/output.py:1060 + msgid "Removing" + msgstr "삭제 중" +@@ -3161,7 +3221,7 @@ msgstr "합계" + + #: dnf/cli/output.py:1466 + msgid "" +-msgstr "" ++msgstr "<설정해제>" + + #: dnf/cli/output.py:1467 + msgid "System" +@@ -3297,15 +3357,15 @@ msgstr "실패:" + + #: dnf/cli/output.py:1764 dnf/cli/output.py:1766 + msgid "Releasever :" +-msgstr "Releasever :" ++msgstr "배포버전 :" + + #: dnf/cli/output.py:1771 dnf/cli/output.py:1773 + msgid "Command Line :" +-msgstr "명령 줄 :" ++msgstr "명령 줄 :" + + #: dnf/cli/output.py:1778 dnf/cli/output.py:1780 + msgid "Comment :" +-msgstr "댓글 :" ++msgstr "댓글 :" + + #: dnf/cli/output.py:1784 + msgid "Transaction performed with:" +@@ -3317,7 +3377,7 @@ msgstr "변경된 꾸러미 :" + + #: dnf/cli/output.py:1799 + msgid "Scriptlet output:" +-msgstr "스크립트릿 출력 :" ++msgstr "구현 출력 :" + + #: dnf/cli/output.py:1806 + msgid "Errors:" +@@ -3410,7 +3470,7 @@ msgstr "실행 중" + + #: dnf/cli/utils.py:99 + msgid "Sleeping" +-msgstr "휴면중" ++msgstr "휴면 중" + + #: dnf/cli/utils.py:100 + msgid "Uninterruptible" +@@ -3473,7 +3533,8 @@ msgstr "모듈 또는 그룹 '%s'가 존재하지 않습니다." + msgid "Environment id '%s' does not exist." + msgstr "환경 id '%s' 가 존재하지 않습니다." + +-#: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 ++#: dnf/comps.py:622 dnf/transaction_sr.py:487 dnf/transaction_sr.py:497 ++#: dnf/transaction_sr.py:507 + #, python-format + msgid "Environment id '%s' is not installed." + msgstr "환경id '%s'가 설치되지 않았습니다." +@@ -3555,32 +3616,37 @@ msgstr "경고: '%s'을 적재하지 못했습니다, 건너 뛰기." + + #: dnf/conf/read.py:72 + msgid "Bad id for repo: {} ({}), byte = {} {}" +-msgstr "레포지터리의 ID가 잘못되었습니다. {} ({}), byte = {} {}" ++msgstr "저장소의 ID가 잘못되었습니다. {} ({}), byte = {} {}" + + #: dnf/conf/read.py:76 + msgid "Bad id for repo: {}, byte = {} {}" +-msgstr "레포지터리의 ID가 잘못되었습니다. {}, byte = {} {}" ++msgstr "저장소의 ID가 잘못되었습니다. {}, byte = {} {}" + + #: dnf/conf/read.py:84 + msgid "Repository '{}' ({}): Error parsing config: {}" +-msgstr "Repository '{}' ({}): 구문 분석 설정 오류: {}" ++msgstr "저장소 '{}' ({}): 구문 분석 설정 오류: {}" + + #: dnf/conf/read.py:87 + msgid "Repository '{}': Error parsing config: {}" +-msgstr "Repository '{}' : 구문 분석 설정 오류: {}" ++msgstr "저장소 '{}' : 구문 분석 설정 오류: {}" + + #: dnf/conf/read.py:93 + msgid "Repository '{}' ({}) is missing name in configuration, using id." +-msgstr "Repository '{}' ({})의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." ++msgstr "저장소 '{}' ({})는 id를 사용하는 구성에 이름이 누락되어 있습니다." + + #: dnf/conf/read.py:96 + msgid "Repository '{}' is missing name in configuration, using id." +-msgstr "Repository '{}'의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." ++msgstr "저장소 '{}'는 id를 사용하는 구성에 이름이 누락되어 있습니다." + + #: dnf/conf/read.py:113 + msgid "Parsing file \"{}\" failed: {}" + msgstr "\"{}\" 파일을 구문 분석하지 못했습니다: {}" + ++#: dnf/conf/substitutions.py:66 ++#, python-brace-format ++msgid "Error when parsing a variable from file '{0}': {1}" ++msgstr "파일에서 변수 구문 분석 할 때에 오류 '{0}': {1}" ++ + #: dnf/crypto.py:108 + #, python-format + msgid "repo %s: 0x%s already imported" +@@ -3604,30 +3670,33 @@ msgstr "DNS 레코드를 사용하여 확인되지 않음." + msgid "retrieving repo key for %s unencrypted from %s" + msgstr "%s에서 암호화 하지 않은 %s를 위한 저장소 키 검색" + +-#: dnf/db/group.py:302 ++#: dnf/db/group.py:308 + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" +-msgstr "모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니다" ++msgstr "" ++"모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니" ++"다" + +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 + #, python-format + msgid "An rpm exception occurred: %s" + msgstr "rpm 예외가 발생했습니다: %s" + +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 + msgid "No available modular metadata for modular package" + msgstr "모듈 꾸러미에 사용 가능한 모듈 메타 자료가 없습니다" + +-#: dnf/db/group.py:389 ++#: dnf/db/group.py:395 + #, python-format + msgid "Will not install a source rpm package (%s)." +-msgstr "소스 RPM 꾸러미를 설치하지 않습니다 (%s)." ++msgstr "원천 RPM 꾸러미를 설치하지 않습니다 (%s)." + + #: dnf/dnssec.py:171 + msgid "" + "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" +-msgstr "구성 선택 'gpgkey_dns_verification'에는 python3-unbound ({})가 필요합니다" ++msgstr "" ++"구성 선택 'gpgkey_dns_verification'에는 python3-unbound ({})가 필요합니다" + + #: dnf/dnssec.py:243 + msgid "DNSSEC extension: Key for user " +@@ -3649,18 +3718,18 @@ msgstr "DNSSEC 확장: " + msgid "Testing already imported keys for their validity." + msgstr "유효성 검사를 위해 이미 가져온 키를 테스트 중입니다." + +-#: dnf/drpm.py:62 dnf/repo.py:267 ++#: dnf/drpm.py:62 dnf/repo.py:268 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "지원되지 않는 검사 유형: %s" + + #: dnf/drpm.py:144 + msgid "Delta RPM rebuild failed" +-msgstr "Delta RPM을 다시 빌드하지 못했습니다" ++msgstr "델타 RPM을 다시 제작하는데 실패함" + + #: dnf/drpm.py:146 + msgid "Checksum of the delta-rebuilt RPM failed" +-msgstr "delta-rebuilt RPM의 체크섬에 실패했습니다" ++msgstr "델타-재제작 RPM의 체크섬이 실패함" + + # translation auto-copied from project subscription-manager, version 1.9.X, + # document keys +@@ -3702,10 +3771,12 @@ msgstr[0] "모듈 종속성 문제 :" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "잘못된 잠금 파일이 발견되었습니다. %s \n" +-"다른 dnf / yum 프로세스가 실행되고 있는지 확인하고 잠금 파일을 수동으로 제거하거나 systemd-tmpfiles --remove dnf.conf를 실행하십시오." ++"다른 dnf / yum 프로세스가 실행되고 있는지 확인하고 잠금 파일을 수동으로 제거" ++"하거나 systemd-tmpfiles --remove dnf.conf를 실행하십시오." + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3713,7 +3784,7 @@ msgstr "'{}'에 다른 스트림을 사용합니다." + + #: dnf/module/__init__.py:27 + msgid "Nothing to show." +-msgstr "표시할 것이 없습니다." ++msgstr "표시 할 것이 없습니다." + + #: dnf/module/__init__.py:28 + msgid "Installing newer version of '{}' than specified. Reason: {}" +@@ -3765,7 +3836,7 @@ msgstr "그런 프로파일이 없습니다: {}. 사용 가능한 프로파일 + + #: dnf/module/exceptions.py:88 + msgid "No profile to remove for '{}'" +-msgstr "제거되는 프로파일이 없습니다('{}'를 위해 )" ++msgstr "'{}'를 제거하려는 프로파일이 없습니다" + + #: dnf/module/module_base.py:35 + msgid "" +@@ -3795,7 +3866,8 @@ msgstr "불필요한 프로파일을 무시합니다: '{}/{}'" + #: dnf/module/module_base.py:86 + #, python-brace-format + msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" +-msgstr "모듈 '{1}:{2}'의 인수 '{0}'에 대한 모든 일치 항목이 활성화되지 않았습니다" ++msgstr "" ++"모듈 '{1}:{2}'의 인수 '{0}'에 대한 모든 일치 항목이 활성화되지 않았습니다" + + #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 + #, python-brace-format +@@ -3805,7 +3877,8 @@ msgstr "실패 방지 저장소 {1}에서 모듈 '{0}’를 설치 할 수 없 + #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 + msgid "" + "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" +-msgstr "인수 {}의 프로파일을 찾을 수 없습니다. '{}:{}': {} 에 사용 가능한 프로파일" ++msgstr "" ++"인수 {}의 프로파일을 찾을 수 없습니다. '{}:{}': {} 에 사용 가능한 프로파일" + + #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 + msgid "Unable to match profile for argument {}" +@@ -3846,7 +3919,7 @@ msgstr "꾸러미 이름 '{}'를 위하여 배포판에서 사용 할 수 있는 + #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 + #: dnf/module/module_base.py:680 dnf/module/module_base.py:843 + msgid "Unable to resolve argument {}" +-msgstr "인수 {}을 (를) 구문 분석할 수 없습니다" ++msgstr "인수 {}를 해결 할 수 없습니다" + + #: dnf/module/module_base.py:321 + #, python-brace-format +@@ -3864,16 +3937,15 @@ msgstr "실패-방지 저장소에서 모듈을 향상 할 수 없습니다" + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" +-"인수 '{argument}'는 {stream_count} 스트림 ('{streams}')과 일치합니다 (모듈의 '{module}'), " +-"하지만 활성화 되었거나 지정된 스트림이 없습니다" ++"인수 '{argument}'는 {stream_count} 스트림 ('{streams}')과 일치합니다 (모듈의 " ++"'{module}'), 하지만 활성화 되었거나 지정된 스트림이 없습니다" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "모듈 이름만 필요합니다. '{}'인수에서 불필요한 정보를 무시합니다" + + #: dnf/module/module_base.py:844 +@@ -3909,44 +3981,44 @@ msgstr "마지막 makecache 시간을 결정하지 못했습니다." + msgid "Parsing file failed: %s" + msgstr "구문 분석에 실패했습니다. %s" + +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 + #, python-format + msgid "Loaded plugins: %s" +-msgstr "로드된 플러그인 : %s" ++msgstr "적재된 플러그인: %s" + +-#: dnf/plugin.py:211 ++#: dnf/plugin.py:216 + #, python-format + msgid "Failed loading plugin \"%s\": %s" + msgstr "플러그인 \"%s\"를 불러오지 못했습니다: %s" + +-#: dnf/plugin.py:243 ++#: dnf/plugin.py:248 + msgid "No matches found for the following enable plugin patterns: {}" + msgstr "다음의 활성 플러그인 패턴과 일치하는 항목이 없습니다: {}" + +-#: dnf/plugin.py:247 ++#: dnf/plugin.py:252 + msgid "No matches found for the following disable plugin patterns: {}" +-msgstr "다음의 비활성화 플러그인 패턴과 일치하는 항목이 없습니다: {}" ++msgstr "다음의 비활성화 플러그인 유형과 일치하는 항목이 없습니다: {}" + +-#: dnf/repo.py:84 ++#: dnf/repo.py:85 + #, python-format + msgid "no matching payload factory for %s" +-msgstr "%s와 일치하는 payload factory가 없습니다" ++msgstr "%s와 일치하는 페이로드 팩토리가 없습니다" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " +-msgstr "가장 빠른 미러 지정 (%s 호스트).. " ++msgstr "가장 빠른 연결목록 지정 (%s 호스트).. " + + #: dnf/repodict.py:58 + #, python-format + msgid "enabling %s repository" +-msgstr "%s 리포지토리 활성화" ++msgstr "%s 저장소 활성화" + + #: dnf/repodict.py:94 + #, python-format + msgid "Added %s repo from %s" +-msgstr "%s 에서 %s repo를 추가했습니다" ++msgstr "%s에서 %s 저장소를 추가했습니다" + + #: dnf/rpm/miscutils.py:32 + #, python-format +@@ -3973,7 +4045,9 @@ msgstr "연결 시험 중에 오류가 발생했습니다." + msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" +-msgstr "허용_공급업체_변화는 사용 할 수 없습니다. 이 선택은 현재 다운드레이드와 distro-sync 명령을 지원하지 않습니다" ++msgstr "" ++"허용_공급업체_변화는 사용 할 수 없습니다. 이 선택은 현재 다운드레이드와 " ++"distro-sync 명령을 지원하지 않습니다" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4015,7 +4089,7 @@ msgstr "확인 중" + + #: dnf/transaction.py:97 + msgid "Running scriptlet" +-msgstr "스크립트릿 실행 중" ++msgstr "구현 중" + + #: dnf/transaction.py:99 + msgid "Preparing" +@@ -4047,7 +4121,8 @@ msgstr "잘못된 하위 버전 \"{minor}\", 번호가 예상됩니다." + msgid "" + "Incompatible major version \"{major}\", supported major version is " + "\"{major_supp}\"." +-msgstr "호환되지 않는 주요 버전 \"{major}\", 지원되는 주요 버전 \"{major_supp}\"." ++msgstr "" ++"호환되지 않는 주요 버전 \"{major}\", 지원되는 주요 버전 \"{major_supp}\"." + + #: dnf/transaction_sr.py:224 + msgid "" +@@ -4071,8 +4146,10 @@ msgstr "rpm안에 누락된 객체 키 \"{key}\"." + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유\"{reason}\" 의 값." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgstr "" ++"rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유 \"{reason}\"의 값." + + #: dnf/transaction_sr.py:297 + #, python-brace-format +@@ -4094,7 +4171,9 @@ msgstr "꾸러미 \"{na}\"는 활동 \"{action}\"를 위해 이미 설치되어 + msgid "" + "Package nevra \"{nevra}\" not available in repositories for action " + "\"{action}\"." +-msgstr "꾸러미 nervra \"{nevra}\"는 실행 \"{action}\"을 위한 저장소에서 사용 할 수 없음." ++msgstr "" ++"꾸러미 nervra \"{nevra}\"는 실행 \"{action}\"을 위한 저장소에서 사용 할 수 없" ++"음." + + #: dnf/transaction_sr.py:356 + #, python-brace-format +@@ -4103,8 +4182,10 @@ msgstr "꾸러미 nevra\"{nevra}\"는 활동 \"{action}\"을 위해 설치되지 + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." +-msgstr "rpm nevra \"{nevra}\"를 위해 기대하지 않는 꾸러미 활동 \"{action}\"의 값." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgstr "" ++"rpm nevra \"{nevra}\"를 위해 기대하지 않는 꾸러미 활동 \"{action}\"의 값." + + #: dnf/transaction_sr.py:377 + #, python-format +@@ -4117,53 +4198,59 @@ msgid "Missing object key \"{key}\" in groups.packages." + msgstr "group.packages에 있는 객체 키 \"{key}\" 누락." + + #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 ++#: dnf/transaction_sr.py:431 + #, python-format + msgid "Group id '%s' is not installed." + msgstr "그룹 '%s'는 설치되어 있지 않습니다." + +-#: dnf/transaction_sr.py:432 ++#: dnf/transaction_sr.py:442 + #, python-format + msgid "Environment id '%s' is not available." + msgstr "환경 id '%s'는 사용 할 수 없습니다." + +-#: dnf/transaction_sr.py:456 ++#: dnf/transaction_sr.py:466 + #, python-brace-format + msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." +-msgstr "잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 \"선택\"만 지원합니다." ++msgstr "" ++"잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 " ++"\"선택\"만 지원합니다." + +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "환경 그룹에서 누락된 객체 키 \"{key}\"." + +-#: dnf/transaction_sr.py:542 ++#: dnf/transaction_sr.py:564 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." + msgstr "그룹 \"{group}\"을 위해 예상치 못한 그룹 활동 \"{action}\"의 값." + +-#: dnf/transaction_sr.py:547 ++#: dnf/transaction_sr.py:569 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." + msgstr "그룹 안에 누락된 객체 키 \"{key}\"." + +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "환경 \"{env}\"를 위해 예상하지 못한 환경 활동 \"{action}\"의 값." + +-#: dnf/transaction_sr.py:576 ++#: dnf/transaction_sr.py:600 + #, python-brace-format + msgid "Missing object key \"{key}\" in an environment." + msgstr "환경에 누락된 객체 키 \"{key}\"." + +-#: dnf/transaction_sr.py:615 ++#: dnf/transaction_sr.py:639 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." +-msgstr "꾸러미 nevra \"{nevra}\", 연겨 파일에 존재하지 않는 것은 연결로 가져왔습니다." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." ++msgstr "" ++"꾸러미 nevra \"{nevra}\", 연겨 파일에 존재하지 않는 것은 연결로 가져왔습니다." + + #: dnf/util.py:417 dnf/util.py:419 + msgid "Problem" +@@ -4187,7 +4274,7 @@ msgstr "다시 설치되었습니다" + + #: dnf/util.py:620 + msgid "Skipped" +-msgstr "건너 뛰기됨" ++msgstr "건너뜀" + + #: dnf/util.py:621 + msgid "Removed" +@@ -4195,28 +4282,32 @@ msgstr "제거되었습니다" + + #: dnf/util.py:624 + msgid "Failed" +-msgstr "실패하였습니다" ++msgstr "실패함" + + #. returns for everything that evaluates to False (None, empty..) + #: dnf/util.py:633 + msgid "" + msgstr "" + +-#~ msgid "Already downloaded" +-#~ msgstr "이미 내려받음" +- + #~ msgid "No Matches found" + #~ msgstr "검색 결과가 없습니다" + + #~ msgid "" + #~ "Enable additional repositories. List option. Supports globs, can be " + #~ "specified multiple times." +-#~ msgstr "추가 저장소를 활성화하십시오. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정 할 수 있습니다." ++#~ msgstr "" ++#~ "추가 저장소를 활성화하십시오. 옵션이 나열됩니다. glob를 지원하며 여러 번 " ++#~ "지정 할 수 있습니다." + + #~ msgid "" +-#~ "Disable repositories. List option. Supports globs, can be specified multiple" +-#~ " times." +-#~ msgstr "저장소를 비활성화 합니다. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정 할 수 있습니다." ++#~ "Disable repositories. List option. Supports globs, can be specified " ++#~ "multiple times." ++#~ msgstr "" ++#~ "저장소를 비활성화 합니다. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정 " ++#~ "할 수 있습니다." ++ ++#~ msgid "Already downloaded" ++#~ msgstr "이미 내려받음" + + #~ msgid "skipping." + #~ msgstr "건너 뛰기." +@@ -4224,7 +4315,8 @@ msgstr "" + #~ msgid "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." +-#~ msgstr "{path}에서 실행 가능한 rpmkey를 사용하여 꾸러미: {package}을 위해 서명을 확인합니다." ++#~ msgstr "" ++#~ "{path}에서 실행 할 수 있는 rpmkeys를 사용하여 꾸러미 서명 확인: {package}." + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s 확인 실패 : %s 대 %s" +diff --git a/po/zh_CN.po b/po/zh_CN.po +index 2f8b9f8e..4496ba43 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -21,29 +21,33 @@ + # zhouxiaobo , 2017. #zanata + # Ludek Janda , 2018. #zanata + # Pany , 2018. #zanata +-# Qiyu Yan , 2018. #zanata, 2021. +-# Qiyu Yan , 2019. #zanata, 2021. ++# Qiyu Yan , 2018. #zanata ++# Qiyu Yan , 2019. #zanata + # Anonymous , 2020. + # Hongqiao Chen , 2020. + # Harry Chen , 2020. ++# Sundeep Anand , 2021. + # weidong , 2021. +-# Transtats , 2022. ++# Transtats , 2022, 2023. + # Edward Zhang , 2022. + # Cheng Ming , 2022. ++# Yang Yulin , 2022, 2023. ++# Jingge Chen , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-11 02:46+0000\n" +-"PO-Revision-Date: 2022-08-11 03:19+0000\n" +-"Last-Translator: Cheng Ming \n" +-"Language-Team: Chinese (Simplified) \n" ++"POT-Creation-Date: 2023-02-28 10:24+0100\n" ++"PO-Revision-Date: 2023-03-06 13:20+0000\n" ++"Last-Translator: Transtats \n" ++"Language-Team: Chinese (Simplified) \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.13\n" ++"X-Generator: Weblate 4.15.2\n" + + #: dnf/automatic/emitter.py:32 + #, python-format +@@ -127,7 +131,7 @@ msgstr "系统离线。" + msgid "Error: %s" + msgstr "错误:%s" + +-#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 ++#: dnf/base.py:150 dnf/base.py:484 dnf/base.py:486 + msgid "loading repo '{}' failure: {}" + msgstr "加载仓库 '{}' 失败:{}" + +@@ -135,236 +139,236 @@ msgstr "加载仓库 '{}' 失败:{}" + msgid "Loading repository '{}' has failed" + msgstr "加载仓库 '{}' 失败" + +-#: dnf/base.py:329 ++#: dnf/base.py:334 + msgid "Metadata timer caching disabled when running on metered connection." + msgstr "在使用按流量计费的连接时禁用元数据计时缓存。" + +-#: dnf/base.py:334 ++#: dnf/base.py:339 + msgid "Metadata timer caching disabled when running on a battery." + msgstr "在使用电池时禁用元数据计时缓存。" + +-#: dnf/base.py:339 ++#: dnf/base.py:344 + msgid "Metadata timer caching disabled." + msgstr "元数据计时缓存已禁用。" + +-#: dnf/base.py:344 ++#: dnf/base.py:349 + msgid "Metadata cache refreshed recently." + msgstr "元数据缓存近期已刷新。" + +-#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 ++#: dnf/base.py:355 dnf/cli/commands/__init__.py:91 + msgid "There are no enabled repositories in \"{}\"." + msgstr "在\"{}\"中没有被启用的仓库。" + +-#: dnf/base.py:357 ++#: dnf/base.py:362 + #, python-format + msgid "%s: will never be expired and will not be refreshed." + msgstr "%s: 永远不过期并不会被刷新。" + +-#: dnf/base.py:359 ++#: dnf/base.py:364 + #, python-format + msgid "%s: has expired and will be refreshed." + msgstr "%s: 已过期并不会被刷新。" + + #. expires within the checking period: +-#: dnf/base.py:363 ++#: dnf/base.py:368 + #, python-format + msgid "%s: metadata will expire after %d seconds and will be refreshed now" + msgstr "%s: 元数据将在 %d 秒后过期,现在将会被刷新" + +-#: dnf/base.py:367 ++#: dnf/base.py:372 + #, python-format + msgid "%s: will expire after %d seconds." + msgstr "%s: 将会在 %d 秒后过期。" + + #. performs the md sync +-#: dnf/base.py:373 ++#: dnf/base.py:378 + msgid "Metadata cache created." + msgstr "元数据缓存已建立。" + +-#: dnf/base.py:406 dnf/base.py:473 ++#: dnf/base.py:411 dnf/base.py:478 + #, python-format + msgid "%s: using metadata from %s." + msgstr "%s:正在使用截止于 %s 的元数据。" + +-#: dnf/base.py:418 dnf/base.py:486 ++#: dnf/base.py:423 dnf/base.py:491 + #, python-format + msgid "Ignoring repositories: %s" + msgstr "正在忽略仓库:%s" + +-#: dnf/base.py:421 ++#: dnf/base.py:426 + #, python-format + msgid "Last metadata expiration check: %s ago on %s." + msgstr "上次元数据过期检查:%s 前,执行于 %s。" + +-#: dnf/base.py:514 ++#: dnf/base.py:519 + msgid "" + "The downloaded packages were saved in cache until the next successful " + "transaction." + msgstr "下载的软件包保存在缓存中,直到下次成功执行事务。" + +-#: dnf/base.py:516 ++#: dnf/base.py:521 + #, python-format + msgid "You can remove cached packages by executing '%s'." + msgstr "您可以通过执行 '%s' 删除软件包缓存。" + +-#: dnf/base.py:648 ++#: dnf/base.py:653 + #, python-format + msgid "Invalid tsflag in config file: %s" + msgstr "配置文件 %s 中使用 tsflag 是错误的" + +-#: dnf/base.py:706 ++#: dnf/base.py:711 + #, python-format + msgid "Failed to add groups file for repository: %s - %s" + msgstr "为仓库 %s 添加组文件时失败:%s" + +-#: dnf/base.py:968 ++#: dnf/base.py:973 + msgid "Running transaction check" + msgstr "运行事务检查" + +-#: dnf/base.py:976 ++#: dnf/base.py:981 + msgid "Error: transaction check vs depsolve:" + msgstr "错误:事务检查与依赖解决错误:" + +-#: dnf/base.py:982 ++#: dnf/base.py:987 + msgid "Transaction check succeeded." + msgstr "事务检查成功。" + +-#: dnf/base.py:985 ++#: dnf/base.py:990 + msgid "Running transaction test" + msgstr "运行事务测试" + +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 + msgid "RPM: {}" + msgstr "RPM软件包: {}" + +-#: dnf/base.py:996 ++#: dnf/base.py:1001 + msgid "Transaction test error:" + msgstr "事务测试失败:" + +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 + msgid "Transaction test succeeded." + msgstr "事务测试成功。" + +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 + msgid "Running transaction" + msgstr "运行事务" + +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 + msgid "Disk Requirements:" + msgstr "磁盘需求:" + +-#: dnf/base.py:1068 ++#: dnf/base.py:1073 + #, python-brace-format + msgid "At least {0}MB more space needed on the {1} filesystem." + msgid_plural "At least {0}MB more space needed on the {1} filesystem." + msgstr[0] "在 {1} 文件系统上至少需要 {0}MB 的空间。" + +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 + msgid "Error Summary" + msgstr "错误汇总" + +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 + #, python-brace-format + msgid "RPMDB altered outside of {prog}." + msgstr "RPMDB 在 {prog} 外被改动了。" + +-#: dnf/base.py:1147 dnf/base.py:1155 ++#: dnf/base.py:1152 dnf/base.py:1160 + msgid "Could not run transaction." + msgstr "不能执行事务。" + +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 + msgid "Transaction couldn't start:" + msgstr "事务无法启动:" + +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 + #, python-format + msgid "Failed to remove transaction file %s" + msgstr "移除事务文件 %s 失败" + +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 + msgid "Some packages were not downloaded. Retrying." + msgstr "某些软件包没有被下载。正在重试。" + +-#: dnf/base.py:1276 ++#: dnf/base.py:1281 + #, python-format + msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" + msgstr "增量 RPM 将更新的 %.1f MB 减少到 %.1f MB(节省了 %.1f%%)" + +-#: dnf/base.py:1280 ++#: dnf/base.py:1285 + #, python-format + msgid "" + "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" + msgstr "失败的增量 RPM 将更新的 %.1f MB 增加到 %.1f MB(浪费了 %.1f%%)" + +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 + msgid "Cannot add local packages, because transaction job already exists" + msgstr "由于事务已经存在,无法添加本地软件包" + +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 + msgid "Could not open: {}" + msgstr "无法打开: {}" + +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 + #, python-format + msgid "Public key for %s is not installed" + msgstr "%s 的公钥没有安装" + +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 + #, python-format + msgid "Problem opening package %s" + msgstr "打开软件包 %s 出现问题" + +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 + #, python-format + msgid "Public key for %s is not trusted" + msgstr "%s 的公钥不可信任" + +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 + #, python-format + msgid "Package %s is not signed" + msgstr "软件包 %s 没有签名" + +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 + #, python-format + msgid "Cannot remove %s" + msgstr "无法删除 %s" + +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 + #, python-format + msgid "%s removed" + msgstr "%s 已删除" + +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 + msgid "No match for group package \"{}\"" + msgstr "没有和组 \"{}\" 匹配的" + +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 + #, python-format + msgid "Adding packages from group '%s': %s" + msgstr "从组 '%s': %s 添加软件包" + +-#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 ++#: dnf/base.py:1814 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 + #: dnf/cli/commands/__init__.py:494 dnf/cli/commands/__init__.py:587 + #: dnf/cli/commands/__init__.py:636 dnf/cli/commands/install.py:80 + #: dnf/cli/commands/install.py:103 dnf/cli/commands/install.py:110 + msgid "Nothing to do." + msgstr "无需任何处理。" + +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 + msgid "No groups marked for removal." + msgstr "没有软件包组需要移除。" + +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 + msgid "No group marked for upgrade." + msgstr "没有标记为要升级的组。" + +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 + #, python-format + msgid "Package %s not installed, cannot downgrade it." + msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" + +-#: dnf/base.py:2077 dnf/base.py:2096 dnf/base.py:2109 dnf/base.py:2136 +-#: dnf/base.py:2206 dnf/base.py:2214 dnf/base.py:2348 dnf/cli/cli.py:417 ++#: dnf/base.py:2082 dnf/base.py:2101 dnf/base.py:2114 dnf/base.py:2145 ++#: dnf/base.py:2215 dnf/base.py:2223 dnf/base.py:2357 dnf/cli/cli.py:417 + #: dnf/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 + #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 + #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 +@@ -374,178 +378,179 @@ msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" + msgid "No match for argument: %s" + msgstr "未找到匹配的参数: %s" + +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 + #, python-format + msgid "Package %s of lower version already installed, cannot downgrade it." + msgstr "软件包 %s 的低版本已经安装,无法进行降级。" + +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 + #, python-format + msgid "Package %s not installed, cannot reinstall it." + msgstr "软件包 %s 未能够安装成功,无法进行重新安装。" + +-#: dnf/base.py:2122 ++#: dnf/base.py:2127 + #, python-format + msgid "File %s is a source package and cannot be updated, ignoring." + msgstr "%s 文件无法被升级,已忽略。" + +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 + #, python-format + msgid "Package %s not installed, cannot update it." + msgstr "软件包 %s 未安装,无法更新。" + +-#: dnf/base.py:2143 ++#: dnf/base.py:2152 + #, python-format + msgid "" + "The same or higher version of %s is already installed, cannot update it." + msgstr "已经安装了软件包%s的相同或更高版本,无法更新。" + +-#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 ++#: dnf/base.py:2212 dnf/cli/commands/reinstall.py:81 + #, python-format + msgid "Package %s available, but not installed." + msgstr "软件包 %s 可用,但没有被安装。" + +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 + #, python-format + msgid "Package %s available, but installed for different architecture." + msgstr "软件包 %s 可用,当是为其它架构安装。" + +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 + #, python-format + msgid "No package %s installed." + msgstr "没有软件包 %s 安装。" + +-#: dnf/base.py:2252 dnf/cli/commands/install.py:136 ++#: dnf/base.py:2261 dnf/cli/commands/install.py:136 + #: dnf/cli/commands/remove.py:133 + #, python-format + msgid "Not a valid form: %s" + msgstr "无效: %s" + +-#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 ++#: dnf/base.py:2276 dnf/cli/commands/__init__.py:676 + #: dnf/cli/commands/remove.py:162 + msgid "No packages marked for removal." + msgstr "没有软件包需要移除。" + +-#: dnf/base.py:2355 dnf/cli/cli.py:428 ++#: dnf/base.py:2364 dnf/cli/cli.py:428 + #, python-format + msgid "Packages for argument %s available, but not installed." + msgstr "针对于参数 %s 的软件包可用, 但是目前没有安装。" + +-#: dnf/base.py:2360 ++#: dnf/base.py:2369 + #, python-format + msgid "Package %s of lowest version already installed, cannot downgrade it." + msgstr "软件包 %s 的最低版本已经安装,无法再进行降级。" + +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 + msgid "No security updates needed, but {} update available" + msgstr "没有必须的安全更新, 但是 {} 的更新可用" + +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 + msgid "No security updates needed, but {} updates available" + msgstr "没有必须的安全更新, 但是 {} 的更新可用" + +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 + msgid "No security updates needed for \"{}\", but {} update available" + msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" + +-#: dnf/base.py:2468 ++#: dnf/base.py:2477 + msgid "No security updates needed for \"{}\", but {} updates available" + msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" + + #. raise an exception, because po.repoid is not in self.repos +-#: dnf/base.py:2489 ++#: dnf/base.py:2498 + #, python-format + msgid "Unable to retrieve a key for a commandline package: %s" + msgstr "无法获取来自命令行的软件包的密钥:%s" + +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 + #, python-format + msgid ". Failing package is: %s" + msgstr ". 失败的软件包是:%s" + +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 + #, python-format + msgid "GPG Keys are configured as: %s" + msgstr "GPG密钥配置为:%s" + +-#: dnf/base.py:2510 ++#: dnf/base.py:2519 + #, python-format + msgid "GPG key at %s (0x%s) is already installed" + msgstr "%s 的 GPG 公钥(0x%s)已安装" + +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 + msgid "The key has been approved." + msgstr "密钥已被确认。" + +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 + msgid "The key has been rejected." + msgstr "密钥已被拒绝。" + +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 + #, python-format + msgid "Key import failed (code %d)" + msgstr "导入公钥失败(代码 %d)" + +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 + msgid "Key imported successfully" + msgstr "导入公钥成功" + +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 + msgid "Didn't install any keys" + msgstr "没有安装任何公钥" + +-#: dnf/base.py:2591 ++#: dnf/base.py:2600 + #, python-format + msgid "" +-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" ++"The GPG keys listed for the \"%s\" repository are already installed but they " ++"are not correct for this package.\n" + "Check that the correct key URLs are configured for this repository." + msgstr "" + "仓库 \"%s\" 的 GPG 公钥已安装,但是不适用于此软件包。\n" + "请检查此仓库的公钥 URL 是否配置正确。" + +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 + msgid "Import of key(s) didn't help, wrong key(s)?" + msgstr "导入的密钥没有公钥,错误的公钥?" + +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 + msgid " * Maybe you meant: {}" + msgstr " * 可能您的意思是:{}" + +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 + msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" + msgstr "软件包 \"{}\"(来自于本地仓库 \"{}\")的 checksum 不正确" + +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 + msgid "Some packages from local repository have incorrect checksum" + msgstr "本地仓库的一些软件包校验值(checksum)不正确,无法确定软件包完整" + +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 + msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" + msgstr "软件包 \"{}\"(来自仓库 \"{}\")的 checksum 不正确" + +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 + msgid "" + "Some packages have invalid cache, but cannot be downloaded due to \"--" + "cacheonly\" option" + msgstr "以下软件包有无效缓存,因为使用了 \"--cacheonly\" 选项不能下载" + +-#: dnf/base.py:2714 dnf/base.py:2734 ++#: dnf/base.py:2723 dnf/base.py:2743 + msgid "No match for argument" + msgstr "未找到匹配的参数" + +-#: dnf/base.py:2722 dnf/base.py:2742 ++#: dnf/base.py:2731 dnf/base.py:2751 + msgid "All matches were filtered out by exclude filtering for argument" + msgstr "由于您的搜索参数,所有相关结果都已被滤掉" + +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 + msgid "All matches were filtered out by modular filtering for argument" + msgstr "所有的匹配结果均已经被参数的模块化过滤条件筛除" + +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 + msgid "All matches were installed from a different repository for argument" + msgstr "已从另一个仓库安装了参数的所有匹配" + +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 + #, python-format + msgid "Package %s is already installed." + msgstr "软件包 %s 已安装。" +@@ -600,11 +605,15 @@ msgstr "这个操作会把模块 '{0}' 从流 '{1}' 切换到流 '{2}'" + #: dnf/cli/cli.py:173 + #, python-brace-format + msgid "" +-"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" +-"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." ++"It is not possible to switch enabled streams of a module unless explicitly " ++"enabled via configuration option module_stream_switch.\n" ++"It is recommended to rather remove all installed content from the module, " ++"and reset the module using '{prog} module reset ' command. " ++"After you reset the module, you can install the other stream." + msgstr "" + "无法切换已启用模块的流,除非显式的通过配置选项 module_stream_switch 启用。\n" +-"推荐直接移除来自模块的所有已安装内容,然后通过 '{prog} module reset ' 命令重置模块。在您重置模块之后,就可以安装其他的流。" ++"推荐直接移除来自模块的所有已安装内容,然后通过 '{prog} module reset " ++"' 命令重置模块。在您重置模块之后,就可以安装其他的流。" + + #: dnf/cli/cli.py:212 + #, python-brace-format +@@ -695,7 +704,9 @@ msgstr "没有匹配的软件包可以列出" + msgid "" + "No matches found. If searching for a file, try specifying the full path or " + "using a wildcard prefix (\"*/\") at the beginning." +-msgstr "未找到匹配项。如果搜索的是一个文件,尝试使用完整路径或者在开头使用通配符前缀(\"*/\")。" ++msgstr "" ++"未找到匹配项。如果搜索一个文件,请尝试使用完整路径或在开始使用通配符前缀 " ++"(\"*/\")。" + + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 + #, python-format +@@ -709,8 +720,8 @@ msgstr "没有仓库匹配: %s" + + #: dnf/cli/cli.py:721 + msgid "" +-"This command has to be run with superuser privileges (under the root user on" +-" most systems)." ++"This command has to be run with superuser privileges (under the root user on " ++"most systems)." + msgstr "运行此命令需要管理员特权(多数系统下是root用户)。" + + #: dnf/cli/cli.py:751 +@@ -737,21 +748,24 @@ msgid "" + "--destdir or --downloaddir must be used with --downloadonly or download or " + "system-upgrade command." + msgstr "" +-"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-upgrade " +-"命令一起使用。" ++"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-" ++"upgrade 命令一起使用。" + + #: dnf/cli/cli.py:822 + msgid "" + "--enable, --set-enabled and --disable, --set-disabled must be used with " + "config-manager command." + msgstr "" +-"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命令一起使用。" ++"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命" ++"令一起使用。" + + #: dnf/cli/cli.py:904 + msgid "" + "Warning: Enforcing GPG signature check globally as per active RPM security " + "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" +-msgstr "警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中的'gpgcheck'以了解如何阻止这条信息)" ++msgstr "" ++"警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中" ++"的'gpgcheck'以了解如何阻止这条信息)" + + #: dnf/cli/cli.py:924 + msgid "Config file \"{}\" does not exist" +@@ -802,7 +816,8 @@ msgstr "RPM 数据库可能出错,请尝试运行'%s'进行恢复。" + #, python-brace-format + msgid "" + "You have enabled checking of packages via GPG keys. This is a good thing.\n" +-"However, you do not have any GPG public keys installed. You need to download\n" ++"However, you do not have any GPG public keys installed. You need to " ++"download\n" + "the keys for packages you wish to install and install them.\n" + "You can do that by running the command:\n" + " rpm --import public.gpg.key\n" +@@ -1131,7 +1146,7 @@ msgstr "缓存已过期" + #, python-format + msgid "%d file removed" + msgid_plural "%d files removed" +-msgstr[0] "%d 文件已删除" ++msgstr[0] "%d 个文件已删除" + + #: dnf/cli/commands/clean.py:119 dnf/lock.py:139 + #, python-format +@@ -1142,7 +1157,8 @@ msgstr "正在等待 pid 为%d的进程退出。" + msgid "" + "[deprecated, use repoquery --deplist] List package's dependencies and what " + "packages provide them" +-msgstr "[已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源" ++msgstr "" ++"[已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源" + + #: dnf/cli/commands/distrosync.py:32 + msgid "synchronize installed packages to the latest available versions" +@@ -1248,8 +1264,8 @@ msgstr "对于 store 命令,要将事务保存到的文件路径" + + #: dnf/cli/commands/history.py:68 + msgid "" +-"For the replay command, don't check for installed packages matching those in" +-" transaction" ++"For the replay command, don't check for installed packages matching those in " ++"transaction" + msgstr "对于 replay 命令,不要检查已安装的包是否与事务中符合" + + #: dnf/cli/commands/history.py:71 +@@ -1260,8 +1276,8 @@ msgstr "对于 replay 命令,不要检查被拉入事务的额外的包" + + #: dnf/cli/commands/history.py:74 + msgid "" +-"For the replay command, skip packages that are not available or have missing" +-" dependencies" ++"For the replay command, skip packages that are not available or have missing " ++"dependencies" + msgstr "对于 replay 命令,跳过不可用或者缺少依赖项的软件包" + + #: dnf/cli/commands/history.py:94 +@@ -1292,8 +1308,8 @@ msgstr "你没有权限访问历史数据库:%s" + #: dnf/cli/commands/history.py:151 + #, python-format + msgid "" +-"Cannot undo transaction %s, doing so would result in an inconsistent package" +-" database." ++"Cannot undo transaction %s, doing so would result in an inconsistent package " ++"database." + msgstr "无法撤销事务 %s,这样做将可能导致不一致的软件包数据库。" + + #: dnf/cli/commands/history.py:156 +@@ -1360,7 +1376,7 @@ msgstr "未覆盖 {},正在退出。" + + #: dnf/cli/commands/history.py:378 + msgid "Transaction saved to {}." +-msgstr "事务已保存至 {}。" ++msgstr "事务已保存到 {}。" + + #: dnf/cli/commands/history.py:381 + msgid "Error storing transaction: {}" +@@ -1441,8 +1457,8 @@ msgstr "软件包 %s 尚未安装。" + + #: dnf/cli/commands/module.py:54 + msgid "" +-"Only module name, stream, architecture or profile is used. Ignoring unneeded" +-" information in argument: '{}'" ++"Only module name, stream, architecture or profile is used. Ignoring unneeded " ++"information in argument: '{}'" + msgstr "仅使用模块名称、流、架构或者配置文件。忽略参数中不需要的信息:'{}'" + + #: dnf/cli/commands/module.py:80 +@@ -1623,60 +1639,60 @@ msgstr "仓库状态 : " + + #: dnf/cli/commands/repolist.py:169 + msgid "Repo-revision : " +-msgstr "Repo-revision : " ++msgstr "软件仓库修订版 : " + + #: dnf/cli/commands/repolist.py:173 + msgid "Repo-tags : " +-msgstr "Repo-tags : " ++msgstr "软件仓库标签 : " + + #: dnf/cli/commands/repolist.py:180 + msgid "Repo-distro-tags : " +-msgstr "Repo-distro-tags : " ++msgstr "软件仓库发行版标签 : " + + #: dnf/cli/commands/repolist.py:192 + msgid "Repo-updated : " +-msgstr "Repo-updated : " ++msgstr "更新的软件仓库 : " + + #: dnf/cli/commands/repolist.py:194 + msgid "Repo-pkgs : " +-msgstr "Repo-pkgs : " ++msgstr "软件仓库的软件包 : " + + #: dnf/cli/commands/repolist.py:195 + msgid "Repo-available-pkgs: " +-msgstr "Repo-available-pkgs: " ++msgstr "软件仓库的可用软件包: " + + #: dnf/cli/commands/repolist.py:196 + msgid "Repo-size : " +-msgstr "Repo-size : " ++msgstr "软件仓库大小 : " + + #: dnf/cli/commands/repolist.py:199 + msgid "Repo-metalink : " +-msgstr "Repo-metalink : " ++msgstr "软件仓库元链接 : " + + #: dnf/cli/commands/repolist.py:204 + msgid " Updated : " +-msgstr " Updated : " ++msgstr " 更新于 : " + + #: dnf/cli/commands/repolist.py:206 + msgid "Repo-mirrors : " +-msgstr "Repo-mirrors : " ++msgstr "软件仓库镜像站 : " + + #: dnf/cli/commands/repolist.py:210 dnf/cli/commands/repolist.py:216 + msgid "Repo-baseurl : " +-msgstr "Repo-baseurl : " ++msgstr "软件仓库基本 URL : " + + #: dnf/cli/commands/repolist.py:219 + msgid "Repo-expire : " +-msgstr "Repo-expire : " ++msgstr "软件仓库过期时间 : " + + #. TRANSLATORS: Packages that are excluded - their names like (dnf systemd) + #: dnf/cli/commands/repolist.py:223 + msgid "Repo-exclude : " +-msgstr "Repo-exclude : " ++msgstr "软件仓库排除项 : " + + #: dnf/cli/commands/repolist.py:227 + msgid "Repo-include : " +-msgstr "Repo-include : " ++msgstr "软件仓库包含项 : " + + #. TRANSLATORS: Number of packages that where excluded (5) + #: dnf/cli/commands/repolist.py:232 +@@ -1736,7 +1752,9 @@ msgstr "只显示与 REQ 冲突的结果" + msgid "" + "shows results that requires, suggests, supplements, enhances, or recommends " + "package provides and files REQ" +-msgstr "选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 REQ 的结果" ++msgstr "" ++"选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 " ++"REQ 的结果" + + #: dnf/cli/commands/repoquery.py:139 + msgid "show only results that obsolete REQ" +@@ -1825,9 +1843,11 @@ msgstr "显示软件包的 changelogs" + #: dnf/cli/commands/repoquery.py:194 + #, python-format, python-brace-format + msgid "" +-"display format for listing packages: \"%%{name} %%{version} ...\", use " +-"--querytags to view full tag list" +-msgstr "软件包列表的显示格式 : \"%%{name} %%{version} ...\", 使用 --querytags 参数来查看完整的标签列表" ++"display format for listing packages: \"%%{name} %%{version} ...\", use --" ++"querytags to view full tag list" ++msgstr "" ++"软件包列表的显示格式 : \"%%{name} %%{version} ...\", 使用 --querytags 参数来" ++"查看完整的标签列表" + + #: dnf/cli/commands/repoquery.py:198 + msgid "show available tags to use with --queryformat" +@@ -1837,13 +1857,16 @@ msgstr "显示可被 --queryformat 使用的标签" + msgid "" + "use name-epoch:version-release.architecture format for displaying found " + "packages (default)" +-msgstr "使用 name-epoch:version-release.architecture 的格式来输出找到的软件包(默认格式)" ++msgstr "" ++"使用 name-epoch:version-release.architecture 的格式来输出找到的软件包(默认格" ++"式)" + + #: dnf/cli/commands/repoquery.py:205 + msgid "" + "use name-version-release format for displaying found packages (rpm query " + "default)" +-msgstr "使用 name-version-release 的格式来输出找到的软件包(rpm 查询的默认格式)" ++msgstr "" ++"使用 name-version-release 的格式来输出找到的软件包(rpm 查询的默认格式)" + + #: dnf/cli/commands/repoquery.py:211 + msgid "" +@@ -1879,7 +1902,9 @@ msgstr "显示与该软件包冲突的功能。" + msgid "" + "Display capabilities that the package can depend on, enhance, recommend, " + "suggest, and supplement." +-msgstr "显示软件包可用在其中 depend on、enhance、recommend、suggest 和 supplement 的功能。" ++msgstr "" ++"显示软件包可用在其中 depend on、enhance、recommend、suggest 和 supplement 的" ++"功能。" + + #: dnf/cli/commands/repoquery.py:236 + msgid "Display capabilities that the package can enhance." +@@ -1904,8 +1929,8 @@ msgid "" + "running %%pre and %%post scriptlets. If the package is installed display " + "capabilities that is depends for %%pre, %%post, %%preun and %%postun." + msgstr "" +-"如果未安装软件包,则显示执行 %%pre 和 %%post 脚本所依赖的功能。如果已经了安装软件包,则显示执行 %%pre、%%post、%%preun" +-" 和 %%postun 脚本所依赖的功能。" ++"如果未安装软件包,则显示执行 %%pre 和 %%post 脚本所依赖的功能。如果已经了安装" ++"软件包,则显示执行 %%pre、%%post、%%preun 和 %%postun 脚本所依赖的功能。" + + #: dnf/cli/commands/repoquery.py:243 + msgid "Display capabilities that the package suggests." +@@ -1954,22 +1979,23 @@ msgstr "搜索所用的关键词" + + #: dnf/cli/commands/repoquery.py:295 + msgid "" +-"Option '--resolve' has to be used together with one of the '--conflicts', '" +-"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" ++"Option '--resolve' has to be used together with one of the '--conflicts', '--" ++"depends', '--enhances', '--provides', '--recommends', '--requires', '--" + "requires-pre', '--suggests' or '--supplements' options" + msgstr "" +-"选项 '--resolve' 需要和 '--conflicts'、'--depends'、'--enhances'、'--provides'、'--" +-"recommends'、'--requires'、'--requires-pre'、'--suggests' 或 '--supplements' " +-"选项之一一起使用" ++"选项 '--resolve' 需要和 '--conflicts'、'--depends'、'--enhances'、'--" ++"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' 或 " ++"'--supplements' 选项之一一起使用" + + #: dnf/cli/commands/repoquery.py:305 + msgid "" + "Option '--recursive' has to be used with '--whatrequires ' (optionally " +-"with '--alldeps', but not with '--exactdeps'), or with '--requires " +-"--resolve'" ++"with '--alldeps', but not with '--exactdeps'), or with '--requires --" ++"resolve'" + msgstr "" +-"选项 '--recursive' 需要和 '--whatrequires ' 一起使用(以及可选的 '--alldeps',但不能是 '--" +-"exactdeps'),或和 '--requires --resolve' 一起使用" ++"选项 '--recursive' 需要和 '--whatrequires ' 一起使用(以及可选的 '--" ++"alldeps',但不能是 '--exactdeps'),或和 '--requires --resolve' 一起使" ++"用" + + #: dnf/cli/commands/repoquery.py:312 + msgid "argument {} requires --whatrequires or --whatdepends option" +@@ -1983,13 +2009,17 @@ msgstr "软件包 {} 不包含文件" + #, python-brace-format + msgid "" + "No valid switch specified\n" +-"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "description:\n" + " For the given packages print a tree of the packages." + msgstr "" + "没有指定有效参数\n" +-"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" + "\n" + "描述:\n" + " 对于指定的软件包,打印此软件包的树状图。" +@@ -2029,8 +2059,7 @@ msgstr "描述" + msgid "URL" + msgstr "URL" + +-#. TRANSLATORS: separator used between package attributes (eg. Name & Summary +-#. & URL) ++#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) + #: dnf/cli/commands/search.py:76 + msgid " & " + msgstr " 和 " +@@ -2548,7 +2577,9 @@ msgstr "错误输出级别" + msgid "" + "enables {prog}'s obsoletes processing logic for upgrade or display " + "capabilities that the package obsoletes for info, list and repoquery" +-msgstr "对 upgrade 启用 {prog} 的过期处理逻辑,或对 info、list 和 repoquery 启用软件包过期的显示功能" ++msgstr "" ++"对 upgrade 启用 {prog} 的过期处理逻辑,或对 info、list 和 repoquery 启用软件" ++"包过期的显示功能" + + #: dnf/cli/option_parser.py:251 + msgid "debugging output level for rpm" +@@ -2567,7 +2598,9 @@ msgid "" + "Temporarily enable repositories for the purpose of the current dnf command. " + "Accepts an id, a comma-separated list of ids, or a glob of ids. This option " + "can be specified multiple times." +-msgstr "基于当前的dnf指令目前可用的仓库,可以接受一个id,一个由分隔符分割的id列表或一个id的glob。该选项可以被多次指定。" ++msgstr "" ++"为当前 dnf 命令临时启用仓库。接受一个 id、以逗号分隔的多个 id 列表,或 ids " ++"glob。此选项可多次指定。" + + #: dnf/cli/option_parser.py:268 + msgid "" +@@ -2576,8 +2609,8 @@ msgid "" + "This option can be specified multiple times, but is mutually exclusive with " + "`--repo`." + msgstr "" +-"基于当前的dnf指令目前不可用的仓库,可以接受一个id,一个由分隔符分割的id列表或一个id的glob。该选项可以被多次指定,但使用\"--" +-"repo\"显式互斥。" ++"为当前 dnf 命令临时禁用仓库。接受一个 id、以逗号分隔的多个 id 列表,或 ids " ++"glob。此选项可多次指定,但它与 `--repo` 是相互排斥的。" + + #: dnf/cli/option_parser.py:275 + msgid "" +@@ -2605,7 +2638,8 @@ msgstr "禁用 excludepkgs" + msgid "" + "label and path to an additional repository to use (same path as in a " + "baseurl), can be specified multiple times." +-msgstr "附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。" ++msgstr "" ++"附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。" + + #: dnf/cli/option_parser.py:302 + msgid "disable removal of dependencies that are no longer used" +@@ -3302,7 +3336,7 @@ msgstr "失败:" + + #: dnf/cli/output.py:1764 dnf/cli/output.py:1766 + msgid "Releasever :" +-msgstr "Releasever :" ++msgstr "发行版 :" + + #: dnf/cli/output.py:1771 dnf/cli/output.py:1773 + msgid "Command Line :" +@@ -3478,7 +3512,8 @@ msgstr "模块或者组 '%s' 不存在。" + msgid "Environment id '%s' does not exist." + msgstr "环境 id '%s' 不存在。" + +-#: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 ++#: dnf/comps.py:622 dnf/transaction_sr.py:487 dnf/transaction_sr.py:497 ++#: dnf/transaction_sr.py:507 + #, python-format + msgid "Environment id '%s' is not installed." + msgstr "环境 id '%s' 没有安装。" +@@ -3586,15 +3621,20 @@ msgstr "仓库 '{}' 在配置中缺少名称,将使用 id。" + msgid "Parsing file \"{}\" failed: {}" + msgstr "解析文件 \"{}\" 失败:{}" + ++#: dnf/conf/substitutions.py:66 ++#, python-brace-format ++msgid "Error when parsing a variable from file '{0}': {1}" ++msgstr "从文件 '{0}' 解析变量时出错:{1}" ++ + #: dnf/crypto.py:108 + #, python-format + msgid "repo %s: 0x%s already imported" +-msgstr "repo %s: 0x%s 已被导入" ++msgstr "存储库 %s: 0x%s 已被导入" + + #: dnf/crypto.py:115 + #, python-format + msgid "repo %s: imported key 0x%s." +-msgstr "repo %s: 已导入密钥 0x%s。" ++msgstr "存储库 %s: 已导入密钥 0x%s。" + + #: dnf/crypto.py:145 + msgid "Verified using DNS record with DNSSEC signature." +@@ -3609,22 +3649,22 @@ msgstr "并未被 DNS 记录验证。" + msgid "retrieving repo key for %s unencrypted from %s" + msgstr "为 %s 从 %s 获取的 repo 密钥未加密" + +-#: dnf/db/group.py:302 ++#: dnf/db/group.py:308 + msgid "" + "No available modular metadata for modular package '{}', it cannot be " + "installed on the system" + msgstr "对于模块软件包 '{}' 没有可用的模块元数据,它将不能被安装至此系统上" + +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 + #, python-format + msgid "An rpm exception occurred: %s" + msgstr "发生了 rpm 异常:%s" + +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 + msgid "No available modular metadata for modular package" + msgstr "对于模块软件包没有可用的模块元数据" + +-#: dnf/db/group.py:389 ++#: dnf/db/group.py:395 + #, python-format + msgid "Will not install a source rpm package (%s)." + msgstr "将不安装一个源码 RPM 软件包 (%s)。" +@@ -3654,7 +3694,7 @@ msgstr "DNSSEC 扩展 : " + msgid "Testing already imported keys for their validity." + msgstr "测试已导入的密钥以检查有效性。" + +-#: dnf/drpm.py:62 dnf/repo.py:267 ++#: dnf/drpm.py:62 dnf/repo.py:268 + #, python-format + msgid "unsupported checksum type: %s" + msgstr "不支持的校验类型: %s" +@@ -3705,10 +3745,12 @@ msgstr[0] "模块依赖问题:" + #, python-format + msgid "" + "Malformed lock file found: %s.\n" +-"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." ++"Ensure no other dnf/yum process is running and remove the lock file manually " ++"or run systemd-tmpfiles --remove dnf.conf." + msgstr "" + "发现损坏的锁文件 : %s。\n" +-"请确保没有其他 dnf/yum 进程正在运行,并手工删除锁文件,或执行 systemd-tmpfiles --remove dnf.conf 。" ++"请确保没有其他 dnf/yum 进程正在运行,并手工删除锁文件,或执行 systemd-" ++"tmpfiles --remove dnf.conf 。" + + #: dnf/module/__init__.py:26 + msgid "Enabling different stream for '{}'." +@@ -3867,16 +3909,15 @@ msgstr "不允许从自动防故障仓库升级模块" + #: dnf/module/module_base.py:422 + #, python-brace-format + msgid "" +-"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" +-" '{module}', but none of the streams are enabled or default" ++"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " ++"'{module}', but none of the streams are enabled or default" + msgstr "" +-"参数 '{argument}' 匹配模块 '{module}' 的 {stream_count} 流 ('{streams}') " +-",但是这些流都未被启用或为默认" ++"参数 '{argument}' 匹配模块 '{module}' 的 {stream_count} 流 ('{streams}') ,但" ++"是这些流都未被启用或为默认" + + #: dnf/module/module_base.py:509 + msgid "" +-"Only module name is required. Ignoring unneeded information in argument: " +-"'{}'" ++"Only module name is required. Ignoring unneeded information in argument: '{}'" + msgstr "只需要模块名。正在忽略'{}'中的无用信息" + + #: dnf/module/module_base.py:844 +@@ -3912,31 +3953,31 @@ msgstr "无法决定最后的 makecache 时间。" + msgid "Parsing file failed: %s" + msgstr "解析文件失败:%s" + +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 + #, python-format + msgid "Loaded plugins: %s" + msgstr "加载插件:%s" + +-#: dnf/plugin.py:211 ++#: dnf/plugin.py:216 + #, python-format + msgid "Failed loading plugin \"%s\": %s" + msgstr "加载插件 \"%s\" 失败 : %s" + +-#: dnf/plugin.py:243 ++#: dnf/plugin.py:248 + msgid "No matches found for the following enable plugin patterns: {}" + msgstr "没有以下已启用插件模式的匹配项 : {}" + +-#: dnf/plugin.py:247 ++#: dnf/plugin.py:252 + msgid "No matches found for the following disable plugin patterns: {}" + msgstr "没有以下已停用插件模式的匹配项 : {}" + +-#: dnf/repo.py:84 ++#: dnf/repo.py:85 + #, python-format + msgid "no matching payload factory for %s" + msgstr "没有 %s 匹配的 payload factory" + + #. pinging mirrors, this might take a while +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 + #, python-format + msgid "determining the fastest mirror (%s hosts).. " + msgstr "正在查找最快的镜像(%s 的主机) " +@@ -3962,11 +4003,11 @@ msgstr "无法找到 rpmkeys 的可执行文件以验证签名。" + + #: dnf/rpm/transaction.py:70 + msgid "The openDB() function cannot open rpm database." +-msgstr "函数openDB()不能打开rpm数据库。" ++msgstr "openDB() 无法打开 rpm 数据库。" + + #: dnf/rpm/transaction.py:75 + msgid "The dbCookie() function did not return cookie of rpm database." +-msgstr "dbCookie()函数没有返回 rpm 数据库的 cookie。" ++msgstr "dbCookie() 函数没有返回 rpm 数据库的 cookie。" + + #: dnf/rpm/transaction.py:135 + msgid "Errors occurred during test transaction." +@@ -3976,7 +4017,8 @@ msgstr "测试事务过程中出现错误。" + msgid "" + "allow_vendor_change is disabled. This option is currently not supported for " + "downgrade and distro-sync commands" +-msgstr "allow_vendor_change 被禁用。此选项目前不支持 downgrade 和 distro-sync 命令" ++msgstr "" ++"allow_vendor_change 被禁用。此选项目前不支持 downgrade 和 distro-sync 命令" + + #. TRANSLATORS: This is for a single package currently being downgraded. + #: dnf/transaction.py:80 +@@ -4074,7 +4116,8 @@ msgstr "在 rpm 中缺少对象键 \"{key}\"。" + + #: dnf/transaction_sr.py:289 + #, python-brace-format +-msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." + msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的意外值。" + + #: dnf/transaction_sr.py:297 +@@ -4106,7 +4149,8 @@ msgstr "没有为操作 \"{action}\" 安装软件包 nevra \"{nevra}\" 。" + + #: dnf/transaction_sr.py:370 + #, python-brace-format +-msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." ++msgid "" ++"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." + msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 的意外值。" + + #: dnf/transaction_sr.py:377 +@@ -4120,54 +4164,57 @@ msgid "Missing object key \"{key}\" in groups.packages." + msgstr "在 groups.packages 中缺少对象键 \"{key}\"。" + + #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 ++#: dnf/transaction_sr.py:431 + #, python-format + msgid "Group id '%s' is not installed." + msgstr "组 id '%s' 未安装。" + +-#: dnf/transaction_sr.py:432 ++#: dnf/transaction_sr.py:442 + #, python-format + msgid "Environment id '%s' is not available." + msgstr "环境 id '%s' 不可用。" + +-#: dnf/transaction_sr.py:456 ++#: dnf/transaction_sr.py:466 + #, python-brace-format + msgid "" + "Invalid value \"{group_type}\" of environments.groups.group_type, only " + "\"mandatory\" or \"optional\" is supported." + msgstr "" +-"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory\" 或者 " +-"\"optional\"。" ++"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory" ++"\" 或者 \"optional\"。" + +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 + #, python-brace-format + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "在 environment.groups 中缺少对象键 \"{key}\"。" + +-#: dnf/transaction_sr.py:542 ++#: dnf/transaction_sr.py:564 + #, python-brace-format + msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." + msgstr "对组 \"{group}\" 的组操作 \"{action}\" 的意外值。" + +-#: dnf/transaction_sr.py:547 ++#: dnf/transaction_sr.py:569 + #, python-brace-format + msgid "Missing object key \"{key}\" in a group." + msgstr "在组中缺少对象键 \"{key}\"。" + +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 + #, python-brace-format +-msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." ++msgid "" ++"Unexpected value of environment action \"{action}\" for environment " ++"\"{env}\"." + msgstr "对环境 \"{env}\" 的环境操作 \"{action}\" 的意外值。" + +-#: dnf/transaction_sr.py:576 ++#: dnf/transaction_sr.py:600 + #, python-brace-format + msgid "Missing object key \"{key}\" in an environment." + msgstr "在环境中缺少对象键 \"{key}\"。" + +-#: dnf/transaction_sr.py:615 ++#: dnf/transaction_sr.py:639 + #, python-brace-format + msgid "" +-"Package nevra \"{nevra}\", which is not present in the transaction file, was" +-" pulled into the transaction." ++"Package nevra \"{nevra}\", which is not present in the transaction file, was " ++"pulled into the transaction." + msgstr "软件包 nevra \"{nevra}\" 没有包括在事务文件中,但它被拉取到事务中。" + + #: dnf/util.py:417 dnf/util.py:419 +@@ -4207,9 +4254,6 @@ msgstr "失败" + msgid "" + msgstr "" + +-#~ msgid "Already downloaded" +-#~ msgstr "已下载" +- + #~ msgid "No Matches found" + #~ msgstr "没有找到匹配的软件包" + +@@ -4219,17 +4263,20 @@ msgstr "" + #~ msgstr "启用附加仓库。列出选项。支持通配符,可以指定多次。" + + #~ msgid "" +-#~ "Disable repositories. List option. Supports globs, can be specified multiple" +-#~ " times." ++#~ "Disable repositories. List option. Supports globs, can be specified " ++#~ "multiple times." + #~ msgstr "停用仓库。列出选项。支持通配符,可指定多次。" + ++#~ msgid "Already downloaded" ++#~ msgstr "已下载" ++ + #~ msgid "skipping." + #~ msgstr "正在跳过。" + + #~ msgid "" + #~ "Using rpmkeys executable from {path} to verify signature for package: " + #~ "{package}." +-#~ msgstr "使用来自 {path} 的 rpmkeys 可执行文件以验证此包的签名:{package}。" ++#~ msgstr "使用来自 {path} 的 rpmkeys 可执行代码验证软件包的签名:{package}。" + + #~ msgid "%s: %s check failed: %s vs %s" + #~ msgstr "%s: %s 检查失败:%s vs %s" +@@ -4256,5 +4303,6 @@ msgstr "" + #~ msgstr "错误的事务 ID 或软件包" + + #~ msgid "" +-#~ "Display capabilities that the package depends on for running a %%pre script." ++#~ "Display capabilities that the package depends on for running a %%pre " ++#~ "script." + #~ msgstr "显示软件包运行一个 %%pre 脚本所依赖的功能" +-- +2.39.2 + diff --git a/SOURCES/0007-Add-reboot-option-to-DNF-Automatic.patch b/SOURCES/0007-Add-reboot-option-to-DNF-Automatic.patch new file mode 100644 index 0000000..ad51e90 --- /dev/null +++ b/SOURCES/0007-Add-reboot-option-to-DNF-Automatic.patch @@ -0,0 +1,252 @@ +From 56d3e10ecb666da53a77d17e9ac7524f3e1341d8 Mon Sep 17 00:00:00 2001 +From: Evan Goode +Date: Tue, 24 Jan 2023 09:53:47 -0500 +Subject: [PATCH 1/4] Add reboot option to DNF Automatic (RhBug:2124793) + +Add ability in DNF Automatic to automatically trigger a reboot after an +upgrade. The `reboot` option supports three settings: ``never`` does not +reboot the system (current behavior). ``when-changed`` triggers a reboot +after any upgrade. ``when-needed`` triggers a reboot only when rebooting +is necessary to apply changes, such as when systemd or the kernel is +upgraded. The `reboot_command` option allows customizing the command +used to reboot (default is `shutdown -r`). + += changelog = +msg: Add `reboot` option to DNF Automatic +type: enhancement +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2124793 +--- + dnf/automatic/main.py | 9 +++++++++ + dnf/base.py | 14 ++++++++++++++ + doc/automatic.rst | 12 ++++++++++++ + etc/dnf/automatic.conf | 9 +++++++++ + tests/automatic/test_main.py | 4 ++++ + 5 files changed, 48 insertions(+) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index b53d9c00..b68962c2 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -24,6 +24,7 @@ from __future__ import unicode_literals + + import argparse + import logging ++import os + import random + import socket + import time +@@ -179,6 +180,9 @@ class CommandsConfig(Config): + libdnf.conf.VectorString(['default', 'security']))) + self.add_option('random_sleep', libdnf.conf.OptionNumberInt32(300)) + self.add_option('network_online_timeout', libdnf.conf.OptionNumberInt32(60)) ++ self.add_option('reboot', libdnf.conf.OptionEnumString('never', ++ libdnf.conf.VectorString(['never', 'when-changed', 'when-needed']))) ++ self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r')) + + def imply(self): + if self.apply_updates: +@@ -340,6 +344,11 @@ def main(args): + base.do_transaction() + emitters.notify_applied() + emitters.commit() ++ ++ if (conf.commands.reboot == 'when-changed' or ++ (conf.commands.reboot == 'when-needed' and base.reboot_needed())): ++ if os.waitstatus_to_exitcode(os.system(conf.commands.reboot_command)) != 0: ++ return 1 + except dnf.exceptions.Error as exc: + logger.error(_('Error: %s'), ucd(exc)) + return 1 +diff --git a/dnf/base.py b/dnf/base.py +index 154eb4e3..24c5a444 100644 +--- a/dnf/base.py ++++ b/dnf/base.py +@@ -2790,6 +2790,20 @@ class Base(object): + + return skipped_conflicts, skipped_dependency + ++ def reboot_needed(self): ++ """Check whether a system reboot is recommended following the transaction ++ ++ :return: bool ++ """ ++ if not self.transaction: ++ return False ++ ++ # List taken from DNF needs-restarting ++ need_reboot = frozenset(('kernel', 'kernel-rt', 'glibc', ++ 'linux-firmware', 'systemd', 'dbus', ++ 'dbus-broker', 'dbus-daemon')) ++ changed_pkgs = self.transaction.install_set | self.transaction.remove_set ++ return any(pkg.name in need_reboot for pkg in changed_pkgs) + + def _msg_installed(pkg): + name = ucd(pkg) +diff --git a/doc/automatic.rst b/doc/automatic.rst +index b8e47ad1..ade0ca1a 100644 +--- a/doc/automatic.rst ++++ b/doc/automatic.rst +@@ -90,6 +90,18 @@ Setting the mode of operation of the program. + + What kind of upgrades to look at. ``default`` signals looking for all available updates, ``security`` only those with an issued security advisory. + ++``reboot`` ++ either one of ``never``, ``when-changed``, ``when-needed``, default: ``never`` ++ ++ When the system should reboot following upgrades. ``never`` does not reboot the system. ``when-changed`` triggers a reboot after any upgrade. ``when-needed`` triggers a reboot only when rebooting is necessary to apply changes, such as when systemd or the kernel is upgraded. ++ ++``reboot_command`` ++ string, default: ``shutdown -r`` ++ ++ Specify the command to run to trigger a reboot of the system. For example, add a 5-minute delay and a wall message by using ``shutdown -r +5 'Rebooting after upgrading packages'`` ++ ++ ++ + ---------------------- + ``[emitters]`` section + ---------------------- +diff --git a/etc/dnf/automatic.conf b/etc/dnf/automatic.conf +index 1f7e9402..9735447f 100644 +--- a/etc/dnf/automatic.conf ++++ b/etc/dnf/automatic.conf +@@ -21,6 +21,15 @@ download_updates = yes + # install.timer override this setting. + apply_updates = no + ++# When the system should reboot following upgrades: ++# never = don't reboot after upgrades ++# when-changed = reboot after any changes ++# when-needed = reboot when necessary to apply changes ++reboot = never ++ ++# The command that is run to trigger a system reboot. ++reboot_command = "shutdown -r" ++ + + [emitters] + # Name to use for this system in messages that are emitted. Default is the +diff --git a/tests/automatic/test_main.py b/tests/automatic/test_main.py +index 27ffa407..dc4acd52 100644 +--- a/tests/automatic/test_main.py ++++ b/tests/automatic/test_main.py +@@ -49,3 +49,7 @@ class TestConfig(tests.support.TestCase): + conf = dnf.automatic.main.AutomaticConfig(FILE, downloadupdates=True, installupdates=False) + self.assertTrue(conf.commands.download_updates) + self.assertFalse(conf.commands.apply_updates) ++ ++ # test that reboot is "never" by default ++ conf = dnf.automatic.main.AutomaticConfig(FILE) ++ self.assertEqual(conf.commands.reboot, 'never') +-- +2.40.0 + + +From 8d7608f3462deddf36d5a75ff66f847a30b78026 Mon Sep 17 00:00:00 2001 +From: Evan Goode +Date: Tue, 24 Jan 2023 09:59:22 -0500 +Subject: [PATCH 2/4] Add Evan Goode to AUTHORS + +--- + AUTHORS | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/AUTHORS b/AUTHORS +index 50bff95b..e802a51e 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -69,6 +69,7 @@ DNF CONTRIBUTORS + Dave Johansen + Dylan Pindur + Eduard Cuba ++ Evan Goode + Filipe Brandenburger + Frank Dana + George Machitidze +-- +2.40.0 + + +From 9deed331cb7a1890e1f11a57c989c300b1641a88 Mon Sep 17 00:00:00 2001 +From: Evan Goode +Date: Tue, 24 Jan 2023 17:12:46 -0500 +Subject: [PATCH 3/4] DNF Automatic reboot: 5-minute delay and wall by default + +--- + dnf/automatic/main.py | 2 +- + doc/automatic.rst | 4 ++-- + etc/dnf/automatic.conf | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index b68962c2..a03c359f 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -182,7 +182,7 @@ class CommandsConfig(Config): + self.add_option('network_online_timeout', libdnf.conf.OptionNumberInt32(60)) + self.add_option('reboot', libdnf.conf.OptionEnumString('never', + libdnf.conf.VectorString(['never', 'when-changed', 'when-needed']))) +- self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r')) ++ self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r +5 \'Rebooting after applying package updates\'')) + + def imply(self): + if self.apply_updates: +diff --git a/doc/automatic.rst b/doc/automatic.rst +index ade0ca1a..329c2f46 100644 +--- a/doc/automatic.rst ++++ b/doc/automatic.rst +@@ -96,9 +96,9 @@ Setting the mode of operation of the program. + When the system should reboot following upgrades. ``never`` does not reboot the system. ``when-changed`` triggers a reboot after any upgrade. ``when-needed`` triggers a reboot only when rebooting is necessary to apply changes, such as when systemd or the kernel is upgraded. + + ``reboot_command`` +- string, default: ``shutdown -r`` ++ string, default: ``shutdown -r +5 'Rebooting after applying package updates'`` + +- Specify the command to run to trigger a reboot of the system. For example, add a 5-minute delay and a wall message by using ``shutdown -r +5 'Rebooting after upgrading packages'`` ++ Specify the command to run to trigger a reboot of the system. For example, to skip the 5-minute delay and wall message, use ``shutdown -r`` + + + +diff --git a/etc/dnf/automatic.conf b/etc/dnf/automatic.conf +index 9735447f..e61b12af 100644 +--- a/etc/dnf/automatic.conf ++++ b/etc/dnf/automatic.conf +@@ -28,7 +28,7 @@ apply_updates = no + reboot = never + + # The command that is run to trigger a system reboot. +-reboot_command = "shutdown -r" ++reboot_command = "shutdown -r +5 'Rebooting after applying package updates'" + + + [emitters] +-- +2.40.0 + + +From b002f47a763e442277913a06df963b0ca91deb54 Mon Sep 17 00:00:00 2001 +From: Evan Goode +Date: Wed, 25 Jan 2023 09:47:59 -0500 +Subject: [PATCH 4/4] DNF Automatic: error message for failed reboot command + +--- + dnf/automatic/main.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index a03c359f..11c35ecf 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -347,7 +347,9 @@ def main(args): + + if (conf.commands.reboot == 'when-changed' or + (conf.commands.reboot == 'when-needed' and base.reboot_needed())): +- if os.waitstatus_to_exitcode(os.system(conf.commands.reboot_command)) != 0: ++ exit_code = os.waitstatus_to_exitcode(os.system(conf.commands.reboot_command)) ++ if exit_code != 0: ++ logger.error('Error: reboot command returned nonzero exit code: %d', exit_code) + return 1 + except dnf.exceptions.Error as exc: + logger.error(_('Error: %s'), ucd(exc)) +-- +2.40.0 + diff --git a/SOURCES/0008-Omit-src-RPMs-from-check-update-RhBug-2151910.patch b/SOURCES/0008-Omit-src-RPMs-from-check-update-RhBug-2151910.patch new file mode 100644 index 0000000..3462a50 --- /dev/null +++ b/SOURCES/0008-Omit-src-RPMs-from-check-update-RhBug-2151910.patch @@ -0,0 +1,45 @@ +From b0caa16589763699174f47a3e36a703e1af32ed4 Mon Sep 17 00:00:00 2001 +From: Kyle Walker +Date: Tue, 20 Dec 2022 08:42:03 -0500 +Subject: [PATCH] Omit src RPMs from check-update (RhBug: 2151910) + +The current check-update operation relies on src RPMs not being included +in the available repos. When those repos are enabled, *.src RPMs can be +emitted as updates that are available. Those RPMs are not updated in the +traditional fashion and can cause confusion to end users. + +This change unconditionally filters out src packages in the +_list_patterns() callpath. + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2151910 +--- + dnf/base.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/dnf/base.py b/dnf/base.py +index 24c5a44..7e97e21 100644 +--- a/dnf/base.py ++++ b/dnf/base.py +@@ -1543,6 +1543,8 @@ class Base(object): + updates = query_for_repo(q).filterm(upgrades_by_priority=True) + # reduce a query to security upgrades if they are specified + updates = self._merge_update_filters(updates, upgrade=True) ++ # reduce a query to remove src RPMs ++ updates.filterm(arch__neq=['src', 'nosrc']) + # reduce a query to latest packages + updates = updates.latest().run() + +@@ -1595,6 +1597,8 @@ class Base(object): + self.sack.query()).filter(obsoletes_by_priority=inst) + # reduce a query to security upgrades if they are specified + obsoletes = self._merge_update_filters(obsoletes, warning=False, upgrade=True) ++ # reduce a query to remove src RPMs ++ obsoletes.filterm(arch__neq=['src', 'nosrc']) + obsoletesTuples = [] + for new in obsoletes: + obsoleted_reldeps = new.obsoletes +-- +libgit2 1.3.2 + diff --git a/SOURCES/0009-automatic-Fix-online-detection-with-proxy-RhBz2022440.patch b/SOURCES/0009-automatic-Fix-online-detection-with-proxy-RhBz2022440.patch new file mode 100644 index 0000000..979a7fd --- /dev/null +++ b/SOURCES/0009-automatic-Fix-online-detection-with-proxy-RhBz2022440.patch @@ -0,0 +1,66 @@ +From fcc21cf217a7dfaaf79ca36b5afab6344380eae1 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 3 Apr 2023 12:19:40 +0200 +Subject: [PATCH] automatic: Fix online detection with proxy (RhBz:2022440) + +In case the proxy is configured (either for a repo of globally) it is +used also for detecting whether the system is online. + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2022440 +--- + dnf/automatic/main.py | 23 ++++++++++++++++------- + 1 file changed, 16 insertions(+), 7 deletions(-) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index 11c35ec..756531e 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -182,7 +182,8 @@ class CommandsConfig(Config): + self.add_option('network_online_timeout', libdnf.conf.OptionNumberInt32(60)) + self.add_option('reboot', libdnf.conf.OptionEnumString('never', + libdnf.conf.VectorString(['never', 'when-changed', 'when-needed']))) +- self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r +5 \'Rebooting after applying package updates\'')) ++ self.add_option('reboot_command', libdnf.conf.OptionString( ++ 'shutdown -r +5 \'Rebooting after applying package updates\'')) + + def imply(self): + if self.apply_updates: +@@ -255,21 +256,29 @@ def wait_for_network(repos, timeout): + 'http': 80, + 'https': 443, + 'ftp': 21, ++ 'socks': 1080, ++ 'socks5': 1080, + } + + def remote_address(url_list): + for url in url_list: + parsed_url = dnf.pycomp.urlparse.urlparse(url) +- if parsed_url.hostname and parsed_url.scheme in remote_schemes: +- yield (parsed_url.hostname, +- parsed_url.port or remote_schemes[parsed_url.scheme]) ++ if (not parsed_url.hostname) \ ++ or (not parsed_url.port and parsed_url.scheme not in remote_schemes): ++ # skip urls without hostname or without recognized port ++ continue ++ yield (parsed_url.hostname, ++ parsed_url.port or remote_schemes[parsed_url.scheme]) + + # collect possible remote repositories urls + addresses = set() + for repo in repos.iter_enabled(): +- addresses.update(remote_address(repo.baseurl)) +- addresses.update(remote_address([repo.mirrorlist])) +- addresses.update(remote_address([repo.metalink])) ++ if repo.proxy: ++ addresses.update(remote_address([repo.proxy])) ++ else: ++ addresses.update(remote_address(repo.baseurl)) ++ addresses.update(remote_address([repo.mirrorlist])) ++ addresses.update(remote_address([repo.metalink])) + + if not addresses: + # there is no remote repository enabled so network connection should not be needed +-- +libgit2 1.3.2 + diff --git a/SOURCES/0010-automatic-Return-an-error-when-transaction-fails-RhB.patch b/SOURCES/0010-automatic-Return-an-error-when-transaction-fails-RhB.patch new file mode 100644 index 0000000..4f71514 --- /dev/null +++ b/SOURCES/0010-automatic-Return-an-error-when-transaction-fails-RhB.patch @@ -0,0 +1,39 @@ +From e62164e450c05d626e4ca2b5dc2728939686b423 Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Thu, 20 Apr 2023 10:10:14 +0000 +Subject: [PATCH] automatic: Return an error when transaction fails + (RhBug:2170093) + +In case of no global error occurred within the transaction, we still need to check state of individual transaction items for any failure. + +This is matching the logic in `BaseCli.do_transaction` method, where the error is emitted after printing the transaction summary. + += changelog = +msg: automatic: Return an error when transaction fails +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2170093 +--- + dnf/automatic/main.py | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index 756531e7..f6f4049b 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -351,6 +351,13 @@ def main(args): + + gpgsigcheck(base, trans.install_set) + base.do_transaction() ++ ++ # In case of no global error occurred within the transaction, ++ # we need to check state of individual transaction items. ++ for tsi in trans: ++ if tsi.state == libdnf.transaction.TransactionItemState_ERROR: ++ raise dnf.exceptions.Error(_('Transaction failed')) ++ + emitters.notify_applied() + emitters.commit() + +-- +2.40.1 + diff --git a/SOURCES/0011-Document-symbols-in-dnf-history-list-output.patch b/SOURCES/0011-Document-symbols-in-dnf-history-list-output.patch new file mode 100644 index 0000000..c5aa57a --- /dev/null +++ b/SOURCES/0011-Document-symbols-in-dnf-history-list-output.patch @@ -0,0 +1,63 @@ +From 0f979bd00d22d52f4970897207bd43a74db90bcc Mon Sep 17 00:00:00 2001 +From: Evan Goode +Date: Tue, 30 May 2023 20:48:54 +0000 +Subject: [PATCH] Document symbols in `dnf history list` output + +This patch adds documentation for the symbols shown in the "Action(s)" +and "Altered" columns of `dnf history list` + +The "Action(s)" column abbreviates the names of transaction actions when +there was more than one action, e.g. a transaction that both installs +and upgrades packages would be displayed as "I, U". + +The "Altered" column prints some extra symbols when something unusual +happened with the transaction, like if any warnings were printed or if +it completed with a non-zero status. + +Some language was taken from the yum man pages: +https://github.com/rpm-software-management/yum/blob/master/docs/yum.8. +It appears we no longer use the "P" or "s" symbols. + +Resolves https://bugzilla.redhat.com/show_bug.cgi?id=2172067 +(RhBug:2172067) + += changelog = +msg: Document the symbols in the output of `dnf history list` +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2172067 +--- + doc/command_ref.rst | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/doc/command_ref.rst b/doc/command_ref.rst +index 3ee66bac..0e6cea01 100644 +--- a/doc/command_ref.rst ++++ b/doc/command_ref.rst +@@ -710,6 +710,24 @@ transactions and act according to this information (assuming the + which specifies a transaction by a package which it manipulated. When no + transaction is specified, list all known transactions. + ++ The "Action(s)" column lists each type of action taken in the transaction. The possible values are: ++ ++ * Install (I): a new package was installed on the system ++ * Downgrade (D): an older version of a package replaced the previously-installed version ++ * Obsolete (O): an obsolete package was replaced by a new package ++ * Upgrade (U): a newer version of the package replaced the previously-installed version ++ * Remove (E): a package was removed from the system ++ * Reinstall (R): a package was reinstalled with the same version ++ * Reason change (C): a package was kept in the system but its reason for being installed changed ++ ++ The "Altered" column lists the number of actions taken in each transaction, possibly followed by one or two the following symbols: ++ ++ * ``>``: The RPM database was changed, outside DNF, after the transaction ++ * ``<``: The RPM database was changed, outside DNF, before the transaction ++ * ``*``: The transaction aborted before completion ++ * ``#``: The transaction completed, but with a non-zero status ++ * ``E``: The transaction completed successfully, but had warning/error output ++ + ``--reverse`` + The order of ``history list`` output is printed in reverse order. + +-- +2.40.1 + diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec index e6374d9..8bb367e 100644 --- a/SPECS/dnf.spec +++ b/SPECS/dnf.spec @@ -56,6 +56,9 @@ %global py3pluginpath %{python3_sitelib}/%{name}-plugins +# To avoid breakage if the python3 symlink is changed +%{?python3_version:%global __python3 /usr/bin/python%{python3_version}} + # Use the same directory of the main package for subpackage licence and docs %global _docdir_fmt %{name} @@ -66,7 +69,7 @@ It supports RPMs, modules and comps groups & environments. Name: dnf Version: 4.14.0 -Release: 4%{?dist} +Release: 8%{?dist} Summary: %{pkg_summary} # For a breakdown of the licensing, see PACKAGE-LICENSING License: GPLv2+ @@ -77,6 +80,12 @@ Patch2: 0002-Document-changes-to-offline-upgrade-command-RhBug-19.patch Patch3: 0003-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch Patch4: 0004-Fix-plugins-unit-tests.patch Patch5: 0005-Ignore-processing-variable-files-with-unsupported-en.patch +Patch6: 0006-Update-translations.patch +Patch7: 0007-Add-reboot-option-to-DNF-Automatic.patch +Patch8: 0008-Omit-src-RPMs-from-check-update-RhBug-2151910.patch +Patch9: 0009-automatic-Fix-online-detection-with-proxy-RhBz2022440.patch +Patch10: 0010-automatic-Return-an-error-when-transaction-fails-RhB.patch +Patch11: 0011-Document-symbols-in-dnf-history-list-output.patch BuildArch: noarch BuildRequires: cmake @@ -365,10 +374,25 @@ popd %{python3_sitelib}/%{name}/automatic/ %changelog +* Wed Jun 28 2023 Jaroslav Rohel - 4.14.0-8 +- Return an error when transaction fails (RhBug:2170093,2212262) +- Document symbols in `dnf history list` output (RhBug:2172067,2218113) + +* Tue May 30 2023 Kyle Walker - 4.14.0-7 +- Explicitly use the python3.9 runtime (RhBug:2211019) + +* Thu May 11 2023 Jaroslav Rohel - 4.14.0-6 +- Add reboot option to DNF Automatic (RhBug:2124793) +- Omit src RPMs from check-update (RhBug:2151910,2203069) +- automatic: Fix online detection with proxy (RhBug:2022440,2189851) + +* Wed Mar 15 2023 Marek Blaha - 4.14.0-5 +- Update translations + * Thu Jan 05 2023 Nicola Sella - 4.14.0-4 - Ignore processing variable files with unsupported encoding (RhBug:2148871) -* Wed Dec 03 2022 Nicola Sella - 4.14.0-3 +* Wed Dec 07 2022 Nicola Sella - 4.14.0-3 - Move system-upgrade plugin to core (RhBug:2131288) - offline-upgrade: add support for security filters (RhBug:1939975,2139326) - Fix plugins unit tests + unload plugins upon their deletion