From 226e98209d5899c513e50d47ce6285136aaa3a31 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 9 May 2023 05:36:10 +0000 Subject: [PATCH] import dnf-4.14.0-5.el9_2 --- .dnf.metadata | 2 +- .gitignore | 2 +- ...temporary-leak-of-libsolv-s-page-fil.patch | 317 - ...n-relativeUrl-to-PackageTarget-for-R.patch | 62 + ...t-pkgs-to-upgrade-transaction-RhBug-.patch | 64 - ...-to-offline-upgrade-command-RhBug-19.patch | 96 + ...upgrade-plugin-to-core-RhBug-2054235.patch | 31 + ...l-because-installed_query-is-filtere.patch | 37 - SOURCES/0004-Fix-plugins-unit-tests.patch | 94 + ...g-variable-files-with-unsupported-en.patch | 50 + ...1.patch => 0006-Update-translations.patch} | 5511 +++++++++-------- SPECS/dnf.spec | 54 +- 12 files changed, 3340 insertions(+), 2980 deletions(-) delete mode 100644 SOURCES/0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch create mode 100644 SOURCES/0001-Pass-whole-URL-in-relativeUrl-to-PackageTarget-for-R.patch delete mode 100644 SOURCES/0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch create mode 100644 SOURCES/0002-Document-changes-to-offline-upgrade-command-RhBug-19.patch create mode 100644 SOURCES/0003-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch delete mode 100644 SOURCES/0003-Use-installed_all-because-installed_query-is-filtere.patch create mode 100644 SOURCES/0004-Fix-plugins-unit-tests.patch create mode 100644 SOURCES/0005-Ignore-processing-variable-files-with-unsupported-en.patch rename SOURCES/{0004-Update-translations-RHEL-9.1.patch => 0006-Update-translations.patch} (65%) diff --git a/.dnf.metadata b/.dnf.metadata index 2c26a84..481b8dd 100644 --- a/.dnf.metadata +++ b/.dnf.metadata @@ -1 +1 @@ -71cc8d130f8f7327f57e9b96a271a0f9a18e7e0e SOURCES/dnf-4.12.0.tar.gz +0697aee277730c57446b5b87bdb12456cf245203 SOURCES/dnf-4.14.0.tar.gz diff --git a/.gitignore b/.gitignore index 6838c8a..7748361 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dnf-4.12.0.tar.gz +SOURCES/dnf-4.14.0.tar.gz diff --git a/SOURCES/0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch b/SOURCES/0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch deleted file mode 100644 index 2162232..0000000 --- a/SOURCES/0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch +++ /dev/null @@ -1,317 +0,0 @@ -From 5ce5ed1ea08ad6e198c1c1642c4d9ea2db6eab86 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Sun, 24 Apr 2022 09:08:28 +0200 -Subject: [PATCH] Base.reset: plug (temporary) leak of libsolv's page file - descriptors - -Consider the following call paths (mixed Python and C), extending from -livecd-creator down to libsolv: - - main [livecd-tools/tools/livecd-creator] - install() [livecd-tools/imgcreate/creator.py] - fill_sack() [dnf/dnf/base.py] - _add_repo_to_sack() [dnf/dnf/base.py] - load_repo() [libdnf/python/hawkey/sack-py.cpp] - dnf_sack_load_repo() [libdnf/libdnf/dnf-sack.cpp] - write_main() [libdnf/libdnf/dnf-sack.cpp] - repo_add_solv() [libsolv/src/repo_solv.c] - repopagestore_read_or_setup_pages() [libsolv/src/repopage.c] - dup() - write_ext() [libdnf/libdnf/dnf-sack.cpp] - repo_add_solv() [libsolv/src/repo_solv.c] - repopagestore_read_or_setup_pages() [libsolv/src/repopage.c] - dup() - -The dup() calls create the following file descriptors (output from -"lsof"): - -> COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME -> python3 6500 root 7r REG 8,1 25320727 395438 /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf/fedora.solv (deleted) -> python3 6500 root 8r REG 8,1 52531426 395450 /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf/fedora-filenames.solvx - -These file descriptors are *owned* by the DnfSack object (which is derived -from GObject), as follows: - - sack->priv->pool->repos[1]->repodata[1]->store.pagefd = 7 - sack->priv->pool->repos[1]->repodata[2]->store.pagefd = 8 - ^ ^ ^ ^ ^ ^ ^ - | | | | | | | - | | | | | | int - | | | | | Repopagestore [libsolv/src/repopage.h] - | | | | Repodata [libsolv/src/repodata.h] - | | | struct s_Repo [libsolv/src/repo.h] - | | struct s_Pool (aka Pool) [libsolv/src/pool.h] - | DnfSackPrivate [libdnf/libdnf/dnf-sack.cpp] - DnfSack [libdnf/libdnf/dnf-sack.h] - -The file descriptors are *supposed* to be closed on the following call -path: - - main [livecd-tools/tools/livecd-creator] - install() [livecd-tools/imgcreate/creator.py] - close() [livecd-tools/imgcreate/dnfinst.py] - close() [dnf/dnf/base.py] - reset() [dnf/dnf/base.py] - _sack = None - _goal = None - _transaction = None - ... - dnf_sack_finalize() [libdnf/libdnf/dnf-sack.cpp] - pool_free() [libsolv/src/pool.c] - pool_freeallrepos() [libsolv/src/pool.c] - repo_freedata() [libsolv/src/repo.c] - repodata_freedata() [libsolv/src/repodata.c] - repopagestore_free() [libsolv/src/repopage.c] - close() - -Namely, when dnf.Base.reset() [dnf/dnf/base.py] is called with (sack=True, -goal=True), the reference counts of the objects pointed to by the "_sack", -"_goal" and "_transaction" fields are supposed to reach zero, and then, as -part of the DnfSack object's finalization, the libsolv file descriptors -are supposed to be closed. - -Now, while this *may* happen immediately in dnf.Base.reset(), it may as -well not. The reason is that there is a multitude of *circular references* -between DnfSack and the packages that it contains. When dnf.Base.reset() -is entered, we have the following picture: - - _sack _goal - | | - v v - +----------------+ +-------------+ - | DnfSack object | <--- | Goal object | - +----------------+ +-------------+ - |^ |^ |^ - || || || - || || || - +--||----||----||---+ - | v| v| v| | <-- _transaction - | Pkg1 Pkg2 PkgN | - | | - | Transaction oject | - +-------------------+ - -That is, the reference count of the DnfSack object is (1 + 1 + N), where N -is the number of packages in the transaction. Details: - -(a) The first reference comes from the "_sack" field, established like - this: - - main [livecd-tools/tools/livecd-creator] - install() [livecd-tools/imgcreate/creator.py] - fill_sack() [dnf/dnf/base.py] - _build_sack() [dnf/dnf/sack.py] - Sack() - sack_init() [libdnf/python/hawkey/sack-py.cpp] - dnf_sack_new() [libdnf/libdnf/dnf-sack.cpp] - -(b) The second reference on the DnfSack object comes from "_goal": - - main [livecd-tools/tools/livecd-creator] - install() [livecd-tools/imgcreate/creator.py] - fill_sack() [dnf/dnf/base.py] - _goal = Goal(_sack) - goal_init() [libdnf/python/hawkey/goal-py.cpp] - Py_INCREF(_sack) - -(c) Then there is one reference to "_sack" *per package* in the - transaction: - - main [livecd-tools/tools/livecd-creator] - install() [livecd-tools/imgcreate/creator.py] - runInstall() [livecd-tools/imgcreate/dnfinst.py] - resolve() [dnf/dnf/base.py] - _goal2transaction() [dnf/dnf/base.py] - list_installs() [libdnf/python/hawkey/goal-py.cpp] - list_generic() [libdnf/python/hawkey/goal-py.cpp] - packagelist_to_pylist() [libdnf/python/hawkey/iutil-py.cpp] - new_package() [libdnf/python/hawkey/sack-py.cpp] - Py_BuildValue() - ts.add_install() - - list_installs() creates a list of packages that need to be installed - by DNF. Inside the loop in packagelist_to_pylist(), which constructs - the elements of that list, Py_BuildValue() is called with the "O" - format specifier, and that increases the reference count on "_sack". - - Subsequently, in the _goal2transaction() method, we iterate over the - package list created by list_installs(), and add each package to the - transaction (ts.add_install()). After _goal2transaction() returns, - this transaction is assigned to "self._transaction" in resolve(). This - is where the last N (back-)references on the DnfSack object come from. - -(d) Now, to quote the defintion of the DnfSack object - ("libdnf/docs/hawkey/tutorial-py.rst"): - -> *Sack* is an abstraction for a collection of packages. - - That's why the DnfSack object references all the Pkg1 through PkgN - packages. - -So, when the dnf.Base.reset() method completes, the picture changes like -this: - - _sack _goal - | | - -- [CUT] -- -- [CUT] -- - | | - v | v - +----------------+ [C] +-------------+ - | DnfSack object | <-[U]- | Goal object | - +----------------+ [T] +-------------+ - |^ |^ |^ | - || || || - || || || | - +--||----||----||---+ [C] - | v| v| v| | <--[U]-- _transaction - | Pkg1 Pkg2 PkgN | [T] - | | | - | Transaction oject | - +-------------------+ - -and we are left with N reference cycles (one between each package and the -same DnfSack object). - -This set of cycles can only be cleaned up by Python's generational garbage -collector . The GC will -collect the DnfSack object, and consequently close the libsolv page file -descriptors via dnf_sack_finalize() -- but garbage collection will happen -*only eventually*, unpredictably. - -This means that the dnf.Base.reset() method breaks its interface contract: - -> Make the Base object forget about various things. - -because the libsolv file descriptors can (and frequently do, in practice) -survive dnf.Base.reset(). - -In general, as long as the garbage collector only tracks process-private -memory blocks, there's nothing wrong; however, file descriptors are -visible to the kernel. When dnf.Base.reset() *temporarily* leaks file -descriptors as explained above, then immediately subsequent operations -that depend on those file descriptors having been closed, can fail. - -An example is livecd-creator's unmounting of: - - /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf - -which the kernel refuses, due to libsolv's still open file descriptors -pointing into that filesystem: - -> umount: /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf: target -> is busy. -> Unable to unmount /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf -> normally, using lazy unmount - -(Unfortunately, the whole lazy umount idea is misguided in livecd-tools; -it's a misfeature that should be removed, as it permits the corruption of -the loop-backed filesystem. Now that the real bug is being fixed in DNF, -lazy umount is not needed as a (broken) workaround in livecd-tools. But -that's a separate patch for livecd-tools: -.) - -Plug the fd leak by forcing a garbage collection in dnf.Base.reset() -whenever we cut the "_sack", "_goal" and "_transaction" links -- that is, -when the "sack" and "goal" parameters are True. - -Note that precisely due to the unpredictable behavior of the garbage -collector, reproducing the bug may prove elusive. In order to reproduce it -deterministically, through usage with livecd-creator, disabling automatic -garbage collection with the following patch (for livecd-tools) is -sufficient: - -> diff --git a/tools/livecd-creator b/tools/livecd-creator -> index 291de10cbbf9..8d2c740c238b 100755 -> --- a/tools/livecd-creator -> +++ b/tools/livecd-creator -> @@ -31,6 +31,8 @@ from dnf.exceptions import Error as DnfBaseError -> import imgcreate -> from imgcreate.errors import KickstartError -> -> +import gc -> + -> class Usage(Exception): -> def __init__(self, msg = None, no_error = False): -> Exception.__init__(self, msg, no_error) -> @@ -261,5 +263,6 @@ def do_nss_libs_hack(): -> return hack -> -> if __name__ == "__main__": -> + gc.disable() -> hack = do_nss_libs_hack() -> sys.exit(main()) - -Also note that you need to use livecd-tools at git commit 4afde9352e82 or -later, for this fix to make any difference: said commit fixes a different -(independent) bug in livecd-tools that produces identical symptoms, but -from a different origin. In other words, if you don't have commit -4afde9352e82 in your livecd-tools install, then said bug in livecd-tools -will mask this DNF fix. - -Signed-off-by: Laszlo Ersek ---- - dnf/base.py | 41 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 41 insertions(+) - -diff --git a/dnf/base.py b/dnf/base.py -index caace028..520574b4 100644 ---- a/dnf/base.py -+++ b/dnf/base.py -@@ -72,6 +72,7 @@ import dnf.transaction - import dnf.util - import dnf.yum.rpmtrans - import functools -+import gc - import hawkey - import itertools - import logging -@@ -569,6 +570,46 @@ class Base(object): - self._comps_trans = dnf.comps.TransactionBunch() - self._transaction = None - self._update_security_filters = [] -+ if sack and goal: -+ # We've just done this, above: -+ # -+ # _sack _goal -+ # | | -+ # -- [CUT] -- -- [CUT] -- -+ # | | -+ # v | v -+ # +----------------+ [C] +-------------+ -+ # | DnfSack object | <-[U]- | Goal object | -+ # +----------------+ [T] +-------------+ -+ # |^ |^ |^ | -+ # || || || -+ # || || || | -+ # +--||----||----||---+ [C] -+ # | v| v| v| | <--[U]-- _transaction -+ # | Pkg1 Pkg2 PkgN | [T] -+ # | | | -+ # | Transaction oject | -+ # +-------------------+ -+ # -+ # At this point, the DnfSack object would be released only -+ # eventually, by Python's generational garbage collector, due to the -+ # cyclic references DnfSack<->Pkg1 ... DnfSack<->PkgN. -+ # -+ # The delayed release is a problem: the DnfSack object may -+ # (indirectly) own "page file" file descriptors in libsolv, via -+ # libdnf. For example, -+ # -+ # sack->priv->pool->repos[1]->repodata[1]->store.pagefd = 7 -+ # sack->priv->pool->repos[1]->repodata[2]->store.pagefd = 8 -+ # -+ # These file descriptors are closed when the DnfSack object is -+ # eventually released, that is, when dnf_sack_finalize() (in libdnf) -+ # calls pool_free() (in libsolv). -+ # -+ # We need that to happen right now, as callers may want to unmount -+ # the filesystems which those file descriptors refer to immediately -+ # after reset() returns. Therefore, force a garbage collection here. -+ gc.collect() - - def _closeRpmDB(self): - """Closes down the instances of rpmdb that could be open.""" --- -2.35.1 - diff --git a/SOURCES/0001-Pass-whole-URL-in-relativeUrl-to-PackageTarget-for-R.patch b/SOURCES/0001-Pass-whole-URL-in-relativeUrl-to-PackageTarget-for-R.patch new file mode 100644 index 0000000..b8ea3b7 --- /dev/null +++ b/SOURCES/0001-Pass-whole-URL-in-relativeUrl-to-PackageTarget-for-R.patch @@ -0,0 +1,62 @@ +From 5e082d74b73bf1b3565cfd72a3e1ba7a45a00a8b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hr=C3=A1zk=C3=BD?= +Date: Wed, 7 Sep 2022 14:40:32 +0200 +Subject: [PATCH 1/2] Pass whole URL in relativeUrl to PackageTarget for RPM + URL download + +The PackageTarget supports baseUrl and relativeUrl on the API, but then +the relativeUrl is just a path fragment with no definition on whether it +should be encoded. It's being passed unencoded paths from other places, +and so there's a conditional encode (only if not full URL) in libdnf. + +But full URLs are actually supported in relativeUrl (in that case +baseUrl should be empty) and in that case the URL is expected to be +encoded and is not encoded for the second time. + +Hence, pass the full URL to relativeUrl instead of splitting it. We also +need to decode the file name we store, as on the filesystem the RPM file +name is also decoded. + += changelog = +msg: Don't double-encode RPM URLs passed on CLI +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2103015 +--- + dnf/repo.py | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/dnf/repo.py b/dnf/repo.py +index ec1a2537..86fb2bf4 100644 +--- a/dnf/repo.py ++++ b/dnf/repo.py +@@ -47,6 +47,7 @@ import string + import sys + import time + import traceback ++import urllib + + _PACKAGES_RELATIVE_DIR = "packages" + _MIRRORLIST_FILENAME = "mirrorlist" +@@ -295,7 +296,7 @@ class RemoteRPMPayload(PackagePayload): + self.local_path = os.path.join(self.pkgdir, self.__str__().lstrip("/")) + + def __str__(self): +- return os.path.basename(self.remote_location) ++ return os.path.basename(urllib.parse.unquote(self.remote_location)) + + def _progress_cb(self, cbdata, total, done): + self.remote_size = total +@@ -308,8 +309,8 @@ class RemoteRPMPayload(PackagePayload): + + def _librepo_target(self): + return libdnf.repo.PackageTarget( +- self.conf._config, os.path.basename(self.remote_location), +- self.pkgdir, 0, None, 0, os.path.dirname(self.remote_location), ++ self.conf._config, self.remote_location, ++ self.pkgdir, 0, None, 0, None, + True, 0, 0, self.callbacks) + + @property +-- +2.37.3 + diff --git a/SOURCES/0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch b/SOURCES/0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch deleted file mode 100644 index a0cdeb8..0000000 --- a/SOURCES/0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch +++ /dev/null @@ -1,64 +0,0 @@ -From f32eff294aecaac0fd71cd8888a25fa7929460b9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= -Date: Mon, 4 Jul 2022 09:43:25 +0200 -Subject: [PATCH] Add only relevant pkgs to upgrade transaction (RhBug:2097757) - -https://bugzilla.redhat.com/show_bug.cgi?id=2097757 - -Without this patch dnf can create the following transaction during dnf upgrade --security when there is an advisory for B-2-2: - -``` -repo @System 0 testtags -#>=Pkg: A 1 1 x86_64 -#>=Pkg: B 1 1 x86_64 -#>=Req: A = 1-1 - -repo available 0 testtags -#>=Pkg: A 2 2 x86_64 -#>=Pkg: B 2 2 x86_64 -#>=Req: A = 2-2 -system x86_64 rpm @System -job update oneof A-1-1.x86_64@@System B-2-2.x86_64@available [targeted,setevr,setarch] -result transaction,problems -``` - -Problem is that without forcebest nothing gets upgraded despite the available advisory and --security switch. - -This can also be seen in CI test case: rpm-software-management/ci-dnf-stack#1130 ---- - dnf/base.py | 19 ++++++++++++++++++- - 1 file changed, 18 insertions(+), 1 deletion(-) - -diff --git a/dnf/base.py b/dnf/base.py -index caace028..92fb3bd0 100644 ---- a/dnf/base.py -+++ b/dnf/base.py -@@ -2118,7 +2118,24 @@ class Base(object): - query.filterm(reponame=reponame) - query = self._merge_update_filters(query, pkg_spec=pkg_spec, upgrade=True) - if query: -- query = query.union(installed_query.latest()) -+ # Given that we use libsolv's targeted transactions, we need to ensure that the transaction contains both -+ # the new targeted version and also the current installed version (for the upgraded package). This is -+ # because if it only contained the new version, libsolv would decide to reinstall the package even if it -+ # had just a different buildtime or vendor but the same version -+ # (https://github.com/openSUSE/libsolv/issues/287) -+ # - In general, the query already contains both the new and installed versions but not always. -+ # If repository-packages command is used, the installed packages are filtered out because they are from -+ # the @system repo. We need to add them back in. -+ # - However we need to add installed versions of just the packages that are being upgraded. We don't want -+ # to add all installed packages because it could increase the number of solutions for the transaction -+ # (especially without --best) and since libsolv prefers the smallest possible upgrade it could result -+ # in no upgrade even if there is one available. This is a problem in general but its critical with -+ # --security transactions (https://bugzilla.redhat.com/show_bug.cgi?id=2097757) -+ # - We want to add only the latest versions of installed packages, this is specifically for installonly -+ # packages. Otherwise if for example kernel-1 and kernel-3 were installed and present in the -+ # transaction libsolv could decide to install kernel-2 because it is an upgrade for kernel-1 even -+ # though we don't want it because there already is a newer version present. -+ query = query.union(installed_query.latest().filter(name=[pkg.name for pkg in query])) - sltr = dnf.selector.Selector(self.sack) - sltr.set(pkg=query) - self._goal.upgrade(select=sltr) --- -2.36.1 - diff --git a/SOURCES/0002-Document-changes-to-offline-upgrade-command-RhBug-19.patch b/SOURCES/0002-Document-changes-to-offline-upgrade-command-RhBug-19.patch new file mode 100644 index 0000000..9643071 --- /dev/null +++ b/SOURCES/0002-Document-changes-to-offline-upgrade-command-RhBug-19.patch @@ -0,0 +1,96 @@ +From a41c3aefaa4f982511363645f5608e270094cadf Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Tue, 1 Nov 2022 09:15:08 +0000 +Subject: [PATCH 2/2] Document changes to offline-upgrade command + (RhBug:1939975) + +A support for security filters was added to the offline-upgrade command. This commit adds the documentation into the man pages. + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1939975 +--- + doc/command_ref.rst | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/doc/command_ref.rst b/doc/command_ref.rst +index f39f2c71..3ee66bac 100644 +--- a/doc/command_ref.rst ++++ b/doc/command_ref.rst +@@ -114,7 +114,7 @@ Options + + ``--advisory=, --advisories=`` + Include packages corresponding to the advisory ID, Eg. FEDORA-2201-123. +- Applicable for the install, repoquery, updateinfo and upgrade commands. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + ``--allowerasing`` + Allow erasing of installed packages to resolve dependencies. This option could be used as an alternative to the ``yum swap`` command where packages to remove are not explicitly defined. +@@ -130,12 +130,12 @@ Options + solver may use older versions of dependencies to meet their requirements. + + ``--bugfix`` +- Include packages that fix a bugfix issue. Applicable for the install, repoquery, updateinfo and +- upgrade commands. ++ Include packages that fix a bugfix issue. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + ``--bz=, --bzs=`` +- Include packages that fix a Bugzilla ID, Eg. 123123. Applicable for the install, repoquery, +- updateinfo and upgrade commands. ++ Include packages that fix a Bugzilla ID, Eg. 123123. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + ``-C, --cacheonly`` + Run entirely from system cache, don't update the cache and use it even in case it is expired. +@@ -153,8 +153,8 @@ Options + + ``--cve=, --cves=`` + Include packages that fix a CVE (Common Vulnerabilities and Exposures) ID +- (http://cve.mitre.org/about/), Eg. CVE-2201-0123. Applicable for the install, repoquery, updateinfo, +- and upgrade commands. ++ (http://cve.mitre.org/about/), Eg. CVE-2201-0123. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + ``-d , --debuglevel=`` + Debugging output level. This is an integer value between 0 (no additional information strings) and 10 (shows all debugging information, even that not understandable to the user), default is 2. Deprecated, use ``-v`` instead. +@@ -217,8 +217,8 @@ Options + specified multiple times. + + ``--enhancement`` +- Include enhancement relevant packages. Applicable for the install, repoquery, updateinfo and +- upgrade commands. ++ Include enhancement relevant packages. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + .. _exclude_option-label: + +@@ -289,8 +289,8 @@ Options + ``--setopt`` using configuration from ``/path/dnf.conf``. + + ``--newpackage`` +- Include newpackage relevant packages. Applicable for the install, repoquery, updateinfo and +- upgrade commands. ++ Include newpackage relevant packages. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + ``--noautoremove`` + Disable removal of dependencies that are no longer used. It sets +@@ -362,11 +362,11 @@ Options + + ``--sec-severity=, --secseverity=`` + Includes packages that provide a fix for an issue of the specified severity. +- Applicable for the install, repoquery, updateinfo and upgrade commands. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + ``--security`` +- Includes packages that provide a fix for a security issue. Applicable for the +- upgrade command. ++ Includes packages that provide a fix for a security issue. ++ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands. + + .. _setopt_option-label: + +-- +2.38.1 + diff --git a/SOURCES/0003-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch b/SOURCES/0003-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch new file mode 100644 index 0000000..ea3d079 --- /dev/null +++ b/SOURCES/0003-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch @@ -0,0 +1,31 @@ +From e5732ab22f092bb3fc6ce6e8f94aad72f3654383 Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Wed, 31 Aug 2022 07:49:39 +0200 +Subject: [PATCH 1/2] Move system-upgrade plugin to core (RhBug:2054235) + +Just doc fix. + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2054235 +--- + doc/command_ref.rst | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/doc/command_ref.rst b/doc/command_ref.rst +index 996ae3b4..f39f2c71 100644 +--- a/doc/command_ref.rst ++++ b/doc/command_ref.rst +@@ -189,8 +189,7 @@ Options + ``--downloaddir=, --destdir=`` + Redirect downloaded packages to provided directory. The option has to be used together with the \-\ + :ref:`-downloadonly ` command line option, with the +- ``download``, ``modulesync`` or ``reposync`` commands (dnf-plugins-core) or with the ``system-upgrade`` command +- (dnf-plugins-extras). ++ ``download``, ``modulesync``, ``reposync`` or ``system-upgrade`` commands (dnf-plugins-core). + + .. _downloadonly-label: + +-- +2.38.1 + diff --git a/SOURCES/0003-Use-installed_all-because-installed_query-is-filtere.patch b/SOURCES/0003-Use-installed_all-because-installed_query-is-filtere.patch deleted file mode 100644 index e5de647..0000000 --- a/SOURCES/0003-Use-installed_all-because-installed_query-is-filtere.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 776241568cb10e3a671c574b25e06b63d86e7ac0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= -Date: Mon, 4 Jul 2022 09:46:29 +0200 -Subject: [PATCH] Use `installed_all` because `installed_query` is filtered - user input - -`installed_query` could be missing packages. If we specify we want to -upgrade a specific nevra that is not yet installed, then `installed_query` -is empty because it is based on user input, but there could be other -versions of the pkg installed. - -Eg: if kernel-1 and kernel-3 are installed and we specify we want to -upgrade kernel-2, nothing should be done because we already have higher -version, but now `installed_query` would be empty and kernel-2 would be -installed. - -Therefore, we need to use `installed_all`. ---- - dnf/base.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dnf/base.py b/dnf/base.py -index 92fb3bd0..1b0f07ed 100644 ---- a/dnf/base.py -+++ b/dnf/base.py -@@ -2135,7 +2135,7 @@ class Base(object): - # packages. Otherwise if for example kernel-1 and kernel-3 were installed and present in the - # transaction libsolv could decide to install kernel-2 because it is an upgrade for kernel-1 even - # though we don't want it because there already is a newer version present. -- query = query.union(installed_query.latest().filter(name=[pkg.name for pkg in query])) -+ query = query.union(installed_all.latest().filter(name=[pkg.name for pkg in query])) - sltr = dnf.selector.Selector(self.sack) - sltr.set(pkg=query) - self._goal.upgrade(select=sltr) --- -2.36.1 - diff --git a/SOURCES/0004-Fix-plugins-unit-tests.patch b/SOURCES/0004-Fix-plugins-unit-tests.patch new file mode 100644 index 0000000..bc88733 --- /dev/null +++ b/SOURCES/0004-Fix-plugins-unit-tests.patch @@ -0,0 +1,94 @@ +From 3ef5ec915ea4b5e6fe7d25542f0daccef278c01e Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Tue, 13 Sep 2022 14:35:10 +0200 +Subject: [PATCH] Fix plugins unit tests + unload plugins upon their deletion + +--- + dnf/plugin.py | 8 ++++++-- + tests/api/test_dnf_base.py | 24 +++++++++++++++++++----- + 2 files changed, 25 insertions(+), 7 deletions(-) + +diff --git a/dnf/plugin.py b/dnf/plugin.py +index b083727d..d2f46ce3 100644 +--- a/dnf/plugin.py ++++ b/dnf/plugin.py +@@ -98,6 +98,9 @@ class Plugins(object): + self.plugin_cls = [] + self.plugins = [] + ++ def __del__(self): ++ self._unload() ++ + def _caller(self, method): + for plugin in self.plugins: + try: +@@ -164,8 +167,9 @@ class Plugins(object): + self._caller('transaction') + + def _unload(self): +- logger.debug(_('Plugins were unloaded')) +- del sys.modules[DYNAMIC_PACKAGE] ++ if DYNAMIC_PACKAGE in sys.modules: ++ logger.log(dnf.logging.DDEBUG, 'Plugins were unloaded.') ++ del sys.modules[DYNAMIC_PACKAGE] + + def unload_removed_plugins(self, transaction): + """ +diff --git a/tests/api/test_dnf_base.py b/tests/api/test_dnf_base.py +index e84e272b..19754b07 100644 +--- a/tests/api/test_dnf_base.py ++++ b/tests/api/test_dnf_base.py +@@ -7,10 +7,23 @@ from __future__ import unicode_literals + import dnf + import dnf.conf + ++import tests.support ++ + from .common import TestCase + from .common import TOUR_4_4 + + ++def conf_with_empty_plugins(): ++ """ ++ Use empty configuration to avoid importing plugins from default paths ++ which would lead to crash of other tests. ++ """ ++ conf = tests.support.FakeConf() ++ conf.plugins = True ++ conf.pluginpath = [] ++ return conf ++ ++ + class DnfBaseApiTest(TestCase): + def setUp(self): + self.base = dnf.Base(dnf.conf.Conf()) +@@ -75,13 +88,12 @@ class DnfBaseApiTest(TestCase): + self.assertHasType(self.base.transaction, dnf.db.group.RPMTransaction) + + def test_init_plugins(self): +- # Base.init_plugins(disabled_glob=(), enable_plugins=(), cli=None) ++ # Base.init_plugins() + self.assertHasAttr(self.base, "init_plugins") + +- # disable plugins to avoid calling dnf.plugin.Plugins._load() multiple times +- # which causes the tests to crash +- self.base.conf.plugins = False +- self.base.init_plugins(disabled_glob=(), enable_plugins=(), cli=None) ++ self.base._conf = conf_with_empty_plugins() ++ ++ self.base.init_plugins() + + def test_pre_configure_plugins(self): + # Base.pre_configure_plugins() +@@ -99,6 +111,8 @@ class DnfBaseApiTest(TestCase): + # Base.unload_plugins() + self.assertHasAttr(self.base, "unload_plugins") + ++ self.base._conf = conf_with_empty_plugins() ++ + self.base.init_plugins() + self.base.unload_plugins() + +-- +2.38.1 + diff --git a/SOURCES/0005-Ignore-processing-variable-files-with-unsupported-en.patch b/SOURCES/0005-Ignore-processing-variable-files-with-unsupported-en.patch new file mode 100644 index 0000000..87b2b81 --- /dev/null +++ b/SOURCES/0005-Ignore-processing-variable-files-with-unsupported-en.patch @@ -0,0 +1,50 @@ +From 490cf87dd27926d16fb10735b467cbc490d5c9f1 Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Wed, 23 Nov 2022 08:44:41 +0000 +Subject: [PATCH] Ignore processing variable files with unsupported encoding + (RhBug:2141215) + +This issue could be seen for example when there are some temporary files stored by text editors in the `/etc/dnf/vars` folder. These files could be in the binary format and causes `UnicodeDecodeError` exception to be thrown during processing of the var files. + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2141215 +--- + dnf/conf/substitutions.py | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/dnf/conf/substitutions.py b/dnf/conf/substitutions.py +index 1281bdf0..4d0f0d55 100644 +--- a/dnf/conf/substitutions.py ++++ b/dnf/conf/substitutions.py +@@ -18,13 +18,15 @@ + # Red Hat, Inc. + # + ++import logging + import os + import re + +-import dnf +-import dnf.exceptions ++from dnf.i18n import _ + + ENVIRONMENT_VARS_RE = re.compile(r'^DNF_VAR_[A-Za-z0-9_]+$') ++logger = logging.getLogger('dnf') ++ + + class Substitutions(dict): + # :api +@@ -60,7 +62,8 @@ class Substitutions(dict): + val = fp.readline() + if val and val[-1] == '\n': + val = val[:-1] +- except (OSError, IOError): ++ except (OSError, IOError, UnicodeDecodeError) as e: ++ logger.warning(_("Error when parsing a variable from file '{0}': {1}").format(filepath, e)) + continue + if val is not None: + self[fsvar] = val +-- +2.39.0 + diff --git a/SOURCES/0004-Update-translations-RHEL-9.1.patch b/SOURCES/0006-Update-translations.patch similarity index 65% rename from SOURCES/0004-Update-translations-RHEL-9.1.patch rename to SOURCES/0006-Update-translations.patch index e3df2ee..be279ac 100644 --- a/SOURCES/0004-Update-translations-RHEL-9.1.patch +++ b/SOURCES/0006-Update-translations.patch @@ -1,325 +1,324 @@ -From acef94b4552fba6ff788b8e4f041afedd9c7cde7 Mon Sep 17 00:00:00 2001 +From ef35e9d6d2a5857d724eb12dcb27f2b3a613368e Mon Sep 17 00:00:00 2001 From: Marek Blaha -Date: Thu, 15 Sep 2022 13:42:01 +0200 -Subject: [PATCH] Update translations RHEL 9.1 +Date: Wed, 15 Mar 2023 14:17:45 +0100 +Subject: [PATCH] Update translations --- - po/dnf.pot | 272 +++++++++--------- - po/fr.po | 579 ++++++++++++++++++++------------------ - po/ja.po | 794 ++++++++++++++++++++++++++++++++-------------------- - po/ko.po | 605 ++++++++++++++++++++++----------------- - po/zh_CN.po | 518 +++++++++++++++++++--------------- - 5 files changed, 1571 insertions(+), 1197 deletions(-) + 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 a8d34d09..3104f8ac 100644 +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-01-12 01:51+0000\n" -+"POT-Creation-Date: 2022-08-31 13:42+0200\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,245 +101,245 @@ msgstr "" +@@ -101,7 +101,7 @@ msgstr "" msgid "Error: %s" msgstr "" --#: dnf/base.py:148 dnf/base.py:477 dnf/base.py:479 -+#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 +-#: 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 "" --#: dnf/base.py:150 -+#: dnf/base.py:152 +@@ -109,237 +109,237 @@ msgstr "" msgid "Loading repository '{}' has failed" msgstr "" --#: dnf/base.py:327 -+#: dnf/base.py:329 +-#: dnf/base.py:329 ++#: dnf/base.py:334 msgid "Metadata timer caching disabled when running on metered connection." msgstr "" --#: dnf/base.py:332 -+#: dnf/base.py:334 +-#: dnf/base.py:334 ++#: dnf/base.py:339 msgid "Metadata timer caching disabled when running on a battery." msgstr "" --#: dnf/base.py:337 -+#: dnf/base.py:339 +-#: dnf/base.py:339 ++#: dnf/base.py:344 msgid "Metadata timer caching disabled." msgstr "" --#: dnf/base.py:342 -+#: dnf/base.py:344 +-#: dnf/base.py:344 ++#: dnf/base.py:349 msgid "Metadata cache refreshed recently." msgstr "" --#: dnf/base.py:348 dnf/cli/commands/__init__.py:91 -+#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 +-#: 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:355 -+#: dnf/base.py:357 +-#: 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:357 -+#: dnf/base.py:359 +-#: 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:361 -+#: dnf/base.py:363 +-#: 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:365 -+#: dnf/base.py:367 +-#: 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:371 -+#: dnf/base.py:373 +-#: dnf/base.py:373 ++#: dnf/base.py:378 msgid "Metadata cache created." msgstr "" --#: dnf/base.py:404 dnf/base.py:471 -+#: dnf/base.py:406 dnf/base.py:473 +-#: 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:416 dnf/base.py:484 -+#: dnf/base.py:418 dnf/base.py:486 +-#: 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:419 -+#: dnf/base.py:421 +-#: dnf/base.py:421 ++#: dnf/base.py:426 #, python-format msgid "Last metadata expiration check: %s ago on %s." msgstr "" --#: dnf/base.py:512 -+#: dnf/base.py:514 +-#: 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:514 -+#: dnf/base.py:516 +-#: dnf/base.py:516 ++#: dnf/base.py:521 #, python-format msgid "You can remove cached packages by executing '%s'." msgstr "" --#: dnf/base.py:606 -+#: dnf/base.py:648 +-#: dnf/base.py:648 ++#: dnf/base.py:653 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "" --#: dnf/base.py:662 -+#: dnf/base.py:706 +-#: dnf/base.py:706 ++#: dnf/base.py:711 #, python-format msgid "Failed to add groups file for repository: %s - %s" msgstr "" --#: dnf/base.py:922 -+#: dnf/base.py:968 +-#: dnf/base.py:968 ++#: dnf/base.py:973 msgid "Running transaction check" msgstr "" --#: dnf/base.py:930 -+#: dnf/base.py:976 +-#: dnf/base.py:976 ++#: dnf/base.py:981 msgid "Error: transaction check vs depsolve:" msgstr "" --#: dnf/base.py:936 -+#: dnf/base.py:982 +-#: dnf/base.py:982 ++#: dnf/base.py:987 msgid "Transaction check succeeded." msgstr "" --#: dnf/base.py:939 -+#: dnf/base.py:985 +-#: dnf/base.py:985 ++#: dnf/base.py:990 msgid "Running transaction test" msgstr "" --#: dnf/base.py:949 dnf/base.py:1100 -+#: dnf/base.py:995 dnf/base.py:1146 +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 msgid "RPM: {}" msgstr "" --#: dnf/base.py:950 -+#: dnf/base.py:996 +-#: dnf/base.py:996 ++#: dnf/base.py:1001 msgid "Transaction test error:" msgstr "" --#: dnf/base.py:961 -+#: dnf/base.py:1007 +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 msgid "Transaction test succeeded." msgstr "" --#: dnf/base.py:982 -+#: dnf/base.py:1028 +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 msgid "Running transaction" msgstr "" --#: dnf/base.py:1019 -+#: dnf/base.py:1065 +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 msgid "Disk Requirements:" msgstr "" --#: dnf/base.py:1022 -+#: dnf/base.py:1068 +-#: 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:1029 -+#: dnf/base.py:1075 +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 msgid "Error Summary" msgstr "" --#: dnf/base.py:1055 -+#: dnf/base.py:1101 +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 #, python-brace-format msgid "RPMDB altered outside of {prog}." msgstr "" --#: dnf/base.py:1101 dnf/base.py:1109 -+#: dnf/base.py:1147 dnf/base.py:1155 +-#: 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:1104 -+#: dnf/base.py:1150 +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 msgid "Transaction couldn't start:" msgstr "" --#: dnf/base.py:1118 -+#: dnf/base.py:1164 +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 #, python-format msgid "Failed to remove transaction file %s" msgstr "" --#: dnf/base.py:1200 -+#: dnf/base.py:1246 +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 msgid "Some packages were not downloaded. Retrying." msgstr "" --#: dnf/base.py:1230 -+#: dnf/base.py:1276 +-#: 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:1234 -+#: dnf/base.py:1280 +-#: 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:1276 -+#: dnf/base.py:1322 +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 msgid "Cannot add local packages, because transaction job already exists" msgstr "" --#: dnf/base.py:1290 -+#: dnf/base.py:1336 +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 msgid "Could not open: {}" msgstr "" --#: dnf/base.py:1328 -+#: dnf/base.py:1374 +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 #, python-format msgid "Public key for %s is not installed" msgstr "" --#: dnf/base.py:1332 -+#: dnf/base.py:1378 +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 #, python-format msgid "Problem opening package %s" msgstr "" --#: dnf/base.py:1340 -+#: dnf/base.py:1386 +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 #, python-format msgid "Public key for %s is not trusted" msgstr "" --#: dnf/base.py:1344 -+#: dnf/base.py:1390 +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 #, python-format msgid "Package %s is not signed" msgstr "" --#: dnf/base.py:1374 -+#: dnf/base.py:1420 +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 #, python-format msgid "Cannot remove %s" msgstr "" --#: dnf/base.py:1378 -+#: dnf/base.py:1424 +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 #, python-format msgid "%s removed" msgstr "" --#: dnf/base.py:1658 -+#: dnf/base.py:1704 +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 msgid "No match for group package \"{}\"" msgstr "" --#: dnf/base.py:1740 -+#: dnf/base.py:1786 +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 #, python-format msgid "Adding packages from group '%s': %s" msgstr "" --#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 +-#: 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:1781 -+#: dnf/base.py:1827 +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 msgid "No groups marked for removal." msgstr "" --#: dnf/base.py:1815 -+#: dnf/base.py:1861 +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 msgid "No group marked for upgrade." msgstr "" --#: dnf/base.py:2029 -+#: dnf/base.py:2075 +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 #, python-format msgid "Package %s not installed, cannot downgrade it." msgstr "" --#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 --#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 -+#: 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: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 @@ -327,153 +326,153 @@ index a8d34d09..3104f8ac 100644 msgid "No match for argument: %s" msgstr "" --#: dnf/base.py:2038 -+#: dnf/base.py:2084 +-#: 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:2061 -+#: dnf/base.py:2107 +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 #, python-format msgid "Package %s not installed, cannot reinstall it." msgstr "" --#: dnf/base.py:2076 -+#: dnf/base.py:2122 +-#: 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:2087 -+#: dnf/base.py:2133 +-#: dnf/base.py:2137 ++#: dnf/base.py:2142 #, python-format msgid "Package %s not installed, cannot update it." msgstr "" --#: dnf/base.py:2097 -+#: dnf/base.py:2143 +-#: 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:2140 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 +-#: 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:2146 -+#: dnf/base.py:2209 +-#: dnf/base.py:2213 ++#: dnf/base.py:2218 #, python-format msgid "Package %s available, but installed for different architecture." msgstr "" --#: dnf/base.py:2171 -+#: dnf/base.py:2234 +-#: dnf/base.py:2238 ++#: dnf/base.py:2243 #, python-format msgid "No package %s installed." msgstr "" --#: dnf/base.py:2189 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2252 dnf/cli/commands/install.py:136 +-#: 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:2204 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 +-#: 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:2292 dnf/cli/cli.py:428 -+#: dnf/base.py:2355 dnf/cli/cli.py:428 +-#: 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:2297 -+#: dnf/base.py:2360 +-#: 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:2397 -+#: dnf/base.py:2460 +-#: dnf/base.py:2464 ++#: dnf/base.py:2469 msgid "No security updates needed, but {} update available" msgstr "" --#: dnf/base.py:2399 -+#: dnf/base.py:2462 +-#: dnf/base.py:2466 ++#: dnf/base.py:2471 msgid "No security updates needed, but {} updates available" msgstr "" --#: dnf/base.py:2403 -+#: dnf/base.py:2466 +-#: dnf/base.py:2470 ++#: dnf/base.py:2475 msgid "No security updates needed for \"{}\", but {} update available" msgstr "" --#: dnf/base.py:2405 -+#: dnf/base.py:2468 +-#: 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:2426 -+#: dnf/base.py:2489 +-#: 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:2434 -+#: dnf/base.py:2497 +-#: dnf/base.py:2501 ++#: dnf/base.py:2506 #, python-format msgid ". Failing package is: %s" msgstr "" --#: dnf/base.py:2435 -+#: dnf/base.py:2498 +-#: dnf/base.py:2502 ++#: dnf/base.py:2507 #, python-format msgid "GPG Keys are configured as: %s" msgstr "" --#: dnf/base.py:2447 -+#: dnf/base.py:2510 +-#: dnf/base.py:2514 ++#: dnf/base.py:2519 #, python-format msgid "GPG key at %s (0x%s) is already installed" msgstr "" --#: dnf/base.py:2483 -+#: dnf/base.py:2546 +-#: dnf/base.py:2550 ++#: dnf/base.py:2555 msgid "The key has been approved." msgstr "" --#: dnf/base.py:2486 -+#: dnf/base.py:2549 +-#: dnf/base.py:2553 ++#: dnf/base.py:2558 msgid "The key has been rejected." msgstr "" --#: dnf/base.py:2519 -+#: dnf/base.py:2582 +-#: dnf/base.py:2586 ++#: dnf/base.py:2591 #, python-format msgid "Key import failed (code %d)" msgstr "" --#: dnf/base.py:2521 -+#: dnf/base.py:2584 +-#: dnf/base.py:2588 ++#: dnf/base.py:2593 msgid "Key imported successfully" msgstr "" --#: dnf/base.py:2525 -+#: dnf/base.py:2588 +-#: dnf/base.py:2592 ++#: dnf/base.py:2597 msgid "Didn't install any keys" msgstr "" --#: dnf/base.py:2528 -+#: dnf/base.py:2591 +-#: dnf/base.py:2595 ++#: dnf/base.py:2600 #, python-format msgid "" "The GPG keys listed for the \"%s\" repository are already installed but they " @@ -481,317 +480,224 @@ index a8d34d09..3104f8ac 100644 "Check that the correct key URLs are configured for this repository." msgstr "" --#: dnf/base.py:2539 -+#: dnf/base.py:2602 +-#: dnf/base.py:2606 ++#: dnf/base.py:2611 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "" --#: dnf/base.py:2592 -+#: dnf/base.py:2655 +-#: dnf/base.py:2659 ++#: dnf/base.py:2664 msgid " * Maybe you meant: {}" msgstr "" --#: dnf/base.py:2624 -+#: dnf/base.py:2687 +-#: dnf/base.py:2691 ++#: dnf/base.py:2696 msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" msgstr "" --#: dnf/base.py:2627 -+#: dnf/base.py:2690 +-#: dnf/base.py:2694 ++#: dnf/base.py:2699 msgid "Some packages from local repository have incorrect checksum" msgstr "" --#: dnf/base.py:2630 -+#: dnf/base.py:2693 +-#: dnf/base.py:2697 ++#: dnf/base.py:2702 msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" msgstr "" --#: dnf/base.py:2633 -+#: dnf/base.py:2696 +-#: 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:2651 dnf/base.py:2671 -+#: dnf/base.py:2714 dnf/base.py:2734 +-#: 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:2659 dnf/base.py:2679 -+#: dnf/base.py:2722 dnf/base.py:2742 +-#: 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:2661 -+#: dnf/base.py:2724 +-#: dnf/base.py:2728 ++#: dnf/base.py:2733 msgid "All matches were filtered out by modular filtering for argument" msgstr "" --#: dnf/base.py:2677 -+#: dnf/base.py:2740 +-#: dnf/base.py:2744 ++#: dnf/base.py:2749 msgid "All matches were installed from a different repository for argument" msgstr "" --#: dnf/base.py:2724 -+#: dnf/base.py:2787 +-#: dnf/base.py:2791 ++#: dnf/base.py:2796 #, python-format msgid "Package %s is already installed." msgstr "" -@@ -539,8 +539,8 @@ msgstr "" - msgid "Cannot read file \"%s\": %s" +@@ -3379,7 +3379,8 @@ msgstr "" + msgid "Environment id '%s' does not exist." msgstr "" --#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:804 --#: dnf/cli/cli.py:808 dnf/cli/commands/alias.py:108 -+#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:806 -+#: dnf/cli/cli.py:810 dnf/cli/commands/alias.py:108 +-#: 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 "Config error: %s" + msgid "Environment id '%s' is not installed." msgstr "" -@@ -627,7 +627,7 @@ msgstr "" - msgid "No packages marked for distribution synchronization." +@@ -3485,6 +3486,11 @@ msgstr "" + msgid "Parsing file \"{}\" failed: {}" msgstr "" --#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:395 -+#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:396 ++#: 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 "No package %s available." - msgstr "" -@@ -665,94 +665,96 @@ msgid "No matching Packages to list" + msgid "repo %s: 0x%s already imported" +@@ -3508,22 +3514,22 @@ msgstr "" + msgid "retrieving repo key for %s unencrypted from %s" msgstr "" - #: dnf/cli/cli.py:604 --msgid "No Matches found" -+msgid "" -+"No matches found. If searching for a file, try specifying the full path or " -+"using a wildcard prefix (\"*/\") at the beginning." +-#: 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/cli/cli.py:671 dnf/cli/commands/shell.py:237 -+#: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 #, python-format - msgid "Unknown repo: '%s'" + msgid "An rpm exception occurred: %s" msgstr "" --#: dnf/cli/cli.py:685 -+#: dnf/cli/cli.py:687 +-#: 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 "No repository match: %s" + 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/cli/cli.py:719 -+#: dnf/cli/cli.py:721 - msgid "" - "This command has to be run with superuser privileges (under the root user on " - "most systems)." - msgstr "" - --#: dnf/cli/cli.py:749 -+#: dnf/cli/cli.py:751 +-#: dnf/drpm.py:62 dnf/repo.py:267 ++#: dnf/drpm.py:62 dnf/repo.py:268 #, python-format - msgid "No such command: %s. Please use %s --help" + msgid "unsupported checksum type: %s" + msgstr "" +@@ -3803,31 +3809,31 @@ msgstr "" + msgid "Parsing file failed: %s" msgstr "" --#: dnf/cli/cli.py:752 -+#: dnf/cli/cli.py:754 - #, python-format, python-brace-format - msgid "" - "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" - "command(%s)'\"" - msgstr "" - --#: dnf/cli/cli.py:756 -+#: dnf/cli/cli.py:758 - #, python-brace-format - msgid "" - "It could be a {prog} plugin command, but loading of plugins is currently " - "disabled." - msgstr "" - --#: dnf/cli/cli.py:814 -+#: dnf/cli/cli.py:816 - msgid "" - "--destdir or --downloaddir must be used with --downloadonly or download or " - "system-upgrade command." - msgstr "" - --#: dnf/cli/cli.py:820 -+#: dnf/cli/cli.py:822 - msgid "" - "--enable, --set-enabled and --disable, --set-disabled must be used with " - "config-manager command." - msgstr "" - --#: dnf/cli/cli.py:902 -+#: 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 "" - --#: dnf/cli/cli.py:922 -+#: dnf/cli/cli.py:924 - msgid "Config file \"{}\" does not exist" - msgstr "" - --#: dnf/cli/cli.py:942 -+#: dnf/cli/cli.py:944 - msgid "" - "Unable to detect release version (use '--releasever' to specify release " - "version)" - msgstr "" - --#: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 -+#: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 - msgid "argument {}: not allowed with argument {}" - msgstr "" - --#: dnf/cli/cli.py:1023 -+#: dnf/cli/cli.py:1025 +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 #, python-format - msgid "Command \"%s\" already defined" + msgid "Loaded plugins: %s" msgstr "" --#: dnf/cli/cli.py:1043 -+#: dnf/cli/cli.py:1045 - msgid "Excludes in dnf.conf: " +-#: dnf/plugin.py:211 ++#: dnf/plugin.py:216 + #, python-format + msgid "Failed loading plugin \"%s\": %s" msgstr "" --#: dnf/cli/cli.py:1046 -+#: dnf/cli/cli.py:1048 - msgid "Includes in dnf.conf: " +-#: dnf/plugin.py:243 ++#: dnf/plugin.py:248 + msgid "No matches found for the following enable plugin patterns: {}" msgstr "" --#: dnf/cli/cli.py:1049 -+#: dnf/cli/cli.py:1051 - msgid "Excludes in repo " +-#: dnf/plugin.py:247 ++#: dnf/plugin.py:252 + msgid "No matches found for the following disable plugin patterns: {}" msgstr "" --#: dnf/cli/cli.py:1052 -+#: dnf/cli/cli.py:1054 - msgid "Includes in repo " - msgstr "" - -@@ -1192,7 +1194,7 @@ msgstr "" - msgid "Invalid groups sub-command, use: %s." - msgstr "" - --#: dnf/cli/commands/group.py:398 -+#: dnf/cli/commands/group.py:399 - msgid "Unable to find a mandatory group package." - msgstr "" - -@@ -1282,43 +1284,43 @@ msgstr "" - msgid "Transaction history is incomplete, after %u." - msgstr "" - --#: dnf/cli/commands/history.py:256 -+#: dnf/cli/commands/history.py:267 - msgid "No packages to list" - msgstr "" - --#: dnf/cli/commands/history.py:279 -+#: dnf/cli/commands/history.py:290 - msgid "" - "Invalid transaction ID range definition '{}'.\n" - "Use '..'." - msgstr "" - --#: dnf/cli/commands/history.py:283 -+#: dnf/cli/commands/history.py:294 - msgid "" - "Can't convert '{}' to transaction ID.\n" - "Use '', 'last', 'last-'." - msgstr "" - --#: dnf/cli/commands/history.py:312 -+#: dnf/cli/commands/history.py:323 - msgid "No transaction which manipulates package '{}' was found." - msgstr "" - --#: dnf/cli/commands/history.py:357 -+#: dnf/cli/commands/history.py:368 - msgid "{} exists, overwrite?" - msgstr "" - --#: dnf/cli/commands/history.py:360 -+#: dnf/cli/commands/history.py:371 - msgid "Not overwriting {}, exiting." - msgstr "" - --#: dnf/cli/commands/history.py:367 -+#: dnf/cli/commands/history.py:378 - msgid "Transaction saved to {}." - msgstr "" - --#: dnf/cli/commands/history.py:370 -+#: dnf/cli/commands/history.py:381 - msgid "Error storing transaction: {}" - msgstr "" - --#: dnf/cli/commands/history.py:386 -+#: dnf/cli/commands/history.py:397 - msgid "Warning, the following problems occurred while running a transaction:" - msgstr "" - -@@ -2472,17 +2474,17 @@ msgstr "" - - #: dnf/cli/option_parser.py:261 - msgid "" --"Temporarily enable repositories for the purposeof the current dnf command. " --"Accepts an id, acomma-separated list of ids, or a glob of ids.This option " -+"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/cli/option_parser.py:268 - msgid "" --"Temporarily disable active repositories for thepurpose 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, butis mutually exclusive with `--" --"repo`." -+"Temporarily disable active 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, but is mutually exclusive with " -+"`--repo`." - msgstr "" - - #: dnf/cli/option_parser.py:275 -@@ -3824,10 +3826,6 @@ msgstr "" +-#: dnf/repo.py:84 ++#: dnf/repo.py:85 + #, python-format msgid "no matching payload factory for %s" msgstr "" --#: dnf/repo.py:111 --msgid "Already downloaded" --msgstr "" -- #. pinging mirrors, this might take a while - #: dnf/repo.py:346 +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 #, python-format -@@ -3853,7 +3851,15 @@ msgstr "" - msgid "Cannot find rpmkeys executable to verify signatures." + msgid "determining the fastest mirror (%s hosts).. " + msgstr "" +@@ -4013,50 +4019,51 @@ msgid "Missing object key \"{key}\" in groups.packages." msgstr "" --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function cannot open rpm database." -+msgstr "" -+ -+#: dnf/rpm/transaction.py:75 -+msgid "The dbCookie() function did not return cookie of rpm database." -+msgstr "" -+ -+#: dnf/rpm/transaction.py:135 - msgid "Errors occurred during test transaction." + #: 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 bee36530..ad14e560 100644 +index d7b424b3..15c4a029 100644 --- a/po/fr.po +++ b/po/fr.po -@@ -9,35 +9,34 @@ +@@ -9,38 +9,35 @@ # dominique bribanick , 2011 # Jérôme Fenal , 2014 # Kévin Raymond , 2011 @@ -803,9 +709,10 @@ index bee36530..ad14e560 100644 # José Fournier , 2017. #zanata # Jérôme Fenal , 2017. #zanata -# Jean-Baptiste Holcroft , 2018. #zanata, 2020, 2021. -+# Jean-Baptiste Holcroft , 2018. #zanata, 2020. - # Ludek Janda , 2018. #zanata +-# 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. @@ -815,120 +722,123 @@ index bee36530..ad14e560 100644 # Sundeep Anand , 2021. +# Guillaume Jacob , 2021. # Titouan Bénard , 2021. -+# Transtats , 2022. +-# 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-01-11 01:52+0000\n" --"PO-Revision-Date: 2021-10-10 00:45+0000\n" --"Last-Translator: Titouan Bénard \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: 2022-08-31 13:42+0200\n" -+"PO-Revision-Date: 2022-03-09 12:39+0000\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-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.8\n" -+"X-Generator: Weblate 4.11.2\n" +-"X-Generator: Weblate 4.13\n" ++"X-Generator: Weblate 4.15.2\n" #: dnf/automatic/emitter.py:32 #, python-format -@@ -122,84 +121,84 @@ msgstr "Le système est hors-ligne." +@@ -125,7 +122,7 @@ msgstr "Le système est hors-ligne." msgid "Error: %s" msgstr "Erreur : %s" --#: dnf/base.py:148 dnf/base.py:477 dnf/base.py:479 -+#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 +-#: 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 « {} » : {}" --#: dnf/base.py:150 -+#: dnf/base.py:152 +@@ -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:327 -+#: dnf/base.py:329 +-#: 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:332 -+#: dnf/base.py:334 +-#: 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:337 -+#: dnf/base.py:339 +-#: 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:342 -+#: dnf/base.py:344 +-#: 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:348 dnf/cli/commands/__init__.py:91 -+#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 +-#: 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:355 -+#: dnf/base.py:357 +-#: 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:357 -+#: dnf/base.py:359 +-#: 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:361 -+#: dnf/base.py:363 +-#: 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:365 -+#: dnf/base.py:367 +-#: 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:371 -+#: dnf/base.py:373 +-#: dnf/base.py:373 ++#: dnf/base.py:378 msgid "Metadata cache created." msgstr "Cache des métadonnées créé." --#: dnf/base.py:404 dnf/base.py:471 -+#: dnf/base.py:406 dnf/base.py:473 +-#: 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:416 dnf/base.py:484 -+#: dnf/base.py:418 dnf/base.py:486 +-#: 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:419 -+#: dnf/base.py:421 +-#: dnf/base.py:421 ++#: dnf/base.py:426 #, python-format msgid "Last metadata expiration check: %s ago on %s." msgstr "" @@ -937,85 +847,85 @@ index bee36530..ad14e560 100644 +"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le " +"%s." --#: dnf/base.py:512 -+#: dnf/base.py:514 +-#: dnf/base.py:514 ++#: dnf/base.py:519 msgid "" "The downloaded packages were saved in cache until the next successful " "transaction." -@@ -207,59 +206,59 @@ msgstr "" +@@ -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:514 -+#: dnf/base.py:516 +-#: 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:606 -+#: dnf/base.py:648 +-#: 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:662 -+#: dnf/base.py:706 +-#: 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:922 -+#: dnf/base.py:968 +-#: dnf/base.py:968 ++#: dnf/base.py:973 msgid "Running transaction check" msgstr "Test de la transaction" --#: dnf/base.py:930 -+#: dnf/base.py:976 +-#: 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:936 -+#: dnf/base.py:982 +-#: 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:939 -+#: dnf/base.py:985 +-#: dnf/base.py:985 ++#: dnf/base.py:990 msgid "Running transaction test" msgstr "Lancement de la transaction de test" --#: dnf/base.py:949 dnf/base.py:1100 -+#: dnf/base.py:995 dnf/base.py:1146 +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 msgid "RPM: {}" msgstr "RPM : {}" --#: dnf/base.py:950 -+#: dnf/base.py:996 +-#: dnf/base.py:996 ++#: dnf/base.py:1001 msgid "Transaction test error:" msgstr "Erreur de la transaction de test :" --#: dnf/base.py:961 -+#: dnf/base.py:1007 +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 msgid "Transaction test succeeded." msgstr "Transaction de test réussie." --#: dnf/base.py:982 -+#: dnf/base.py:1028 +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 msgid "Running transaction" msgstr "Exécution de la transaction" --#: dnf/base.py:1019 -+#: dnf/base.py:1065 +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 msgid "Disk Requirements:" msgstr "Besoins en espace disque :" --#: dnf/base.py:1022 -+#: dnf/base.py:1068 +-#: 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." -@@ -267,121 +266,121 @@ msgstr[0] "" +@@ -270,43 +267,43 @@ msgstr[0] "" "Au moins {0} Mio supplémentaire est nécessaire sur le système de fichiers " "{1}." msgstr[1] "" @@ -1024,155 +934,151 @@ index bee36530..ad14e560 100644 +"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers " +"{1}." --#: dnf/base.py:1029 -+#: dnf/base.py:1075 +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 msgid "Error Summary" msgstr "Résumé des erreurs" --#: dnf/base.py:1055 -+#: dnf/base.py:1101 +-#: 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:1101 dnf/base.py:1109 -+#: dnf/base.py:1147 dnf/base.py:1155 +-#: 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:1104 -+#: dnf/base.py:1150 +-#: 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:1118 -+#: dnf/base.py:1164 +-#: 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:1200 -+#: dnf/base.py:1246 +-#: 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:1230 -+#: dnf/base.py:1276 +-#: 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 Delta RPM ont réduit la taille des mises à jour de %.1f Mio à %.1f Mio " --"(%.1f%% économisés)" -+"Les RPM Delta ont réduit les mises à jour de %.1f Mo à %.1f Mo (%.1f%% " -+"économisé)" + "Les RPM Delta ont réduit les mises à jour de %.1f Mo à %.1f Mo (%.1f%% " + "économisé)" --#: dnf/base.py:1234 -+#: dnf/base.py:1280 +-#: 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 "" --"L’échec des Delta RPMs ont fait augmenter les %.1f Mio de mises à jour de " --"%.1f Mio (%.1f%% gaspillés)" -+"Les échecs des RPM Delta ont augmenté les mises à jour de %.1f Mo à %.1f Mo " -+"(%.1f%% gaspillés)" +@@ -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:1276 -+#: dnf/base.py:1322 +-#: 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:1290 -+#: dnf/base.py:1336 +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 msgid "Could not open: {}" msgstr "Impossible d’ouvrir : {}" --#: dnf/base.py:1328 -+#: dnf/base.py:1374 +-#: 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:1332 -+#: dnf/base.py:1378 +-#: 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:1340 -+#: dnf/base.py:1386 +-#: 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:1344 -+#: dnf/base.py:1390 +-#: 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:1374 -+#: dnf/base.py:1420 +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 #, python-format msgid "Cannot remove %s" msgstr "Impossible de supprimer %s" --#: dnf/base.py:1378 -+#: dnf/base.py:1424 +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 #, python-format msgid "%s removed" msgstr "%s supprimé" --#: dnf/base.py:1658 -+#: dnf/base.py:1704 +-#: 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:1740 -+#: dnf/base.py:1786 +-#: 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:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 +-#: 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:1781 -+#: dnf/base.py:1827 +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 msgid "No groups marked for removal." msgstr "Aucun groupe marqué pour suppression." --#: dnf/base.py:1815 -+#: dnf/base.py:1861 +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 msgid "No group marked for upgrade." msgstr "Aucun groupe marqué pour mise à jour." --#: dnf/base.py:2029 -+#: dnf/base.py:2075 +-#: 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:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 --#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 -+#: 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: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 -@@ -391,30 +390,30 @@ msgstr "Le paquet %s n’est pas installé, impossible de le rétrograder." +@@ -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:2038 -+#: dnf/base.py:2084 +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 #, python-format msgid "Package %s of lower version already installed, cannot downgrade it." msgstr "" @@ -1181,162 +1087,162 @@ index bee36530..ad14e560 100644 +"Le paquet %s est déjà installé dans une version inférieure, impossible de le " +"rétrograder." --#: dnf/base.py:2061 -+#: dnf/base.py:2107 +-#: 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:2076 -+#: dnf/base.py:2122 +-#: 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:2087 -+#: dnf/base.py:2133 +-#: 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:2097 -+#: dnf/base.py:2143 +-#: dnf/base.py:2143 ++#: dnf/base.py:2152 #, python-format msgid "" "The same or higher version of %s is already installed, cannot update it." -@@ -422,173 +421,176 @@ msgstr "" +@@ -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:2140 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 +-#: 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:2146 -+#: dnf/base.py:2209 +-#: 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:2171 -+#: dnf/base.py:2234 +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 #, python-format msgid "No package %s installed." msgstr "Aucun paquet %s installé." --#: dnf/base.py:2189 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2252 dnf/cli/commands/install.py:136 +-#: 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:2204 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 +-#: 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:2292 dnf/cli/cli.py:428 -+#: dnf/base.py:2355 dnf/cli/cli.py:428 +-#: 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:2297 -+#: dnf/base.py:2360 +-#: 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:2397 -+#: dnf/base.py:2460 +-#: 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:2399 -+#: dnf/base.py:2462 +-#: 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:2403 -+#: dnf/base.py:2466 +-#: 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:2405 -+#: dnf/base.py:2468 +-#: 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:2426 -+#: dnf/base.py:2489 +-#: 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:2434 -+#: dnf/base.py:2497 +-#: 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:2435 -+#: dnf/base.py:2498 +-#: 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:2447 -+#: dnf/base.py:2510 +-#: 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:2483 -+#: dnf/base.py:2546 +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 msgid "The key has been approved." msgstr "La clef a été approuvée." --#: dnf/base.py:2486 -+#: dnf/base.py:2549 +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 msgid "The key has been rejected." msgstr "La clef a été rejetée." --#: dnf/base.py:2519 -+#: dnf/base.py:2582 +-#: 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:2521 -+#: dnf/base.py:2584 +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 msgid "Key imported successfully" msgstr "La clé a bien été importée" --#: dnf/base.py:2525 -+#: dnf/base.py:2588 +-#: 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:2528 -+#: dnf/base.py:2591 +-#: 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" @@ -1349,36 +1255,36 @@ index bee36530..ad14e560 100644 +"incorrectes pour ce paquet.\n" "Vérifiez que les URL des clés pour ce dépôt soient correctes." --#: dnf/base.py:2539 -+#: dnf/base.py:2602 +-#: 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:2592 -+#: dnf/base.py:2655 +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 msgid " * Maybe you meant: {}" msgstr " * Peut-être vouliez-vous dire : {}" --#: dnf/base.py:2624 -+#: dnf/base.py:2687 +-#: 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:2627 -+#: dnf/base.py:2690 +-#: 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:2630 -+#: dnf/base.py:2693 +-#: 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:2633 -+#: dnf/base.py:2696 +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 msgid "" "Some packages have invalid cache, but cannot be downloaded due to \"--" "cacheonly\" option" @@ -1388,49 +1294,38 @@ index bee36530..ad14e560 100644 +"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés " +"à cause de l’option « --cacheonly »" --#: dnf/base.py:2651 dnf/base.py:2671 -+#: dnf/base.py:2714 dnf/base.py:2734 +-#: 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:2659 dnf/base.py:2679 -+#: dnf/base.py:2722 dnf/base.py:2742 +-#: 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:2661 -+#: dnf/base.py:2724 +-#: 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:2677 -+#: dnf/base.py:2740 +-#: 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:2724 -+#: dnf/base.py:2787 +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 #, python-format msgid "Package %s is already installed." msgstr "Le paquet %s est déjà installé." -@@ -609,8 +611,8 @@ msgstr "La lecture du fichier « %s » a échoué : %s" - msgid "Cannot read file \"%s\": %s" - msgstr "Impossible de lire le fichier « %s » : %s" - --#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:804 --#: dnf/cli/cli.py:808 dnf/cli/commands/alias.py:108 -+#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:806 -+#: dnf/cli/cli.py:810 dnf/cli/commands/alias.py:108 - #, python-format - msgid "Config error: %s" - msgstr "Erreur de configuration : %s" -@@ -640,17 +642,25 @@ msgid "" +@@ -643,17 +643,25 @@ msgid "" "The operation would result in switching of module '{0}' stream '{1}' to " "stream '{2}'" msgstr "" @@ -1458,12 +1353,12 @@ index bee36530..ad14e560 100644 +"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." ++" ». Après la réinitialisation, vous pouvez installer les autres " ++"flux." #: dnf/cli/cli.py:212 #, python-brace-format -@@ -687,7 +697,8 @@ msgid "" +@@ -690,7 +698,8 @@ msgid "" "Refusing to automatically import keys when running unattended.\n" "Use \"-y\" to override." msgstr "" @@ -1473,40 +1368,21 @@ index bee36530..ad14e560 100644 "Utilisez l’option « -y » pour passer outre." #: dnf/cli/cli.py:337 -@@ -702,7 +713,7 @@ msgstr "Passage de paquets en obsolètes" - msgid "No packages marked for distribution synchronization." - msgstr "Aucun paquet marqué pour la synchronisation de la distribution." +@@ -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:425 dnf/cli/commands/group.py:395 -+#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:396 + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 #, python-format - msgid "No package %s available." - msgstr "Aucun paquet %s n’est disponible." -@@ -740,33 +751,35 @@ msgid "No matching Packages to list" - msgstr "Aucun paquet correspondant à lister" +@@ -762,8 +772,8 @@ msgstr "Aucun dépôt ne correspond à %s" - #: dnf/cli/cli.py:604 --msgid "No Matches found" --msgstr "Aucune correspondance trouvée" -+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:671 dnf/cli/commands/shell.py:237 -+#: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 - #, python-format - msgid "Unknown repo: '%s'" - msgstr "Dépôt inconnu : « %s »" - --#: dnf/cli/cli.py:685 -+#: dnf/cli/cli.py:687 - #, python-format - msgid "No repository match: %s" - msgstr "Aucun dépôt ne correspond à %s" - --#: dnf/cli/cli.py:719 -+#: dnf/cli/cli.py:721 + #: dnf/cli/cli.py:721 msgid "" -"This command has to be run with superuser privileges (under the root user on" -" most systems)." @@ -1515,34 +1391,7 @@ index bee36530..ad14e560 100644 msgstr "" "Cette commande doit être exécutée avec les privilèges super-utilisateur " "(sous l’utilisateur root sur la plupart des systèmes)." - --#: dnf/cli/cli.py:749 -+#: dnf/cli/cli.py:751 - #, python-format - msgid "No such command: %s. Please use %s --help" - msgstr "Aucune commande telle que : %s. Veuillez utiliser %s --help" - --#: dnf/cli/cli.py:752 -+#: dnf/cli/cli.py:754 - #, python-format, python-brace-format - msgid "" - "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" -@@ -775,7 +788,7 @@ msgstr "" - "Cela est peut-être une commande d’un module supplémentaire de {PROG}, " - "essayez : « {prog} install 'dnf-command(%s)' »" - --#: dnf/cli/cli.py:756 -+#: dnf/cli/cli.py:758 - #, python-brace-format - msgid "" - "It could be a {prog} plugin command, but loading of plugins is currently " -@@ -784,15 +797,15 @@ msgstr "" - "Cela est peut-être une commande d’un module supplémentaire de {prog}, mais " - "le chargement de modules supplémentaires est actuellement désactivé." - --#: dnf/cli/cli.py:814 -+#: dnf/cli/cli.py:816 - msgid "" +@@ -796,8 +806,8 @@ msgid "" "--destdir or --downloaddir must be used with --downloadonly or download or " "system-upgrade command." msgstr "" @@ -1551,70 +1400,9 @@ index bee36530..ad14e560 100644 +"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly " +"ou download ou system-upgrade command." --#: dnf/cli/cli.py:820 -+#: dnf/cli/cli.py:822 + #: dnf/cli/cli.py:822 msgid "" - "--enable, --set-enabled and --disable, --set-disabled must be used with " - "config-manager command." -@@ -800,7 +813,7 @@ msgstr "" - "--enable, --set-enabled et --disable, --set-disabled doit être utilisé avec " - "la commande config-manager." - --#: dnf/cli/cli.py:902 -+#: 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)" -@@ -809,11 +822,11 @@ msgstr "" - "politique de sécurité RPM active (voir « gpgcheck » dans dnf.conf(5) pour " - "savoir comment interpréter ce message)" - --#: dnf/cli/cli.py:922 -+#: dnf/cli/cli.py:924 - msgid "Config file \"{}\" does not exist" - msgstr "Le fichier de configuration \"{}\" n’existe pas" - --#: dnf/cli/cli.py:942 -+#: dnf/cli/cli.py:944 - msgid "" - "Unable to detect release version (use '--releasever' to specify release " - "version)" -@@ -821,28 +834,28 @@ msgstr "" - "Impossible de détecter le numéro de version (utilisez « --releasever » pour " - "spécifier une version)" - --#: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 -+#: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 - msgid "argument {}: not allowed with argument {}" - msgstr "paramètre {} : non autorisé avec le paramètre {}" - --#: dnf/cli/cli.py:1023 -+#: dnf/cli/cli.py:1025 - #, python-format - msgid "Command \"%s\" already defined" - msgstr "Commande « %s » déjà définie" - --#: dnf/cli/cli.py:1043 -+#: dnf/cli/cli.py:1045 - msgid "Excludes in dnf.conf: " - msgstr "Exclut dans dnf.conf : " - --#: dnf/cli/cli.py:1046 -+#: dnf/cli/cli.py:1048 - msgid "Includes in dnf.conf: " - msgstr "Inclut dans dnf.conf : " - --#: dnf/cli/cli.py:1049 -+#: dnf/cli/cli.py:1051 - msgid "Excludes in repo " - msgstr "Exclut dans dépôt " - --#: dnf/cli/cli.py:1052 -+#: dnf/cli/cli.py:1054 - msgid "Includes in repo " - msgstr "Inclut dans dépôt " - -@@ -862,7 +875,8 @@ msgstr "" +@@ -869,7 +879,8 @@ msgstr "" #, python-brace-format msgid "" "You have enabled checking of packages via GPG keys. This is a good thing.\n" @@ -1624,7 +1412,7 @@ index bee36530..ad14e560 100644 "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" -@@ -874,8 +888,10 @@ msgid "" +@@ -881,8 +892,10 @@ msgid "" "\n" "For more information contact your distribution or package provider." msgstr "" @@ -1637,7 +1425,7 @@ index bee36530..ad14e560 100644 "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" -@@ -885,7 +901,8 @@ msgstr "" +@@ -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" @@ -1647,16 +1435,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/__init__.py:71 #, python-format -@@ -1301,7 +1318,7 @@ msgstr "paramètre pour la sous-commande group" - msgid "Invalid groups sub-command, use: %s." - msgstr "Sous-commande de groupes invalide, utilisez : %s." - --#: dnf/cli/commands/group.py:398 -+#: dnf/cli/commands/group.py:399 - msgid "Unable to find a mandatory group package." - msgstr "Impossible de trouver un paquet obligatoire du groupe." - -@@ -1317,8 +1334,8 @@ msgstr "" +@@ -1324,8 +1338,8 @@ msgstr "" #: dnf/cli/commands/history.py:68 msgid "" @@ -1667,7 +1446,7 @@ index bee36530..ad14e560 100644 msgstr "" "Pour la commande replay, ne vérifie pas si les paquets installés " "correspondent à ceux en transaction" -@@ -1333,8 +1350,8 @@ msgstr "" +@@ -1340,8 +1354,8 @@ msgstr "" #: dnf/cli/commands/history.py:74 msgid "" @@ -1678,7 +1457,7 @@ index bee36530..ad14e560 100644 msgstr "" "Pour la commande replay, saute les paquets qui ne sont pas disponibles ou " "qui ont des dépendances manquantes" -@@ -1367,8 +1384,8 @@ msgstr "Vous n’avez pas accès à la base de données de l’historique : %s" +@@ -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 "" @@ -1689,18 +1468,7 @@ index bee36530..ad14e560 100644 msgstr "" "Impossible de défaire la transaction %s ; cela aboutirait à une base de " "données des paquets incohérente." -@@ -1405,19 +1422,20 @@ msgstr "L’historique des transactions est incomplet, avant %u." - msgid "Transaction history is incomplete, after %u." - msgstr "L’historique des transactions est incomplet, après %u." - --#: dnf/cli/commands/history.py:256 -+#: dnf/cli/commands/history.py:267 - msgid "No packages to list" - msgstr "Aucun paquet à lister" - --#: dnf/cli/commands/history.py:279 -+#: dnf/cli/commands/history.py:290 - msgid "" +@@ -1421,7 +1435,8 @@ msgid "" "Invalid transaction ID range definition '{}'.\n" "Use '..'." msgstr "" @@ -1709,46 +1477,8 @@ index bee36530..ad14e560 100644 +"».\n" "Utilisez « .. »." --#: dnf/cli/commands/history.py:283 -+#: dnf/cli/commands/history.py:294 - msgid "" - "Can't convert '{}' to transaction ID.\n" - "Use '', 'last', 'last-'." -@@ -1425,27 +1443,27 @@ msgstr "" - "Impossible de convertir « {} » à ID transaction.\n" - "Utiliser « », « last », « last- »." - --#: dnf/cli/commands/history.py:312 -+#: dnf/cli/commands/history.py:323 - msgid "No transaction which manipulates package '{}' was found." - msgstr "Aucune transaction manipulant le paquet « {} » n’a été trouvée." - --#: dnf/cli/commands/history.py:357 -+#: dnf/cli/commands/history.py:368 - msgid "{} exists, overwrite?" - msgstr "{} existe, l’écraser ?" - --#: dnf/cli/commands/history.py:360 -+#: dnf/cli/commands/history.py:371 - msgid "Not overwriting {}, exiting." - msgstr "{} non écrasé, sortie." - --#: dnf/cli/commands/history.py:367 -+#: dnf/cli/commands/history.py:378 - msgid "Transaction saved to {}." - msgstr "Transaction enregistrée vers {}." - --#: dnf/cli/commands/history.py:370 -+#: dnf/cli/commands/history.py:381 - msgid "Error storing transaction: {}" - msgstr "Erreur lors du stockage de la transaction : {}" - --#: dnf/cli/commands/history.py:386 -+#: dnf/cli/commands/history.py:397 - msgid "Warning, the following problems occurred while running a transaction:" - msgstr "" - "Attention, les problèmes suivants sont survenus lors de l'exécution d’une " -@@ -1484,8 +1502,7 @@ msgstr "Création des fichiers de cache pour tous les fichiers de métadonnées. + #: 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 "" @@ -1758,7 +1488,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/mark.py:44 msgid "" -@@ -1524,11 +1541,11 @@ msgstr "Le paquet %s n’est pas installé." +@@ -1531,11 +1545,11 @@ msgstr "Le paquet %s n’est pas installé." #: dnf/cli/commands/module.py:54 msgid "" @@ -1774,18 +1504,18 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/module.py:80 msgid "list all module streams, profiles and states" -@@ -1822,8 +1839,8 @@ msgstr "ne montre que les résultats en conflit avec REQ" - #: dnf/cli/commands/repoquery.py:135 - #, fuzzy - #| msgid "" --#| "shows results that requires, suggests, supplements, enhances,or recommends " --#| "package provides and files REQ" -+#| "shows results that requires, suggests, supplements, enhances,or " -+#| "recommends package provides and files REQ" - msgid "" +@@ -1831,8 +1845,8 @@ msgid "" "shows results that requires, suggests, supplements, enhances, or recommends " "package provides and files REQ" -@@ -1867,8 +1884,8 @@ msgstr "" + 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 "" @@ -1796,7 +1526,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/repoquery.py:164 msgid "" -@@ -1926,8 +1943,8 @@ msgstr "affiche les changelogs du paquet" +@@ -1929,8 +1943,8 @@ msgstr "affiche les changelogs du paquet" #: dnf/cli/commands/repoquery.py:194 #, python-format, python-brace-format msgid "" @@ -1807,7 +1537,7 @@ index bee36530..ad14e560 100644 msgstr "" "format d'affichage pour la liste des paquets : « %%{name} %%{version}… », " "utilisez --querytags pour voir la liste complète des étiquettes" -@@ -2075,23 +2092,23 @@ msgstr "la clé à chercher" +@@ -2078,23 +2092,23 @@ msgstr "la clé à chercher" #: dnf/cli/commands/repoquery.py:295 msgid "" @@ -1841,17 +1571,8 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/repoquery.py:312 msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -2105,19 +2122,25 @@ msgstr "Le paquet {} ne contient aucun fichier" - #, fuzzy, 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 thepackages." +@@ -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" @@ -1869,8 +1590,12 @@ index bee36530..ad14e560 100644 +"[key] [--tree]\n" "\n" "description :\n" - " Afficher une arborescence des paquets pour le paquet donné." -@@ -2157,8 +2180,7 @@ msgstr "Description" +-" 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" @@ -1880,7 +1605,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/search.py:76 msgid " & " msgstr " & " -@@ -2292,7 +2314,8 @@ 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" @@ -1890,7 +1615,7 @@ index bee36530..ad14e560 100644 "run résoud et exécute l’ensemble de transactions\n" "exit (ou quit) quitte l’interpréteur de commandes" -@@ -2367,8 +2390,7 @@ msgstr "alertes pour les nouvelles versions de paquets installés (par défaut)" +@@ -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 "" @@ -1900,7 +1625,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/commands/updateinfo.py:83 msgid "" -@@ -2538,8 +2560,8 @@ msgstr "Terminé." +@@ -2535,8 +2552,8 @@ msgstr "Terminé." #: dnf/cli/main.py:116 msgid "No read/execute access in current directory, moving to /" msgstr "" @@ -1911,7 +1636,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/main.py:135 msgid "try to add '{}' to command line to replace conflicting packages" -@@ -2682,8 +2704,7 @@ msgstr "niveau de déboguage pour la sortie" +@@ -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" @@ -1921,7 +1646,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/option_parser.py:240 msgid "show duplicates, in repos, in list/search commands" -@@ -2700,8 +2721,8 @@ msgid "" +@@ -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 " @@ -1932,29 +1657,32 @@ index bee36530..ad14e560 100644 #: dnf/cli/option_parser.py:251 msgid "debugging output level for rpm" -@@ -2717,16 +2738,16 @@ msgstr "répond automatiquement non à toutes les questions" - - #: dnf/cli/option_parser.py:261 - msgid "" --"Temporarily enable repositories for the purposeof the current dnf command. " --"Accepts an id, acomma-separated list of ids, or a glob of ids.This option " -+"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 " +@@ -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 - msgid "" --"Temporarily disable active repositories for thepurpose 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, butis mutually exclusive with " -+"Temporarily disable active 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, but is mutually exclusive with " +@@ -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`." -@@ -2735,8 +2756,8 @@ msgid "" + #: dnf/cli/option_parser.py:275 + msgid "" "enable just specific repositories by an id or a glob, can be specified " "multiple times" msgstr "" @@ -1965,7 +1693,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/option_parser.py:280 msgid "enable repos with config-manager command (automatically saves)" -@@ -2831,8 +2852,8 @@ msgstr "" +@@ -2835,8 +2851,8 @@ msgstr "" #: dnf/cli/option_parser.py:344 msgid "Include packages needed to fix the given BZ, in updates" msgstr "" @@ -1976,7 +1704,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/option_parser.py:347 msgid "Include packages needed to fix the given CVE, in updates" -@@ -3133,8 +3154,7 @@ msgstr "Taille des paquets installés : %s" +@@ -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 "" @@ -1986,7 +1714,7 @@ index bee36530..ad14e560 100644 #: dnf/cli/output.py:974 #, python-format -@@ -3614,8 +3634,8 @@ msgstr "Inconnu" +@@ -3618,8 +3633,8 @@ msgstr "Inconnu" #, python-format msgid "Unable to find information about the locking process (PID %d)" msgstr "" @@ -1997,25 +1725,58 @@ index bee36530..ad14e560 100644 #: dnf/cli/utils.py:117 #, python-format -@@ -3689,7 +3709,7 @@ msgstr "Valeur de configuration non valide : %s=%s dans %s ; %s" +@@ -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/conf/config.py:194 - msgid "Cannot set \"{}\" to \"{}\": {}" --msgstr "Impossible de définir \"{}\" sur \"{}\" : {}" -+msgstr "Impossible de définir \"{}\" à \"{}\" : {}" +-#: 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/config.py:244 - msgid "Could not set cachedir: {}" -@@ -3804,7 +3824,7 @@ msgstr "" - #: dnf/db/group.py:353 ++#: 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" -+msgstr "Une exception rpm s'est produite : %s" + msgstr "Une exception rpm s'est produite : %s" - #: dnf/db/group.py:355 +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 msgid "No available modular metadata for modular package" -@@ -3819,8 +3839,8 @@ msgstr "Un paquet source rpm ne sera pas installé (%s)." + 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 "" @@ -2026,7 +1787,16 @@ index bee36530..ad14e560 100644 #: dnf/dnssec.py:243 msgid "DNSSEC extension: Key for user " -@@ -3895,10 +3915,12 @@ msgstr[1] "Problèmes de dépendance modulaire :" +@@ -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" @@ -2036,12 +1806,12 @@ index bee36530..ad14e560 100644 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 {prog} n’est en cours d’exécution et " ++"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 '{}'." -@@ -3991,8 +4013,8 @@ msgstr "Profil inutile ignoré : {}/{}" +@@ -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 "" @@ -2052,7 +1822,7 @@ index bee36530..ad14e560 100644 #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 #, python-brace-format -@@ -4014,8 +4036,7 @@ msgstr "Impossible de faire correspondre le profil pour l’argument {}" +@@ -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: {}" @@ -2062,7 +1832,7 @@ index bee36530..ad14e560 100644 #: dnf/module/module_base.py:124 msgid "No profiles for module {}:{}" -@@ -4027,15 +4048,14 @@ msgstr "Le profil par défaut {} n’est pas disponible dans le 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" @@ -2081,7 +1851,7 @@ index bee36530..ad14e560 100644 #: dnf/module/module_base.py:228 #, python-brace-format -@@ -4059,8 +4079,8 @@ msgstr "Impossible de résoudre le paramètre {}" +@@ -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 "" @@ -2092,7 +1862,7 @@ index bee36530..ad14e560 100644 #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 msgid "Unable to match profile in argument {}" -@@ -4074,16 +4094,15 @@ msgstr "" +@@ -4078,16 +4099,15 @@ msgstr "" #: dnf/module/module_base.py:422 #, python-brace-format msgid "" @@ -2112,8 +1882,30 @@ index bee36530..ad14e560 100644 msgstr "" "Seul le nom du module est nécessaire. Les paramètres inutiles ont été " "ignorés : « {} »" -@@ -4139,18 +4158,14 @@ msgstr "" - #: dnf/plugin.py:247 +@@ -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 " @@ -2121,48 +1913,19 @@ index bee36530..ad14e560 100644 +"Aucun élément correspondant aux modèles de plugin de désactivation " +"suivants : {}" - #: dnf/repo.py:84 +-#: 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" --#: dnf/repo.py:111 --msgid "Already downloaded" --msgstr "Déjà téléchargé" -- #. pinging mirrors, this might take a while - #: dnf/repo.py:346 +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 #, python-format -@@ -4170,14 +4185,26 @@ msgstr "Ajout du dépôt %s depuis le %s" - #: dnf/rpm/miscutils.py:32 - #, python-format - msgid "Using rpmkeys executable at %s to verify signatures" --msgstr "Utilisation de l'exécutable rpmkeys à %s pour vérifier les signatures" -+msgstr "" -+"Utilisation de l'exécutable rpmkeys dans %s pour vérifier les signatures" - - #: dnf/rpm/miscutils.py:66 - msgid "Cannot find rpmkeys executable to verify signatures." - msgstr "" - "Impossible de trouver l’exécutable rpmkeys pour vérifier les signatures." - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+#, fuzzy -+#| msgid "The openDB() function connot open rpm database." -+msgid "The openDB() function cannot open rpm database." -+msgstr "La fonction openDB() n'ouvre pas de base de données rpm." -+ -+#: dnf/rpm/transaction.py:75 -+msgid "The dbCookie() function did not return cookie of rpm database." -+msgstr "" -+"La fonction dbCookie() n'a pas retourné le cookie de la base de données rpm." -+ -+#: dnf/rpm/transaction.py:135 - msgid "Errors occurred during test transaction." - msgstr "Des erreurs sont survenues lors de la transaction de test." - -@@ -4186,8 +4213,8 @@ msgid "" + 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 "" @@ -2173,7 +1936,7 @@ index bee36530..ad14e560 100644 #. TRANSLATORS: This is for a single package currently being downgraded. #: dnf/transaction.py:80 -@@ -4265,8 +4292,8 @@ msgid "" +@@ -4275,8 +4295,8 @@ msgid "" "Incompatible major version \"{major}\", supported major version is " "\"{major_supp}\"." msgstr "" @@ -2184,7 +1947,7 @@ index bee36530..ad14e560 100644 #: dnf/transaction_sr.py:224 msgid "" -@@ -4292,7 +4319,8 @@ msgstr "Clé objet « {key} » manquante dans un rpm." +@@ -4302,7 +4322,8 @@ msgstr "Clé objet « {key} » manquante dans un rpm." #: dnf/transaction_sr.py:289 #, python-brace-format @@ -2194,7 +1957,7 @@ index bee36530..ad14e560 100644 msgstr "" "Valeur inattendue pour le paquet de raison « {reason} » pour le rpm nevra " "« {nevra} »." -@@ -4329,7 +4357,8 @@ msgstr "" +@@ -4339,7 +4360,8 @@ msgstr "" #: dnf/transaction_sr.py:370 #, python-brace-format @@ -2204,9 +1967,52 @@ index bee36530..ad14e560 100644 msgstr "" "Valeur inattendue pour l’action de paquet « {action} » pour le rpm nevra " "« {nevra} »." -@@ -4382,7 +4411,9 @@ msgstr "Clé d’objet « {key} » manquante dans un groupe." +@@ -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:571 + #: 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 "" @@ -2215,8 +2021,15 @@ index bee36530..ad14e560 100644 msgstr "" "Valeur inattendue pour l’action d’environnement « {action} » pour " "l’environnement « {env} »." -@@ -4395,8 +4426,8 @@ msgstr "Clé d’objet « {key} » manquante dans un environnement." - #: dnf/transaction_sr.py:615 + +-#: 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" @@ -2226,14 +2039,17 @@ index bee36530..ad14e560 100644 msgstr "" "Le paquet nevra « {nevra} », qui n’est pas présent dans le fichier de " "transaction, a été retiré de la transaction." -@@ -4438,19 +4469,25 @@ msgstr "Échec" +@@ -4448,9 +4473,6 @@ msgstr "Échec" msgid "" msgstr "" -+#~ msgid "No Matches found" -+#~ msgstr "Aucune correspondance trouvée" -+ - #~ msgid "" +-#~ 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 "" @@ -2258,7 +2074,7 @@ index bee36530..ad14e560 100644 #~ msgid "skipping." #~ msgstr "ignorer." -@@ -4459,8 +4496,8 @@ msgstr "" +@@ -4475,8 +4500,8 @@ msgstr "" #~ "Using rpmkeys executable from {path} to verify signature for package: " #~ "{package}." #~ msgstr "" @@ -2269,7 +2085,7 @@ index bee36530..ad14e560 100644 #~ msgid "%s: %s check failed: %s vs %s" #~ msgstr "%s : %s vérification a échoué : %s vs %s" -@@ -4475,7 +4512,7 @@ msgstr "" +@@ -4491,7 +4516,7 @@ msgstr "" #~ msgstr "L’identifiant de transaction fourni est introuvable" #~ msgid "Undoing transaction {}, from {}" @@ -2278,7 +2094,7 @@ index bee36530..ad14e560 100644 #~ msgid "Errors in \"{filename}\":" #~ msgstr "Erreurs dans « {filename} » :" -@@ -4487,13 +4524,15 @@ msgstr "" +@@ -4503,13 +4528,15 @@ msgstr "" #~ msgstr "format d’affichage des paquets trouvés" #~ msgid "Available query-tags: use --queryformat \".. %{tag} ..\"" @@ -2297,7 +2113,7 @@ index bee36530..ad14e560 100644 #~ "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 eda4c8c5..00512f61 100644 +index ab2051c5..585f7c19 100644 --- a/po/ja.po +++ b/po/ja.po @@ -14,7 +14,7 @@ @@ -2309,21 +2125,24 @@ index eda4c8c5..00512f61 100644 # Noriko Mizumoto , 2018. #zanata # Ooyama Yosiyuki , 2018. #zanata # Hajime Taira , 2019. #zanata -@@ -23,20 +23,22 @@ +@@ -23,22 +23,23 @@ # Casey Jones , 2020. # Hajime Taira , 2020. # Sundeep Anand , 2021. -+# Transtats , 2022. +-# 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-01-11 01:52+0000\n" --"PO-Revision-Date: 2021-09-06 17:24+0000\n" --"Last-Translator: Sundeep Anand \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: 2022-08-31 13:42+0200\n" -+"PO-Revision-Date: 2022-09-06 07:19+0000\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" @@ -2332,105 +2151,105 @@ index eda4c8c5..00512f61 100644 "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" --"X-Generator: Weblate 4.8\n" -+"X-Generator: Weblate 4.14\n" +-"X-Generator: Weblate 4.11.2\n" ++"X-Generator: Weblate 4.15.2\n" #: dnf/automatic/emitter.py:32 #, python-format -@@ -120,248 +122,253 @@ msgstr "システムはオフラインです。" +@@ -122,7 +123,7 @@ msgstr "システムはオフラインです。" msgid "Error: %s" msgstr "エラー: %s" --#: dnf/base.py:148 dnf/base.py:477 dnf/base.py:479 -+#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 +-#: 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 '{}' のロードに失敗しました: {}" --#: dnf/base.py:150 -+#: dnf/base.py:152 +@@ -130,236 +131,247 @@ msgstr "repo '{}' のロードに失敗しました: {}" msgid "Loading repository '{}' has failed" msgstr "repository '{}' のロードに失敗しました" --#: dnf/base.py:327 -+#: dnf/base.py:329 +-#: 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:332 -+#: dnf/base.py:334 +-#: dnf/base.py:334 ++#: dnf/base.py:339 msgid "Metadata timer caching disabled when running on a battery." -msgstr "バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" +msgstr "" +"バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" --#: dnf/base.py:337 -+#: dnf/base.py:339 +-#: dnf/base.py:339 ++#: dnf/base.py:344 msgid "Metadata timer caching disabled." msgstr "メタデータタイマーキャッシュは無効化されました。" --#: dnf/base.py:342 -+#: dnf/base.py:344 +-#: dnf/base.py:344 ++#: dnf/base.py:349 msgid "Metadata cache refreshed recently." msgstr "メタデータキャッシュは最近、リフレッシュされました。" --#: dnf/base.py:348 dnf/cli/commands/__init__.py:91 -+#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 +-#: 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:355 -+#: dnf/base.py:357 +-#: 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:357 -+#: dnf/base.py:359 +-#: 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:361 -+#: dnf/base.py:363 +-#: 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:365 -+#: dnf/base.py:367 +-#: 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:371 -+#: dnf/base.py:373 +-#: dnf/base.py:373 ++#: dnf/base.py:378 msgid "Metadata cache created." msgstr "メタデータキャッシュを作成しました。" --#: dnf/base.py:404 dnf/base.py:471 -+#: dnf/base.py:406 dnf/base.py:473 +-#: 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:416 dnf/base.py:484 -+#: dnf/base.py:418 dnf/base.py:486 +-#: 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:419 -+#: dnf/base.py:421 +-#: 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 に実施しました。" ++msgstr "メタデータの期限切れの最終確認: %s 前の %s に実施しました。" --#: dnf/base.py:512 -+#: dnf/base.py:514 +-#: dnf/base.py:514 ++#: dnf/base.py:519 msgid "" "The downloaded packages were saved in cache until the next successful " "transaction." @@ -2439,230 +2258,226 @@ index eda4c8c5..00512f61 100644 +"ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保" +"存されました。" --#: dnf/base.py:514 -+#: dnf/base.py:516 +-#: dnf/base.py:516 ++#: dnf/base.py:521 #, python-format msgid "You can remove cached packages by executing '%s'." msgstr "'%s' を実行することでキャッシュパッケージを削除できます。" --#: dnf/base.py:606 -+#: dnf/base.py:648 +-#: dnf/base.py:648 ++#: dnf/base.py:653 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "設定ファイルの tsflag が無効です: %s" --#: dnf/base.py:662 -+#: dnf/base.py:706 +-#: 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:922 -+#: dnf/base.py:968 +-#: dnf/base.py:968 ++#: dnf/base.py:973 msgid "Running transaction check" msgstr "トランザクションの確認を実行中" --#: dnf/base.py:930 -+#: dnf/base.py:976 +-#: dnf/base.py:976 ++#: dnf/base.py:981 msgid "Error: transaction check vs depsolve:" msgstr "エラー: トランザクションの確認 vs depsolve:" --#: dnf/base.py:936 -+#: dnf/base.py:982 +-#: dnf/base.py:982 ++#: dnf/base.py:987 msgid "Transaction check succeeded." msgstr "トランザクションの確認に成功しました。" --#: dnf/base.py:939 -+#: dnf/base.py:985 +-#: dnf/base.py:985 ++#: dnf/base.py:990 msgid "Running transaction test" msgstr "トランザクションのテストを実行中" --#: dnf/base.py:949 dnf/base.py:1100 -+#: dnf/base.py:995 dnf/base.py:1146 +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 msgid "RPM: {}" msgstr "RPM: {}" --#: dnf/base.py:950 -+#: dnf/base.py:996 +-#: dnf/base.py:996 ++#: dnf/base.py:1001 msgid "Transaction test error:" msgstr "トランザクションテストエラー:" --#: dnf/base.py:961 -+#: dnf/base.py:1007 +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 msgid "Transaction test succeeded." msgstr "トランザクションのテストに成功しました。" --#: dnf/base.py:982 -+#: dnf/base.py:1028 +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 msgid "Running transaction" msgstr "トランザクションを実行中" --#: dnf/base.py:1019 -+#: dnf/base.py:1065 +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 msgid "Disk Requirements:" msgstr "ディスク要件:" --#: dnf/base.py:1022 -+#: dnf/base.py:1068 +-#: 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:1029 -+#: dnf/base.py:1075 +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 msgid "Error Summary" msgstr "エラーの概要" --#: dnf/base.py:1055 -+#: dnf/base.py:1101 +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 #, python-brace-format msgid "RPMDB altered outside of {prog}." msgstr "RPMDBは {prog} のサポート外に変更されました。" --#: dnf/base.py:1101 dnf/base.py:1109 -+#: dnf/base.py:1147 dnf/base.py:1155 +-#: 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:1104 -+#: dnf/base.py:1150 +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 msgid "Transaction couldn't start:" msgstr "トランザクションを開始できませんでした:" --#: dnf/base.py:1118 -+#: dnf/base.py:1164 +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 #, python-format msgid "Failed to remove transaction file %s" msgstr "トランザクションファイル %s の削除に失敗しました" --#: dnf/base.py:1200 -+#: dnf/base.py:1246 +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 msgid "Some packages were not downloaded. Retrying." msgstr "一部のパッケージはダウンロードされませんでした。再試行中です。" --#: dnf/base.py:1230 --#, fuzzy, python-format --#| msgid "" --#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" -+#: dnf/base.py:1276 -+#, python-format +-#: dnf/base.py:1276 ++#: dnf/base.py:1281 + #, python-format msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" --msgstr "Delta RPM により %.1f MB の更新を %.1f MB に削減できました。(%d.1%% がキャッシュされていました)" -+msgstr "デルタ RPM は、更新の %.1f MB を %.1f MB に削減しました (%.1f%% 節約しました)" +-msgstr "デルタ RPM は、更新の %.1f MB を %.1f MB に削減しました (%.1f%% 節約しました)。" ++msgstr "" ++"Delta RPM により %.1f MB の更新を %.1f MB に削減できました (%.1f%% 節約しまし" ++"た)" --#: dnf/base.py:1234 --#, fuzzy, python-format --#| msgid "" --#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" -+#: dnf/base.py:1280 -+#, python-format +-#: 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 となりました。(%d.1%% が無駄になりました)" +-msgstr "失敗した Delta RPMs は、更新の %.1f MB を %.1f MB に増加しました (%.1f%% は無駄になりました)" +msgstr "" -+"失敗した Delta RPMs は、更新の %.1f MB を %.1f MB に増加しました (%.1f%% は無" -+"駄になりました)" ++"非効率な Delta RPM により %.1f MB の更新が増大して %.1f MB となりました (%.1f" ++"%% が無駄になりました)" --#: dnf/base.py:1276 -+#: dnf/base.py:1322 +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 msgid "Cannot add local packages, because transaction job already exists" -msgstr "ローカルパッケージを追加できません、トランザクションジョブがすでに存在するためです" +msgstr "" +"ローカルパッケージを追加できません、トランザクションジョブがすでに存在するた" +"めです" --#: dnf/base.py:1290 -+#: dnf/base.py:1336 +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 msgid "Could not open: {}" msgstr "開くことができませんでした: {}" --#: dnf/base.py:1328 -+#: dnf/base.py:1374 +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 #, python-format msgid "Public key for %s is not installed" msgstr "%s の公開鍵がインストールされていません" --#: dnf/base.py:1332 -+#: dnf/base.py:1378 +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 #, python-format msgid "Problem opening package %s" msgstr "パッケージ %s を開くことができません" --#: dnf/base.py:1340 -+#: dnf/base.py:1386 +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 #, python-format msgid "Public key for %s is not trusted" msgstr "%s の公開鍵は信頼されていません" --#: dnf/base.py:1344 -+#: dnf/base.py:1390 +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 #, python-format msgid "Package %s is not signed" msgstr "パッケージ %s は署名されていません" --#: dnf/base.py:1374 -+#: dnf/base.py:1420 +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 #, python-format msgid "Cannot remove %s" msgstr "%s を削除できません" --#: dnf/base.py:1378 -+#: dnf/base.py:1424 +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 #, python-format msgid "%s removed" msgstr "%s を削除しました" --#: dnf/base.py:1658 -+#: dnf/base.py:1704 +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 msgid "No match for group package \"{}\"" msgstr "グループパッケージ \"{}\" に一致するものはありません" --#: dnf/base.py:1740 -+#: dnf/base.py:1786 +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 #, python-format msgid "Adding packages from group '%s': %s" msgstr "グループ '%s' からのパッケージを追加します: %s" --#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 +-#: 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:1781 -+#: dnf/base.py:1827 +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 msgid "No groups marked for removal." msgstr "削除対象のパッケージはありません。" --#: dnf/base.py:1815 -+#: dnf/base.py:1861 +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 msgid "No group marked for upgrade." msgstr "アップグレード対象のグループはありません。" --#: dnf/base.py:2029 -+#: dnf/base.py:2075 +-#: 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:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 --#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 -+#: 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: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 -@@ -371,178 +378,197 @@ msgstr "パッケージ %s はインストールされていないので、ダ +@@ -369,178 +381,196 @@ msgstr "パッケージ %s はインストールされていないので、ダ msgid "No match for argument: %s" msgstr "一致した引数がありません: %s" --#: dnf/base.py:2038 -+#: dnf/base.py:2084 +-#: dnf/base.py:2084 ++#: dnf/base.py:2089 #, python-format msgid "Package %s of lower version already installed, cannot downgrade it." -msgstr "下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" @@ -2670,28 +2485,28 @@ index eda4c8c5..00512f61 100644 +"下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできま" +"せん。" --#: dnf/base.py:2061 -+#: dnf/base.py:2107 +-#: 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:2076 -+#: dnf/base.py:2122 +-#: 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:2087 -+#: dnf/base.py:2133 +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 #, python-format msgid "Package %s not installed, cannot update it." msgstr "パッケージ %s はインストールされていないので、更新できません。" --#: dnf/base.py:2097 -+#: dnf/base.py:2143 +-#: dnf/base.py:2143 ++#: dnf/base.py:2152 #, python-format msgid "" "The same or higher version of %s is already installed, cannot update it." @@ -2700,14 +2515,14 @@ index eda4c8c5..00512f61 100644 +"同じまたはさらに新しいバージョンの %s が既にインストールされています、アップ" +"デートできません。" --#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 +-#: 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:2146 -+#: dnf/base.py:2209 +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 #, python-format msgid "Package %s available, but installed for different architecture." -msgstr "パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされています。" @@ -2715,33 +2530,33 @@ index eda4c8c5..00512f61 100644 +"パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされてい" +"ます。" --#: dnf/base.py:2171 -+#: dnf/base.py:2234 +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 #, python-format msgid "No package %s installed." msgstr "パッケージ %s はインストールされていません。" --#: dnf/base.py:2189 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2252 dnf/cli/commands/install.py:136 +-#: 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:2204 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 +-#: 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:2292 dnf/cli/cli.py:428 -+#: dnf/base.py:2355 dnf/cli/cli.py:428 +-#: 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:2297 -+#: dnf/base.py:2360 +-#: dnf/base.py:2360 ++#: dnf/base.py:2369 #, python-format msgid "Package %s of lowest version already installed, cannot downgrade it." -msgstr "最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" @@ -2749,79 +2564,79 @@ index eda4c8c5..00512f61 100644 +"最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードでき" +"ません。" --#: dnf/base.py:2397 -+#: dnf/base.py:2460 +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 msgid "No security updates needed, but {} update available" msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" --#: dnf/base.py:2399 -+#: dnf/base.py:2462 +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 msgid "No security updates needed, but {} updates available" msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" --#: dnf/base.py:2403 -+#: dnf/base.py:2466 +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 msgid "No security updates needed for \"{}\", but {} update available" msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" --#: dnf/base.py:2405 -+#: dnf/base.py:2468 +-#: 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:2426 -+#: dnf/base.py:2489 +-#: 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:2434 -+#: dnf/base.py:2497 +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 #, python-format msgid ". Failing package is: %s" msgstr ". 失敗したパッケージは: %s" --#: dnf/base.py:2435 -+#: dnf/base.py:2498 +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 #, python-format msgid "GPG Keys are configured as: %s" msgstr "GPG 鍵が設定されています: %s" --#: dnf/base.py:2447 -+#: dnf/base.py:2510 +-#: 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:2483 -+#: dnf/base.py:2546 +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 msgid "The key has been approved." msgstr "鍵が承認されました。" --#: dnf/base.py:2486 -+#: dnf/base.py:2549 +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 msgid "The key has been rejected." msgstr "鍵が拒否されました。" --#: dnf/base.py:2519 -+#: dnf/base.py:2582 +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 #, python-format msgid "Key import failed (code %d)" msgstr "鍵のインポートに失敗しました (コード: %d)" --#: dnf/base.py:2521 -+#: dnf/base.py:2584 +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 msgid "Key imported successfully" msgstr "鍵のインポートに成功しました" --#: dnf/base.py:2525 -+#: dnf/base.py:2588 +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 msgid "Didn't install any keys" msgstr "鍵を 1 つもインストールしませんでした" --#: dnf/base.py:2528 -+#: dnf/base.py:2591 +-#: 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" @@ -2834,40 +2649,40 @@ index eda4c8c5..00512f61 100644 +"パッケージには適切ではありません。\n" "正しい鍵 URL がこのリポジトリー用に設定されているか確認してください。" --#: dnf/base.py:2539 -+#: dnf/base.py:2602 +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?" --#: dnf/base.py:2592 -+#: dnf/base.py:2655 +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 msgid " * Maybe you meant: {}" msgstr " * おそらく: {}" --#: dnf/base.py:2624 -+#: dnf/base.py:2687 +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" -msgstr "ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" +msgstr "" +"ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありま" +"せん" --#: dnf/base.py:2627 -+#: dnf/base.py:2690 +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 msgid "Some packages from local repository have incorrect checksum" -msgstr "ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" +msgstr "" +"ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" --#: dnf/base.py:2630 -+#: dnf/base.py:2693 +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" -msgstr "リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" +msgstr "" +"リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" --#: dnf/base.py:2633 -+#: dnf/base.py:2696 +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 msgid "" "Some packages have invalid cache, but cannot be downloaded due to \"--" "cacheonly\" option" @@ -2876,47 +2691,37 @@ index eda4c8c5..00512f61 100644 +"いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプ" +"ションによりダウンロードできません" --#: dnf/base.py:2651 dnf/base.py:2671 -+#: dnf/base.py:2714 dnf/base.py:2734 +-#: dnf/base.py:2714 dnf/base.py:2734 ++#: dnf/base.py:2723 dnf/base.py:2743 msgid "No match for argument" - msgstr "一致した引数がありません" +-msgstr "一致した引数がありません" ++msgstr "引数に一致する結果がありません" --#: dnf/base.py:2659 dnf/base.py:2679 -+#: dnf/base.py:2722 dnf/base.py:2742 +-#: 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 "すべての検索結果は引数の除外フィルタリングに一致しません (filter out)" ++msgstr "引数に一致する結果はすべて除外フィルタによって除外されました" --#: dnf/base.py:2661 -+#: dnf/base.py:2724 +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 msgid "All matches were filtered out by modular filtering for argument" -msgstr "すべての検出結果は引数のモジュラーフィルタリングに一致しません (filter out)" -+msgstr "" -+"すべての検出結果は引数のモジュラーフィルタリングに一致しません (filter out)" ++msgstr "引数に一致する結果はすべてモジュールのフィルタによって除外されました" --#: dnf/base.py:2677 -+#: dnf/base.py:2740 +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 msgid "All matches were installed from a different repository for argument" -msgstr "すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" +msgstr "" -+"すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" ++"引数に一致する結果はすべて異なるリポジトリーからインストールされたものです" --#: dnf/base.py:2724 -+#: dnf/base.py:2787 +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 #, python-format msgid "Package %s is already installed." msgstr "パッケージ %s は既にインストールされています。" -@@ -562,8 +588,8 @@ msgstr "ファイル \"%s\" の解析に失敗しました: %s" - msgid "Cannot read file \"%s\": %s" - msgstr "ファイル \"%s\" を読み込めません: %s" - --#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:804 --#: dnf/cli/cli.py:808 dnf/cli/commands/alias.py:108 -+#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:806 -+#: dnf/cli/cli.py:810 dnf/cli/commands/alias.py:108 - #, python-format - msgid "Config error: %s" - msgstr "設定エラー: %s" -@@ -592,16 +618,24 @@ msgstr " ビルド : %s (日時: %s)" +@@ -590,16 +620,24 @@ msgstr " ビルド : %s (日時: %s)" msgid "" "The operation would result in switching of module '{0}' stream '{1}' to " "stream '{2}'" @@ -2946,7 +2751,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/cli.py:212 #, python-brace-format -@@ -613,7 +647,9 @@ msgstr "{prog} はトランザクションでパッケージのダウンロー +@@ -611,7 +649,9 @@ msgstr "{prog} はトランザクションでパッケージのダウンロー msgid "" "{prog} will only download packages, install gpg keys, and check the " "transaction." @@ -2957,42 +2762,20 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/cli.py:219 msgid "Operation aborted." -@@ -651,7 +687,7 @@ msgstr "パッケージの廃止" - msgid "No packages marked for distribution synchronization." - msgstr "ディストリビューション同期対象のパッケージがありません。" - --#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:395 -+#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:396 - #, python-format - msgid "No package %s available." - msgstr "利用可能なパッケージ %s はありません。" -@@ -689,100 +725,113 @@ msgid "No matching Packages to list" - msgstr "表示するための一致したパッケージはありません" - - #: dnf/cli/cli.py:604 --msgid "No Matches found" --msgstr "一致したものは見つかりませんでした" -+msgid "" -+"No matches found. If searching for a file, try specifying the full path or " -+"using a wildcard prefix (\"*/\") at the beginning." +@@ -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:671 dnf/cli/commands/shell.py:237 -+#: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 #, python-format - msgid "Unknown repo: '%s'" - msgstr "不明な repo : '%s'" +@@ -704,9 +746,11 @@ msgstr "一致するリポジトリーがありません: %s" --#: dnf/cli/cli.py:685 -+#: dnf/cli/cli.py:687 - #, python-format - msgid "No repository match: %s" - msgstr "一致するリポジトリーがありません: %s" - --#: dnf/cli/cli.py:719 -+#: dnf/cli/cli.py:721 + #: dnf/cli/cli.py:721 msgid "" -"This command has to be run with superuser privileges (under the root user on" -" most systems)." @@ -3003,15 +2786,9 @@ index eda4c8c5..00512f61 100644 +"このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しな" +"ければいけません。" --#: dnf/cli/cli.py:749 -+#: dnf/cli/cli.py:751 + #: dnf/cli/cli.py:751 #, python-format - msgid "No such command: %s. Please use %s --help" - msgstr "そのようなコマンドはありません: %s. %s --help を使用してください" - --#: dnf/cli/cli.py:752 -+#: dnf/cli/cli.py:754 - #, python-format, python-brace-format +@@ -718,38 +762,43 @@ msgstr "そのようなコマンドはありません: %s. %s --help を使用 msgid "" "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" "command(%s)'\"" @@ -3020,8 +2797,7 @@ index eda4c8c5..00512f61 100644 +"{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install " +"'dnf-command(%s)'\"" --#: dnf/cli/cli.py:756 -+#: dnf/cli/cli.py:758 + #: dnf/cli/cli.py:758 #, python-brace-format msgid "" "It could be a {prog} plugin command, but loading of plugins is currently " @@ -3031,8 +2807,7 @@ index eda4c8c5..00512f61 100644 +"{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっ" +"ているようです。" --#: dnf/cli/cli.py:814 -+#: dnf/cli/cli.py:816 + #: dnf/cli/cli.py:816 msgid "" "--destdir or --downloaddir must be used with --downloadonly or download or " "system-upgrade command." @@ -3042,8 +2817,7 @@ index eda4c8c5..00512f61 100644 +"--destdir または --downloaddir は、--downloadonly、download あるいは system-" +"upgrade コマンドと共に使用する必要があります。" --#: dnf/cli/cli.py:820 -+#: dnf/cli/cli.py:822 + #: dnf/cli/cli.py:822 msgid "" "--enable, --set-enabled and --disable, --set-disabled must be used with " "config-manager command." @@ -3053,8 +2827,7 @@ index eda4c8c5..00512f61 100644 +"--enable と --set-enabled および --disable と --set-disabled は、config-" +"manager コマンドと共に使用しなければなりません。" --#: dnf/cli/cli.py:902 -+#: dnf/cli/cli.py:904 + #: 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)" @@ -3065,13 +2838,9 @@ index eda4c8c5..00512f61 100644 +"ルに強制します (このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' " +"を参照してください)" --#: dnf/cli/cli.py:922 -+#: dnf/cli/cli.py:924 + #: dnf/cli/cli.py:924 msgid "Config file \"{}\" does not exist" - msgstr "設定ファイル \"{}\" は存在しません" - --#: dnf/cli/cli.py:942 -+#: dnf/cli/cli.py:944 +@@ -759,7 +808,9 @@ msgstr "設定ファイル \"{}\" は存在しません" msgid "" "Unable to detect release version (use '--releasever' to specify release " "version)" @@ -3080,38 +2849,9 @@ index eda4c8c5..00512f61 100644 +"リリースバージョンを検出できません (リリースバージョンを指定するには '--" +"releasever' を使用してください)" --#: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 -+#: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 + #: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 msgid "argument {}: not allowed with argument {}" - msgstr "引数 {}: 引数 {} と許可されていません" - --#: dnf/cli/cli.py:1023 -+#: dnf/cli/cli.py:1025 - #, python-format - msgid "Command \"%s\" already defined" - msgstr "コマンド \"%s\" はすでに定義済みです" - --#: dnf/cli/cli.py:1043 -+#: dnf/cli/cli.py:1045 - msgid "Excludes in dnf.conf: " - msgstr "dnf.conf で除外します: " - --#: dnf/cli/cli.py:1046 -+#: dnf/cli/cli.py:1048 - msgid "Includes in dnf.conf: " - msgstr "dnf.conf で含めます: " - --#: dnf/cli/cli.py:1049 -+#: dnf/cli/cli.py:1051 - msgid "Excludes in repo " - msgstr "repo で除外します " - --#: dnf/cli/cli.py:1052 -+#: dnf/cli/cli.py:1054 - msgid "Includes in repo " - msgstr "repo に含めます " - -@@ -794,13 +843,16 @@ msgstr "問題を診断するには実行してみてください: '%s'." +@@ -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." @@ -3130,7 +2870,7 @@ index eda4c8c5..00512f61 100644 "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 +871,13 @@ msgstr "" +@@ -819,11 +873,13 @@ msgstr "" " rpm --import public.gpg.key\n" "\n" "\n" @@ -3146,7 +2886,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/__init__.py:71 #, python-format -@@ -1058,7 +1112,8 @@ msgstr "一致するエイリアスがありません: %s" +@@ -1058,7 +1114,8 @@ msgstr "一致するエイリアスがありません: %s" #: dnf/cli/commands/autoremove.py:41 msgid "" "remove all unneeded packages that were originally installed as dependencies" @@ -3156,7 +2896,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/autoremove.py:46 dnf/cli/commands/remove.py:59 msgid "Package to remove" -@@ -1140,7 +1195,9 @@ msgstr "pid %d のプロセスが終了するのを待ちます。" +@@ -1140,7 +1197,9 @@ msgstr "pid %d のプロセスが終了するのを待ちます。" msgid "" "[deprecated, use repoquery --deplist] List package's dependencies and what " "packages provide them" @@ -3167,16 +2907,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/distrosync.py:32 msgid "synchronize installed packages to the latest available versions" -@@ -1232,7 +1289,7 @@ msgstr "グループサブコマンドの引数" - msgid "Invalid groups sub-command, use: %s." - msgstr "groups のサブコマンドが無効です: %s を使用します。" - --#: dnf/cli/commands/group.py:398 -+#: dnf/cli/commands/group.py:399 - msgid "Unable to find a mandatory group package." - msgstr "必須のグループパッケージを見つけることができません。" - -@@ -1246,21 +1303,27 @@ msgstr "store コマンドの場合は、トランザクションを保存する +@@ -1246,21 +1305,27 @@ msgstr "store コマンドの場合は、トランザクションを保存する #: dnf/cli/commands/history.py:68 msgid "" @@ -3211,7 +2942,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/history.py:94 msgid "" -@@ -1290,16 +1353,20 @@ msgstr "履歴 DB にアクセスできません: %s" +@@ -1290,16 +1355,20 @@ msgstr "履歴 DB にアクセスできません: %s" #: dnf/cli/commands/history.py:151 #, python-format msgid "" @@ -3236,64 +2967,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/history.py:175 msgid "No transaction ID given" -@@ -1324,11 +1391,11 @@ msgstr "%u の前のトランザクション履歴が不完全です。" - msgid "Transaction history is incomplete, after %u." - msgstr "%u の後のトランザクション履歴が不完全です。" - --#: dnf/cli/commands/history.py:256 -+#: dnf/cli/commands/history.py:267 - msgid "No packages to list" - msgstr "一覧表示するパッケージはありません" - --#: dnf/cli/commands/history.py:279 -+#: dnf/cli/commands/history.py:290 - msgid "" - "Invalid transaction ID range definition '{}'.\n" - "Use '..'." -@@ -1336,7 +1403,7 @@ msgstr "" - "無効なトランザクション ID の範囲の定義 '{}'。\n" - "'..' を使用してください。" - --#: dnf/cli/commands/history.py:283 -+#: dnf/cli/commands/history.py:294 - msgid "" - "Can't convert '{}' to transaction ID.\n" - "Use '', 'last', 'last-'." -@@ -1344,27 +1411,27 @@ msgstr "" - "'{}' をトランザクション IDに変換できません。\n" - "'', 'last', 'last-' を使用してください。" - --#: dnf/cli/commands/history.py:312 -+#: dnf/cli/commands/history.py:323 - msgid "No transaction which manipulates package '{}' was found." - msgstr "パッケージ '{}' を操作するトランザクションが見つかりません。" - --#: dnf/cli/commands/history.py:357 -+#: dnf/cli/commands/history.py:368 - msgid "{} exists, overwrite?" - msgstr "{} は存在します。上書きしますか?" - --#: dnf/cli/commands/history.py:360 -+#: dnf/cli/commands/history.py:371 - msgid "Not overwriting {}, exiting." - msgstr "{} は存在するため上書きしません。" - --#: dnf/cli/commands/history.py:367 -+#: dnf/cli/commands/history.py:378 - msgid "Transaction saved to {}." - msgstr "{} に保存されているトランザクション。" - --#: dnf/cli/commands/history.py:370 -+#: dnf/cli/commands/history.py:381 - msgid "Error storing transaction: {}" - msgstr "トランザクションの保存エラー: {}" - --#: dnf/cli/commands/history.py:386 -+#: dnf/cli/commands/history.py:397 - msgid "Warning, the following problems occurred while running a transaction:" - msgstr "警告: トランザクションの実行中に以下の問題が発生しました:" - -@@ -1400,7 +1467,9 @@ msgstr "すべてのメタデータファイルのキャッシュファイルを +@@ -1400,7 +1469,9 @@ msgstr "すべてのメタデータファイルのキャッシュファイルを #: dnf/cli/commands/mark.py:39 msgid "mark or unmark installed packages as installed by user." @@ -3304,7 +2978,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/mark.py:44 msgid "" -@@ -1439,9 +1508,11 @@ msgstr "パッケージ %s はインストールされていません。" +@@ -1439,9 +1510,11 @@ msgstr "パッケージ %s はインストールされていません。" #: dnf/cli/commands/module.py:54 msgid "" @@ -3319,7 +2993,16 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/module.py:80 msgid "list all module streams, profiles and states" -@@ -1712,7 +1783,9 @@ msgstr "キーワードに一致するパッケージを検索します" +@@ -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)" @@ -3330,7 +3013,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:124 msgid "Query all versions of packages (default)" -@@ -1731,14 +1804,11 @@ msgid "show only results that conflict REQ" +@@ -1731,14 +1806,12 @@ msgid "show only results that conflict REQ" msgstr "REQ と競合する結果のみを表示します" #: dnf/cli/commands/repoquery.py:135 @@ -3342,12 +3025,13 @@ index eda4c8c5..00512f61 100644 "shows results that requires, suggests, supplements, enhances, or recommends " "package provides and files REQ" -msgstr "REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推奨する結果を表示します" -+msgstr "REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推" ++msgstr "" ++"REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推" +"奨する結果を表示します" #: dnf/cli/commands/repoquery.py:139 msgid "show only results that obsolete REQ" -@@ -1780,7 +1850,9 @@ msgstr "指定されたとおりに依存関係を確認します。--alldeps +@@ -1780,7 +1853,9 @@ msgstr "指定されたとおりに依存関係を確認します。--alldeps msgid "" "used with --whatrequires, and --requires --resolve, query packages " "recursively." @@ -3358,7 +3042,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:166 msgid "show a list of all dependencies and what packages provide them" -@@ -1802,7 +1874,9 @@ msgstr "対応するソース RPM で操作します" +@@ -1802,7 +1877,9 @@ msgstr "対応するソース RPM で操作します" msgid "" "show N latest packages for a given name.arch (or latest but N if N is " "negative)" @@ -3369,7 +3053,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:177 msgid "list also packages of inactive module streams" -@@ -1827,11 +1901,11 @@ msgstr "パッケージの changelogs を表示します" +@@ -1827,11 +1904,11 @@ msgstr "パッケージの changelogs を表示します" #: dnf/cli/commands/repoquery.py:194 #, python-format, python-brace-format msgid "" @@ -3385,7 +3069,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:198 msgid "show available tags to use with --queryformat" -@@ -1842,19 +1916,24 @@ msgid "" +@@ -1842,19 +1919,24 @@ msgid "" "use name-epoch:version-release.architecture format for displaying found " "packages (default)" msgstr "" @@ -3413,7 +3097,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:214 msgid "Display in which comps groups are presented selected packages" -@@ -1870,7 +1949,8 @@ msgstr "インストール済みの installonly パッケージへのクエリ +@@ -1870,7 +1952,8 @@ msgstr "インストール済みの installonly パッケージへのクエリ #: dnf/cli/commands/repoquery.py:228 msgid "limit the query to installed packages with unsatisfied dependencies" @@ -3423,7 +3107,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:230 msgid "show a location from where packages can be downloaded" -@@ -1884,7 +1964,8 @@ msgstr "パッケージが競合する機能を表示します。" +@@ -1884,7 +1967,8 @@ msgstr "パッケージが競合する機能を表示します。" msgid "" "Display capabilities that the package can depend on, enhance, recommend, " "suggest, and supplement." @@ -3433,7 +3117,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:236 msgid "Display capabilities that the package can enhance." -@@ -1909,9 +1990,10 @@ msgid "" +@@ -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 "" @@ -3447,7 +3131,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:243 msgid "Display capabilities that the package suggests." -@@ -1938,7 +2020,9 @@ msgstr "利用可能なリポジトリーに存在しないパッケージのみ +@@ -1938,7 +2023,9 @@ msgstr "利用可能なリポジトリーに存在しないパッケージのみ msgid "" "Display only packages that provide an upgrade for some already installed " "package." @@ -3458,7 +3142,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:256 #, python-brace-format -@@ -1960,51 +2044,50 @@ msgstr "検索するための鍵" +@@ -1960,26 +2047,28 @@ msgstr "検索するための鍵" #: dnf/cli/commands/repoquery.py:295 msgid "" @@ -3497,17 +3181,8 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/repoquery.py:344 msgid "Package {} contains no files" - msgstr "パッケージ {} はファイルを含んでいません" - - #: dnf/cli/commands/repoquery.py:561 --#, fuzzy, python-brace-format --#| msgid "" --#| "No valid switch specified\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 thepackages." -+#, python-brace-format +@@ -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" @@ -3518,19 +3193,20 @@ index eda4c8c5..00512f61 100644 "description:\n" " For the given packages print a tree of the packages." msgstr "" --"正規のスイッチが特定されません\n" +-"正規のスイッチが指定されていません\n" -"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" +"有効なスイッチが指定されていません\n" -+"使用方法: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--r" -+"ecommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\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" -@@ -2041,8 +2124,7 @@ msgstr "説明" +@@ -2035,8 +2128,7 @@ msgstr "説明" msgid "URL" msgstr "URL" @@ -3540,7 +3216,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/search.py:76 msgid " & " msgstr " & " -@@ -2118,7 +2200,8 @@ msgid "" +@@ -2112,7 +2204,8 @@ msgid "" " disable: disable repositories. option = repository id" msgstr "" "{} arg [オプション]\n" @@ -3550,7 +3226,7 @@ index eda4c8c5..00512f61 100644 " 有効化: リポジトリーの有効化。オプション = リポジトリー id\n" " 無効化: リポジトリーの無効化。オプション = リポジトリー id" -@@ -2176,7 +2259,8 @@ msgstr "" +@@ -2170,7 +2263,8 @@ msgstr "" "ヘルプ ヘルプの印刷\n" "リポジトリー (または repo) リポジトリーの有効化、無効化、または一覧表示\n" "resolvedep トランザクションセットの解決\n" @@ -3560,7 +3236,7 @@ index eda4c8c5..00512f61 100644 "実行 トランザクションセットの解決および実行\n" "終了 (または 中止) シェルの終了" -@@ -2196,7 +2280,9 @@ msgstr "シェルを終了します" +@@ -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" @@ -3571,7 +3247,16 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/swap.py:40 msgid "The specs that will be removed" -@@ -2248,13 +2334,16 @@ msgstr "インストール済みパッケージの新しいバージョンに関 +@@ -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" @@ -3590,7 +3275,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/updateinfo.py:87 msgid "advisories about any versions of installed packages" -@@ -2395,7 +2484,8 @@ msgstr "正" +@@ -2389,7 +2488,8 @@ msgstr "正" #: dnf/cli/commands/upgrade.py:40 msgid "upgrade a package or packages on your system" @@ -3600,7 +3285,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/commands/upgrade.py:44 msgid "Package to upgrade" -@@ -2405,7 +2495,9 @@ msgstr "アップグレードするパッケージ" +@@ -2399,7 +2499,9 @@ msgstr "アップグレードするパッケージ" msgid "" "upgrade, but only 'newest' package match which fixes a problem that affects " "your system" @@ -3611,7 +3296,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/main.py:88 msgid "Terminated." -@@ -2417,23 +2509,29 @@ msgstr "現在のディレクトリーには読み取り/実行権限があり +@@ -2411,23 +2513,29 @@ msgstr "現在のディレクトリーには読み取り/実行権限があり #: dnf/cli/main.py:135 msgid "try to add '{}' to command line to replace conflicting packages" @@ -3646,7 +3331,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/main.py:167 msgid "Dependencies resolved." -@@ -2525,7 +2623,9 @@ msgstr "依存関係を解決するために、インストール済みパッケ +@@ -2519,7 +2627,9 @@ msgstr "依存関係を解決するために、インストール済みパッケ #: dnf/cli/option_parser.py:221 msgid "try the best available package versions in transactions." @@ -3657,7 +3342,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/option_parser.py:223 msgid "do not limit the transaction to the best candidate" -@@ -2561,8 +2661,8 @@ msgid "" +@@ -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 "" @@ -3668,34 +3353,23 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/option_parser.py:251 msgid "debugging output level for rpm" -@@ -2578,24 +2678,33 @@ msgstr "すべての質問に「いいえ」(no) と自動的に答えます" - - #: dnf/cli/option_parser.py:261 - msgid "" --"Temporarily enable repositories for the purposeof the current dnf command. " --"Accepts an id, acomma-separated list of ids, or a glob of ids.This option " -+"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 " +@@ -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 " -+"を使用できます。このオプションは複数回指定できます。" ++"コンマ区切りの ID 一覧、または ID の glob を使用できます。このオプションは複" ++"数回指定できます。" #: dnf/cli/option_parser.py:268 msgid "" --"Temporarily disable active repositories for thepurpose 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, butis mutually exclusive with " -+"Temporarily disable active 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, but is mutually exclusive with " +@@ -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' " -+"と同時には使用できません。" ++"します。ID、コンマ区切りの ID 一覧、または ID の glob を受け入れます。このオ" ++"プションは複数回指定できますが、'-repo' と同時には使用できません。" #: dnf/cli/option_parser.py:275 msgid "" @@ -3708,7 +3382,7 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/option_parser.py:280 msgid "enable repos with config-manager command (automatically saves)" -@@ -2617,7 +2726,9 @@ msgstr "excludepkgs を無効にします" +@@ -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." @@ -3719,33 +3393,119 @@ index eda4c8c5..00512f61 100644 #: dnf/cli/option_parser.py:302 msgid "disable removal of dependencies that are no longer used" -@@ -3522,7 +3633,7 @@ msgstr "正しくない設定値: %s=%s in %s; %s" +@@ -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 "\"{}\" を \"{}\": {} に設定できません。" +msgstr "\"{}\" を \"{}\": {} に設定できません" #: dnf/conf/config.py:244 msgid "Could not set cachedir: {}" -@@ -3625,12 +3736,14 @@ msgstr "%s から暗号化されていない %s の repo キーを取得して +@@ -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:353 ++#: dnf/db/group.py:359 #, python-format msgid "An rpm exception occurred: %s" --msgstr "" -+msgstr "rpm 例外が発生しました: %s" + msgstr "rpm 例外が発生しました: %s" - #: dnf/db/group.py:355 +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 msgid "No available modular metadata for modular package" -@@ -3644,7 +3757,8 @@ msgstr "ソース rpm パッケージ (%s) をインストールしません。" +-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 ({})" @@ -3755,7 +3515,29 @@ index eda4c8c5..00512f61 100644 #: dnf/dnssec.py:243 msgid "DNSSEC extension: Key for user " -@@ -3717,10 +3831,12 @@ msgstr[0] "モジュラーの依存に関する問題:" +@@ -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" @@ -3770,7 +3552,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/__init__.py:26 msgid "Enabling different stream for '{}'." -@@ -3732,7 +3848,8 @@ msgstr "表示するものがありません。" +@@ -3726,7 +3857,8 @@ msgstr "表示するものがありません。" #: dnf/module/__init__.py:28 msgid "Installing newer version of '{}' than specified. Reason: {}" @@ -3780,7 +3562,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/__init__.py:29 msgid "Enabled modules: {}." -@@ -3740,7 +3857,8 @@ msgstr "有効なモジュール: {}." +@@ -3734,7 +3866,8 @@ msgstr "有効なモジュール: {}." #: dnf/module/__init__.py:30 msgid "No profile specified for '{}', please specify profile." @@ -3790,7 +3572,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/exceptions.py:27 msgid "No such module: {}" -@@ -3776,7 +3894,8 @@ msgstr "'{}' に指定したストリームはありません。ストリーム +@@ -3770,7 +3903,8 @@ msgstr "'{}' に指定したストリームはありません。ストリーム #: dnf/module/exceptions.py:82 msgid "No such profile: {}. No profiles available" @@ -3800,7 +3582,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/exceptions.py:88 msgid "No profile to remove for '{}'" -@@ -3810,17 +3929,21 @@ msgstr "不要なプロファイルを無視します: '{}/{}'" +@@ -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" @@ -3825,7 +3607,8 @@ index eda4c8c5..00512f61 100644 #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 msgid "Unable to match profile for argument {}" -@@ -3828,7 +3951,9 @@ msgstr "引数 {} でプロファイルが見つかりません" +-msgstr "引数 {} でプロファイルが見つかりません" ++msgstr "引数 {} に一致するプロファイルが見つかりません" #: dnf/module/module_base.py:120 msgid "No default profiles for module {}:{}. Available profiles: {}" @@ -3836,7 +3619,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/module_base.py:124 msgid "No profiles for module {}:{}" -@@ -3840,7 +3965,8 @@ msgstr "デフォルトのプロファイル {} はモジュール {}:{} で利 +@@ -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" @@ -3846,7 +3629,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/module_base.py:196 #, python-brace-format -@@ -3850,7 +3976,9 @@ msgstr "モジュール '{1}:{2}' の引数 '{0}' には、アクティブな一 +@@ -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}'" @@ -3857,7 +3640,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/module_base.py:267 msgid "No packages available to distrosync for package name '{}'" -@@ -3866,7 +3994,9 @@ msgstr "引数 {} を解決できません" +@@ -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" @@ -3868,7 +3651,7 @@ index eda4c8c5..00512f61 100644 #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 msgid "Unable to match profile in argument {}" -@@ -3874,21 +4004,22 @@ msgstr "引数 {} でプロファイルを一致できません" +@@ -3868,21 +4013,22 @@ msgstr "引数 {} でプロファイルを一致できません" #: dnf/module/module_base.py:348 msgid "Upgrading module from Fail-Safe repository is not allowed" @@ -3898,42 +3681,54 @@ index eda4c8c5..00512f61 100644 msgstr "モジュール名のみが必要です。引数で不必要な情報を無視します: '{}'" #: dnf/module/module_base.py:844 -@@ -3947,10 +4078,6 @@ msgstr "以下無効プラグインパターンが見つかりません: {}" +@@ -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 と一致するペイロードファクトリーはありません" --#: dnf/repo.py:111 --msgid "Already downloaded" --msgstr "ダウンロード済み" -- #. pinging mirrors, this might take a while - #: dnf/repo.py:346 +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 #, python-format -@@ -3970,13 +4097,21 @@ msgstr "%s から %s repo を追加しました" - #: dnf/rpm/miscutils.py:32 - #, python-format - msgid "Using rpmkeys executable at %s to verify signatures" + 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 "%s で rpmkeys 実行可能ファイルを使用して、署名を検証します" ++msgstr "openDB() 関数は rpm データベースを開けません。" - #: dnf/rpm/miscutils.py:66 - msgid "Cannot find rpmkeys executable to verify signatures." - msgstr "署名を検証する rpmkeys 実行ファイルが見つかりません。" - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function cannot open rpm database." -+msgstr "openDB () 関数は rpm データベースを開けません。" -+ -+#: dnf/rpm/transaction.py:75 -+msgid "The dbCookie() function did not return cookie of rpm database." -+msgstr "dbCookie() 関数は rpm データベースのクッキーを返しませんでした。" -+ -+#: dnf/rpm/transaction.py:135 - msgid "Errors occurred during test transaction." - msgstr "テストトランザクション中にエラーが発生しました。" - -@@ -3985,8 +4120,8 @@ msgid "" + #: 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 "" @@ -3944,7 +3739,7 @@ index eda4c8c5..00512f61 100644 #. TRANSLATORS: This is for a single package currently being downgraded. #: dnf/transaction.py:80 -@@ -4039,7 +4174,9 @@ msgstr "準備" +@@ -4037,7 +4183,9 @@ msgstr "準備" msgid "" "The following problems occurred while replaying the transaction from file " "\"{filename}\":" @@ -3955,7 +3750,7 @@ index eda4c8c5..00512f61 100644 #: dnf/transaction_sr.py:68 msgid "The following problems occurred while running a transaction:" -@@ -4060,7 +4197,9 @@ msgstr "無効なマイナーバージョン \"{minor}\"。数字が必要です +@@ -4058,7 +4206,9 @@ msgstr "無効なマイナーバージョン \"{minor}\"。数字が必要です msgid "" "Incompatible major version \"{major}\", supported major version is " "\"{major_supp}\"." @@ -3966,7 +3761,7 @@ index eda4c8c5..00512f61 100644 #: dnf/transaction_sr.py:224 msgid "" -@@ -4084,7 +4223,8 @@ msgstr "オブジェクトキー \"{key}\" が rpm にありません。" +@@ -4082,7 +4232,8 @@ msgstr "オブジェクトキー \"{key}\" が rpm にありません。" #: dnf/transaction_sr.py:289 #, python-brace-format @@ -3976,7 +3771,7 @@ index eda4c8c5..00512f61 100644 msgstr "rpm nevra \"{nevra}\" の予期しないパッケージ理由 \"{reason}\" の値。" #: dnf/transaction_sr.py:297 -@@ -4100,24 +4240,32 @@ msgstr "rpm nevra \"{nevra}\" を見つけることはできません。" +@@ -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}\"." @@ -4014,7 +3809,25 @@ index eda4c8c5..00512f61 100644 #: dnf/transaction_sr.py:377 #, python-format -@@ -4145,8 +4293,8 @@ msgid "" +@@ -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 "" @@ -4023,21 +3836,28 @@ index eda4c8c5..00512f61 100644 +"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" ま" +"たは \"optional\" のみに対応しています。" - #: dnf/transaction_sr.py:464 +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 #, python-brace-format -@@ -4156,7 +4304,8 @@ msgstr "オブジェクトキー \"{key}\" が environments.groups に含まれ - #: dnf/transaction_sr.py:542 + 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:547 ++#: dnf/transaction_sr.py:569 #, python-brace-format -@@ -4165,7 +4314,9 @@ msgstr "オブジェクトキー \"{key}\" がグループ内にありません + msgid "Missing object key \"{key}\" in a group." + msgstr "オブジェクトキー \"{key}\" がグループ内にありません。" - #: dnf/transaction_sr.py:571 +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 #, python-brace-format -msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." +msgid "" @@ -4045,9 +3865,14 @@ index eda4c8c5..00512f61 100644 +"\"{env}\"." msgstr "環境 \"{env}\" の環境アクション \"{action}\" の予期しない値。" - #: dnf/transaction_sr.py:576 -@@ -4176,9 +4327,11 @@ msgstr "オブジェクトキー \"{key}\" が環境にありません。" - #: dnf/transaction_sr.py:615 +-#: 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" @@ -4061,13 +3886,16 @@ index eda4c8c5..00512f61 100644 # translation auto-copied from project jbpm-designer, version 6.0.1, document # org.jbpm/jbpm-designer- -@@ -4221,19 +4374,36 @@ msgstr "失敗しました" +@@ -4219,25 +4384,36 @@ msgstr "失敗しました" msgid "" msgstr "" -+#~ msgid "No Matches found" -+#~ msgstr "一致したものは見つかりませんでした" -+ +-#~ msgid "Already downloaded" +-#~ msgstr "ダウンロード済み" +- + #~ msgid "No Matches found" + #~ msgstr "一致したものは見つかりませんでした" + #~ msgid "" #~ "Enable additional repositories. List option. Supports globs, can be " #~ "specified multiple times." @@ -4102,7 +3930,7 @@ index eda4c8c5..00512f61 100644 #~ msgid "%s: %s check failed: %s vs %s" #~ msgstr "%s: %s の確認に失敗しました: %s vs %s" -@@ -4259,5 +4429,7 @@ msgstr "" +@@ -4263,5 +4439,7 @@ msgstr "" #~ msgstr "不正なトランザクション ID、またはパッケージが指定されました" #~ msgid "" @@ -4113,26 +3941,28 @@ index eda4c8c5..00512f61 100644 +#~ msgstr "" +#~ "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" diff --git a/po/ko.po b/po/ko.po -index b11e5ed7..cdd7cbfa 100644 +index d94530ab..758b9832 100644 --- a/po/ko.po +++ b/po/ko.po -@@ -2,20 +2,23 @@ +@@ -1,23 +1,24 @@ + # MinWoo Joh , 2015. #zanata # Eun-Ju Kim , 2016. #zanata # Ludek Janda , 2018. #zanata, 2020. - # simmon , 2021. -+# Kim InSoo , 2022. -+# 김인수 , 2022. +-# 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-01-11 01:52+0000\n" --"PO-Revision-Date: 2021-11-17 21:16+0000\n" --"Last-Translator: simmon \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" -+"POT-Creation-Date: 2022-08-31 13:42+0200\n" -+"PO-Revision-Date: 2022-09-02 12:19+0000\n" -+"Last-Translator: 김인수 \n" +"Language-Team: Korean \n" "Language: ko\n" @@ -4140,470 +3970,469 @@ index b11e5ed7..cdd7cbfa 100644 "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" --"X-Generator: Weblate 4.9\n" -+"X-Generator: Weblate 4.14\n" +-"X-Generator: Weblate 4.12.2\n" ++"X-Generator: Weblate 4.15.2\n" #: dnf/automatic/emitter.py:32 #, python-format -@@ -99,244 +102,247 @@ msgstr "네트웍 끊김." +@@ -101,7 +102,7 @@ msgstr "네트웍 끊김." msgid "Error: %s" msgstr "오류: %s" --#: dnf/base.py:148 dnf/base.py:477 dnf/base.py:479 -+#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 +-#: 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 '{}'의 적재에 실패했습니다 : {}" --#: dnf/base.py:150 -+#: dnf/base.py:152 +@@ -109,236 +110,238 @@ msgstr "repo '{}'의 적재에 실패했습니다 : {}" msgid "Loading repository '{}' has failed" msgstr "저장소 '{}'의 적재하기가 실패했습니다" --#: dnf/base.py:327 -+#: dnf/base.py:329 +-#: dnf/base.py:329 ++#: dnf/base.py:334 msgid "Metadata timer caching disabled when running on metered connection." -msgstr "데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." +msgstr "" +"데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." --#: dnf/base.py:332 -+#: dnf/base.py:334 +-#: dnf/base.py:334 ++#: dnf/base.py:339 msgid "Metadata timer caching disabled when running on a battery." msgstr "배터리에서 동작 할 때에 메타자료 타이머 캐싱을 비활성화합니다." --#: dnf/base.py:337 -+#: dnf/base.py:339 +-#: dnf/base.py:339 ++#: dnf/base.py:344 msgid "Metadata timer caching disabled." msgstr "메타자료 타이머 캐싱이 비활성화되었습니다." --#: dnf/base.py:342 -+#: dnf/base.py:344 +-#: dnf/base.py:344 ++#: dnf/base.py:349 msgid "Metadata cache refreshed recently." msgstr "최근에 메타 자료 캐쉬가 새로 고쳐졌습니다." --#: dnf/base.py:348 dnf/cli/commands/__init__.py:91 -+#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 +-#: 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:355 -+#: dnf/base.py:357 +-#: 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:357 -+#: dnf/base.py:359 +-#: 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:361 -+#: dnf/base.py:363 +-#: 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:365 -+#: dnf/base.py:367 +-#: 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:371 -+#: dnf/base.py:373 +-#: dnf/base.py:373 ++#: dnf/base.py:378 msgid "Metadata cache created." msgstr "메타 자료 캐쉬가 생성되었습니다." --#: dnf/base.py:404 dnf/base.py:471 -+#: dnf/base.py:406 dnf/base.py:473 +-#: 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:416 dnf/base.py:484 -+#: dnf/base.py:418 dnf/base.py:486 +-#: 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:419 -+#: dnf/base.py:421 +-#: 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." ++msgstr "마지막 메타자료 만료확인(%s 이전): %s." --#: dnf/base.py:512 -+#: dnf/base.py:514 +-#: 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:514 -+#: dnf/base.py:516 +-#: dnf/base.py:516 ++#: dnf/base.py:521 #, python-format msgid "You can remove cached packages by executing '%s'." msgstr "'%s' 를 실행하여 캐쉬 꾸러미를 삭제 할 수 있습니다." --#: dnf/base.py:606 -+#: dnf/base.py:648 +-#: dnf/base.py:648 ++#: dnf/base.py:653 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "설정 파일에서 tsflag 사용이 잘못되었습니다: %s" --#: dnf/base.py:662 -+#: dnf/base.py:706 +-#: 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:922 -+#: dnf/base.py:968 +-#: dnf/base.py:968 ++#: dnf/base.py:973 msgid "Running transaction check" msgstr "연결 확인 실행 중" --#: dnf/base.py:930 -+#: dnf/base.py:976 +-#: dnf/base.py:976 ++#: dnf/base.py:981 msgid "Error: transaction check vs depsolve:" msgstr "오류: 연결 확인 및 종속성 해결 오류:" --#: dnf/base.py:936 -+#: dnf/base.py:982 +-#: dnf/base.py:982 ++#: dnf/base.py:987 msgid "Transaction check succeeded." msgstr "연결 확인에 성공했습니다." --#: dnf/base.py:939 -+#: dnf/base.py:985 +-#: dnf/base.py:985 ++#: dnf/base.py:990 msgid "Running transaction test" msgstr "연결 시험 실행 중" --#: dnf/base.py:949 dnf/base.py:1100 -+#: dnf/base.py:995 dnf/base.py:1146 +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 msgid "RPM: {}" msgstr "RPM: {}" --#: dnf/base.py:950 -+#: dnf/base.py:996 +-#: dnf/base.py:996 ++#: dnf/base.py:1001 msgid "Transaction test error:" msgstr "연결 시험 오류:" --#: dnf/base.py:961 -+#: dnf/base.py:1007 +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 msgid "Transaction test succeeded." msgstr "연결 시험에 성공했습니다." --#: dnf/base.py:982 -+#: dnf/base.py:1028 +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 msgid "Running transaction" msgstr "연결 실행 중" --#: dnf/base.py:1019 -+#: dnf/base.py:1065 +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 msgid "Disk Requirements:" msgstr "디스크 요구 사항 :" --#: dnf/base.py:1022 -+#: dnf/base.py:1068 +-#: 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:1029 -+#: dnf/base.py:1075 +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 msgid "Error Summary" msgstr "오류 요약" --#: dnf/base.py:1055 -+#: dnf/base.py:1101 +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 #, python-brace-format msgid "RPMDB altered outside of {prog}." msgstr "RPMDB는 {prog} 외부에서 변경되었습니다." --#: dnf/base.py:1101 dnf/base.py:1109 -+#: dnf/base.py:1147 dnf/base.py:1155 +-#: 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:1104 -+#: dnf/base.py:1150 +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 msgid "Transaction couldn't start:" msgstr "연결을 시작 할 수 없습니다 :" --#: dnf/base.py:1118 -+#: dnf/base.py:1164 +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 #, python-format msgid "Failed to remove transaction file %s" msgstr "%s 연결 파일을 삭제하지 못했습니다" --#: dnf/base.py:1200 -+#: dnf/base.py:1246 +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 msgid "Some packages were not downloaded. Retrying." msgstr "일부 꾸러미를 내려받지 못했습니다. 다시 시도합니다." --#: dnf/base.py:1230 -+#: dnf/base.py:1276 +-#: 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은 %.1fMB의 최신화를 %.1fMB으로 줄였습니다.(%.1f%% 절약됨)" -+msgstr "델타 RPM은 %.1f MB의 최신화를 %.1f MB으로 줄였습니다.(%.1f%% 절약됨)" + msgstr "델타 RPM은 %.1f MB의 최신화를 %.1f MB으로 줄였습니다.(%.1f%% 절약됨)" --#: dnf/base.py:1234 -+#: dnf/base.py:1280 +-#: 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은 %.1fMB의 최신화를 %.1fMB로 늘리는데 실패했습니다.(%.1f%% 낭비됨)" +-msgstr "Delta RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% 낭비됨)" +msgstr "" -+"Delta RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% 낭비" -+"됨)" ++"델타 RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% 낭비됨)" --#: dnf/base.py:1276 -+#: dnf/base.py:1322 +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 msgid "Cannot add local packages, because transaction job already exists" msgstr "연결 작업이 이미 존재하므로 로컬 꾸러미를 추가할 수 없습니다" --#: dnf/base.py:1290 -+#: dnf/base.py:1336 +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 msgid "Could not open: {}" msgstr "열 수 없음 : {}" --#: dnf/base.py:1328 -+#: dnf/base.py:1374 +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 #, python-format msgid "Public key for %s is not installed" msgstr "%s의 공개 키는 설치되어 있지 않습니다" --#: dnf/base.py:1332 -+#: dnf/base.py:1378 +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 #, python-format msgid "Problem opening package %s" msgstr "%s 꾸러미를 여는 중에 문제가 발생했습니다" --#: dnf/base.py:1340 -+#: dnf/base.py:1386 +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 #, python-format msgid "Public key for %s is not trusted" msgstr "%s의 공개 키는 신뢰 할 수 없습니다" --#: dnf/base.py:1344 -+#: dnf/base.py:1390 +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 #, python-format msgid "Package %s is not signed" msgstr "%s 꾸러미가 서명되지 않았습니다" --#: dnf/base.py:1374 -+#: dnf/base.py:1420 +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 #, python-format msgid "Cannot remove %s" msgstr "%s를 삭제 할 수 없습니다" --#: dnf/base.py:1378 -+#: dnf/base.py:1424 +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 #, python-format msgid "%s removed" msgstr "%s가 삭제되었습니다" --#: dnf/base.py:1658 -+#: dnf/base.py:1704 +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 msgid "No match for group package \"{}\"" msgstr "그룹 꾸러미 \"{}\"에 일치하는 항목이 없습니다" --#: dnf/base.py:1740 -+#: dnf/base.py:1786 +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 #, python-format msgid "Adding packages from group '%s': %s" msgstr "'%s' 그룹에서 꾸러미 추가: %s" --#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 +-#: 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:1781 -+#: dnf/base.py:1827 +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 msgid "No groups marked for removal." msgstr "제거할 꾸러미 그룹이 없습니다." --#: dnf/base.py:1815 -+#: dnf/base.py:1861 +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 msgid "No group marked for upgrade." msgstr "향상을 위해 표시된 그룹이 없습니다." --#: dnf/base.py:2029 -+#: dnf/base.py:2075 +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 #, python-format msgid "Package %s not installed, cannot downgrade it." msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 수 없습니다." --#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 --#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 -+#: 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: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 -@@ -346,178 +352,183 @@ msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 +@@ -348,178 +351,182 @@ msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 msgid "No match for argument: %s" msgstr "인수가 일치하지 않습니다: %s" --#: dnf/base.py:2038 -+#: dnf/base.py:2084 +-#: 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 꾸러미의 하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." ++msgstr "하위 버전의 꾸러미 %s가 이미 설치되어 있어서, 버전을 내릴 수 없습니다." --#: dnf/base.py:2061 -+#: dnf/base.py:2107 +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 #, python-format msgid "Package %s not installed, cannot reinstall it." msgstr "꾸러미 %s가 설치되지 않아서, 다시 설치 할 수 없습니다." --#: dnf/base.py:2076 -+#: dnf/base.py:2122 +-#: 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 파일은 소스 꾸러미이며 최신화 할 수 없습니다. 무시합니다." ++msgstr "파일 %s는 원천 꾸러미이며 최신화 할 수 없고, 무시합니다." --#: dnf/base.py:2087 -+#: dnf/base.py:2133 +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 #, python-format msgid "Package %s not installed, cannot update it." msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 최신화 할 수 없습니다." --#: dnf/base.py:2097 -+#: dnf/base.py:2143 +-#: 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:2140 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 +-#: 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:2146 -+#: dnf/base.py:2209 +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 #, python-format msgid "Package %s available, but installed for different architecture." msgstr "%s 꾸러미는 사용 가능하지만 다른 구조용으로 설치되어 있습니다." --#: dnf/base.py:2171 -+#: dnf/base.py:2234 +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 #, python-format msgid "No package %s installed." msgstr "%s 꾸러미는 설치되어 있지 않습니다." --#: dnf/base.py:2189 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2252 dnf/cli/commands/install.py:136 +-#: 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:2204 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 +-#: 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:2292 dnf/cli/cli.py:428 -+#: dnf/base.py:2355 dnf/cli/cli.py:428 +-#: 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:2297 -+#: dnf/base.py:2360 +-#: 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 꾸러미의 최하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." ++"%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로, 버전을 내릴 수 없습니다." --#: dnf/base.py:2397 -+#: dnf/base.py:2460 +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 msgid "No security updates needed, but {} update available" msgstr "보안 최신화가 필요하지 않지만, {} 최신화가 가능합니다" --#: dnf/base.py:2399 -+#: dnf/base.py:2462 +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 msgid "No security updates needed, but {} updates available" msgstr "보안 최신화는 필요하지 않지만 {} 최신화는 가능합니다" --#: dnf/base.py:2403 -+#: dnf/base.py:2466 +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 msgid "No security updates needed for \"{}\", but {} update available" msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" --#: dnf/base.py:2405 -+#: dnf/base.py:2468 +-#: 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:2426 -+#: dnf/base.py:2489 +-#: 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:2434 -+#: dnf/base.py:2497 +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 #, python-format msgid ". Failing package is: %s" msgstr "실패한 꾸러미는 다음과 같습니다. %s" --#: dnf/base.py:2435 -+#: dnf/base.py:2498 +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 #, python-format msgid "GPG Keys are configured as: %s" msgstr "GPG 키는 다음과 같이 설정되어 있습니다. %s" --#: dnf/base.py:2447 -+#: dnf/base.py:2510 +-#: 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:2483 -+#: dnf/base.py:2546 +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 msgid "The key has been approved." msgstr "키가 승인되었습니다." --#: dnf/base.py:2486 -+#: dnf/base.py:2549 +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 msgid "The key has been rejected." msgstr "키가 거부되었습니다." --#: dnf/base.py:2519 -+#: dnf/base.py:2582 +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 #, python-format msgid "Key import failed (code %d)" msgstr "키 가져 오기에 실패했습니다 (코드 %d)" --#: dnf/base.py:2521 -+#: dnf/base.py:2584 +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 msgid "Key imported successfully" msgstr "키 가져오기에 성공했습니다" --#: dnf/base.py:2525 -+#: dnf/base.py:2588 +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 msgid "Didn't install any keys" - msgstr "키를 하나도 설치하지 못했습니다" +-msgstr "키를 하나도 설치하지 못했습니다" ++msgstr "키를 설치하지 않았습니다" --#: dnf/base.py:2528 -+#: dnf/base.py:2591 +-#: 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" @@ -4614,33 +4443,33 @@ index b11e5ed7..cdd7cbfa 100644 "해당 GPG 키는 \"%s\"저장소가 이미 설치되어 있지만이 꾸러미에 맞지 않습니다.\n" "이 저장소에 대해 올바른 키 URL이 구성되었는지 확인하십시오." --#: dnf/base.py:2539 -+#: dnf/base.py:2602 +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "가져온 키에 문제가 있습니다. 잘못된 키입니까?" --#: dnf/base.py:2592 -+#: dnf/base.py:2655 +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 msgid " * Maybe you meant: {}" msgstr " * 다음을 의미 할 수도 있습니다: {}" --#: dnf/base.py:2624 -+#: dnf/base.py:2687 +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" msgstr "로컬 저장소 \"{}\"의 \"{}\"꾸러미에 잘못된 체크섬이 있습니다" --#: dnf/base.py:2627 -+#: dnf/base.py:2690 +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 msgid "Some packages from local repository have incorrect checksum" msgstr "로컬 저장소의 일부 꾸러미에 잘못된 체크섬이 있습니다" --#: dnf/base.py:2630 -+#: dnf/base.py:2693 +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" msgstr "저장소 \"{}\"의 꾸러미 \"{}\"에 잘못된 체크섬이 있습니다" --#: dnf/base.py:2633 -+#: dnf/base.py:2696 +-#: dnf/base.py:2696 ++#: dnf/base.py:2705 msgid "" "Some packages have invalid cache, but cannot be downloaded due to \"--" "cacheonly\" option" @@ -4649,43 +4478,32 @@ index b11e5ed7..cdd7cbfa 100644 +"일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려" +"받기 할 수 없습니다" --#: dnf/base.py:2651 dnf/base.py:2671 -+#: dnf/base.py:2714 dnf/base.py:2734 +-#: 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:2659 dnf/base.py:2679 -+#: dnf/base.py:2722 dnf/base.py:2742 +-#: 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:2661 -+#: dnf/base.py:2724 +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 msgid "All matches were filtered out by modular filtering for argument" msgstr "모든 일치 항목이 인수의 모듈식 필터로 필터링되었습니다" --#: dnf/base.py:2677 -+#: dnf/base.py:2740 +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 msgid "All matches were installed from a different repository for argument" msgstr "모든 일치 항목이 인수의 다른 리포지토리에서 설치되었습니다" --#: dnf/base.py:2724 -+#: dnf/base.py:2787 +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 #, python-format msgid "Package %s is already installed." msgstr "꾸러미 %s가 이미 설치되어 있습니다." -@@ -537,8 +548,8 @@ msgstr "\"%s\" 파일의 구문 분석에 실패했습니다 : %s" - msgid "Cannot read file \"%s\": %s" - msgstr "\"%s\" 파일을 읽을 수 없습니다: %s" - --#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:804 --#: dnf/cli/cli.py:808 dnf/cli/commands/alias.py:108 -+#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:806 -+#: dnf/cli/cli.py:810 dnf/cli/commands/alias.py:108 - #, python-format - msgid "Config error: %s" - msgstr "설정 오류: %s" -@@ -572,11 +583,17 @@ msgstr "이 작업은 '{0}' 모듈을 '{1}' 스트림에서 ‘{2}' 스트림으 +@@ -574,23 +581,29 @@ msgstr "이 작업은 '{0}' 모듈을 '{1}' 스트림에서 ‘{2}' 스트림으 #: dnf/cli/cli.py:173 #, python-brace-format msgid "" @@ -4707,55 +4525,43 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/cli.py:212 #, python-brace-format -@@ -596,7 +613,7 @@ msgstr "작업이 중지됩니다." + msgid "{prog} will only download packages for the transaction." +-msgstr "{prog}은/는 연결용 꾸러미만 내려받기합니다." ++msgstr "{prog}는 연결을 위해 꾸러미만 내려받기 합니다." - #: dnf/cli/cli.py:226 - msgid "Downloading Packages:" --msgstr "꾸러미 내려받기중:" -+msgstr "꾸러미 내려받기 중:" + #: 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:232 - msgid "Error downloading packages:" -@@ -626,10 +643,10 @@ msgstr "더 이상 사용되지 않는 꾸러미" - msgid "No packages marked for distribution synchronization." - msgstr "배포 동기화가 필요한 꾸러미가 없습니다." + #: dnf/cli/cli.py:219 + msgid "Operation aborted." +@@ -647,7 +660,7 @@ msgstr "사용 가능한 꾸러미" --#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:395 -+#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:396 + #: 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 - msgid "No package %s available." --msgstr "가용한 꾸러미(package) %s가 없습니다." -+msgstr "가용한 꾸러미 %s가 없습니다." +@@ -686,9 +699,11 @@ msgstr "일치하는 저장소가 없습니다 : %s" - #: dnf/cli/cli.py:434 - msgid "No packages marked for downgrade." -@@ -665,100 +682,109 @@ msgid "No matching Packages to list" - msgstr "목록과 일치하는 꾸러미가 없습니다" - - #: dnf/cli/cli.py:604 --msgid "No Matches found" --msgstr "검색 결과가 없습니다" -+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:671 dnf/cli/commands/shell.py:237 -+#: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 - #, python-format - msgid "Unknown repo: '%s'" - msgstr "알 수 없는 저장소: '%s'" - --#: dnf/cli/cli.py:685 -+#: dnf/cli/cli.py:687 - #, python-format - msgid "No repository match: %s" - msgstr "일치하는 저장소가 없습니다 : %s" - --#: dnf/cli/cli.py:719 -+#: dnf/cli/cli.py:721 + #: dnf/cli/cli.py:721 msgid "" -"This command has to be run with superuser privileges (under the root user on" -" most systems)." @@ -4766,32 +4572,18 @@ index b11e5ed7..cdd7cbfa 100644 +"이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자" +"로 실행)." --#: dnf/cli/cli.py:749 -+#: dnf/cli/cli.py:751 + #: dnf/cli/cli.py:751 #, python-format - msgid "No such command: %s. Please use %s --help" - msgstr "명령을 찾을 수 없습니다: %s . %s --help를 사용하십시오" - --#: dnf/cli/cli.py:752 -+#: dnf/cli/cli.py:754 - #, python-format, python-brace-format - msgid "" - "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" - "command(%s)'\"" - msgstr "{PROG} 플러그인 명령일 수 있습니다: \"{prog} 'dnf-command(%s)'\"" - --#: dnf/cli/cli.py:756 -+#: dnf/cli/cli.py:758 - #, python-brace-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} 플러그인 명령일 수 있지만 플러그인 로딩은 현재 비활성화되어 있습니다." ++"{prog} 플러그인 명령일 수 있지만, 플러그인의 적재는 현재 비활성화되어 있습니" ++"다." --#: dnf/cli/cli.py:814 -+#: dnf/cli/cli.py:816 + #: dnf/cli/cli.py:816 msgid "" "--destdir or --downloaddir must be used with --downloadonly or download or " "system-upgrade command." @@ -4801,8 +4593,7 @@ index b11e5ed7..cdd7cbfa 100644 +"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-" +"upgrade 명령과 함께 사용해야합니다." --#: dnf/cli/cli.py:820 -+#: dnf/cli/cli.py:822 + #: dnf/cli/cli.py:822 msgid "" "--enable, --set-enabled and --disable, --set-disabled must be used with " "config-manager command." @@ -4812,8 +4603,7 @@ index b11e5ed7..cdd7cbfa 100644 +"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 " +"함께 사용해야합니다." --#: dnf/cli/cli.py:902 -+#: dnf/cli/cli.py:904 + #: 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)" @@ -4823,13 +4613,9 @@ index b11e5ed7..cdd7cbfa 100644 +"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 " +"(이 메시지를 제거하는 방법은 dnf.conf (5)의 'gpgcheck' 참조)" --#: dnf/cli/cli.py:922 -+#: dnf/cli/cli.py:924 + #: dnf/cli/cli.py:924 msgid "Config file \"{}\" does not exist" - msgstr "설정 파일 \"{}\" 이 존재하지 않습니다" - --#: dnf/cli/cli.py:942 -+#: dnf/cli/cli.py:944 +@@ -741,16 +758,18 @@ msgstr "설정 파일 \"{}\" 이 존재하지 않습니다" msgid "" "Unable to detect release version (use '--releasever' to specify release " "version)" @@ -4838,38 +4624,20 @@ index b11e5ed7..cdd7cbfa 100644 +"출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십" +"시오)" --#: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 -+#: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 + #: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 msgid "argument {}: not allowed with argument {}" - msgstr "인수 {}: 인수 {}과 함께 사용할 수 없습니다" +-msgstr "인수 {}: 인수 {}과 함께 사용할 수 없습니다" ++msgstr "인수 {}: 인수 {}를 허용하지 않음" --#: dnf/cli/cli.py:1023 -+#: dnf/cli/cli.py:1025 + #: dnf/cli/cli.py:1025 #, python-format msgid "Command \"%s\" already defined" - msgstr "\"%s\" 명령이 이미 정의되어 있습니다" +-msgstr "\"%s\" 명령이 이미 정의되어 있습니다" ++msgstr "명령 \"%s\"가 이미 정의되었습니다" --#: dnf/cli/cli.py:1043 -+#: dnf/cli/cli.py:1045 + #: dnf/cli/cli.py:1045 msgid "Excludes in dnf.conf: " - msgstr "dnf.conf에서 제외: " - --#: dnf/cli/cli.py:1046 -+#: dnf/cli/cli.py:1048 - msgid "Includes in dnf.conf: " - msgstr "dnf.conf에 포함:. " - --#: dnf/cli/cli.py:1049 -+#: dnf/cli/cli.py:1051 - msgid "Excludes in repo " - msgstr "리포지토리에서 제외 " - --#: dnf/cli/cli.py:1052 -+#: dnf/cli/cli.py:1054 - msgid "Includes in repo " - msgstr "리포지토리에 포함 " - -@@ -770,13 +796,15 @@ msgstr "문제를 진단하려면 다음을 실행하십시오. '%s'." +@@ -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." @@ -4887,16 +4655,71 @@ index b11e5ed7..cdd7cbfa 100644 "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" -@@ -845,7 +873,7 @@ msgstr "최근에 변경된 꾸러미만 표시" - #: dnf/cli/commands/install.py:51 dnf/cli/commands/reinstall.py:44 - #: dnf/cli/commands/remove.py:61 dnf/cli/commands/upgrade.py:46 - msgid "PACKAGE" --msgstr "꾸러미(package)" -+msgstr "꾸러미" +@@ -831,7 +852,7 @@ msgstr "설치된 꾸러미만 보여주기" - #: dnf/cli/commands/__init__.py:193 - msgid "Package name specification" -@@ -1116,7 +1144,9 @@ msgstr "PID %d 프로세스가 종료되기를 기다리고 있습니다." + #: 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" @@ -4907,25 +4730,25 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/distrosync.py:32 msgid "synchronize installed packages to the latest available versions" -@@ -1128,7 +1158,7 @@ msgstr "동기화할 꾸러미" +@@ -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" --msgstr "꾸러미 하향설치" -+msgstr "꾸러미를 하향설치합니다" +@@ -1146,7 +1169,7 @@ msgstr "그룹 정보를 표시하거나 사용합니다" - #: dnf/cli/commands/downgrade.py:38 - msgid "Package to downgrade" -@@ -1208,7 +1238,7 @@ msgstr "그룹 하위 명령의 인수" - msgid "Invalid groups sub-command, use: %s." - msgstr "그룹 하위 명령이 잘못되었습니다. %s를 사용합니다." + #: dnf/cli/commands/group.py:72 + msgid "No group data available for configured repositories." +-msgstr "설정된 리포지토리에 사용할 수있는 그룹 데이터가 없습니다." ++msgstr "구성된 저정소에 사용 할 수있는 그룹 자료가 없습니다." --#: dnf/cli/commands/group.py:398 -+#: dnf/cli/commands/group.py:399 - msgid "Unable to find a mandatory group package." - msgstr "필수 그룹 꾸러미를 찾을 수 없습니다." - -@@ -1222,9 +1252,10 @@ msgstr "저장 명령을 위해, 트랜젝션을 저장할 파일 경로" + #: dnf/cli/commands/group.py:126 + #, python-format +@@ -1228,9 +1251,10 @@ msgstr "저장 명령을 위해, 트랜젝션을 저장할 파일 경로" #: dnf/cli/commands/history.py:68 msgid "" @@ -4939,7 +4762,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/history.py:71 msgid "" -@@ -1234,9 +1265,11 @@ msgstr "응답 명령을 위하여, 연결에 추가 된 꾸러미를 확인하 +@@ -1240,9 +1264,11 @@ msgstr "응답 명령을 위하여, 연결에 추가 된 꾸러미를 확인하 #: dnf/cli/commands/history.py:74 msgid "" @@ -4949,12 +4772,27 @@ index b11e5ed7..cdd7cbfa 100644 +"For the replay command, skip packages that are not available or have missing " +"dependencies" +msgstr "" -+"지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건너" -+"띄기" ++"지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건" ++"너 뛰기" #: dnf/cli/commands/history.py:94 msgid "" -@@ -1266,16 +1299,20 @@ msgstr "기록 DB에 액세스할 수 없습니다: %s" +@@ -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 "" @@ -4979,64 +4817,58 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/history.py:175 msgid "No transaction ID given" -@@ -1300,11 +1337,11 @@ msgstr "%u이전 연결 내역이 불완전합니다." - msgid "Transaction history is incomplete, after %u." - msgstr "%u 이후 연결 내역이 불완전합니다." +@@ -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:256 -+#: dnf/cli/commands/history.py:267 - msgid "No packages to list" - msgstr "목록에 꾸러미가 없습니다" - --#: dnf/cli/commands/history.py:279 -+#: dnf/cli/commands/history.py:290 - msgid "" - "Invalid transaction ID range definition '{}'.\n" - "Use '..'." -@@ -1312,7 +1349,7 @@ msgstr "" - "잘못된 연결 ID 범위 정의 '{}'.\n" - "'..' 사용." - --#: dnf/cli/commands/history.py:283 -+#: dnf/cli/commands/history.py:294 - msgid "" + #: 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-'." -@@ -1320,27 +1357,27 @@ msgstr "" - "'{}'을 (를) 연결 ID로 변환 할 수 없습니다.\n" + msgstr "" +-"'{}'을 (를) 연결 ID로 변환 할 수 없습니다.\n" ++"'{}'를 연결 ID로 변환 할 수 없습니다.\n" "'', 'last', 'last-' 사용." --#: dnf/cli/commands/history.py:312 -+#: dnf/cli/commands/history.py:323 - msgid "No transaction which manipulates package '{}' was found." - msgstr "꾸러미 '{}'를 사용하는 연결이 없습니다." + #: dnf/cli/commands/history.py:323 +@@ -1340,7 +1370,7 @@ msgstr "존재하기 때문에, {} 덮어 쓸 수 없습니다." --#: dnf/cli/commands/history.py:357 -+#: dnf/cli/commands/history.py:368 - msgid "{} exists, overwrite?" - msgstr "{} 존재합니다, 덮어 쓸까요?" - --#: dnf/cli/commands/history.py:360 -+#: dnf/cli/commands/history.py:371 - msgid "Not overwriting {}, exiting." - msgstr "존재하기 때문에, {} 덮어 쓸 수 없습니다." - --#: dnf/cli/commands/history.py:367 -+#: dnf/cli/commands/history.py:378 + #: dnf/cli/commands/history.py:378 msgid "Transaction saved to {}." - msgstr "연결이 {}에 저장되었습니다." +-msgstr "연결이 {}에 저장되었습니다." ++msgstr "연결이 {}로 저장되었습니다." --#: dnf/cli/commands/history.py:370 -+#: dnf/cli/commands/history.py:381 + #: dnf/cli/commands/history.py:381 msgid "Error storing transaction: {}" - msgstr "저장 중 연결 오류: {}" +@@ -1356,7 +1386,7 @@ msgstr "시스템에 꾸러미를 설치합니다" --#: dnf/cli/commands/history.py:386 -+#: dnf/cli/commands/history.py:397 - msgid "Warning, the following problems occurred while running a transaction:" - msgstr "경고, 연결 동작 중에 다음 문제가 발생하였습니다:" + #: dnf/cli/commands/install.py:53 + msgid "Package to install" +-msgstr "설치할 꾸러미" ++msgstr "설치 하려는 꾸러미" -@@ -1415,9 +1452,11 @@ msgstr "꾸러미 %s가 설치되지 않았습니다." + #: 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 "" @@ -5046,12 +4878,203 @@ index b11e5ed7..cdd7cbfa 100644 +"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" -@@ -1688,7 +1727,8 @@ msgstr "키워드와 일치하는 꾸러미 검색" +@@ -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)" @@ -5061,17 +5084,18 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:124 msgid "Query all versions of packages (default)" -@@ -1710,7 +1750,8 @@ msgstr "REQ와 충돌하는 결과 만 표시" +@@ -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를 요구, 제안, 보완, 향상 또는 권장하는 결과를 " -+"표시합니다" ++msgstr "" ++"꾸러미 제공과 파일 REQ를 요구, 제안, 보완, 향상 또는 권장하는 결과를 표시합니" ++"다" #: dnf/cli/commands/repoquery.py:139 msgid "show only results that obsolete REQ" -@@ -1752,7 +1793,9 @@ msgstr "지정된대로 종속성을 확인. --alldeps와 반대됩니다" +@@ -1758,7 +1793,9 @@ msgstr "지정된대로 종속성을 확인. --alldeps와 반대됩니다" msgid "" "used with --whatrequires, and --requires --resolve, query packages " "recursively." @@ -5082,7 +5106,14 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:166 msgid "show a list of all dependencies and what packages provide them" -@@ -1774,7 +1817,9 @@ msgstr "해당 소스 RPM에서 작동합니다" +@@ -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)" @@ -5093,7 +5124,16 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:177 msgid "list also packages of inactive module streams" -@@ -1799,11 +1844,11 @@ msgstr "꾸러미의 변경 로그 표시" +@@ -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 "" @@ -5109,7 +5149,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:198 msgid "show available tags to use with --queryformat" -@@ -1813,19 +1858,25 @@ msgstr "--queryformat과 함께 사용할 수 있는 태그를 표시합니다" +@@ -1819,19 +1858,25 @@ msgstr "--queryformat과 함께 사용할 수 있는 태그를 표시합니다" msgid "" "use name-epoch:version-release.architecture format for displaying found " "packages (default)" @@ -5138,7 +5178,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:214 msgid "Display in which comps groups are presented selected packages" -@@ -1855,7 +1906,9 @@ msgstr "꾸러미와 충돌하는 기능을 표시합니다." +@@ -1861,7 +1906,9 @@ msgstr "꾸러미와 충돌하는 기능을 표시합니다." msgid "" "Display capabilities that the package can depend on, enhance, recommend, " "suggest, and supplement." @@ -5149,7 +5189,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:236 msgid "Display capabilities that the package can enhance." -@@ -1880,8 +1933,9 @@ msgid "" +@@ -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 "" @@ -5161,7 +5201,30 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:243 msgid "Display capabilities that the package suggests." -@@ -1930,22 +1984,23 @@ msgstr "검색에 사용되는 키워드" +@@ -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 "" @@ -5175,8 +5238,8 @@ index b11e5ed7..cdd7cbfa 100644 -"recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-pre', '--" -"suggests'또는 '--supplements'옵션들" +"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', " -+"'--recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-" -+"pre', '--suggests'또는 '--supplements'옵션들" ++"'--recommends', '--requires', '--requires-pre', '--suggests' 또는 '--" ++"supplements' 옵션 중의 하나를 함께 사용해야 합니다" #: dnf/cli/commands/repoquery.py:305 msgid "" @@ -5194,7 +5257,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/repoquery.py:312 msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -1959,15 +2014,18 @@ msgstr "꾸러미 {}에 파일이 없습니다" +@@ -1965,15 +2014,19 @@ msgstr "꾸러미 {}에 파일이 없습니다" #, python-brace-format msgid "" "No valid switch specified\n" @@ -5211,14 +5274,29 @@ index b11e5ed7..cdd7cbfa 100644 -"\n" -"설명:\n" +"유효한 스위치가 지정되지 않았습니다 \n" -+"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--rec" -+"ommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree] \n" ++"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree] \n" +" \n" +"설명: \n" " 지정된 꾸러미의 경우 꾸러미 트리를 출력합니다." #: dnf/cli/commands/search.py:46 -@@ -2005,8 +2063,7 @@ msgstr "설명" +@@ -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" @@ -5228,7 +5306,82 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/commands/search.py:76 msgid " & " msgstr " & " -@@ -2371,7 +2428,9 @@ 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" @@ -5239,7 +5392,26 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/main.py:88 msgid "Terminated." -@@ -2527,8 +2586,8 @@ msgid "" +@@ -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 "" @@ -5250,32 +5422,26 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/option_parser.py:251 msgid "debugging output level for rpm" -@@ -2544,24 +2603,32 @@ msgstr "모든 질문에 대해 \"아니오\"(no)로 자동 응답합니다" - - #: dnf/cli/option_parser.py:261 - msgid "" --"Temporarily enable repositories for the purposeof the current dnf command. " --"Accepts an id, acomma-separated list of ids, or a glob of ids.This option " -+"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 " +@@ -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을 허용합니다. 이와 같은 옵션은 여러 번 지정 할 수 " -+"있습니다." ++"ids 목록 또는 ids의 glob을 허용합니다. 이와 같은 옵션은 여러 번 지정 할 수 있" ++"습니다." #: dnf/cli/option_parser.py:268 msgid "" --"Temporarily disable active repositories for thepurpose 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, butis mutually exclusive with " -+"Temporarily disable active 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, but is mutually exclusive with " +@@ -2564,22 +2619,25 @@ msgid "" + "This option can be specified multiple times, but is mutually exclusive with " "`--repo`." msgstr "" -+"임시적으로 현재 dnf 명령의 용도를 위해 동적 저장소를 비활성화 합니다. id, " -+"쉼표로-구분된 ids의 목록 또는 ids의 glob를 허용합니다. 이와 같은 옵션은 여러 " +-"현재 dnf 명령을 위해 임시적으로 동적 저장소를 비활성화 할 수 있습니다. id, 쉼표로-구분된 ids의 목록 또는 ids의 glob를" +-" 허용합니다. 이와 같은 옵션은 여러 번 지정 할 수 있으나, 이는 `--repo`와 함께 상호 배타적입니다." ++"임시적으로 현재 dnf 명령의 용도를 위해 동적 저장소를 비활성화 합니다. id, 쉼" ++"표로-구분된 ids의 목록 또는 ids의 glob를 허용합니다. 이와 같은 옵션은 여러 " +"번 지정 할 수 있으나, 이는 `--repo`와 함께 상호 배타적입니다." #: dnf/cli/option_parser.py:275 @@ -5289,32 +5455,145 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/option_parser.py:280 msgid "enable repos with config-manager command (automatically saves)" -@@ -2583,7 +2650,9 @@ msgstr "excludepkgs 비활성화" +-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과 동일한 경로)를 여러 " -+"번 지정와 할 수 있습니다." ++"사용 할 추가 저장소에 대한 이름표와 경로(baseurl과 동일한 경로)를 여러 번 지" ++"정 할 수 있습니다." #: dnf/cli/option_parser.py:302 msgid "disable removal of dependencies that are no longer used" -@@ -2818,11 +2887,11 @@ msgstr "아니" +@@ -2613,11 +2673,11 @@ msgstr "명령을 실행하기 전에 메타 데이터를 만료된 것으로 - #: dnf/cli/output.py:655 - msgid "Is this ok [y/N]: " --msgstr "진행 할 까요? [y/N]: " -+msgstr "진행할까요? [y/N]: " + #: dnf/cli/option_parser.py:313 + msgid "resolve to IPv4 addresses only" +-msgstr "IPv4 주소 만 확인" ++msgstr "IPv4 주소만 확인" - #: dnf/cli/output.py:659 - msgid "Is this ok [Y/n]: " --msgstr "진행 할 까요? [Y/n]: " -+msgstr "진행할까요? [Y/n]: " + #: dnf/cli/option_parser.py:316 + msgid "resolve to IPv6 addresses only" +-msgstr "IPv6 주소 만 확인" ++msgstr "IPv6 주소만 확인" - #: dnf/cli/output.py:739 + #: 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 -@@ -2994,9 +3063,9 @@ msgstr "종속 꾸러미 설치 중" +@@ -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 "취약한 종속 꾸러미 설치 중" @@ -5325,35 +5604,112 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/cli/output.py:1060 msgid "Removing" msgstr "삭제 중" -@@ -3426,7 +3495,7 @@ msgstr "잠금 프로세스(PID %d)에 대한 정보를 찾을 수 없습니다" - #: dnf/cli/utils.py:117 +@@ -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 " The application with PID %d is: %s" --msgstr " PID %d인 애플리케이션: %s" -+msgstr " PID %d인 응용프로그램: %s" + msgid "Environment id '%s' is not installed." + msgstr "환경id '%s'가 설치되지 않았습니다." +@@ -3555,32 +3616,37 @@ msgstr "경고: '%s'을 적재하지 못했습니다, 건너 뛰기." - #: dnf/cli/utils.py:120 - #, python-format -@@ -3495,7 +3564,7 @@ msgstr "잘못된 구성 값: %s=%s (%s; %s에서)" + #: dnf/conf/read.py:72 + msgid "Bad id for repo: {} ({}), byte = {} {}" +-msgstr "레포지터리의 ID가 잘못되었습니다. {} ({}), byte = {} {}" ++msgstr "저장소의 ID가 잘못되었습니다. {} ({}), byte = {} {}" - #: dnf/conf/config.py:194 - msgid "Cannot set \"{}\" to \"{}\": {}" --msgstr "\"{}\" 을 \"{}\"으로 설정 할 수 없습니다: {}" -+msgstr "\"{}\"을 \"{}\" 으로 설정 할 수 없습니다: {}" + #: dnf/conf/read.py:76 + msgid "Bad id for repo: {}, byte = {} {}" +-msgstr "레포지터리의 ID가 잘못되었습니다. {}, byte = {} {}" ++msgstr "저장소의 ID가 잘못되었습니다. {}, byte = {} {}" - #: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" -@@ -3561,7 +3630,8 @@ msgstr "Repository '{}' : 구문 분석 설정 오류: {}" + #: 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 "" -+"Repository '{}' ({})의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." ++msgstr "저장소 '{}' ({})는 id를 사용하는 구성에 이름이 누락되어 있습니다." #: dnf/conf/read.py:96 msgid "Repository '{}' is missing name in configuration, using id." -@@ -3598,7 +3668,9 @@ msgstr "%s에서 암호화 하지 않은 %s를 위한 저장소 키 검색" +-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" @@ -5362,9 +5718,24 @@ index b11e5ed7..cdd7cbfa 100644 +"모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니" +"다" - #: dnf/db/group.py:353 +-#: dnf/db/group.py:353 ++#: dnf/db/group.py:359 #, python-format -@@ -3617,7 +3689,8 @@ msgstr "소스 RPM 꾸러미를 설치하지 않습니다 (%s)." + 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 ({})" @@ -5374,7 +5745,29 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/dnssec.py:243 msgid "DNSSEC extension: Key for user " -@@ -3692,10 +3765,12 @@ msgstr[0] "모듈 종속성 문제 :" +@@ -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" @@ -5389,7 +5782,25 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/module/__init__.py:26 msgid "Enabling different stream for '{}'." -@@ -3785,7 +3860,8 @@ msgstr "불필요한 프로파일을 무시합니다: '{}/{}'" +@@ -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" @@ -5399,7 +5810,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 #, python-brace-format -@@ -3795,7 +3871,8 @@ msgstr "실패 방지 저장소 {1}에서 모듈 '{0}’를 설치 할 수 없 +@@ -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 '{}:{}': {}" @@ -5409,7 +5820,16 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 msgid "Unable to match profile for argument {}" -@@ -3854,16 +3931,15 @@ msgstr "실패-방지 저장소에서 모듈을 향상 할 수 없습니다" +@@ -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 "" @@ -5431,42 +5851,64 @@ index b11e5ed7..cdd7cbfa 100644 msgstr "모듈 이름만 필요합니다. '{}'인수에서 불필요한 정보를 무시합니다" #: dnf/module/module_base.py:844 -@@ -3922,10 +3998,6 @@ msgstr "다음의 비활성화 플러그인 패턴과 일치하는 항목이 없 - msgid "no matching payload factory for %s" - msgstr "%s와 일치하는 payload factory가 없습니다" +@@ -3909,44 +3981,44 @@ msgstr "마지막 makecache 시간을 결정하지 못했습니다." + msgid "Parsing file failed: %s" + msgstr "구문 분석에 실패했습니다. %s" --#: dnf/repo.py:111 --msgid "Already downloaded" --msgstr "이미 내려받음" -- - #. pinging mirrors, this might take a while - #: dnf/repo.py:346 +-#: dnf/plugin.py:141 ++#: dnf/plugin.py:144 #, python-format -@@ -3945,13 +4017,21 @@ msgstr "%s 에서 %s repo를 추가했습니다" + 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 - msgid "Using rpmkeys executable at %s to verify signatures" --msgstr "%s에서 실행 가능한 rpmkey를 사용하여 서명 확인" -+msgstr "%s에 실행 할 수 있는 rpmkey를 사용하여 서명을 확인합니다" - - #: dnf/rpm/miscutils.py:66 - msgid "Cannot find rpmkeys executable to verify signatures." - msgstr "서명을 확인하기 위해 실행 할 수 있는 rpmkeys를 찾을 수 없습니다." - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function cannot open rpm database." -+msgstr "openDB() 함수는 rpm 데이타베이스를 열 수 없습니다." -+ -+#: dnf/rpm/transaction.py:75 -+msgid "The dbCookie() function did not return cookie of rpm database." -+msgstr "dbCookie() 함수는 rpm 데이타베이스의 쿠키를 반환 하지 않습니다." -+ -+#: dnf/rpm/transaction.py:135 - msgid "Errors occurred during test transaction." - msgstr "연결 시험 중에 오류가 발생했습니다." - -@@ -3959,7 +4039,9 @@ msgstr "연결 시험 중에 오류가 발생했습니다." +@@ -3973,7 +4045,9 @@ msgstr "연결 시험 중에 오류가 발생했습니다." msgid "" "allow_vendor_change is disabled. This option is currently not supported for " "downgrade and distro-sync commands" @@ -5477,7 +5919,16 @@ index b11e5ed7..cdd7cbfa 100644 #. TRANSLATORS: This is for a single package currently being downgraded. #: dnf/transaction.py:80 -@@ -4033,7 +4115,8 @@ msgstr "잘못된 하위 버전 \"{minor}\", 번호가 예상됩니다." +@@ -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}\"." @@ -5487,7 +5938,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/transaction_sr.py:224 msgid "" -@@ -4057,8 +4140,10 @@ msgstr "rpm안에 누락된 객체 키 \"{key}\"." +@@ -4071,8 +4146,10 @@ msgstr "rpm안에 누락된 객체 키 \"{key}\"." #: dnf/transaction_sr.py:289 #, python-brace-format @@ -5496,11 +5947,11 @@ index b11e5ed7..cdd7cbfa 100644 +msgid "" +"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." +msgstr "" -+"rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유\"{reason}\" 의 값." ++"rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유 \"{reason}\"의 값." #: dnf/transaction_sr.py:297 #, python-brace-format -@@ -4080,7 +4165,9 @@ msgstr "꾸러미 \"{na}\"는 활동 \"{action}\"를 위해 이미 설치되어 +@@ -4094,7 +4171,9 @@ msgstr "꾸러미 \"{na}\"는 활동 \"{action}\"를 위해 이미 설치되어 msgid "" "Package nevra \"{nevra}\" not available in repositories for action " "\"{action}\"." @@ -5511,7 +5962,7 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/transaction_sr.py:356 #, python-brace-format -@@ -4089,8 +4176,10 @@ msgstr "꾸러미 nevra\"{nevra}\"는 활동 \"{action}\"을 위해 설치되지 +@@ -4103,8 +4182,10 @@ msgstr "꾸러미 nevra\"{nevra}\"는 활동 \"{action}\"을 위해 설치되지 #: dnf/transaction_sr.py:370 #, python-brace-format @@ -5524,7 +5975,24 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/transaction_sr.py:377 #, python-format -@@ -4117,7 +4206,9 @@ msgstr "환경 id '%s'는 사용 할 수 없습니다." +@@ -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." @@ -5533,11 +6001,26 @@ index b11e5ed7..cdd7cbfa 100644 +"잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 " +"\"선택\"만 지원합니다." - #: dnf/transaction_sr.py:464 +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 #, python-brace-format -@@ -4136,7 +4227,9 @@ msgstr "그룹 안에 누락된 객체 키 \"{key}\"." + msgid "Missing object key \"{key}\" in environments.groups." + msgstr "환경 그룹에서 누락된 객체 키 \"{key}\"." - #: dnf/transaction_sr.py:571 +-#: 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 "" @@ -5545,9 +6028,14 @@ index b11e5ed7..cdd7cbfa 100644 +"\"{env}\"." msgstr "환경 \"{env}\"를 위해 예상하지 못한 환경 활동 \"{action}\"의 값." - #: dnf/transaction_sr.py:576 -@@ -4147,9 +4240,10 @@ msgstr "환경에 누락된 객체 키 \"{key}\"." - #: dnf/transaction_sr.py:615 +-#: 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" @@ -5560,13 +6048,33 @@ index b11e5ed7..cdd7cbfa 100644 #: dnf/util.py:417 dnf/util.py:419 msgid "Problem" -@@ -4188,15 +4282,25 @@ msgstr "실패하였습니다" +@@ -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 "No Matches found" -+#~ msgstr "검색 결과가 없습니다" -+ +-#~ msgid "Already downloaded" +-#~ msgstr "이미 내려받음" +- + #~ msgid "No Matches found" + #~ msgstr "검색 결과가 없습니다" + #~ msgid "" #~ "Enable additional repositories. List option. Supports globs, can be " #~ "specified multiple times." @@ -5590,7 +6098,7 @@ index b11e5ed7..cdd7cbfa 100644 #~ msgid "skipping." #~ msgstr "건너 뛰기." -@@ -4204,7 +4308,8 @@ msgstr "" +@@ -4224,7 +4315,8 @@ msgstr "" #~ msgid "" #~ "Using rpmkeys executable from {path} to verify signature for package: " #~ "{package}." @@ -5601,10 +6109,10 @@ index b11e5ed7..cdd7cbfa 100644 #~ 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 2cb372b4..19e529e7 100644 +index 2f8b9f8e..4496ba43 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po -@@ -21,26 +21,31 @@ +@@ -21,29 +21,33 @@ # zhouxiaobo , 2017. #zanata # Ludek Janda , 2018. #zanata # Pany , 2018. #zanata @@ -5617,19 +6125,22 @@ index 2cb372b4..19e529e7 100644 # Harry Chen , 2020. +# Sundeep Anand , 2021. # weidong , 2021. -+# Transtats , 2022. -+# Edward Zhang , 2022. -+# Cheng Ming , 2022. +-# 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-01-11 01:52+0000\n" --"PO-Revision-Date: 2021-12-04 02:16+0000\n" --"Last-Translator: weidong \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: 2022-08-31 13:42+0200\n" -+"PO-Revision-Date: 2022-09-06 07:19+0000\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" @@ -5638,465 +6149,459 @@ index 2cb372b4..19e529e7 100644 "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" --"X-Generator: Weblate 4.9.1\n" -+"X-Generator: Weblate 4.14\n" +-"X-Generator: Weblate 4.13\n" ++"X-Generator: Weblate 4.15.2\n" #: dnf/automatic/emitter.py:32 #, python-format -@@ -124,244 +129,244 @@ msgstr "系统离线。" +@@ -127,7 +131,7 @@ msgstr "系统离线。" msgid "Error: %s" msgstr "错误:%s" --#: dnf/base.py:148 dnf/base.py:477 dnf/base.py:479 -+#: dnf/base.py:150 dnf/base.py:479 dnf/base.py:481 +-#: 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 "加载仓库 '{}' 失败:{}" --#: dnf/base.py:150 -+#: dnf/base.py:152 +@@ -135,236 +139,236 @@ msgstr "加载仓库 '{}' 失败:{}" msgid "Loading repository '{}' has failed" msgstr "加载仓库 '{}' 失败" --#: dnf/base.py:327 -+#: dnf/base.py:329 +-#: dnf/base.py:329 ++#: dnf/base.py:334 msgid "Metadata timer caching disabled when running on metered connection." msgstr "在使用按流量计费的连接时禁用元数据计时缓存。" --#: dnf/base.py:332 -+#: dnf/base.py:334 +-#: dnf/base.py:334 ++#: dnf/base.py:339 msgid "Metadata timer caching disabled when running on a battery." msgstr "在使用电池时禁用元数据计时缓存。" --#: dnf/base.py:337 -+#: dnf/base.py:339 +-#: dnf/base.py:339 ++#: dnf/base.py:344 msgid "Metadata timer caching disabled." msgstr "元数据计时缓存已禁用。" --#: dnf/base.py:342 -+#: dnf/base.py:344 +-#: dnf/base.py:344 ++#: dnf/base.py:349 msgid "Metadata cache refreshed recently." msgstr "元数据缓存近期已刷新。" --#: dnf/base.py:348 dnf/cli/commands/__init__.py:91 -+#: dnf/base.py:350 dnf/cli/commands/__init__.py:91 +-#: 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:355 -+#: dnf/base.py:357 +-#: 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:357 -+#: dnf/base.py:359 +-#: 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:361 -+#: dnf/base.py:363 +-#: 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:365 -+#: dnf/base.py:367 +-#: 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:371 -+#: dnf/base.py:373 +-#: dnf/base.py:373 ++#: dnf/base.py:378 msgid "Metadata cache created." msgstr "元数据缓存已建立。" --#: dnf/base.py:404 dnf/base.py:471 -+#: dnf/base.py:406 dnf/base.py:473 +-#: 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:416 dnf/base.py:484 -+#: dnf/base.py:418 dnf/base.py:486 +-#: 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:419 -+#: dnf/base.py:421 +-#: 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:512 -+#: dnf/base.py:514 +-#: 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:514 -+#: dnf/base.py:516 +-#: dnf/base.py:516 ++#: dnf/base.py:521 #, python-format msgid "You can remove cached packages by executing '%s'." msgstr "您可以通过执行 '%s' 删除软件包缓存。" --#: dnf/base.py:606 -+#: dnf/base.py:648 +-#: dnf/base.py:648 ++#: dnf/base.py:653 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "配置文件 %s 中使用 tsflag 是错误的" --#: dnf/base.py:662 -+#: dnf/base.py:706 +-#: 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:922 -+#: dnf/base.py:968 +-#: dnf/base.py:968 ++#: dnf/base.py:973 msgid "Running transaction check" msgstr "运行事务检查" --#: dnf/base.py:930 -+#: dnf/base.py:976 +-#: dnf/base.py:976 ++#: dnf/base.py:981 msgid "Error: transaction check vs depsolve:" msgstr "错误:事务检查与依赖解决错误:" --#: dnf/base.py:936 -+#: dnf/base.py:982 +-#: dnf/base.py:982 ++#: dnf/base.py:987 msgid "Transaction check succeeded." msgstr "事务检查成功。" --#: dnf/base.py:939 -+#: dnf/base.py:985 +-#: dnf/base.py:985 ++#: dnf/base.py:990 msgid "Running transaction test" msgstr "运行事务测试" --#: dnf/base.py:949 dnf/base.py:1100 -+#: dnf/base.py:995 dnf/base.py:1146 +-#: dnf/base.py:995 dnf/base.py:1146 ++#: dnf/base.py:1000 dnf/base.py:1151 msgid "RPM: {}" msgstr "RPM软件包: {}" --#: dnf/base.py:950 -+#: dnf/base.py:996 +-#: dnf/base.py:996 ++#: dnf/base.py:1001 msgid "Transaction test error:" --msgstr "事物测试失败:" -+msgstr "事务测试失败:" + msgstr "事务测试失败:" --#: dnf/base.py:961 -+#: dnf/base.py:1007 +-#: dnf/base.py:1007 ++#: dnf/base.py:1012 msgid "Transaction test succeeded." msgstr "事务测试成功。" --#: dnf/base.py:982 -+#: dnf/base.py:1028 +-#: dnf/base.py:1028 ++#: dnf/base.py:1033 msgid "Running transaction" msgstr "运行事务" --#: dnf/base.py:1019 -+#: dnf/base.py:1065 +-#: dnf/base.py:1065 ++#: dnf/base.py:1070 msgid "Disk Requirements:" msgstr "磁盘需求:" --#: dnf/base.py:1022 -+#: dnf/base.py:1068 +-#: 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的可用空间。" -+msgstr[0] "在 {1} 文件系统上至少需要 {0}MB 的空间。" + msgstr[0] "在 {1} 文件系统上至少需要 {0}MB 的空间。" --#: dnf/base.py:1029 -+#: dnf/base.py:1075 +-#: dnf/base.py:1075 ++#: dnf/base.py:1080 msgid "Error Summary" msgstr "错误汇总" --#: dnf/base.py:1055 -+#: dnf/base.py:1101 +-#: dnf/base.py:1101 ++#: dnf/base.py:1106 #, python-brace-format msgid "RPMDB altered outside of {prog}." msgstr "RPMDB 在 {prog} 外被改动了。" --#: dnf/base.py:1101 dnf/base.py:1109 -+#: dnf/base.py:1147 dnf/base.py:1155 +-#: 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:1104 -+#: dnf/base.py:1150 +-#: dnf/base.py:1150 ++#: dnf/base.py:1155 msgid "Transaction couldn't start:" msgstr "事务无法启动:" --#: dnf/base.py:1118 -+#: dnf/base.py:1164 +-#: dnf/base.py:1164 ++#: dnf/base.py:1169 #, python-format msgid "Failed to remove transaction file %s" msgstr "移除事务文件 %s 失败" --#: dnf/base.py:1200 -+#: dnf/base.py:1246 +-#: dnf/base.py:1246 ++#: dnf/base.py:1251 msgid "Some packages were not downloaded. Retrying." msgstr "某些软件包没有被下载。正在重试。" --#: dnf/base.py:1230 -+#: dnf/base.py:1276 +-#: 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 "增量 RPM 将更新的 %.1f MB 减少到 %.1f MB(节省了 %.1f%%)" + msgstr "增量 RPM 将更新的 %.1f MB 减少到 %.1f MB(节省了 %.1f%%)" --#: dnf/base.py:1234 -+#: dnf/base.py:1280 +-#: 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%% )" -+msgstr "失败的增量 RPM 将更新的 %.1f MB 增加到 %.1f MB(浪费了 %.1f%%)" + msgstr "失败的增量 RPM 将更新的 %.1f MB 增加到 %.1f MB(浪费了 %.1f%%)" --#: dnf/base.py:1276 -+#: dnf/base.py:1322 +-#: dnf/base.py:1322 ++#: dnf/base.py:1327 msgid "Cannot add local packages, because transaction job already exists" --msgstr "由于事物已经存在,无法添加本地软件包" -+msgstr "由于事务已经存在,无法添加本地软件包" + msgstr "由于事务已经存在,无法添加本地软件包" --#: dnf/base.py:1290 -+#: dnf/base.py:1336 +-#: dnf/base.py:1336 ++#: dnf/base.py:1341 msgid "Could not open: {}" msgstr "无法打开: {}" --#: dnf/base.py:1328 -+#: dnf/base.py:1374 +-#: dnf/base.py:1374 ++#: dnf/base.py:1379 #, python-format msgid "Public key for %s is not installed" msgstr "%s 的公钥没有安装" --#: dnf/base.py:1332 -+#: dnf/base.py:1378 +-#: dnf/base.py:1378 ++#: dnf/base.py:1383 #, python-format msgid "Problem opening package %s" msgstr "打开软件包 %s 出现问题" --#: dnf/base.py:1340 -+#: dnf/base.py:1386 +-#: dnf/base.py:1386 ++#: dnf/base.py:1391 #, python-format msgid "Public key for %s is not trusted" msgstr "%s 的公钥不可信任" --#: dnf/base.py:1344 -+#: dnf/base.py:1390 +-#: dnf/base.py:1390 ++#: dnf/base.py:1395 #, python-format msgid "Package %s is not signed" msgstr "软件包 %s 没有签名" --#: dnf/base.py:1374 -+#: dnf/base.py:1420 +-#: dnf/base.py:1420 ++#: dnf/base.py:1425 #, python-format msgid "Cannot remove %s" msgstr "无法删除 %s" --#: dnf/base.py:1378 -+#: dnf/base.py:1424 +-#: dnf/base.py:1424 ++#: dnf/base.py:1429 #, python-format msgid "%s removed" msgstr "%s 已删除" --#: dnf/base.py:1658 -+#: dnf/base.py:1704 +-#: dnf/base.py:1704 ++#: dnf/base.py:1709 msgid "No match for group package \"{}\"" msgstr "没有和组 \"{}\" 匹配的" --#: dnf/base.py:1740 -+#: dnf/base.py:1786 +-#: dnf/base.py:1786 ++#: dnf/base.py:1791 #, python-format msgid "Adding packages from group '%s': %s" msgstr "从组 '%s': %s 添加软件包" --#: dnf/base.py:1763 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1809 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 +-#: 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:1781 -+#: dnf/base.py:1827 +-#: dnf/base.py:1827 ++#: dnf/base.py:1832 msgid "No groups marked for removal." msgstr "没有软件包组需要移除。" --#: dnf/base.py:1815 -+#: dnf/base.py:1861 +-#: dnf/base.py:1861 ++#: dnf/base.py:1866 msgid "No group marked for upgrade." msgstr "没有标记为要升级的组。" --#: dnf/base.py:2029 -+#: dnf/base.py:2075 +-#: dnf/base.py:2075 ++#: dnf/base.py:2080 #, python-format msgid "Package %s not installed, cannot downgrade it." msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" --#: dnf/base.py:2031 dnf/base.py:2050 dnf/base.py:2063 dnf/base.py:2090 --#: dnf/base.py:2143 dnf/base.py:2151 dnf/base.py:2285 dnf/cli/cli.py:417 -+#: 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: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 -@@ -371,178 +376,179 @@ msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" +@@ -374,178 +378,179 @@ msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" msgid "No match for argument: %s" msgstr "未找到匹配的参数: %s" --#: dnf/base.py:2038 -+#: dnf/base.py:2084 +-#: 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:2061 -+#: dnf/base.py:2107 +-#: dnf/base.py:2107 ++#: dnf/base.py:2112 #, python-format msgid "Package %s not installed, cannot reinstall it." msgstr "软件包 %s 未能够安装成功,无法进行重新安装。" --#: dnf/base.py:2076 -+#: dnf/base.py:2122 +-#: 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:2087 -+#: dnf/base.py:2133 +-#: dnf/base.py:2133 ++#: dnf/base.py:2142 #, python-format msgid "Package %s not installed, cannot update it." msgstr "软件包 %s 未安装,无法更新。" --#: dnf/base.py:2097 -+#: dnf/base.py:2143 +-#: 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:2140 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2203 dnf/cli/commands/reinstall.py:81 +-#: 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:2146 -+#: dnf/base.py:2209 +-#: dnf/base.py:2209 ++#: dnf/base.py:2218 #, python-format msgid "Package %s available, but installed for different architecture." msgstr "软件包 %s 可用,当是为其它架构安装。" --#: dnf/base.py:2171 -+#: dnf/base.py:2234 +-#: dnf/base.py:2234 ++#: dnf/base.py:2243 #, python-format msgid "No package %s installed." msgstr "没有软件包 %s 安装。" --#: dnf/base.py:2189 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2252 dnf/cli/commands/install.py:136 +-#: 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:2204 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2267 dnf/cli/commands/__init__.py:676 +-#: 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:2292 dnf/cli/cli.py:428 -+#: dnf/base.py:2355 dnf/cli/cli.py:428 +-#: 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:2297 -+#: dnf/base.py:2360 +-#: 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:2397 -+#: dnf/base.py:2460 +-#: dnf/base.py:2460 ++#: dnf/base.py:2469 msgid "No security updates needed, but {} update available" msgstr "没有必须的安全更新, 但是 {} 的更新可用" --#: dnf/base.py:2399 -+#: dnf/base.py:2462 +-#: dnf/base.py:2462 ++#: dnf/base.py:2471 msgid "No security updates needed, but {} updates available" msgstr "没有必须的安全更新, 但是 {} 的更新可用" --#: dnf/base.py:2403 -+#: dnf/base.py:2466 +-#: dnf/base.py:2466 ++#: dnf/base.py:2475 msgid "No security updates needed for \"{}\", but {} update available" msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" --#: dnf/base.py:2405 -+#: dnf/base.py:2468 +-#: 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:2426 -+#: dnf/base.py:2489 +-#: 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:2434 -+#: dnf/base.py:2497 +-#: dnf/base.py:2497 ++#: dnf/base.py:2506 #, python-format msgid ". Failing package is: %s" msgstr ". 失败的软件包是:%s" --#: dnf/base.py:2435 -+#: dnf/base.py:2498 +-#: dnf/base.py:2498 ++#: dnf/base.py:2507 #, python-format msgid "GPG Keys are configured as: %s" msgstr "GPG密钥配置为:%s" --#: dnf/base.py:2447 -+#: dnf/base.py:2510 +-#: 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:2483 -+#: dnf/base.py:2546 +-#: dnf/base.py:2546 ++#: dnf/base.py:2555 msgid "The key has been approved." msgstr "密钥已被确认。" --#: dnf/base.py:2486 -+#: dnf/base.py:2549 +-#: dnf/base.py:2549 ++#: dnf/base.py:2558 msgid "The key has been rejected." msgstr "密钥已被拒绝。" --#: dnf/base.py:2519 -+#: dnf/base.py:2582 +-#: dnf/base.py:2582 ++#: dnf/base.py:2591 #, python-format msgid "Key import failed (code %d)" msgstr "导入公钥失败(代码 %d)" --#: dnf/base.py:2521 -+#: dnf/base.py:2584 +-#: dnf/base.py:2584 ++#: dnf/base.py:2593 msgid "Key imported successfully" msgstr "导入公钥成功" --#: dnf/base.py:2525 -+#: dnf/base.py:2588 +-#: dnf/base.py:2588 ++#: dnf/base.py:2597 msgid "Didn't install any keys" msgstr "没有安装任何公钥" --#: dnf/base.py:2528 -+#: dnf/base.py:2591 +-#: 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" @@ -6107,75 +6612,64 @@ index 2cb372b4..19e529e7 100644 "仓库 \"%s\" 的 GPG 公钥已安装,但是不适用于此软件包。\n" "请检查此仓库的公钥 URL 是否配置正确。" --#: dnf/base.py:2539 -+#: dnf/base.py:2602 +-#: dnf/base.py:2602 ++#: dnf/base.py:2611 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "导入的密钥没有公钥,错误的公钥?" --#: dnf/base.py:2592 -+#: dnf/base.py:2655 +-#: dnf/base.py:2655 ++#: dnf/base.py:2664 msgid " * Maybe you meant: {}" msgstr " * 可能您的意思是:{}" --#: dnf/base.py:2624 -+#: dnf/base.py:2687 +-#: dnf/base.py:2687 ++#: dnf/base.py:2696 msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" msgstr "软件包 \"{}\"(来自于本地仓库 \"{}\")的 checksum 不正确" --#: dnf/base.py:2627 -+#: dnf/base.py:2690 +-#: dnf/base.py:2690 ++#: dnf/base.py:2699 msgid "Some packages from local repository have incorrect checksum" msgstr "本地仓库的一些软件包校验值(checksum)不正确,无法确定软件包完整" --#: dnf/base.py:2630 -+#: dnf/base.py:2693 +-#: dnf/base.py:2693 ++#: dnf/base.py:2702 msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" msgstr "软件包 \"{}\"(来自仓库 \"{}\")的 checksum 不正确" --#: dnf/base.py:2633 -+#: dnf/base.py:2696 +-#: 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:2651 dnf/base.py:2671 -+#: dnf/base.py:2714 dnf/base.py:2734 +-#: 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:2659 dnf/base.py:2679 -+#: dnf/base.py:2722 dnf/base.py:2742 +-#: 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:2661 -+#: dnf/base.py:2724 +-#: dnf/base.py:2724 ++#: dnf/base.py:2733 msgid "All matches were filtered out by modular filtering for argument" msgstr "所有的匹配结果均已经被参数的模块化过滤条件筛除" --#: dnf/base.py:2677 -+#: dnf/base.py:2740 +-#: dnf/base.py:2740 ++#: dnf/base.py:2749 msgid "All matches were installed from a different repository for argument" msgstr "已从另一个仓库安装了参数的所有匹配" --#: dnf/base.py:2724 -+#: dnf/base.py:2787 +-#: dnf/base.py:2787 ++#: dnf/base.py:2796 #, python-format msgid "Package %s is already installed." msgstr "软件包 %s 已安装。" -@@ -562,8 +568,8 @@ msgstr "解析文件 \"%s\" 失败:%s" - msgid "Cannot read file \"%s\": %s" - msgstr "无法读取文件 \"%s\": %s" - --#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:804 --#: dnf/cli/cli.py:808 dnf/cli/commands/alias.py:108 -+#: dnf/cli/aliases.py:115 dnf/cli/aliases.py:129 dnf/cli/cli.py:806 -+#: dnf/cli/cli.py:810 dnf/cli/commands/alias.py:108 - #, python-format - msgid "Config error: %s" - msgstr "配置错误:%s" -@@ -597,11 +603,15 @@ msgstr "这个操作会把模块 '{0}' 从流 '{1}' 切换到流 '{2}'" +@@ -600,11 +605,15 @@ msgstr "这个操作会把模块 '{0}' 从流 '{1}' 切换到流 '{2}'" #: dnf/cli/cli.py:173 #, python-brace-format msgid "" @@ -6194,41 +6688,20 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/cli.py:212 #, python-brace-format -@@ -651,7 +661,7 @@ msgstr "取代的软件包" - msgid "No packages marked for distribution synchronization." - msgstr "没有软件包需要发行版同步。" +@@ -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:425 dnf/cli/commands/group.py:395 -+#: dnf/cli/cli.py:425 dnf/cli/commands/group.py:396 + #: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 #, python-format - msgid "No package %s available." - msgstr "没有可用的软件包 %s。" -@@ -689,97 +699,103 @@ msgid "No matching Packages to list" - msgstr "没有匹配的软件包可以列出" +@@ -709,8 +720,8 @@ msgstr "没有仓库匹配: %s" - #: dnf/cli/cli.py:604 --msgid "No Matches found" --msgstr "没有找到匹配的软件包" -+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:671 dnf/cli/commands/shell.py:237 -+#: dnf/cli/cli.py:673 dnf/cli/commands/shell.py:237 - #, python-format - msgid "Unknown repo: '%s'" - msgstr "未知仓库:'%s'" - --#: dnf/cli/cli.py:685 -+#: dnf/cli/cli.py:687 - #, python-format - msgid "No repository match: %s" - msgstr "没有仓库匹配: %s" - --#: dnf/cli/cli.py:719 -+#: dnf/cli/cli.py:721 + #: dnf/cli/cli.py:721 msgid "" -"This command has to be run with superuser privileges (under the root user on" -" most systems)." @@ -6236,31 +6709,8 @@ index 2cb372b4..19e529e7 100644 +"most systems)." msgstr "运行此命令需要管理员特权(多数系统下是root用户)。" --#: dnf/cli/cli.py:749 -+#: dnf/cli/cli.py:751 - #, python-format - msgid "No such command: %s. Please use %s --help" - msgstr "未找到命令: %s。请使用 %s --help" - --#: dnf/cli/cli.py:752 -+#: dnf/cli/cli.py:754 - #, python-format, python-brace-format - msgid "" - "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" - "command(%s)'\"" - msgstr "它可能是一个{PROG}插件命令,尝试:\"{prog} install 'dnf-command(%s)'\"" - --#: dnf/cli/cli.py:756 -+#: 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} 插件的命令,但是插件的加载当前已经禁用。" - --#: dnf/cli/cli.py:814 -+#: dnf/cli/cli.py:816 - msgid "" + #: 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 "" @@ -6269,8 +6719,7 @@ index 2cb372b4..19e529e7 100644 +"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-" +"upgrade 命令一起使用。" --#: dnf/cli/cli.py:820 -+#: dnf/cli/cli.py:822 + #: dnf/cli/cli.py:822 msgid "" "--enable, --set-enabled and --disable, --set-disabled must be used with " "config-manager command." @@ -6279,8 +6728,7 @@ index 2cb372b4..19e529e7 100644 +"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命" +"令一起使用。" --#: dnf/cli/cli.py:902 -+#: dnf/cli/cli.py:904 + #: 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)" @@ -6289,50 +6737,9 @@ index 2cb372b4..19e529e7 100644 +"警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中" +"的'gpgcheck'以了解如何阻止这条信息)" --#: dnf/cli/cli.py:922 -+#: dnf/cli/cli.py:924 + #: dnf/cli/cli.py:924 msgid "Config file \"{}\" does not exist" - msgstr "配置文件 \"{}\" 不存在" - --#: dnf/cli/cli.py:942 -+#: dnf/cli/cli.py:944 - msgid "" - "Unable to detect release version (use '--releasever' to specify release " - "version)" - msgstr "无法找到发布版本(可用 '--releasever' 指定版本)" - --#: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 -+#: dnf/cli/cli.py:1018 dnf/cli/commands/repoquery.py:471 - msgid "argument {}: not allowed with argument {}" - msgstr "参数 {}:不允许与参数 {} 一起使用" - --#: dnf/cli/cli.py:1023 -+#: dnf/cli/cli.py:1025 - #, python-format - msgid "Command \"%s\" already defined" - msgstr "命令 \"%s\" 已有定义" - --#: dnf/cli/cli.py:1043 -+#: dnf/cli/cli.py:1045 - msgid "Excludes in dnf.conf: " - msgstr "在 dnf.conf 中排除: " - --#: dnf/cli/cli.py:1046 -+#: dnf/cli/cli.py:1048 - msgid "Includes in dnf.conf: " - msgstr "在 dnf.conf 中包括: " - --#: dnf/cli/cli.py:1049 -+#: dnf/cli/cli.py:1051 - msgid "Excludes in repo " - msgstr "在 repo 中排除 " - --#: dnf/cli/cli.py:1052 -+#: dnf/cli/cli.py:1054 - msgid "Includes in repo " - msgstr "在 repo 中包括 " - -@@ -797,7 +813,8 @@ msgstr "RPM 数据库可能出错,请尝试运行'%s'进行恢复。" +@@ -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" @@ -6342,7 +6749,16 @@ index 2cb372b4..19e529e7 100644 "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" -@@ -1137,7 +1154,8 @@ msgstr "正在等待 pid 为%d的进程退出。" +@@ -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" @@ -6352,16 +6768,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/distrosync.py:32 msgid "synchronize installed packages to the latest available versions" -@@ -1229,7 +1247,7 @@ msgstr "组子命令的参数" - msgid "Invalid groups sub-command, use: %s." - msgstr "无效的组子命令,请使用:%s 。" - --#: dnf/cli/commands/group.py:398 -+#: dnf/cli/commands/group.py:399 - msgid "Unable to find a mandatory group package." - msgstr "无法找到一个必须的组软件包。" - -@@ -1243,8 +1261,8 @@ msgstr "对于 store 命令,要将事务保存到的文件路径" +@@ -1248,8 +1264,8 @@ msgstr "对于 store 命令,要将事务保存到的文件路径" #: dnf/cli/commands/history.py:68 msgid "" @@ -6372,7 +6779,7 @@ index 2cb372b4..19e529e7 100644 msgstr "对于 replay 命令,不要检查已安装的包是否与事务中符合" #: dnf/cli/commands/history.py:71 -@@ -1255,8 +1273,8 @@ msgstr "对于 replay 命令,不要检查被拉入事务的额外的包" +@@ -1260,8 +1276,8 @@ msgstr "对于 replay 命令,不要检查被拉入事务的额外的包" #: dnf/cli/commands/history.py:74 msgid "" @@ -6383,16 +6790,7 @@ index 2cb372b4..19e529e7 100644 msgstr "对于 replay 命令,跳过不可用或者缺少依赖项的软件包" #: dnf/cli/commands/history.py:94 -@@ -1269,7 +1287,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." -@@ -1287,8 +1305,8 @@ msgstr "你没有权限访问历史数据库:%s" +@@ -1292,8 +1308,8 @@ msgstr "你没有权限访问历史数据库:%s" #: dnf/cli/commands/history.py:151 #, python-format msgid "" @@ -6403,74 +6801,16 @@ index 2cb372b4..19e529e7 100644 msgstr "无法撤销事务 %s,这样做将可能导致不一致的软件包数据库。" #: dnf/cli/commands/history.py:156 -@@ -1305,7 +1323,7 @@ msgstr "没有事务 ID" - #: dnf/cli/commands/history.py:179 - #, python-brace-format - msgid "Transaction ID \"{0}\" not found." --msgstr "事务 ID \"{0}\" 未找到。" -+msgstr "无法找到事务 ID \"{0}\" 对应的事务。" +@@ -1360,7 +1376,7 @@ msgstr "未覆盖 {},正在退出。" - #: dnf/cli/commands/history.py:185 - msgid "Found more than one transaction ID!" -@@ -1321,11 +1339,11 @@ msgstr "在 %u 之前,事务历史不完整。" - msgid "Transaction history is incomplete, after %u." - msgstr "在 %u 之后,事务历史不完整。" - --#: dnf/cli/commands/history.py:256 -+#: dnf/cli/commands/history.py:267 - msgid "No packages to list" - msgstr "没有可以列出的软件包" - --#: dnf/cli/commands/history.py:279 -+#: dnf/cli/commands/history.py:290 - msgid "" - "Invalid transaction ID range definition '{}'.\n" - "Use '..'." -@@ -1333,7 +1351,7 @@ msgstr "" - "无效的事务 ID 范围定义 '{}'。\n" - "使用 '..'。" - --#: dnf/cli/commands/history.py:283 -+#: dnf/cli/commands/history.py:294 - msgid "" - "Can't convert '{}' to transaction ID.\n" - "Use '', 'last', 'last-'." -@@ -1341,27 +1359,27 @@ msgstr "" - "无法将 '{}' 转换为事务 ID。\n" - "请使用 ''、'last'、'last-'。" - --#: dnf/cli/commands/history.py:312 -+#: dnf/cli/commands/history.py:323 - msgid "No transaction which manipulates package '{}' was found." - msgstr "没有找到操作软件包 '{}' 的事务。" - --#: dnf/cli/commands/history.py:357 -+#: dnf/cli/commands/history.py:368 - msgid "{} exists, overwrite?" - msgstr "{} 已存在,是否覆盖?" - --#: dnf/cli/commands/history.py:360 -+#: dnf/cli/commands/history.py:371 - msgid "Not overwriting {}, exiting." --msgstr "不覆盖 {},退出。" -+msgstr "未覆盖 {},正在退出。" - --#: dnf/cli/commands/history.py:367 -+#: dnf/cli/commands/history.py:378 + #: dnf/cli/commands/history.py:378 msgid "Transaction saved to {}." - msgstr "事务已保存至 {}。" +-msgstr "事务已保存至 {}。" ++msgstr "事务已保存到 {}。" --#: dnf/cli/commands/history.py:370 -+#: dnf/cli/commands/history.py:381 + #: dnf/cli/commands/history.py:381 msgid "Error storing transaction: {}" - msgstr "存储事务时出现错误:{}" - --#: dnf/cli/commands/history.py:386 -+#: dnf/cli/commands/history.py:397 - msgid "Warning, the following problems occurred while running a transaction:" - msgstr "警告,在运行事务时出现了下列问题:" - -@@ -1436,8 +1454,8 @@ msgstr "软件包 %s 尚未安装。" +@@ -1441,8 +1457,8 @@ msgstr "软件包 %s 尚未安装。" #: dnf/cli/commands/module.py:54 msgid "" @@ -6481,17 +6821,93 @@ index 2cb372b4..19e529e7 100644 msgstr "仅使用模块名称、流、架构或者配置文件。忽略参数中不需要的信息:'{}'" #: dnf/cli/commands/module.py:80 -@@ -1731,7 +1749,8 @@ msgstr "只显示与 REQ 冲突的结果" +@@ -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 软件包提供和文件 " ++msgstr "" ++"选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 " +"REQ 的结果" #: dnf/cli/commands/repoquery.py:139 msgid "show only results that obsolete REQ" -@@ -1820,9 +1839,11 @@ msgstr "显示软件包的 changelogs" +@@ -1825,9 +1843,11 @@ msgstr "显示软件包的 changelogs" #: dnf/cli/commands/repoquery.py:194 #, python-format, python-brace-format msgid "" @@ -6506,7 +6922,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/repoquery.py:198 msgid "show available tags to use with --queryformat" -@@ -1832,13 +1853,16 @@ msgstr "显示可被 --queryformat 使用的标签" +@@ -1837,13 +1857,16 @@ msgstr "显示可被 --queryformat 使用的标签" msgid "" "use name-epoch:version-release.architecture format for displaying found " "packages (default)" @@ -6525,7 +6941,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/repoquery.py:211 msgid "" -@@ -1874,7 +1898,9 @@ msgstr "显示与该软件包冲突的功能。" +@@ -1879,7 +1902,9 @@ msgstr "显示与该软件包冲突的功能。" msgid "" "Display capabilities that the package can depend on, enhance, recommend, " "suggest, and supplement." @@ -6536,7 +6952,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/repoquery.py:236 msgid "Display capabilities that the package can enhance." -@@ -1899,8 +1925,8 @@ msgid "" +@@ -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 "" @@ -6547,7 +6963,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/repoquery.py:243 msgid "Display capabilities that the package suggests." -@@ -1949,22 +1975,23 @@ msgstr "搜索所用的关键词" +@@ -1954,22 +1979,23 @@ msgstr "搜索所用的关键词" #: dnf/cli/commands/repoquery.py:295 msgid "" @@ -6580,7 +6996,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/repoquery.py:312 msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -1978,13 +2005,16 @@ msgstr "软件包 {} 不包含文件" +@@ -1983,13 +2009,17 @@ msgstr "软件包 {} 不包含文件" #, python-brace-format msgid "" "No valid switch specified\n" @@ -6594,12 +7010,13 @@ index 2cb372b4..19e529e7 100644 msgstr "" "没有指定有效参数\n" -"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recom" -+"mends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" ++"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" ++"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" ++"tree]\n" "\n" "描述:\n" " 对于指定的软件包,打印此软件包的树状图。" -@@ -2024,8 +2054,7 @@ msgstr "描述" +@@ -2029,8 +2059,7 @@ msgstr "描述" msgid "URL" msgstr "URL" @@ -6609,7 +7026,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/commands/search.py:76 msgid " & " msgstr " 和 " -@@ -2543,7 +2572,9 @@ 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" @@ -6620,35 +7037,29 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/option_parser.py:251 msgid "debugging output level for rpm" -@@ -2559,18 +2590,21 @@ msgstr "全部问题自动应答为否" - - #: dnf/cli/option_parser.py:261 - msgid "" --"Temporarily enable repositories for the purposeof the current dnf command. " --"Accepts an id, acomma-separated list of ids, or a glob of ids.This option " -+"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 " +@@ -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 "" -+msgstr "为当前 dnf 命令临时启用仓库。接受一个 id、以逗号分隔的多个 id 列表,或 ids " +-msgstr "基于当前的dnf指令目前可用的仓库,可以接受一个id,一个由分隔符分割的id列表或一个id的glob。该选项可以被多次指定。" ++msgstr "" ++"为当前 dnf 命令临时启用仓库。接受一个 id、以逗号分隔的多个 id 列表,或 ids " +"glob。此选项可多次指定。" #: dnf/cli/option_parser.py:268 msgid "" --"Temporarily disable active repositories for thepurpose 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, butis mutually exclusive with " -+"Temporarily disable active 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, but is mutually exclusive with " +@@ -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 "" -@@ -2598,7 +2632,8 @@ msgstr "禁用 excludepkgs" +@@ -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." @@ -6658,25 +7069,34 @@ index 2cb372b4..19e529e7 100644 #: dnf/cli/option_parser.py:302 msgid "disable removal of dependencies that are no longer used" -@@ -3161,7 +3196,7 @@ msgstr "总计" +@@ -3302,7 +3336,7 @@ msgstr "失败:" - #: dnf/cli/output.py:1466 - msgid "" --msgstr "<空>" -+msgstr "" + #: dnf/cli/output.py:1764 dnf/cli/output.py:1766 + msgid "Releasever :" +-msgstr "Releasever :" ++msgstr "发行版 :" - #: dnf/cli/output.py:1467 - msgid "System" -@@ -3503,7 +3538,7 @@ msgstr "无效配置值: %s=%s 在 %s 中; %s" + #: 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/conf/config.py:194 - msgid "Cannot set \"{}\" to \"{}\": {}" --msgstr "无法将“{}”设置为“{}”:{}" -+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 "环境 id '%s' 没有安装。" +@@ -3586,15 +3621,20 @@ msgstr "仓库 '{}' 在配置中缺少名称,将使用 id。" + msgid "Parsing file \"{}\" failed: {}" + msgstr "解析文件 \"{}\" 失败:{}" - #: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" -@@ -3582,12 +3617,12 @@ 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" @@ -6691,16 +7111,43 @@ index 2cb372b4..19e529e7 100644 #: dnf/crypto.py:145 msgid "Verified using DNS record with DNSSEC signature." -@@ -3611,7 +3646,7 @@ msgstr "对于模块软件包 '{}' 没有可用的模块元数据,它将不能 - #: dnf/db/group.py:353 +@@ -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" -+msgstr "发生了 rpm 异常:%s" + msgstr "发生了 rpm 异常:%s" - #: dnf/db/group.py:355 +-#: dnf/db/group.py:355 ++#: dnf/db/group.py:361 msgid "No available modular metadata for modular package" -@@ -3698,10 +3733,12 @@ msgstr[0] "模块依赖问题:" + 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" @@ -6715,52 +7162,7 @@ index 2cb372b4..19e529e7 100644 #: dnf/module/__init__.py:26 msgid "Enabling different stream for '{}'." -@@ -3791,12 +3828,12 @@ 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 "" -@@ -3821,12 +3858,12 @@ 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 - msgid "No active matches for argument '{0}' in module '{1}:{2}'" --msgstr "模块 '{1}:{2}' 中的参数 '{0}' 没有已激活的匹配项目" -+msgstr "模块 '{1}:{2}' 中的参数 '{0}' 没有活动匹配项" - - #: dnf/module/module_base.py:228 - #, python-brace-format -@@ -3847,7 +3884,7 @@ 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 {}" -@@ -3855,21 +3892,20 @@ msgstr "无法匹配参数 {} 中的配置档案" - - #: dnf/module/module_base.py:348 - msgid "Upgrading module from Fail-Safe repository is not allowed" --msgstr "不允许从失效保险仓库中升级模块" -+msgstr "不允许从自动防故障仓库升级模块" - +@@ -3867,16 +3909,15 @@ msgstr "不允许从自动防故障仓库升级模块" #: dnf/module/module_base.py:422 #, python-brace-format msgid "" @@ -6769,8 +7171,8 @@ index 2cb372b4..19e529e7 100644 +"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}') " +-",但是这些流都未被启用或为默认" +"参数 '{argument}' 匹配模块 '{module}' 的 {stream_count} 流 ('{streams}') ,但" +"是这些流都未被启用或为默认" @@ -6782,42 +7184,59 @@ index 2cb372b4..19e529e7 100644 msgstr "只需要模块名。正在忽略'{}'中的无用信息" #: dnf/module/module_base.py:844 -@@ -3928,10 +3964,6 @@ msgstr "没有以下已停用插件模式的匹配项 : {}" +@@ -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" --#: dnf/repo.py:111 --msgid "Already downloaded" --msgstr "已下载" -- #. pinging mirrors, this might take a while - #: dnf/repo.py:346 +-#: dnf/repo.py:346 ++#: dnf/repo.py:347 #, python-format -@@ -3951,13 +3983,21 @@ msgstr "已添加 %s 仓库来自 %s" - #: dnf/rpm/miscutils.py:32 - #, python-format - msgid "Using rpmkeys executable at %s to verify signatures" --msgstr "使用位于 %s 的 rpmkeys 的可执行文件以验证签名" -+msgstr "使用 %s 处的 rpmkeys 可执行文件来验证签名" + msgid "determining the fastest mirror (%s hosts).. " + msgstr "正在查找最快的镜像(%s 的主机) " +@@ -3962,11 +4003,11 @@ msgstr "无法找到 rpmkeys 的可执行文件以验证签名。" - #: dnf/rpm/miscutils.py:66 - msgid "Cannot find rpmkeys executable to verify signatures." - msgstr "无法找到 rpmkeys 的可执行文件以验证签名。" - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function cannot open rpm database." + #: 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。" -+ -+#: dnf/rpm/transaction.py:135 - msgid "Errors occurred during test transaction." - msgstr "测试事务过程中出现错误。" -@@ -3965,7 +4005,8 @@ msgstr "测试事务过程中出现错误。" + #: 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" @@ -6827,50 +7246,45 @@ index 2cb372b4..19e529e7 100644 #. TRANSLATORS: This is for a single package currently being downgraded. #: dnf/transaction.py:80 -@@ -4063,8 +4104,9 @@ msgstr "在 rpm 中缺少对象键 \"{key}\"。" +@@ -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}\"." --msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的值无效。" +msgid "" +"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." -+msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的意外值。" + msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的意外值。" #: dnf/transaction_sr.py:297 - #, python-brace-format -@@ -4079,24 +4121,25 @@ msgstr "无法找到 rpm nevra \"{nevra}\"。" - #: dnf/transaction_sr.py:336 - #, python-brace-format - msgid "Package \"{na}\" is already installed for action \"{action}\"." --msgstr "已为操作 \"{action}\" 安装了软件包 \"{na}\"。" -+msgstr "操作 \"{action}\" 的软件包 \"{na}\"已安装。" - - #: 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 "软件包 nevra \"{nevra}\" 没有为操作 \"{action}\" 安装。" -+msgstr "没有为操作 \"{action}\" 安装软件包 nevra \"{nevra}\" 。" +@@ -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}\"." --msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 无效。" +msgid "" +"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." -+msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 的意外值。" + 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 -@@ -4124,8 +4167,8 @@ msgid "" + 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 "" @@ -6879,34 +7293,41 @@ index 2cb372b4..19e529e7 100644 +"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory" +"\" 或者 \"optional\"。" - #: dnf/transaction_sr.py:464 +-#: dnf/transaction_sr.py:464 ++#: dnf/transaction_sr.py:474 #, python-brace-format -@@ -4135,17 +4178,19 @@ msgstr "在 environment.groups 中缺少对象键 \"{key}\"。" - #: dnf/transaction_sr.py:542 + 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}\" 的值无效。" -+msgstr "对组 \"{group}\" 的组操作 \"{action}\" 的意外值。" + msgstr "对组 \"{group}\" 的组操作 \"{action}\" 的意外值。" - #: dnf/transaction_sr.py:547 +-#: dnf/transaction_sr.py:547 ++#: dnf/transaction_sr.py:569 #, python-brace-format msgid "Missing object key \"{key}\" in a group." --msgstr "在一个组中缺少对象键 \"{key}\"。" -+msgstr "在组中缺少对象键 \"{key}\"。" + msgstr "在组中缺少对象键 \"{key}\"。" - #: dnf/transaction_sr.py:571 +-#: dnf/transaction_sr.py:571 ++#: dnf/transaction_sr.py:595 #, python-brace-format -msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." --msgstr "环境 \"{env}\" 的环境操作 \"{action}\" 的值无效。" +msgid "" +"Unexpected value of environment action \"{action}\" for environment " +"\"{env}\"." -+msgstr "对环境 \"{env}\" 的环境操作 \"{action}\" 的意外值。" + msgstr "对环境 \"{env}\" 的环境操作 \"{action}\" 的意外值。" - #: dnf/transaction_sr.py:576 +-#: dnf/transaction_sr.py:576 ++#: dnf/transaction_sr.py:600 #, python-brace-format -@@ -4155,8 +4200,8 @@ msgstr "在环境中缺少对象键 \"{key}\"。" - #: dnf/transaction_sr.py:615 + 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" @@ -6916,19 +7337,17 @@ index 2cb372b4..19e529e7 100644 msgstr "软件包 nevra \"{nevra}\" 没有包括在事务文件中,但它被拉取到事务中。" #: dnf/util.py:417 dnf/util.py:419 -@@ -4194,7 +4239,10 @@ msgstr "失败" - #. returns for everything that evaluates to False (None, empty..) - #: dnf/util.py:633 +@@ -4207,9 +4254,6 @@ msgstr "失败" msgid "" --msgstr "<名称-未设定>" -+msgstr "" -+ -+#~ msgid "No Matches found" -+#~ msgstr "没有找到匹配的软件包" + msgstr "" - #~ msgid "" - #~ "Enable additional repositories. List option. Supports globs, can be " -@@ -4202,17 +4250,20 @@ msgstr "<名称-未设定>" +-#~ msgid "Already downloaded" +-#~ msgstr "已下载" +- + #~ msgid "No Matches found" + #~ msgstr "没有找到匹配的软件包" + +@@ -4219,17 +4263,20 @@ msgstr "" #~ msgstr "启用附加仓库。列出选项。支持通配符,可以指定多次。" #~ msgid "" @@ -6952,7 +7371,7 @@ index 2cb372b4..19e529e7 100644 #~ msgid "%s: %s check failed: %s vs %s" #~ msgstr "%s: %s 检查失败:%s vs %s" -@@ -4239,5 +4290,6 @@ msgstr "<名称-未设定>" +@@ -4256,5 +4303,6 @@ msgstr "" #~ msgstr "错误的事务 ID 或软件包" #~ msgid "" @@ -6961,5 +7380,5 @@ index 2cb372b4..19e529e7 100644 +#~ "script." #~ msgstr "显示软件包运行一个 %%pre 脚本所依赖的功能" -- -2.37.3 +2.39.2 diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec index e8765e6..ad417fa 100644 --- a/SPECS/dnf.spec +++ b/SPECS/dnf.spec @@ -8,7 +8,7 @@ %global rpm_version 4.14.0 # conflicts -%global conflicts_dnf_plugins_core_version 4.0.24-3 +%global conflicts_dnf_plugins_core_version 4.0.26 %global conflicts_dnf_plugins_extras_version 4.0.4 %global conflicts_dnfdaemon_version 0.3.19 @@ -65,20 +65,20 @@ It supports RPMs, modules and comps groups & environments. Name: dnf -Version: 4.12.0 -Release: 4%{?dist} +Version: 4.14.0 +Release: 5%{?dist} Summary: %{pkg_summary} # For a breakdown of the licensing, see PACKAGE-LICENSING License: GPLv2+ URL: https://github.com/rpm-software-management/dnf Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Patch1: 0001-Pass-whole-URL-in-relativeUrl-to-PackageTarget-for-R.patch +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 -# Upstream commit which fixes leak of libsolv's page file descriptors. -# https://github.com/rpm-software-management/dnf/commit/5ce5ed1ea08ad6e198c1c1642c4d9ea2db6eab86 -Patch0001: 0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch -Patch0002: 0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch -Patch0003: 0003-Use-installed_all-because-installed_query-is-filtere.patch -Patch0004: 0004-Update-translations-RHEL-9.1.patch BuildArch: noarch BuildRequires: cmake BuildRequires: gettext @@ -134,13 +134,12 @@ Common data and configuration files for DNF %package -n %{yum_subpackage_name} Requires: %{name} = %{version}-%{release} Summary: %{pkg_summary} -%if 0%{?fedora} -%if 0%{?fedora} >= 31 + +%if 0%{?fedora} && 0%{?fedora} < 31 +Conflicts: yum < 3.4.3-505 +%else Provides: %{name}-yum = %{version}-%{release} Obsoletes: %{name}-yum < 5 -%else -Conflicts: yum < 3.4.3-505 -%endif %endif %description -n %{yum_subpackage_name} @@ -367,6 +366,33 @@ popd %{python3_sitelib}/%{name}/automatic/ %changelog +* 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 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 + +* Mon Oct 31 2022 Nicola Sella - 4.14.0-2 +- Pass whole URL in relativeUrl to PackageTarget for RPM URL download + +* Thu Sep 22 2022 Lukas Hrazky - 4.14.0-1 +- Update to 4.14.0 +- Add doc related to --destdir and --downloadonly options (RhBug:2100811) +- Fix broken dependencies error reporting (RhBug:2088422) +- Add support for group upgrade rollback (RhBug:2016070) +- Expose plugin unload method to API (RhBug:2047251) +- Fix upgrade from file to noarch pkg (RhBug:2006018) +- Allow passing plugin parameters with dashes in names (RhBug:1980712) +- Don't include resolved advisories for obsoletes with sec. filters (RhBug:2101421) +- Add only relevant pkgs to upgrade transaction (RhBug:2097757) +- doc: Describe how gpg keys are stored for `repo_ggpcheck` (RhBug:2020678) +- bash-completion: use sqlite cache when available + * Thu Sep 15 2022 Marek Blaha - 4.12.0-4 - Update translations