From 321a78af65bf906dc4ed1c7ff097c5b7536a7ab1 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sep 27 2022 14:12:38 +0000 Subject: import dnf-4.12.0-3.el9 --- diff --git a/.dnf.metadata b/.dnf.metadata index 1976ca8..2c26a84 100644 --- a/.dnf.metadata +++ b/.dnf.metadata @@ -1 +1 @@ -cad8de377a20b5cf6668eb4c4150248bfaa1ed20 SOURCES/dnf-4.10.0.tar.gz +71cc8d130f8f7327f57e9b96a271a0f9a18e7e0e SOURCES/dnf-4.12.0.tar.gz diff --git a/.gitignore b/.gitignore index 133a3d1..6838c8a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dnf-4.10.0.tar.gz +SOURCES/dnf-4.12.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 new file mode 100644 index 0000000..2162232 --- /dev/null +++ b/SOURCES/0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch @@ -0,0 +1,317 @@ +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-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch b/SOURCES/0001-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch deleted file mode 100644 index 0d1b07a..0000000 --- a/SOURCES/0001-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 39e759ae6afb046cf6d60fb91b3ee208cb150a2f Mon Sep 17 00:00:00 2001 -From: Jaroslav Mracek -Date: Mon, 6 Sep 2021 12:40:59 +0200 -Subject: [PATCH] [doc] Improve description of multilib_policy=all (RhBug:1996681,1995630) - -https://bugzilla.redhat.com/show_bug.cgi?id=1996681 -https://bugzilla.redhat.com/show_bug.cgi?id=1995630 ---- - doc/conf_ref.rst | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst -index fa310e3..60afc86 100644 ---- a/doc/conf_ref.rst -+++ b/doc/conf_ref.rst -@@ -403,7 +403,9 @@ configuration file by your distribution to override the DNF defaults. - ``multilib_policy`` - :ref:`string ` - -- Controls how multilib packages are treated during install operations. Can either be ``"best"`` (the default) for the depsolver to prefer packages which best match the system's architecture, or ``"all"`` to install all available packages with compatible architectures. -+ Controls how multilib packages are treated during install operations. Can either be ``"best"`` (the default) for -+ the depsolver to prefer packages which best match the system's architecture, or ``"all"`` to install packages for -+ all available architectures. - - .. _obsoletes_conf_option-label: - --- -libgit2 1.1.0 - 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 new file mode 100644 index 0000000..a0cdeb8 --- /dev/null +++ b/SOURCES/0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch @@ -0,0 +1,64 @@ +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-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch b/SOURCES/0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch deleted file mode 100644 index 30c4395..0000000 --- a/SOURCES/0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9ce65d8575494887a08506583d9d4f05df404fac Mon Sep 17 00:00:00 2001 -From: Jaroslav Rohel -Date: Wed, 20 Oct 2021 09:20:03 +0200 -Subject: [PATCH] Fix: Python dnf API does not respect cacheonly (RhBug:1862970) - -`Repo` object has always been constructed with default synchronization -strategy. The configuration option `cacheonly` was ignored. DNF -application set synchronization strategy later in the `Cli` object -during processing demands. - -The fix takes into account the `cacheonly` option during the construction -of the `Repo` object. Synchronization strategy may still be overriden -during demand processing. ---- - dnf/repo.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dnf/repo.py b/dnf/repo.py -index bb42230..1822cf0 100644 ---- a/dnf/repo.py -+++ b/dnf/repo.py -@@ -434,7 +434,7 @@ class Repo(dnf.conf.RepoConf): - self._pkgdir = None - self._key_import = _NullKeyImport() - self.metadata = None # :api -- self._repo.setSyncStrategy(self.DEFAULT_SYNC) -+ self._repo.setSyncStrategy(SYNC_ONLY_CACHE if parent_conf and parent_conf.cacheonly else self.DEFAULT_SYNC) - if parent_conf: - self._repo.setSubstitutions(parent_conf.substitutions) - self._substitutions = dnf.conf.substitutions.Substitutions() --- -libgit2 1.1.0 - diff --git a/SOURCES/0003-Documentation-API-notes-for-cacheonly.patch b/SOURCES/0003-Documentation-API-notes-for-cacheonly.patch deleted file mode 100644 index 6628678..0000000 --- a/SOURCES/0003-Documentation-API-notes-for-cacheonly.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 5c598df3541c21d5c2758c42bd2eb0df8c74eddc Mon Sep 17 00:00:00 2001 -From: Jaroslav Rohel -Date: Fri, 5 Nov 2021 08:52:56 +0100 -Subject: [PATCH] Documentation: API notes for cacheonly - ---- - doc/conf_ref.rst | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst -index 60afc86..1a593a1 100644 ---- a/doc/conf_ref.rst -+++ b/doc/conf_ref.rst -@@ -137,6 +137,9 @@ configuration file by your distribution to override the DNF defaults. - If set to ``True`` DNF will run entirely from system cache, will not update - the cache and will use it even in case it is expired. Default is ``False``. - -+ API Notes: Must be set before repository objects are created. Plugins must set -+ this in the pre_config hook. Later changes are ignored. -+ - .. _check_config_file_age-label: - - ``check_config_file_age`` --- -libgit2 1.1.0 - 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 new file mode 100644 index 0000000..e5de647 --- /dev/null +++ b/SOURCES/0003-Use-installed_all-because-installed_query-is-filtere.patch @@ -0,0 +1,37 @@ +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-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch b/SOURCES/0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch deleted file mode 100644 index b5d94c9..0000000 --- a/SOURCES/0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch +++ /dev/null @@ -1,169 +0,0 @@ -From 087ad3d12ba307355dd66aba54faea97d227a3dd Mon Sep 17 00:00:00 2001 -From: zhanghaolian <65838930+iWhy98@users.noreply.github.com> -Date: Tue, 25 Jan 2022 15:41:16 +0800 -Subject: [PATCH 1/2] dnf:fix dnf mark error when history sqlite missing - ---- - dnf/cli/commands/mark.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dnf/cli/commands/mark.py b/dnf/cli/commands/mark.py -index ec16b738d..cb1f91c13 100644 ---- a/dnf/cli/commands/mark.py -+++ b/dnf/cli/commands/mark.py -@@ -89,7 +89,7 @@ class MarkCommand(commands.Command): - - old = self.base.history.last() - if old is None: -- rpmdb_version = self.sack._rpmdb_version() -+ rpmdb_version = self.base.sack._rpmdb_version() - else: - rpmdb_version = old.end_rpmdb_version - --- -2.34.1 - - -From bee5b97ad159af019deda4de0d80d0011dba4f7a Mon Sep 17 00:00:00 2001 -From: Jaroslav Rohel -Date: Fri, 28 Jan 2022 16:53:50 +0100 -Subject: [PATCH 2/2] Use rpm.TransactionSet.dbCookie() to determining if rpmdb - has changed - -DNF was using private method `hawkey.Sack._rpmdb_version()` from libdnf. -The method computes SHA1 hash from sorted list of hashes stored in -the headers of the instaled packages. And it adds prefix of the number -of installed packages to the computed hash. The result was stored -to the history database and used to detect changes in the rpm database. - -The patch uses new oficial librpm API function -`rpm.TransactionSet.dbCookie()`. This is a cleaner solution. -It is also a step to remove the `._rpmdb_version()` method from libdnf. -It is an attempt to remove SHA1 calculations from libdnf. -Troubleshooting FIPS compatibility. - -= changelog = -msg: Use rpm.TransactionSet.dbCookie() to determining if rpmdb has changed -type: bugfix -resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2043476 ---- - dnf/base.py | 6 +++--- - dnf/cli/commands/mark.py | 2 +- - dnf/cli/output.py | 2 +- - dnf/rpm/transaction.py | 16 ++++++++++++++++ - tests/test_sack.py | 6 ------ - 5 files changed, 21 insertions(+), 11 deletions(-) - -diff --git a/dnf/base.py b/dnf/base.py -index b0a536f7f..574e80f66 100644 ---- a/dnf/base.py -+++ b/dnf/base.py -@@ -907,7 +907,7 @@ class Base(object): - cmdline = ' '.join(self.cmds) - old = self.history.last() - if old is None: -- rpmdb_version = self.sack._rpmdb_version() -+ rpmdb_version = self._ts.dbCookie() - else: - rpmdb_version = old.end_rpmdb_version - -@@ -1046,7 +1046,7 @@ class Base(object): - using_pkgs_pats = list(self.conf.history_record_packages) - installed_query = self.sack.query().installed() - using_pkgs = installed_query.filter(name=using_pkgs_pats).run() -- rpmdbv = self.sack._rpmdb_version() -+ rpmdbv = self._ts.dbCookie() - lastdbv = self.history.last() - if lastdbv is not None: - lastdbv = lastdbv.end_rpmdb_version -@@ -1163,7 +1163,7 @@ class Base(object): - for tsi in transaction_items: - count = display_banner(tsi.pkg, count) - -- rpmdbv = rpmdb_sack._rpmdb_version() -+ rpmdbv = self._ts.dbCookie() - self.history.end(rpmdbv) - - timer() -diff --git a/dnf/cli/commands/mark.py b/dnf/cli/commands/mark.py -index cb1f91c13..36bf9d436 100644 ---- a/dnf/cli/commands/mark.py -+++ b/dnf/cli/commands/mark.py -@@ -89,7 +89,7 @@ class MarkCommand(commands.Command): - - old = self.base.history.last() - if old is None: -- rpmdb_version = self.base.sack._rpmdb_version() -+ rpmdb_version = self.base._ts.dbCookie() - else: - rpmdb_version = old.end_rpmdb_version - -diff --git a/dnf/cli/output.py b/dnf/cli/output.py -index a4e9f6c8e..ecf05c2b0 100644 ---- a/dnf/cli/output.py -+++ b/dnf/cli/output.py -@@ -1607,7 +1607,7 @@ Transaction Summary - if lastdbv is not None and trans.tid == lasttid: - # If this is the last transaction, is good and it doesn't - # match the current rpmdb ... then mark it as bad. -- rpmdbv = self.sack._rpmdb_version() -+ rpmdbv = self.base._ts.dbCookie() - trans.compare_rpmdbv(str(rpmdbv)) - lastdbv = None - -diff --git a/dnf/rpm/transaction.py b/dnf/rpm/transaction.py -index bcc2a7024..a11f36e7e 100644 ---- a/dnf/rpm/transaction.py -+++ b/dnf/rpm/transaction.py -@@ -12,8 +12,10 @@ - from __future__ import absolute_import - from __future__ import unicode_literals - from dnf.i18n import _ -+import logging - import rpm - -+_logger = logging.getLogger('dnf') - read_ts = None - ts = None - -@@ -61,6 +63,20 @@ class TransactionWrapper(object): - mi.pattern(tag, tp, pat) - return mi - -+ def dbCookie(self): -+ # dbCookie() does not support lazy opening of rpm database. -+ # The following line opens the database if it is not already open. -+ if self.ts.openDB() != 0: -+ _logger.error(_('The openDB() function connot open rpm database.')) -+ return '' -+ -+ cookie = self.ts.dbCookie() -+ if not cookie: -+ _logger.error(_('The dbCookie() function did not return cookie of rpm database.')) -+ return '' -+ -+ return cookie -+ - def __getattr__(self, attr): - if attr in self._methods: - return self.getMethod(attr) -diff --git a/tests/test_sack.py b/tests/test_sack.py -index 49a715924..2c6fe8e01 100644 ---- a/tests/test_sack.py -+++ b/tests/test_sack.py -@@ -32,12 +32,6 @@ class SackTest(tests.support.DnfBaseTestCase): - - REPOS = [] - -- def test_rpmdb_version(self): -- version = self.sack._rpmdb_version() -- self.assertIsNotNone(version) -- expected = "%s:%s" % (tests.support.TOTAL_RPMDB_COUNT, tests.support.RPMDB_CHECKSUM) -- self.assertEqual(version, expected) -- - def test_excludepkgs(self): - self.base.conf.excludepkgs = ['pepper'] - self.base._setup_excludes_includes() --- -2.34.1 - diff --git a/SOURCES/0005-Update-translations-RhBug-2017347.patch b/SOURCES/0005-Update-translations-RhBug-2017347.patch deleted file mode 100644 index e071bf5..0000000 --- a/SOURCES/0005-Update-translations-RhBug-2017347.patch +++ /dev/null @@ -1,7726 +0,0 @@ -From 8b7fb547e6938b91e5e158cfe21813bc59eff704 Mon Sep 17 00:00:00 2001 -From: Marek Blaha -Date: Mon, 21 Mar 2022 10:28:46 +0100 -Subject: [PATCH] Update translations (RhBug:2017347) - ---- - po/dnf.pot | 204 +++++++------ - po/fr.po | 513 ++++++++++++++++--------------- - po/ja.po | 867 ++++++++++++++++++++++++++++++---------------------- - po/ko.po | 590 ++++++++++++++++++++--------------- - po/zh_CN.po | 449 +++++++++++++++------------ - po/zh_TW.po | 358 ++++++++++++---------- - 6 files changed, 1669 insertions(+), 1312 deletions(-) - -diff --git a/po/dnf.pot b/po/dnf.pot -index d7612013..8d98a664 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: 2021-06-13 09:18-0400\n" -+"POT-Creation-Date: 2022-02-28 11:37+0100\n" - "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" - "Last-Translator: FULL NAME \n" - "Language-Team: LANGUAGE \n" -@@ -191,155 +191,155 @@ msgstr "" - msgid "Failed to add groups file for repository: %s - %s" - msgstr "" - --#: dnf/base.py:904 -+#: dnf/base.py:922 - msgid "Running transaction check" - msgstr "" - --#: dnf/base.py:912 -+#: dnf/base.py:930 - msgid "Error: transaction check vs depsolve:" - msgstr "" - --#: dnf/base.py:918 -+#: dnf/base.py:936 - msgid "Transaction check succeeded." - msgstr "" - --#: dnf/base.py:921 -+#: dnf/base.py:939 - msgid "Running transaction test" - msgstr "" - --#: dnf/base.py:931 dnf/base.py:1082 -+#: dnf/base.py:949 dnf/base.py:1100 - msgid "RPM: {}" - msgstr "" - --#: dnf/base.py:932 -+#: dnf/base.py:950 - msgid "Transaction test error:" - msgstr "" - --#: dnf/base.py:943 -+#: dnf/base.py:961 - msgid "Transaction test succeeded." - msgstr "" - --#: dnf/base.py:964 -+#: dnf/base.py:982 - msgid "Running transaction" - msgstr "" - --#: dnf/base.py:1001 -+#: dnf/base.py:1019 - msgid "Disk Requirements:" - msgstr "" - --#: dnf/base.py:1004 -+#: dnf/base.py:1022 - #, 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:1011 -+#: dnf/base.py:1029 - msgid "Error Summary" - msgstr "" - --#: dnf/base.py:1037 -+#: dnf/base.py:1055 - #, python-brace-format - msgid "RPMDB altered outside of {prog}." - msgstr "" - --#: dnf/base.py:1083 dnf/base.py:1091 -+#: dnf/base.py:1101 dnf/base.py:1109 - msgid "Could not run transaction." - msgstr "" - --#: dnf/base.py:1086 -+#: dnf/base.py:1104 - msgid "Transaction couldn't start:" - msgstr "" - --#: dnf/base.py:1100 -+#: dnf/base.py:1118 - #, python-format - msgid "Failed to remove transaction file %s" - msgstr "" - --#: dnf/base.py:1182 -+#: dnf/base.py:1200 - msgid "Some packages were not downloaded. Retrying." - msgstr "" - --#: dnf/base.py:1212 -+#: dnf/base.py:1230 - #, python-format - msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" - msgstr "" - --#: dnf/base.py:1216 -+#: dnf/base.py:1234 - #, python-format - msgid "" - "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" - msgstr "" - --#: dnf/base.py:1258 -+#: dnf/base.py:1276 - msgid "Cannot add local packages, because transaction job already exists" - msgstr "" - --#: dnf/base.py:1272 -+#: dnf/base.py:1290 - msgid "Could not open: {}" - msgstr "" - --#: dnf/base.py:1310 -+#: dnf/base.py:1328 - #, python-format - msgid "Public key for %s is not installed" - msgstr "" - --#: dnf/base.py:1314 -+#: dnf/base.py:1332 - #, python-format - msgid "Problem opening package %s" - msgstr "" - --#: dnf/base.py:1322 -+#: dnf/base.py:1340 - #, python-format - msgid "Public key for %s is not trusted" - msgstr "" - --#: dnf/base.py:1326 -+#: dnf/base.py:1344 - #, python-format - msgid "Package %s is not signed" - msgstr "" - --#: dnf/base.py:1356 -+#: dnf/base.py:1374 - #, python-format - msgid "Cannot remove %s" - msgstr "" - --#: dnf/base.py:1360 -+#: dnf/base.py:1378 - #, python-format - msgid "%s removed" - msgstr "" - --#: dnf/base.py:1640 -+#: dnf/base.py:1658 - msgid "No match for group package \"{}\"" - msgstr "" - --#: dnf/base.py:1726 -+#: dnf/base.py:1740 - #, python-format - msgid "Adding packages from group '%s': %s" - msgstr "" - --#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1763 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:1767 -+#: dnf/base.py:1781 - msgid "No groups marked for removal." - msgstr "" - --#: dnf/base.py:1801 -+#: dnf/base.py:1815 - msgid "No group marked for upgrade." - msgstr "" - --#: dnf/base.py:2015 -+#: dnf/base.py:2029 - #, python-format - msgid "Package %s not installed, cannot downgrade it." - msgstr "" - --#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 --#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 -+#: 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/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 - #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 - #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 -@@ -349,127 +349,127 @@ msgstr "" - msgid "No match for argument: %s" - msgstr "" - --#: dnf/base.py:2024 -+#: dnf/base.py:2038 - #, python-format - msgid "Package %s of lower version already installed, cannot downgrade it." - msgstr "" - --#: dnf/base.py:2047 -+#: dnf/base.py:2061 - #, python-format - msgid "Package %s not installed, cannot reinstall it." - msgstr "" - --#: dnf/base.py:2062 -+#: dnf/base.py:2076 - #, python-format - msgid "File %s is a source package and cannot be updated, ignoring." - msgstr "" - --#: dnf/base.py:2073 -+#: dnf/base.py:2087 - #, python-format - msgid "Package %s not installed, cannot update it." - msgstr "" - --#: dnf/base.py:2083 -+#: dnf/base.py:2097 - #, python-format - msgid "" - "The same or higher version of %s is already installed, cannot update it." - msgstr "" - --#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 - #, python-format - msgid "Package %s available, but not installed." - msgstr "" - --#: dnf/base.py:2132 -+#: dnf/base.py:2146 - #, python-format - msgid "Package %s available, but installed for different architecture." - msgstr "" - --#: dnf/base.py:2157 -+#: dnf/base.py:2171 - #, python-format - msgid "No package %s installed." - msgstr "" - --#: dnf/base.py:2175 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2189 dnf/cli/commands/install.py:136 - #: dnf/cli/commands/remove.py:133 - #, python-format - msgid "Not a valid form: %s" - msgstr "" - --#: dnf/base.py:2190 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 - #: dnf/cli/commands/remove.py:162 - msgid "No packages marked for removal." - msgstr "" - --#: dnf/base.py:2278 dnf/cli/cli.py:428 -+#: dnf/base.py:2292 dnf/cli/cli.py:428 - #, python-format - msgid "Packages for argument %s available, but not installed." - msgstr "" - --#: dnf/base.py:2283 -+#: dnf/base.py:2297 - #, python-format - msgid "Package %s of lowest version already installed, cannot downgrade it." - msgstr "" - --#: dnf/base.py:2383 -+#: dnf/base.py:2397 - msgid "No security updates needed, but {} update available" - msgstr "" - --#: dnf/base.py:2385 -+#: dnf/base.py:2399 - msgid "No security updates needed, but {} updates available" - msgstr "" - --#: dnf/base.py:2389 -+#: dnf/base.py:2403 - msgid "No security updates needed for \"{}\", but {} update available" - msgstr "" - --#: dnf/base.py:2391 -+#: dnf/base.py:2405 - msgid "No security updates needed for \"{}\", but {} updates available" - msgstr "" - - #. raise an exception, because po.repoid is not in self.repos --#: dnf/base.py:2412 -+#: dnf/base.py:2426 - #, python-format - msgid "Unable to retrieve a key for a commandline package: %s" - msgstr "" - --#: dnf/base.py:2420 -+#: dnf/base.py:2434 - #, python-format - msgid ". Failing package is: %s" - msgstr "" - --#: dnf/base.py:2421 -+#: dnf/base.py:2435 - #, python-format - msgid "GPG Keys are configured as: %s" - msgstr "" - --#: dnf/base.py:2433 -+#: dnf/base.py:2447 - #, python-format - msgid "GPG key at %s (0x%s) is already installed" - msgstr "" - --#: dnf/base.py:2469 -+#: dnf/base.py:2483 - msgid "The key has been approved." - msgstr "" - --#: dnf/base.py:2472 -+#: dnf/base.py:2486 - msgid "The key has been rejected." - msgstr "" - --#: dnf/base.py:2505 -+#: dnf/base.py:2519 - #, python-format - msgid "Key import failed (code %d)" - msgstr "" - --#: dnf/base.py:2507 -+#: dnf/base.py:2521 - msgid "Key imported successfully" - msgstr "" - --#: dnf/base.py:2511 -+#: dnf/base.py:2525 - msgid "Didn't install any keys" - msgstr "" - --#: dnf/base.py:2514 -+#: dnf/base.py:2528 - #, python-format - msgid "" - "The GPG keys listed for the \"%s\" repository are already installed but they " -@@ -477,49 +477,49 @@ msgid "" - "Check that the correct key URLs are configured for this repository." - msgstr "" - --#: dnf/base.py:2525 -+#: dnf/base.py:2539 - msgid "Import of key(s) didn't help, wrong key(s)?" - msgstr "" - --#: dnf/base.py:2578 -+#: dnf/base.py:2592 - msgid " * Maybe you meant: {}" - msgstr "" - --#: dnf/base.py:2610 -+#: dnf/base.py:2624 - msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" - msgstr "" - --#: dnf/base.py:2613 -+#: dnf/base.py:2627 - msgid "Some packages from local repository have incorrect checksum" - msgstr "" - --#: dnf/base.py:2616 -+#: dnf/base.py:2630 - msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" - msgstr "" - --#: dnf/base.py:2619 -+#: dnf/base.py:2633 - msgid "" - "Some packages have invalid cache, but cannot be downloaded due to \"--" - "cacheonly\" option" - msgstr "" - --#: dnf/base.py:2637 dnf/base.py:2657 -+#: dnf/base.py:2651 dnf/base.py:2671 - msgid "No match for argument" - msgstr "" - --#: dnf/base.py:2645 dnf/base.py:2665 -+#: dnf/base.py:2659 dnf/base.py:2679 - msgid "All matches were filtered out by exclude filtering for argument" - msgstr "" - --#: dnf/base.py:2647 -+#: dnf/base.py:2661 - msgid "All matches were filtered out by modular filtering for argument" - msgstr "" - --#: dnf/base.py:2663 -+#: dnf/base.py:2677 - msgid "All matches were installed from a different repository for argument" - msgstr "" - --#: dnf/base.py:2710 -+#: dnf/base.py:2724 - #, python-format - msgid "Package %s is already installed." - msgstr "" -@@ -529,7 +529,7 @@ msgstr "" - msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" - msgstr "" - --#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 -+#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 - #, python-format - msgid "Parsing file \"%s\" failed: %s" - msgstr "" -@@ -3354,10 +3354,6 @@ msgstr "" - msgid " State : %s" - msgstr "" - --#: dnf/comps.py:104 --msgid "skipping." --msgstr "" -- - #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 - #, python-format - msgid "Module or Group '%s' is not installed." -@@ -3408,41 +3404,45 @@ msgstr "" - msgid "Invalid configuration value: %s=%s in %s; %s" - msgstr "" - --#: dnf/conf/config.py:226 -+#: dnf/conf/config.py:194 -+msgid "Cannot set \"{}\" to \"{}\": {}" -+msgstr "" -+ -+#: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" - msgstr "" - --#: dnf/conf/config.py:275 -+#: dnf/conf/config.py:293 - msgid "" - "Configuration file URL \"{}\" could not be downloaded:\n" - " {}" - msgstr "" - --#: dnf/conf/config.py:355 dnf/conf/config.py:391 -+#: dnf/conf/config.py:373 dnf/conf/config.py:409 - #, python-format - msgid "Unknown configuration option: %s = %s" - msgstr "" - --#: dnf/conf/config.py:372 -+#: dnf/conf/config.py:390 - #, python-format - msgid "Error parsing --setopt with key '%s', value '%s': %s" - msgstr "" - --#: dnf/conf/config.py:380 -+#: dnf/conf/config.py:398 - #, python-format - msgid "Main config did not have a %s attr. before setopt" - msgstr "" - --#: dnf/conf/config.py:427 dnf/conf/config.py:445 -+#: dnf/conf/config.py:445 dnf/conf/config.py:463 - msgid "Incorrect or unknown \"{}\": {}" - msgstr "" - --#: dnf/conf/config.py:501 -+#: dnf/conf/config.py:519 - #, python-format - msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" - msgstr "" - --#: dnf/conf/config.py:504 -+#: dnf/conf/config.py:522 - #, python-format - msgid "Repo %s did not have a %s attr. before setopt" - msgstr "" -@@ -3523,32 +3523,32 @@ msgstr "" - msgid "Will not install a source rpm package (%s)." - msgstr "" - --#: dnf/dnssec.py:168 -+#: dnf/dnssec.py:171 - msgid "" - "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" - msgstr "" - --#: dnf/dnssec.py:239 -+#: dnf/dnssec.py:243 - msgid "DNSSEC extension: Key for user " - msgstr "" - --#: dnf/dnssec.py:241 -+#: dnf/dnssec.py:245 - msgid "is valid." - msgstr "" - --#: dnf/dnssec.py:243 -+#: dnf/dnssec.py:247 - msgid "has unknown status." - msgstr "" - --#: dnf/dnssec.py:251 -+#: dnf/dnssec.py:255 - msgid "DNSSEC extension: " - msgstr "" - --#: dnf/dnssec.py:283 -+#: dnf/dnssec.py:287 - msgid "Testing already imported keys for their validity." - msgstr "" - --#: dnf/drpm.py:62 dnf/repo.py:268 -+#: dnf/drpm.py:62 dnf/repo.py:267 - #, python-format - msgid "unsupported checksum type: %s" - msgstr "" -@@ -3591,7 +3591,7 @@ msgid_plural "Modular dependency problems with Defaults:" - msgstr[0] "" - msgstr[1] "" - --#: dnf/exceptions.py:131 dnf/module/module_base.py:854 -+#: dnf/exceptions.py:131 dnf/module/module_base.py:857 - msgid "Modular dependency problem:" - msgid_plural "Modular dependency problems:" - msgstr[0] "" -@@ -3680,7 +3680,7 @@ msgid "" - msgstr "" - - #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 --#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 -+#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 - msgid "Ignoring unnecessary profile: '{}/{}'" - msgstr "" - -@@ -3736,7 +3736,7 @@ msgstr "" - #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 - #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 - #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 --#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 -+#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 - msgid "Unable to resolve argument {}" - msgstr "" - -@@ -3765,7 +3765,7 @@ msgid "" - "Only module name is required. Ignoring unneeded information in argument: '{}'" - msgstr "" - --#: dnf/module/module_base.py:841 -+#: dnf/module/module_base.py:844 - msgid "No match for package {}" - msgstr "" - -@@ -3826,7 +3826,7 @@ msgid "Already downloaded" - msgstr "" - - #. pinging mirrors, this might take a while --#: dnf/repo.py:347 -+#: dnf/repo.py:346 - #, python-format - msgid "determining the fastest mirror (%s hosts).. " - msgstr "" -@@ -3850,7 +3850,15 @@ msgstr "" - msgid "Cannot find rpmkeys executable to verify signatures." - msgstr "" - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function connot 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." - msgstr "" - -diff --git a/po/fr.po b/po/fr.po -index 15841a45..a1a64a39 100644 ---- a/po/fr.po -+++ b/po/fr.po -@@ -9,32 +9,34 @@ - # dominique bribanick , 2011 - # Jérôme Fenal , 2014 - # Kévin Raymond , 2011 --# Jean-Baptiste Holcroft , 2016. #zanata, 2020, 2021. -+# Jean-Baptiste Holcroft , 2016. #zanata, 2020. - # José Fournier , 2016. #zanata --# Jean-Baptiste Holcroft , 2017. #zanata, 2020, 2021. -+# Jean-Baptiste Holcroft , 2017. #zanata, 2020. - # José Fournier , 2017. #zanata - # Jérôme Fenal , 2017. #zanata --# Jean-Baptiste Holcroft , 2018. #zanata, 2020, 2021. -+# Jean-Baptiste Holcroft , 2018. #zanata, 2020. - # Ludek Janda , 2018. #zanata --# Jean-Baptiste Holcroft , 2019. #zanata, 2020, 2021. -+# Jean-Baptiste Holcroft , 2019. #zanata, 2020. - # Julien Humbert , 2020, 2021. --# Karim ALI ABDELMAKSOU ABDELHAMID , 2020. --# Arnaud T. , 2020, 2021. -+# Sundeep Anand , 2021. - # Guillaume Jacob , 2021. -+# Titouan Bénard , 2021. -+# Transtats , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2021-06-13 09:18-0400\n" --"PO-Revision-Date: 2021-05-17 03:02+0000\n" --"Last-Translator: Julien Humbert \n" --"Language-Team: French \n" -+"POT-Creation-Date: 2022-02-28 11:37+0100\n" -+"PO-Revision-Date: 2022-03-09 12:39+0000\n" -+"Last-Translator: Transtats \n" -+"Language-Team: French \n" - "Language: fr\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=2; plural=n > 1;\n" --"X-Generator: Weblate 4.6.2\n" -+"X-Generator: Weblate 4.11.2\n" - - #: dnf/automatic/emitter.py:32 - #, python-format -@@ -97,7 +99,7 @@ msgstr "La vérification GPG a ÉCHOUÉ" - - #: dnf/automatic/main.py:274 - msgid "Waiting for internet connection..." --msgstr "En attente d'une connexion Internet…" -+msgstr "En attente d'une connexion Internet..." - - #: dnf/automatic/main.py:304 - msgid "Started dnf-automatic." -@@ -193,8 +195,8 @@ msgstr "Dépôts ignorés : %s" - #, python-format - msgid "Last metadata expiration check: %s ago on %s." - msgstr "" --"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le" --" %s." -+"Dernière vérification de l’expiration des métadonnées effectuée il y a %s le " -+"%s." - - #: dnf/base.py:512 - msgid "" -@@ -219,44 +221,44 @@ msgstr "tsflag invalide dans le fichier de configuration : %s" - 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:904 -+#: dnf/base.py:922 - msgid "Running transaction check" - msgstr "Test de la transaction" - --#: dnf/base.py:912 -+#: dnf/base.py:930 - msgid "Error: transaction check vs depsolve:" - msgstr "" - "Erreur : vérification de transaction contre résolution des dépendances :" - --#: dnf/base.py:918 -+#: dnf/base.py:936 - msgid "Transaction check succeeded." - msgstr "La vérification de la transaction a réussi." - --#: dnf/base.py:921 -+#: dnf/base.py:939 - msgid "Running transaction test" - msgstr "Lancement de la transaction de test" - --#: dnf/base.py:931 dnf/base.py:1082 -+#: dnf/base.py:949 dnf/base.py:1100 - msgid "RPM: {}" - msgstr "RPM : {}" - --#: dnf/base.py:932 -+#: dnf/base.py:950 - msgid "Transaction test error:" - msgstr "Erreur de la transaction de test :" - --#: dnf/base.py:943 -+#: dnf/base.py:961 - msgid "Transaction test succeeded." - msgstr "Transaction de test réussie." - --#: dnf/base.py:964 -+#: dnf/base.py:982 - msgid "Running transaction" - msgstr "Exécution de la transaction" - --#: dnf/base.py:1001 -+#: dnf/base.py:1019 - msgid "Disk Requirements:" - msgstr "Besoins en espace disque :" - --#: dnf/base.py:1004 -+#: dnf/base.py:1022 - #, 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." -@@ -264,125 +266,121 @@ msgstr[0] "" - "Au moins {0} Mio supplémentaire est nécessaire sur le système de fichiers " - "{1}." - msgstr[1] "" --"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers" --" {1}." -+"Au moins {0} Mio supplémentaires sont nécessaires sur le système de fichiers " -+"{1}." - --#: dnf/base.py:1011 -+#: dnf/base.py:1029 - msgid "Error Summary" - msgstr "Résumé des erreurs" - --#: dnf/base.py:1037 -+#: dnf/base.py:1055 - #, python-brace-format - msgid "RPMDB altered outside of {prog}." - msgstr "RPMDB modifié en dehors de {prog}." - --#: dnf/base.py:1083 dnf/base.py:1091 -+#: dnf/base.py:1101 dnf/base.py:1109 - msgid "Could not run transaction." - msgstr "Impossible d’exécuter la transaction." - --#: dnf/base.py:1086 -+#: dnf/base.py:1104 - msgid "Transaction couldn't start:" - msgstr "La transaction n’a pas pu démarrer :" - --#: dnf/base.py:1100 -+#: dnf/base.py:1118 - #, python-format - msgid "Failed to remove transaction file %s" - msgstr "Échec de la suppression du fichier de transaction %s" - --#: dnf/base.py:1182 -+#: dnf/base.py:1200 - msgid "Some packages were not downloaded. Retrying." - msgstr "Certains paquets n’ont pas été téléchargés. Nouvel essai." - --#: dnf/base.py:1212 --#, fuzzy, python-format --#| msgid "" --#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" -+#: dnf/base.py:1230 -+#, 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 " --"(%d.1%% économisés)" -+"Les RPM Delta ont réduit les mises à jour de %.1f Mo à %.1f Mo (%.1f%% " -+"économisé)" - --#: dnf/base.py:1216 --#, fuzzy, python-format --#| msgid "" --#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" -+#: dnf/base.py:1234 -+#, python-format - msgid "" - "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" - msgstr "" --"Les Delta RPMs en échec ont fait augmenter la taille des mises à jour de " --"%.1f Mio à %.1f Mio (%d.1%% gaspillés)" -+"Les échecs des RPM Delta ont augmenté les mises à jour de %.1f Mo à %.1f Mo (" -+"%.1f%% gaspillés)" - --#: dnf/base.py:1258 -+#: dnf/base.py:1276 - 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:1272 -+#: dnf/base.py:1290 - msgid "Could not open: {}" - msgstr "Impossible d’ouvrir : {}" - --#: dnf/base.py:1310 -+#: dnf/base.py:1328 - #, python-format - msgid "Public key for %s is not installed" - msgstr "La clé publique pour %s n’est pas installée" - --#: dnf/base.py:1314 -+#: dnf/base.py:1332 - #, python-format - msgid "Problem opening package %s" - msgstr "Problème à l’ouverture du paquet %s" - --#: dnf/base.py:1322 -+#: dnf/base.py:1340 - #, python-format - msgid "Public key for %s is not trusted" - msgstr "La clé publique pour %s n’est pas de confiance" - --#: dnf/base.py:1326 -+#: dnf/base.py:1344 - #, python-format - msgid "Package %s is not signed" - msgstr "Le paquet %s n’est pas signé" - --#: dnf/base.py:1356 -+#: dnf/base.py:1374 - #, python-format - msgid "Cannot remove %s" - msgstr "Impossible de supprimer %s" - --#: dnf/base.py:1360 -+#: dnf/base.py:1378 - #, python-format - msgid "%s removed" - msgstr "%s supprimé" - --#: dnf/base.py:1640 -+#: dnf/base.py:1658 - msgid "No match for group package \"{}\"" - msgstr "Aucune correspondance pour le paquet du groupe « {} »" - --#: dnf/base.py:1726 -+#: dnf/base.py:1740 - #, python-format - msgid "Adding packages from group '%s': %s" - msgstr "Ajout de paquets en provenance du groupe « %s » : %s" - --#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1763 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:1767 -+#: dnf/base.py:1781 - msgid "No groups marked for removal." - msgstr "Aucun groupe marqué pour suppression." - --#: dnf/base.py:1801 -+#: dnf/base.py:1815 - msgid "No group marked for upgrade." - msgstr "Aucun groupe marqué pour mise à jour." - --#: dnf/base.py:2015 -+#: dnf/base.py:2029 - #, 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:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 --#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 -+#: 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/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 -@@ -392,30 +390,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:2024 -+#: dnf/base.py:2038 - #, python-format - msgid "Package %s of lower version already installed, cannot downgrade it." - msgstr "" --"Le paquet %s est déjà installé dans une version inférieure, impossible de le" --" rétrograder." -+"Le paquet %s est déjà installé dans une version inférieure, impossible de le " -+"rétrograder." - --#: dnf/base.py:2047 -+#: dnf/base.py:2061 - #, 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:2062 -+#: dnf/base.py:2076 - #, 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:2073 -+#: dnf/base.py:2087 - #, 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:2083 -+#: dnf/base.py:2097 - #, python-format - msgid "" - "The same or higher version of %s is already installed, cannot update it." -@@ -423,173 +421,176 @@ msgstr "" - "La même une ou version supérieure de %s est déjà installée, mise à jour " - "impossible." - --#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2140 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:2132 -+#: dnf/base.py:2146 - #, 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:2157 -+#: dnf/base.py:2171 - #, python-format - msgid "No package %s installed." - msgstr "Aucun paquet %s installé." - --#: dnf/base.py:2175 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2189 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:2190 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2204 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:2278 dnf/cli/cli.py:428 -+#: dnf/base.py:2292 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:2283 -+#: dnf/base.py:2297 - #, 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:2383 -+#: dnf/base.py:2397 - 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:2385 -+#: dnf/base.py:2399 - 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:2389 -+#: dnf/base.py:2403 - 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:2391 -+#: dnf/base.py:2405 - 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:2412 -+#: dnf/base.py:2426 - #, 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:2420 -+#: dnf/base.py:2434 - #, python-format - msgid ". Failing package is: %s" - msgstr ". Le paquet en erreur est : %s" - --#: dnf/base.py:2421 -+#: dnf/base.py:2435 - #, python-format - msgid "GPG Keys are configured as: %s" - msgstr "Les clés GPG sont configurées comme : %s" - --#: dnf/base.py:2433 -+#: dnf/base.py:2447 - #, 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:2469 -+#: dnf/base.py:2483 - msgid "The key has been approved." - msgstr "La clef a été approuvée." - --#: dnf/base.py:2472 -+#: dnf/base.py:2486 - msgid "The key has been rejected." - msgstr "La clef a été rejetée." - --#: dnf/base.py:2505 -+#: dnf/base.py:2519 - #, python-format - msgid "Key import failed (code %d)" - msgstr "L’import de la clé a échoué (code %d)" - --#: dnf/base.py:2507 -+#: dnf/base.py:2521 - msgid "Key imported successfully" - msgstr "La clé a bien été importée" - --#: dnf/base.py:2511 -+#: dnf/base.py:2525 - msgid "Didn't install any keys" - msgstr "Toutes les clés n’ont pas été installées" - --#: dnf/base.py:2514 -+#: dnf/base.py:2528 - #, python-format - msgid "" --"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" -+"The GPG keys listed for the \"%s\" repository are already installed but they " -+"are not correct for this package.\n" - "Check that the correct key URLs are configured for this repository." - msgstr "" --"Les clés GPG listées pour le dépôt « %s » sont déjà installées mais sont incorrectes pour ce paquet.\n" -+"Les clés GPG listées pour le dépôt « %s » sont déjà installées mais sont " -+"incorrectes pour ce paquet.\n" - "Vérifiez que les URL des clés pour ce dépôt soient correctes." - --#: dnf/base.py:2525 -+#: dnf/base.py:2539 - 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:2578 -+#: dnf/base.py:2592 - msgid " * Maybe you meant: {}" - msgstr " * Peut-être vouliez-vous dire : {}" - --#: dnf/base.py:2610 -+#: dnf/base.py:2624 - 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:2613 -+#: dnf/base.py:2627 - 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:2616 -+#: dnf/base.py:2630 - msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" - msgstr "Le paquet \"{}\" du dépôt \"{}\" a une somme de contrôle incorrecte" - --#: dnf/base.py:2619 -+#: dnf/base.py:2633 - msgid "" - "Some packages have invalid cache, but cannot be downloaded due to \"--" - "cacheonly\" option" - msgstr "" --"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés" --" à cause de l’option « --cacheonly »" -+"Certains paquets ont un cache invalide, mais ne peuvent pas être téléchargés " -+"à cause de l’option « --cacheonly »" - --#: dnf/base.py:2637 dnf/base.py:2657 -+#: dnf/base.py:2651 dnf/base.py:2671 - msgid "No match for argument" - msgstr "Aucune correspondance pour le paramètre" - --#: dnf/base.py:2645 dnf/base.py:2665 -+#: dnf/base.py:2659 dnf/base.py:2679 - 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:2647 -+#: dnf/base.py:2661 - 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:2663 -+#: dnf/base.py:2677 - 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:2710 -+#: dnf/base.py:2724 - #, python-format - msgid "Package %s is already installed." - msgstr "Le paquet %s est déjà installé." -@@ -600,7 +601,7 @@ msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" - msgstr "" - "Valeur inattendue de la variable d’environnement : DNF_DISABLE_ALIASES=%s" - --#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 -+#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 - #, python-format - msgid "Parsing file \"%s\" failed: %s" - msgstr "La lecture du fichier « %s » a échoué : %s" -@@ -641,17 +642,25 @@ msgid "" - "The operation would result in switching of module '{0}' stream '{1}' to " - "stream '{2}'" - msgstr "" --"Le résulta de l’opération sera le basculement du flux« {1} » du module « {0}" --" » vers le flux« {2} »" -+"Le résulta de l’opération sera le basculement du flux« {1} » du module « {0} " -+"» vers le flux« {2} »" - - #: dnf/cli/cli.py:173 - #, python-brace-format - msgid "" --"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" --"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." --msgstr "" --"Il n’est pas possible de basculer les flux actifs d’un module sauf si cela est explicitement activé par l’option de configuration module_stream_switch.\n" --"Il est plutôt recommandé de retirer tout contenu installé par le module, et de réinitialiser le mode en utilisant la commande « {prog} module reset ». Après la réinitialisation, vous pouvez installer les autres flux." -+"It is not possible to switch enabled streams of a module unless explicitly " -+"enabled via configuration option module_stream_switch.\n" -+"It is recommended to rather remove all installed content from the module, " -+"and reset the module using '{prog} module reset ' command. " -+"After you reset the module, you can install the other stream." -+msgstr "" -+"Il n’est pas possible de basculer les flux actifs d’un module sauf si cela " -+"est explicitement activé par l’option de configuration " -+"module_stream_switch.\n" -+"Il est plutôt recommandé de retirer tout contenu installé par le module, et " -+"de réinitialiser le mode en utilisant la commande « {prog} module reset " -+" ». Après la réinitialisation, vous pouvez installer les " -+"autres flux." - - #: dnf/cli/cli.py:212 - #, python-brace-format -@@ -688,7 +697,8 @@ msgid "" - "Refusing to automatically import keys when running unattended.\n" - "Use \"-y\" to override." - msgstr "" --"Refus de l’importation automatique des clés lors d’une exécution sans surveillance.\n" -+"Refus de l’importation automatique des clés lors d’une exécution sans " -+"surveillance.\n" - "Utilisez l’option « -y » pour passer outre." - - #: dnf/cli/cli.py:337 -@@ -756,8 +766,8 @@ msgstr "Aucun dépôt ne correspond à %s" - - #: dnf/cli/cli.py:719 - msgid "" --"This command has to be run with superuser privileges (under the root user on" --" most systems)." -+"This command has to be run with superuser privileges (under the root user on " -+"most systems)." - msgstr "" - "Cette commande doit être exécutée avec les privilèges super-utilisateur " - "(sous l’utilisateur root sur la plupart des systèmes)." -@@ -790,8 +800,8 @@ msgid "" - "--destdir or --downloaddir must be used with --downloadonly or download or " - "system-upgrade command." - msgstr "" --"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly" --" ou download ou system-upgrade command." -+"--destdir ou --downloaddir doit être utilisé avec la commande --downloadonly " -+"ou download ou system-upgrade command." - - #: dnf/cli/cli.py:820 - msgid "" -@@ -863,7 +873,8 @@ msgstr "" - #, python-brace-format - msgid "" - "You have enabled checking of packages via GPG keys. This is a good thing.\n" --"However, you do not have any GPG public keys installed. You need to download\n" -+"However, you do not have any GPG public keys installed. You need to " -+"download\n" - "the keys for packages you wish to install and install them.\n" - "You can do that by running the command:\n" - " rpm --import public.gpg.key\n" -@@ -875,8 +886,10 @@ msgid "" - "\n" - "For more information contact your distribution or package provider." - msgstr "" --"Vous avez activé la vérification des paquets par clés GPG. C’est une bonne chose.\n" --"Cependant, vous n’avez aucune clé GPG publique installée. Vous devez télécharger\n" -+"Vous avez activé la vérification des paquets par clés GPG. C’est une bonne " -+"chose.\n" -+"Cependant, vous n’avez aucune clé GPG publique installée. Vous devez " -+"télécharger\n" - "et installer les clés pour les paquets que vous souhaitez installer..\n" - "Vous pouvez le faire en lançant la commande :\n" - "rpm --import public. gpg. key\n" -@@ -886,7 +899,8 @@ msgstr "" - "pour un dépôt dans l’option « gpgkey » dans une section de configuration du\n" - "dépôt et {prog} l’installera pour vous.\n" - "\n" --"Pour plus de renseignements, contactez votre distribution ou le fournisseur du paquet." -+"Pour plus de renseignements, contactez votre distribution ou le fournisseur " -+"du paquet." - - #: dnf/cli/commands/__init__.py:71 - #, python-format -@@ -1318,8 +1332,8 @@ msgstr "" - - #: dnf/cli/commands/history.py:68 - msgid "" --"For the replay command, don't check for installed packages matching those in" --" transaction" -+"For the replay command, don't check for installed packages matching those in " -+"transaction" - msgstr "" - "Pour la commande replay, ne vérifie pas si les paquets installés " - "correspondent à ceux en transaction" -@@ -1334,8 +1348,8 @@ msgstr "" - - #: dnf/cli/commands/history.py:74 - msgid "" --"For the replay command, skip packages that are not available or have missing" --" dependencies" -+"For the replay command, skip packages that are not available or have missing " -+"dependencies" - msgstr "" - "Pour la commande replay, saute les paquets qui ne sont pas disponibles ou " - "qui ont des dépendances manquantes" -@@ -1368,8 +1382,8 @@ msgstr "Vous n’avez pas accès à la base de données de l’historique : %s" - #: dnf/cli/commands/history.py:151 - #, python-format - msgid "" --"Cannot undo transaction %s, doing so would result in an inconsistent package" --" database." -+"Cannot undo transaction %s, doing so would result in an inconsistent package " -+"database." - msgstr "" - "Impossible de défaire la transaction %s ; cela aboutirait à une base de " - "données des paquets incohérente." -@@ -1415,7 +1429,8 @@ msgid "" - "Invalid transaction ID range definition '{}'.\n" - "Use '..'." - msgstr "" --"La définition de la plage d’identifiants de transaction est invalide « {} ».\n" -+"La définition de la plage d’identifiants de transaction est invalide « {} " -+"».\n" - "Utilisez « .. »." - - #: dnf/cli/commands/history.py:283 -@@ -1485,8 +1500,7 @@ msgstr "Création des fichiers de cache pour tous les fichiers de métadonnées. - #: dnf/cli/commands/mark.py:39 - msgid "mark or unmark installed packages as installed by user." - msgstr "" --"marquer ou démarquer les paquets installés comme installés par " --"l’utilisateur." -+"marquer ou démarquer les paquets installés comme installés par l’utilisateur." - - #: dnf/cli/commands/mark.py:44 - msgid "" -@@ -1525,11 +1539,11 @@ msgstr "Le paquet %s n’est pas installé." - - #: dnf/cli/commands/module.py:54 - msgid "" --"Only module name, stream, architecture or profile is used. Ignoring unneeded" --" information in argument: '{}'" -+"Only module name, stream, architecture or profile is used. Ignoring unneeded " -+"information in argument: '{}'" - msgstr "" --"Seul le nom, le flux, l’architecture ou le profil du module est utilisé. Les" --" paramètres inutiles ont été ignorés dans le paramètre : « {} »" -+"Seul le nom, le flux, l’architecture ou le profil du module est utilisé. Les " -+"paramètres inutiles ont été ignorés dans le paramètre : « {} »" - - #: dnf/cli/commands/module.py:80 - msgid "list all module streams, profiles and states" -@@ -1864,8 +1878,8 @@ msgstr "" - #: dnf/cli/commands/repoquery.py:162 - msgid "check dependencies exactly as given, opposite of --alldeps" - msgstr "" --"vérifie les dépendances exactement telles qu’indiquées, le contraire de " --"--alldeps" -+"vérifie les dépendances exactement telles qu’indiquées, le contraire de --" -+"alldeps" - - #: dnf/cli/commands/repoquery.py:164 - msgid "" -@@ -1923,8 +1937,8 @@ msgstr "affiche les changelogs du paquet" - #: dnf/cli/commands/repoquery.py:194 - #, python-format, python-brace-format - msgid "" --"display format for listing packages: \"%%{name} %%{version} ...\", use " --"--querytags to view full tag list" -+"display format for listing packages: \"%%{name} %%{version} ...\", use --" -+"querytags to view full tag list" - msgstr "" - "format d'affichage pour la liste des paquets : « %%{name} %%{version}… », " - "utilisez --querytags pour voir la liste complète des étiquettes" -@@ -2072,23 +2086,23 @@ msgstr "la clé à chercher" - - #: dnf/cli/commands/repoquery.py:295 - msgid "" --"Option '--resolve' has to be used together with one of the '--conflicts', '" --"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" -+"Option '--resolve' has to be used together with one of the '--conflicts', '--" -+"depends', '--enhances', '--provides', '--recommends', '--requires', '--" - "requires-pre', '--suggests' or '--supplements' options" - msgstr "" --"Option « --resolve » doit être utilisée en conjonction avec « --conflicts »," --" « --depends », « --enhances », « --provides », « --recommends », « " --"--requires », « --requires-pre », « --suggests » ou « --supplements" -+"Option « --resolve » doit être utilisée en conjonction avec « --conflicts », " -+"« --depends », « --enhances », « --provides », « --recommends », « --" -+"requires », « --requires-pre », « --suggests » ou « --supplements" - - #: dnf/cli/commands/repoquery.py:305 - msgid "" - "Option '--recursive' has to be used with '--whatrequires ' (optionally " --"with '--alldeps', but not with '--exactdeps'), or with '--requires " --"--resolve'" -+"with '--alldeps', but not with '--exactdeps'), or with '--requires --" -+"resolve'" - msgstr "" --"Option « --recursive » doit être utilisée avec « --whatrequires » " --"(optionnellement avec « --alldeps », mais pas avec « --exactdeps »), ou avec" --" « --requires --resolve »" -+"Option « --recursive » doit être utilisée avec « --whatrequires " -+"» (optionnellement avec « --alldeps », mais pas avec « --exactdeps »), ou " -+"avec « --requires --resolve »" - - #: dnf/cli/commands/repoquery.py:312 - msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -2102,13 +2116,17 @@ msgstr "Le paquet {} ne contient aucun fichier" - #, python-brace-format - msgid "" - "No valid switch specified\n" --"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "description:\n" - " For the given packages print a tree of thepackages." - msgstr "" - "Aucune option valide spécifiée\n" --"utilisation : {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"utilisation : {prog} repoquery [--conflicts|--enhances|--obsoletes|--" -+"provides|--recommends|--requires|--suggest|--supplements|--whatrequires] " -+"[key] [--tree]\n" - "\n" - "description :\n" - " Afficher une arborescence des paquets pour le paquet donné." -@@ -2148,8 +2166,7 @@ msgstr "Description" - msgid "URL" - msgstr "URL" - --#. TRANSLATORS: separator used between package attributes (eg. Name & Summary --#. & URL) -+#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) - #: dnf/cli/commands/search.py:76 - msgid " & " - msgstr " & " -@@ -2283,7 +2300,8 @@ msgstr "" - "help affiche l’aide\n" - "repository (ou repo) active, désactive ou liste les dépôts\n" - "resolvedep résout l’ensemble de transactions\n" --"transaction (ou ts) liste, réinitialise ou exécute l’ensemble de transactions\n" -+"transaction (ou ts) liste, réinitialise ou exécute l’ensemble de " -+"transactions\n" - "run résoud et exécute l’ensemble de transactions\n" - "exit (ou quit) quitte l’interpréteur de commandes" - -@@ -2333,19 +2351,19 @@ msgstr "nouveau paquet" - - #: dnf/cli/commands/updateinfo.py:50 - msgid "Critical/Sec." --msgstr "Sécurité/Niveau critique" -+msgstr "Sécurité/Niveau critique." - - #: dnf/cli/commands/updateinfo.py:51 - msgid "Important/Sec." --msgstr "Sécurité/Niveau important" -+msgstr "Sécurité/Niveau important." - - #: dnf/cli/commands/updateinfo.py:52 - msgid "Moderate/Sec." --msgstr "Sécurité/niveau modéré" -+msgstr "Sécurité/niveau modéré." - - #: dnf/cli/commands/updateinfo.py:53 - msgid "Low/Sec." --msgstr "Sécurité/Niveau bas" -+msgstr "Sécurité/Niveau bas." - - #: dnf/cli/commands/updateinfo.py:63 - msgid "display advisories about packages" -@@ -2358,8 +2376,7 @@ msgstr "alertes pour les nouvelles versions de paquets installés (par défaut)" - #: dnf/cli/commands/updateinfo.py:80 - msgid "advisories about equal and older versions of installed packages" - msgstr "" --"alertes pour des versions équivalentes ou plus anciennes de paquets " --"installés" -+"alertes pour des versions équivalentes ou plus anciennes de paquets installés" - - #: dnf/cli/commands/updateinfo.py:83 - msgid "" -@@ -2455,7 +2472,7 @@ msgstr "autre(s) alertes)" - - #: dnf/cli/commands/updateinfo.py:316 - msgid "Unknown/Sec." --msgstr "Sécurité/Niveau inconnu" -+msgstr "Sécurité/Niveau inconnu." - - #: dnf/cli/commands/updateinfo.py:357 - msgid "Bugs" -@@ -2529,8 +2546,8 @@ msgstr "Terminé." - #: dnf/cli/main.py:116 - msgid "No read/execute access in current directory, moving to /" - msgstr "" --"Pas d’accès en lecture/exécution sur le répertoire courant, déplacement dans" --" /" -+"Pas d’accès en lecture/exécution sur le répertoire courant, déplacement " -+"dans /" - - #: dnf/cli/main.py:135 - msgid "try to add '{}' to command line to replace conflicting packages" -@@ -2673,8 +2690,7 @@ msgstr "niveau de déboguage pour la sortie" - - #: dnf/cli/option_parser.py:236 - msgid "dumps detailed solving results into files" --msgstr "" --"détaille les résultats de résolution des dépendances dans des fichiers" -+msgstr "détaille les résultats de résolution des dépendances dans des fichiers" - - #: dnf/cli/option_parser.py:240 - msgid "show duplicates, in repos, in list/search commands" -@@ -2691,8 +2707,8 @@ msgid "" - "capabilities that the package obsoletes for info, list and repoquery" - msgstr "" - "active la mécanique de traitement des paquets obsolètes de {prog} pour les " --"mises à jour ou affiche les fonctionnalités qu’un paquet rend obsolètes pour" --" les commandes « info », « list » et « repoquery »" -+"mises à jour ou affiche les fonctionnalités qu’un paquet rend obsolètes pour " -+"les commandes « info », « list » et « repoquery »" - - #: dnf/cli/option_parser.py:251 - msgid "debugging output level for rpm" -@@ -2716,8 +2732,8 @@ msgstr "" - - #: dnf/cli/option_parser.py:266 - msgid "" --"Disable repositories. List option. Supports globs, can be specified multiple" --" times." -+"Disable repositories. List option. Supports globs, can be specified multiple " -+"times." - msgstr "" - "Désactive les dépôts. Option de liste. Prend en charge les globs, peut être " - "renseigné plusieurs fois." -@@ -2727,8 +2743,8 @@ msgid "" - "enable just specific repositories by an id or a glob, can be specified " - "multiple times" - msgstr "" --"active seulement des dépôts spécifiques par id ou par le caractère générique" --" (*), peut être spécifié plusieurs fois" -+"active seulement des dépôts spécifiques par id ou par le caractère générique " -+"(*), peut être spécifié plusieurs fois" - - #: dnf/cli/option_parser.py:275 - msgid "enable repos with config-manager command (automatically saves)" -@@ -2823,8 +2839,8 @@ msgstr "" - #: dnf/cli/option_parser.py:339 - msgid "Include packages needed to fix the given BZ, in updates" - msgstr "" --"Inclut dans les mises à jour les paquets nécessaires pour résoudre le ticket" --" BugZilla cité" -+"Inclut dans les mises à jour les paquets nécessaires pour résoudre le ticket " -+"BugZilla cité" - - #: dnf/cli/option_parser.py:342 - msgid "Include packages needed to fix the given CVE, in updates" -@@ -3094,7 +3110,7 @@ msgstr "Licence  : %s" - #: dnf/cli/output.py:871 - #, python-format - msgid "Provide : %s" --msgstr "Provide : %s" -+msgstr "Fournir : %s" - - #: dnf/cli/output.py:891 - #, python-format -@@ -3125,8 +3141,7 @@ msgstr "Taille des paquets installés : %s" - #: dnf/cli/output.py:970 - msgid "There was an error calculating installed size" - msgstr "" --"Une erreur est survenue pendant le calcul de la taille des paquets " --"installées" -+"Une erreur est survenue pendant le calcul de la taille des paquets installées" - - #: dnf/cli/output.py:974 - #, python-format -@@ -3471,7 +3486,7 @@ msgstr "Échec :" - - #: dnf/cli/output.py:1764 dnf/cli/output.py:1766 - msgid "Releasever :" --msgstr "Releasever :" -+msgstr "Version :" - - #: dnf/cli/output.py:1771 dnf/cli/output.py:1773 - msgid "Command Line :" -@@ -3606,8 +3621,8 @@ msgstr "Inconnu" - #, python-format - msgid "Unable to find information about the locking process (PID %d)" - msgstr "" --"Impossible de trouver des informations sur le processus de verrouillage (PID" --" %d)" -+"Impossible de trouver des informations sur le processus de verrouillage (PID " -+"%d)" - - #: dnf/cli/utils.py:117 - #, python-format -@@ -3629,10 +3644,6 @@ msgstr " A débuté  : %s - il y a %s" - msgid " State : %s" - msgstr " État : %s" - --#: dnf/comps.py:104 --msgid "skipping." --msgstr "ignorer." -- - #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 - #, python-format - msgid "Module or Group '%s' is not installed." -@@ -3683,11 +3694,15 @@ msgstr "Erreur lors l’analyse de « %s » : %s" - msgid "Invalid configuration value: %s=%s in %s; %s" - msgstr "Valeur de configuration non valide : %s=%s dans %s ; %s" - --#: dnf/conf/config.py:226 -+#: dnf/conf/config.py:194 -+msgid "Cannot set \"{}\" to \"{}\": {}" -+msgstr "Impossible de définir \"{}\" à \"{}\" : {}" -+ -+#: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" - msgstr "N’a pas pu définir cachedir : {}" - --#: dnf/conf/config.py:275 -+#: dnf/conf/config.py:293 - msgid "" - "Configuration file URL \"{}\" could not be downloaded:\n" - " {}" -@@ -3695,33 +3710,33 @@ msgstr "" - "L’URL du fichier de configuration « {} » n’a pas pu être téléchargée :\n" - " {}" - --#: dnf/conf/config.py:355 dnf/conf/config.py:391 -+#: dnf/conf/config.py:373 dnf/conf/config.py:409 - #, python-format - msgid "Unknown configuration option: %s = %s" - msgstr "Option de configuration inconnue : %s=%s" - --#: dnf/conf/config.py:372 -+#: dnf/conf/config.py:390 - #, python-format - msgid "Error parsing --setopt with key '%s', value '%s': %s" - msgstr "" - "Erreur lors l’analyse de --setopt avec la clef « %s », valeur « %s » : %s" - --#: dnf/conf/config.py:380 -+#: dnf/conf/config.py:398 - #, python-format - msgid "Main config did not have a %s attr. before setopt" - msgstr "La config principale n’avait pas d’attr. %s avant setopt" - --#: dnf/conf/config.py:427 dnf/conf/config.py:445 -+#: dnf/conf/config.py:445 dnf/conf/config.py:463 - msgid "Incorrect or unknown \"{}\": {}" - msgstr "Incorrect ou inconnu « {} » : {}" - --#: dnf/conf/config.py:501 -+#: dnf/conf/config.py:519 - #, python-format - msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" - msgstr "" - "Erreur lors l’analyse de --setopt avec la clef « %s.%s », valeur « %s » : %s" - --#: dnf/conf/config.py:504 -+#: dnf/conf/config.py:522 - #, python-format - msgid "Repo %s did not have a %s attr. before setopt" - msgstr "Le dépôt « %s » n’avait pas d’attr. %s avant setopt" -@@ -3796,7 +3811,7 @@ msgstr "" - #: dnf/db/group.py:353 - #, python-format - msgid "An rpm exception occurred: %s" --msgstr "Une exception rpm s’est produite : %s" -+msgstr "Une exception rpm s'est produite : %s" - - #: dnf/db/group.py:355 - msgid "No available modular metadata for modular package" -@@ -3807,34 +3822,34 @@ msgstr "Aucune métadonnée de module disponible pour le paquet modulaire" - msgid "Will not install a source rpm package (%s)." - msgstr "Un paquet source rpm ne sera pas installé (%s)." - --#: dnf/dnssec.py:168 -+#: dnf/dnssec.py:171 - msgid "" - "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" - msgstr "" --"L’option de configuration « gpgkey_dns_verification » nécessite " --"python3-unbound({})" -+"L’option de configuration « gpgkey_dns_verification » nécessite python3-" -+"unbound({})" - --#: dnf/dnssec.py:239 -+#: dnf/dnssec.py:243 - msgid "DNSSEC extension: Key for user " - msgstr "Extension DNSSEC : clef pour l’utilisateur " - --#: dnf/dnssec.py:241 -+#: dnf/dnssec.py:245 - msgid "is valid." - msgstr "est valide." - --#: dnf/dnssec.py:243 -+#: dnf/dnssec.py:247 - msgid "has unknown status." - msgstr "a un statut inconnu." - --#: dnf/dnssec.py:251 -+#: dnf/dnssec.py:255 - msgid "DNSSEC extension: " - msgstr "extension DNSSEC : " - --#: dnf/dnssec.py:283 -+#: dnf/dnssec.py:287 - 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:268 -+#: dnf/drpm.py:62 dnf/repo.py:267 - #, python-format - msgid "unsupported checksum type: %s" - msgstr "type de somme de contrôle non pris en charge : %s" -@@ -3877,7 +3892,7 @@ msgid_plural "Modular dependency problems with Defaults:" - msgstr[0] "Problème de dépendance modulaire avec les valeurs par défaut :" - msgstr[1] "Problèmes de dépendance modulaire avec les valeurs par défaut :" - --#: dnf/exceptions.py:131 dnf/module/module_base.py:854 -+#: dnf/exceptions.py:131 dnf/module/module_base.py:857 - msgid "Modular dependency problem:" - msgid_plural "Modular dependency problems:" - msgstr[0] "Problème de dépendance modulaire :" -@@ -3887,10 +3902,12 @@ msgstr[1] "Problèmes de dépendance modulaire :" - #, python-format - msgid "" - "Malformed lock file found: %s.\n" --"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." -+"Ensure no other dnf/yum process is running and remove the lock file manually " -+"or run systemd-tmpfiles --remove dnf.conf." - msgstr "" - "Fichier verrou malformé trouvé : %s.\n" --"Assurez-vous qu’aucun autre processus {prog} n’est en cours d’exécution et supprimez le fichier verrou, ou exécutez systemd-tmpfiles --remove dnf.conf." -+"Assurez-vous qu’aucun autre processus {prog} 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 '{}'." -@@ -3975,7 +3992,7 @@ msgstr "" - "Aide : [d]éfaut, [e]activé, [x]désactivé, [i]nstallé, [a]ctivé" - - #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 --#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 -+#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 - msgid "Ignoring unnecessary profile: '{}/{}'" - msgstr "Profil inutile ignoré : {}/{}" - -@@ -3983,8 +4000,8 @@ msgstr "Profil inutile ignoré : {}/{}" - #, python-brace-format - msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" - msgstr "" --"Toutes les correspondances pour le paramètre « {0} » dans le mode module « " --"{1}:{2} » ne sont pas actives" -+"Toutes les correspondances pour le paramètre « {0} » dans le mode module " -+"« {1}:{2} » ne sont pas actives" - - #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 - #, python-brace-format -@@ -4006,8 +4023,7 @@ msgstr "Impossible de faire correspondre le profil pour l’argument {}" - - #: dnf/module/module_base.py:120 - msgid "No default profiles for module {}:{}. Available profiles: {}" --msgstr "" --"Aucun profil par défaut pour le module {}:{}. Profils disponibles : {}" -+msgstr "Aucun profil par défaut pour le module {}:{}. Profils disponibles : {}" - - #: dnf/module/module_base.py:124 - msgid "No profiles for module {}:{}" -@@ -4019,15 +4035,14 @@ msgstr "Le profil par défaut {} n’est pas disponible dans le module {} : {}" - - #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 - msgid "Installing module from Fail-Safe repository is not allowed" --msgstr "" --"L’installation du module à partir du dépôt Fail-Safe n’est pas permise" -+msgstr "L’installation du module à partir du dépôt Fail-Safe n’est pas permise" - - #: dnf/module/module_base.py:196 - #, python-brace-format - msgid "No active matches for argument '{0}' in module '{1}:{2}'" - msgstr "" --"Aucune correspondance active pour le paramètre « {0} » dans le module « " --"{1}:{2} »" -+"Aucune correspondance active pour le paramètre « {0} » dans le module « {1}:" -+"{2} »" - - #: dnf/module/module_base.py:228 - #, python-brace-format -@@ -4043,7 +4058,7 @@ msgstr "Aucun paquet distrosync disponible pour le nom de paquet « {} »" - #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 - #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 - #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 --#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 -+#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 - msgid "Unable to resolve argument {}" - msgstr "Impossible de résoudre le paramètre {}" - -@@ -4051,8 +4066,8 @@ msgstr "Impossible de résoudre le paramètre {}" - #, python-brace-format - msgid "Upgrading module '{0}' from Fail-Safe repository {1} is not allowed" - msgstr "" --"La mise à niveau du module « {0} » à partir du dépôt Fail-Safe {1} n’est pas" --" permise" -+"La mise à niveau du module « {0} » à partir du dépôt Fail-Safe {1} n’est pas " -+"permise" - - #: dnf/module/module_base.py:340 dnf/module/module_base.py:368 - msgid "Unable to match profile in argument {}" -@@ -4066,21 +4081,20 @@ msgstr "" - #: dnf/module/module_base.py:422 - #, python-brace-format - msgid "" --"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" --" '{module}', but none of the streams are enabled or default" -+"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " -+"'{module}', but none of the streams are enabled or default" - msgstr "" - "L'argument « {argument} » correspond à {stream_count} flux (« {streams} ») " - "du module « {module} », mais aucun des flux n'est activé ou par défaut" - - #: dnf/module/module_base.py:509 - msgid "" --"Only module name is required. Ignoring unneeded information in argument: " --"'{}'" -+"Only module name is required. Ignoring unneeded information in argument: '{}'" - msgstr "" - "Seul le nom du module est nécessaire. Les paramètres inutiles ont été " - "ignorés : « {} »" - --#: dnf/module/module_base.py:841 -+#: dnf/module/module_base.py:844 - msgid "No match for package {}" - msgstr "Aucune correspondance pour le paquet {}" - -@@ -4131,8 +4145,8 @@ msgstr "" - #: dnf/plugin.py:247 - msgid "No matches found for the following disable plugin patterns: {}" - msgstr "" --"Aucun élément correspondant aux modèles de plugin de désactivation suivants " --": {}" -+"Aucun élément correspondant aux modèles de plugin de désactivation " -+"suivants : {}" - - #: dnf/repo.py:84 - #, python-format -@@ -4144,7 +4158,7 @@ msgid "Already downloaded" - msgstr "Déjà téléchargé" - - #. pinging mirrors, this might take a while --#: dnf/repo.py:347 -+#: dnf/repo.py:346 - #, python-format - msgid "determining the fastest mirror (%s hosts).. " - msgstr "détermination du miroir le plus rapide (%s hôtes).. " -@@ -4160,18 +4174,26 @@ msgid "Added %s repo from %s" - msgstr "Ajout du dépôt %s depuis le %s" - - #: dnf/rpm/miscutils.py:32 --#, fuzzy, python-format --#| msgid "Cannot find rpmkeys executable to verify signatures." -+#, python-format - msgid "Using rpmkeys executable at %s to verify signatures" - msgstr "" --"Impossible de trouver l’exécutable rpmkeys pour vérifier les signatures." -+"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 -+msgid "The openDB() function connot 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." - -@@ -4180,8 +4202,8 @@ msgid "" - "allow_vendor_change is disabled. This option is currently not supported for " - "downgrade and distro-sync commands" - msgstr "" --"allow_vendor_change est désactivé. Cette option n’est actuellement pas prise" --" en charge pour les commandes downgrade et distro-sync" -+"allow_vendor_change est désactivé. Cette option n’est actuellement pas prise " -+"en charge pour les commandes downgrade et distro-sync" - - #. TRANSLATORS: This is for a single package currently being downgraded. - #: dnf/transaction.py:80 -@@ -4259,8 +4281,8 @@ msgid "" - "Incompatible major version \"{major}\", supported major version is " - "\"{major_supp}\"." - msgstr "" --"Version majeure incompatible « {major} », la version majeure prise en charge" --" est « {major_supp} »." -+"Version majeure incompatible « {major} », la version majeure prise en charge " -+"est « {major_supp} »." - - #: dnf/transaction_sr.py:224 - msgid "" -@@ -4286,7 +4308,8 @@ msgstr "Clé objet « {key} » manquante dans un rpm." - - #: dnf/transaction_sr.py:289 - #, python-brace-format --msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." -+msgid "" -+"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." - msgstr "" - "Valeur inattendue pour le paquet de raison « {reason} » pour le rpm nevra " - "« {nevra} »." -@@ -4323,7 +4346,8 @@ msgstr "" - - #: dnf/transaction_sr.py:370 - #, python-brace-format --msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." -+msgid "" -+"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." - msgstr "" - "Valeur inattendue pour l’action de paquet « {action} » pour le rpm nevra " - "« {nevra} »." -@@ -4376,7 +4400,9 @@ msgstr "Clé d’objet « {key} » manquante dans un groupe." - - #: dnf/transaction_sr.py:571 - #, python-brace-format --msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." -+msgid "" -+"Unexpected value of environment action \"{action}\" for environment " -+"\"{env}\"." - msgstr "" - "Valeur inattendue pour l’action d’environnement « {action} » pour " - "l’environnement « {env} »." -@@ -4389,8 +4415,8 @@ msgstr "Clé d’objet « {key} » manquante dans un environnement." - #: dnf/transaction_sr.py:615 - #, python-brace-format - msgid "" --"Package nevra \"{nevra}\", which is not present in the transaction file, was" --" pulled into the transaction." -+"Package nevra \"{nevra}\", which is not present in the transaction file, was " -+"pulled into the transaction." - msgstr "" - "Le paquet nevra « {nevra} », qui n’est pas présent dans le fichier de " - "transaction, a été retiré de la transaction." -@@ -4432,12 +4458,15 @@ msgstr "Échec" - msgid "" - msgstr "" - -+#~ msgid "skipping." -+#~ msgstr "ignorer." -+ - #~ msgid "" - #~ "Using rpmkeys executable from {path} to verify signature for package: " - #~ "{package}." - #~ msgstr "" --#~ "Utilisation de l’exécutable rpmkeys de {path} pour vérifier la signature du " --#~ "paquet : {package}." -+#~ "Utilisation de l'exécutable rpmkeys de {path} pour vérifier la signature " -+#~ "du package : {package}." - - #~ msgid "%s: %s check failed: %s vs %s" - #~ msgstr "%s : %s vérification a échoué : %s vs %s" -@@ -4452,7 +4481,7 @@ msgstr "" - #~ msgstr "L’identifiant de transaction fourni est introuvable" - - #~ msgid "Undoing transaction {}, from {}" --#~ msgstr "Révocation de la transaction {}, de {}" -+#~ msgstr "Révocation de lla transaction {}, de {}" - - #~ msgid "Errors in \"{filename}\":" - #~ msgstr "Erreurs dans « {filename} » :" -@@ -4464,13 +4493,15 @@ msgstr "" - #~ msgstr "format d’affichage des paquets trouvés" - - #~ msgid "Available query-tags: use --queryformat \".. %{tag} ..\"" --#~ msgstr "Balises de requêtes disponibles : utiliser --queryformat \"..%{tag}..\"" -+#~ msgstr "" -+#~ "Balises de requêtes disponibles : utiliser --queryformat \"..%{tag}..\"" - - #~ msgid "Bad transaction IDs, or package(s), given" - #~ msgstr "Des paquets ou identifiants de transaction fournis sont erronés" - - #~ msgid "" --#~ "Display capabilities that the package depends on for running a %%pre script." -+#~ "Display capabilities that the package depends on for running a %%pre " -+#~ "script." - #~ msgstr "" - #~ "Affiche les fonctionnalités dont le paquet dépend pour le lancement d’un " - #~ "script %%pre." -diff --git a/po/ja.po b/po/ja.po -index e81d5ceb..e1f463ce 100644 ---- a/po/ja.po -+++ b/po/ja.po -@@ -14,7 +14,7 @@ - # Hajime Taira , 2017. #zanata - # Ooyama Yosiyuki , 2017. #zanata - # Casey Jones , 2018. #zanata --# Ludek Janda , 2018. #zanata -+# Ludek Janda , 2018. #zanata, 2021. - # Noriko Mizumoto , 2018. #zanata - # Ooyama Yosiyuki , 2018. #zanata - # Hajime Taira , 2019. #zanata -@@ -22,20 +22,23 @@ - # Julien Humbert , 2020. - # Casey Jones , 2020. - # Hajime Taira , 2020. -+# Sundeep Anand , 2021. -+# Transtats , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2021-06-13 09:18-0400\n" --"PO-Revision-Date: 2020-07-27 05:29+0000\n" --"Last-Translator: Hajime Taira \n" --"Language-Team: Japanese \n" -+"POT-Creation-Date: 2022-02-28 11:37+0100\n" -+"PO-Revision-Date: 2022-03-09 12:39+0000\n" -+"Last-Translator: Transtats \n" -+"Language-Team: Japanese \n" - "Language: ja\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=1; plural=0;\n" --"X-Generator: Weblate 4.1.1\n" -+"X-Generator: Weblate 4.11.2\n" - - #: dnf/automatic/emitter.py:32 - #, python-format -@@ -45,7 +48,7 @@ msgstr "'%s' に以下の更新が適用されました:" - #: dnf/automatic/emitter.py:33 - #, python-format - msgid "Updates completed at %s" --msgstr "'%s' に更新が適用されました。" -+msgstr "'%s' に更新が適用されました" - - #: dnf/automatic/emitter.py:34 - #, python-format -@@ -105,11 +108,9 @@ msgid "Started dnf-automatic." - msgstr "dnf-automatic を開始しました。" - - #: dnf/automatic/main.py:308 --#, fuzzy --#| msgid "Sleep for %s seconds" - msgid "Sleep for {} second" - msgid_plural "Sleep for {} seconds" --msgstr[0] "%s 秒スリープします" -+msgstr[0] "{} 秒スリープします" - - #: dnf/automatic/main.py:315 - msgid "System is off-line." -@@ -131,11 +132,13 @@ msgstr "repository '{}' のロードに失敗しました" - - #: dnf/base.py:327 - msgid "Metadata timer caching disabled when running on metered connection." --msgstr "metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" -+msgstr "" -+"metered 接続で実行する際、メタデータタイマーキャッシュは無効化されました。" - - #: dnf/base.py:332 - msgid "Metadata timer caching disabled when running on a battery." --msgstr "バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" -+msgstr "" -+"バッテリーで実行する際、メタデータタイマーキャッシュは無効化されました。" - - #: dnf/base.py:337 - msgid "Metadata timer caching disabled." -@@ -178,7 +181,7 @@ msgstr "メタデータキャッシュを作成しました。" - #: dnf/base.py:404 dnf/base.py:471 - #, python-format - msgid "%s: using metadata from %s." --msgstr "%s: は %s から取得したメタデータを使用中" -+msgstr "%s: は %s から取得したメタデータを使用中。" - - #: dnf/base.py:416 dnf/base.py:484 - #, python-format -@@ -194,7 +197,9 @@ msgstr "メタデータの期限切れの最終確認: %s 時間前の %s に実 - msgid "" - "The downloaded packages were saved in cache until the next successful " - "transaction." --msgstr "ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。" -+msgstr "" -+"ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保" -+"存されました。" - - #: dnf/base.py:514 - #, python-format -@@ -211,158 +216,159 @@ msgstr "設定ファイルの tsflag が無効です: %s" - msgid "Failed to add groups file for repository: %s - %s" - msgstr "リポジトリーのグループファイルを追加できませんでした: %s - %s" - --#: dnf/base.py:904 -+#: dnf/base.py:922 - msgid "Running transaction check" - msgstr "トランザクションの確認を実行中" - --#: dnf/base.py:912 -+#: dnf/base.py:930 - msgid "Error: transaction check vs depsolve:" - msgstr "エラー: トランザクションの確認 vs depsolve:" - --#: dnf/base.py:918 -+#: dnf/base.py:936 - msgid "Transaction check succeeded." - msgstr "トランザクションの確認に成功しました。" - --#: dnf/base.py:921 -+#: dnf/base.py:939 - msgid "Running transaction test" - msgstr "トランザクションのテストを実行中" - --#: dnf/base.py:931 dnf/base.py:1082 -+#: dnf/base.py:949 dnf/base.py:1100 - msgid "RPM: {}" - msgstr "RPM: {}" - --#: dnf/base.py:932 -+#: dnf/base.py:950 - msgid "Transaction test error:" - msgstr "トランザクションテストエラー:" - --#: dnf/base.py:943 -+#: dnf/base.py:961 - msgid "Transaction test succeeded." - msgstr "トランザクションのテストに成功しました。" - --#: dnf/base.py:964 -+#: dnf/base.py:982 - msgid "Running transaction" - msgstr "トランザクションを実行中" - --#: dnf/base.py:1001 -+#: dnf/base.py:1019 - msgid "Disk Requirements:" --msgstr "ディスク要件" -+msgstr "ディスク要件:" - --#: dnf/base.py:1004 -+#: dnf/base.py:1022 - #, 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:1011 -+#: dnf/base.py:1029 - msgid "Error Summary" - msgstr "エラーの概要" - --#: dnf/base.py:1037 -+#: dnf/base.py:1055 - #, python-brace-format - msgid "RPMDB altered outside of {prog}." - msgstr "RPMDBは {prog} のサポート外に変更されました。" - --#: dnf/base.py:1083 dnf/base.py:1091 -+#: dnf/base.py:1101 dnf/base.py:1109 - msgid "Could not run transaction." - msgstr "トランザクションを実行できませんでした。" - --#: dnf/base.py:1086 -+#: dnf/base.py:1104 - msgid "Transaction couldn't start:" - msgstr "トランザクションを開始できませんでした:" - --#: dnf/base.py:1100 -+#: dnf/base.py:1118 - #, python-format - msgid "Failed to remove transaction file %s" - msgstr "トランザクションファイル %s の削除に失敗しました" - --#: dnf/base.py:1182 -+#: dnf/base.py:1200 - msgid "Some packages were not downloaded. Retrying." - msgstr "一部のパッケージはダウンロードされませんでした。再試行中です。" - --#: dnf/base.py:1212 --#, fuzzy, python-format --#| msgid "" --#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" -+#: dnf/base.py:1230 -+#, 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%% " -+"節約しました)。" - --#: dnf/base.py:1216 --#, fuzzy, python-format --#| msgid "" --#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" -+#: dnf/base.py:1234 -+#, 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%% " -+"は無駄になりました)" - --#: dnf/base.py:1258 -+#: dnf/base.py:1276 - msgid "Cannot add local packages, because transaction job already exists" --msgstr "ローカルパッケージを追加できません、トランザクションジョブがすでに存在するためです" -+msgstr "" -+"ローカルパッケージを追加できません、トランザクションジョブがすでに存在するた" -+"めです" - --#: dnf/base.py:1272 -+#: dnf/base.py:1290 - msgid "Could not open: {}" - msgstr "開くことができませんでした: {}" - --#: dnf/base.py:1310 -+#: dnf/base.py:1328 - #, python-format - msgid "Public key for %s is not installed" - msgstr "%s の公開鍵がインストールされていません" - --#: dnf/base.py:1314 -+#: dnf/base.py:1332 - #, python-format - msgid "Problem opening package %s" - msgstr "パッケージ %s を開くことができません" - --#: dnf/base.py:1322 -+#: dnf/base.py:1340 - #, python-format - msgid "Public key for %s is not trusted" - msgstr "%s の公開鍵は信頼されていません" - --#: dnf/base.py:1326 -+#: dnf/base.py:1344 - #, python-format - msgid "Package %s is not signed" - msgstr "パッケージ %s は署名されていません" - --#: dnf/base.py:1356 -+#: dnf/base.py:1374 - #, python-format - msgid "Cannot remove %s" - msgstr "%s を削除できません" - --#: dnf/base.py:1360 -+#: dnf/base.py:1378 - #, python-format - msgid "%s removed" - msgstr "%s を削除しました" - --#: dnf/base.py:1640 -+#: dnf/base.py:1658 - msgid "No match for group package \"{}\"" --msgstr "グループパッケージ \"{}\" に一致するものはありません" -+msgstr "グループパッケージ \"{}\" に一致するものはありません" - --#: dnf/base.py:1726 -+#: dnf/base.py:1740 - #, python-format - msgid "Adding packages from group '%s': %s" - msgstr "グループ '%s' からのパッケージを追加します: %s" - --#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1763 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:1767 -+#: dnf/base.py:1781 - msgid "No groups marked for removal." - msgstr "削除対象のパッケージはありません。" - --#: dnf/base.py:1801 -+#: dnf/base.py:1815 - msgid "No group marked for upgrade." - msgstr "アップグレード対象のグループはありません。" - --#: dnf/base.py:2015 -+#: dnf/base.py:2029 - #, python-format - msgid "Package %s not installed, cannot downgrade it." --msgstr "パッケージ %s はインストールされていないので、ダウングレードできません。" -+msgstr "" -+"パッケージ %s はインストールされていないので、ダウングレードできません。" - --#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 --#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 -+#: 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/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 -@@ -372,178 +378,197 @@ msgstr "パッケージ %s はインストールされていないので、ダ - msgid "No match for argument: %s" - msgstr "一致した引数がありません: %s" - --#: dnf/base.py:2024 -+#: dnf/base.py:2038 - #, python-format - msgid "Package %s of lower version already installed, cannot downgrade it." --msgstr "下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" -+msgstr "" -+"下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできま" -+"せん。" - --#: dnf/base.py:2047 -+#: dnf/base.py:2061 - #, python-format - msgid "Package %s not installed, cannot reinstall it." --msgstr "パッケージ %s はインストールされていないのでの、再インストールできません。" -+msgstr "" -+"パッケージ %s はインストールされていないのでの、再インストールできません。" - --#: dnf/base.py:2062 -+#: dnf/base.py:2076 - #, python-format - msgid "File %s is a source package and cannot be updated, ignoring." - msgstr "ファイル %s はソースパッケージで更新できません。無視します。" - --#: dnf/base.py:2073 -+#: dnf/base.py:2087 - #, python-format - msgid "Package %s not installed, cannot update it." - msgstr "パッケージ %s はインストールされていないので、更新できません。" - --#: dnf/base.py:2083 -+#: dnf/base.py:2097 - #, python-format - msgid "" - "The same or higher version of %s is already installed, cannot update it." --msgstr "同じまたはさらに新しいバージョンの %s が既にインストールされています、アップデートできません。" -+msgstr "" -+"同じまたはさらに新しいバージョンの %s が既にインストールされています、アップ" -+"デートできません。" - --#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 - #, python-format - msgid "Package %s available, but not installed." - msgstr "パッケージ %s は利用可能ですが、インストールされていません。" - --#: dnf/base.py:2132 -+#: dnf/base.py:2146 - #, python-format - msgid "Package %s available, but installed for different architecture." --msgstr "パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされています。" -+msgstr "" -+"パッケージ %s は利用可能ですが、他のアーキテクチャー用にインストールされてい" -+"ます。" - --#: dnf/base.py:2157 -+#: dnf/base.py:2171 - #, python-format - msgid "No package %s installed." - msgstr "パッケージ %s はインストールされていません。" - --#: dnf/base.py:2175 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2189 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:2190 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 - #: dnf/cli/commands/remove.py:162 - msgid "No packages marked for removal." - msgstr "削除対象のパッケージはありません。" - --#: dnf/base.py:2278 dnf/cli/cli.py:428 -+#: dnf/base.py:2292 dnf/cli/cli.py:428 - #, python-format - msgid "Packages for argument %s available, but not installed." --msgstr "引数 %s のパッケージは利用可能ですが、インストールされていません。" -+msgstr "引数 %s のパッケージは利用可能ですが、インストールされていません。" - --#: dnf/base.py:2283 -+#: dnf/base.py:2297 - #, python-format - msgid "Package %s of lowest version already installed, cannot downgrade it." --msgstr "最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードできません。" -+msgstr "" -+"最下位バージョンのパッケージ %s はインストール済みなので、ダウングレードでき" -+"ません。" - --#: dnf/base.py:2383 -+#: dnf/base.py:2397 - msgid "No security updates needed, but {} update available" - msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" - --#: dnf/base.py:2385 -+#: dnf/base.py:2399 - msgid "No security updates needed, but {} updates available" - msgstr "セキュリティー更新は必要ありませんが、{} 更新が利用可能です" - --#: dnf/base.py:2389 -+#: dnf/base.py:2403 - msgid "No security updates needed for \"{}\", but {} update available" - msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" - --#: dnf/base.py:2391 -+#: dnf/base.py:2405 - msgid "No security updates needed for \"{}\", but {} updates available" - msgstr "\"{}\" のセキュリティー更新は必要ありませんが、{} 更新が利用可能です" - - #. raise an exception, because po.repoid is not in self.repos --#: dnf/base.py:2412 -+#: dnf/base.py:2426 - #, python-format - msgid "Unable to retrieve a key for a commandline package: %s" --msgstr "" -+msgstr "コマンドラインパッケージのキーを取得できません: %s" - --#: dnf/base.py:2420 -+#: dnf/base.py:2434 - #, python-format - msgid ". Failing package is: %s" - msgstr ". 失敗したパッケージは: %s" - --#: dnf/base.py:2421 -+#: dnf/base.py:2435 - #, python-format - msgid "GPG Keys are configured as: %s" - msgstr "GPG 鍵が設定されています: %s" - --#: dnf/base.py:2433 -+#: dnf/base.py:2447 - #, python-format - msgid "GPG key at %s (0x%s) is already installed" - msgstr "%s (0x%s) の GPG 鍵はインストール済みです" - --#: dnf/base.py:2469 -+#: dnf/base.py:2483 - msgid "The key has been approved." - msgstr "鍵が承認されました。" - --#: dnf/base.py:2472 -+#: dnf/base.py:2486 - msgid "The key has been rejected." - msgstr "鍵が拒否されました。" - --#: dnf/base.py:2505 -+#: dnf/base.py:2519 - #, python-format - msgid "Key import failed (code %d)" - msgstr "鍵のインポートに失敗しました (コード: %d)" - --#: dnf/base.py:2507 -+#: dnf/base.py:2521 - msgid "Key imported successfully" - msgstr "鍵のインポートに成功しました" - --#: dnf/base.py:2511 -+#: dnf/base.py:2525 - msgid "Didn't install any keys" - msgstr "鍵を 1 つもインストールしませんでした" - --#: dnf/base.py:2514 -+#: dnf/base.py:2528 - #, python-format - msgid "" --"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" -+"The GPG keys listed for the \"%s\" repository are already installed but they " -+"are not correct for this package.\n" - "Check that the correct key URLs are configured for this repository." - msgstr "" --"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、このパッケージには適切ではありません。\n" -+"\"%s\" リポジトリーに一覧表示されている GPG 鍵はインストール済みですが、この" -+"パッケージには適切ではありません。\n" - "正しい鍵 URL がこのリポジトリー用に設定されているか確認してください。" - --#: dnf/base.py:2525 -+#: dnf/base.py:2539 - msgid "Import of key(s) didn't help, wrong key(s)?" - msgstr "鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?" - --#: dnf/base.py:2578 -+#: dnf/base.py:2592 - msgid " * Maybe you meant: {}" - msgstr " * おそらく: {}" - --#: dnf/base.py:2610 -+#: dnf/base.py:2624 - msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" --msgstr "ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" -+msgstr "" -+"ローカルリポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありま" -+"せん" - --#: dnf/base.py:2613 -+#: dnf/base.py:2627 - msgid "Some packages from local repository have incorrect checksum" --msgstr "ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" -+msgstr "" -+"ローカルリポジトリーのいくつかのパッケージのチェックサムは正しくありません" - --#: dnf/base.py:2616 -+#: dnf/base.py:2630 - msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" --msgstr "リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" -+msgstr "" -+"リポジトリー \"{}\" のパッケージ \"{}\" のチェックサムは正しくありません" - --#: dnf/base.py:2619 -+#: dnf/base.py:2633 - msgid "" - "Some packages have invalid cache, but cannot be downloaded due to \"--" - "cacheonly\" option" --msgstr "いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプションによりダウンロードできません" -+msgstr "" -+"いくつかのパッケージには無効なキャッシュがありますが、\"--cacheonly\" オプ" -+"ションによりダウンロードできません" - --#: dnf/base.py:2637 dnf/base.py:2657 -+#: dnf/base.py:2651 dnf/base.py:2671 - msgid "No match for argument" - msgstr "一致した引数がありません" - --#: dnf/base.py:2645 dnf/base.py:2665 -+#: dnf/base.py:2659 dnf/base.py:2679 - msgid "All matches were filtered out by exclude filtering for argument" --msgstr "すべての検索結果は引数の除外フィルタリングに一致しません(filter out)" -+msgstr "すべての検索結果は引数の除外フィルタリングに一致しません (filter out)" - --#: dnf/base.py:2647 -+#: dnf/base.py:2661 - msgid "All matches were filtered out by modular filtering for argument" --msgstr "すべての検出結果は引数のモジュラーフィルタリングに一致しません(filter out)" -+msgstr "" -+"すべての検出結果は引数のモジュラーフィルタリングに一致しません (filter out)" - --#: dnf/base.py:2663 -+#: dnf/base.py:2677 - msgid "All matches were installed from a different repository for argument" --msgstr "すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" -+msgstr "" -+"すべての検索結果は引数に対し異なるレポジトリからインストールされたものです" - --#: dnf/base.py:2710 -+#: dnf/base.py:2724 - #, python-format - msgid "Package %s is already installed." - msgstr "パッケージ %s は既にインストールされています。" -@@ -553,7 +578,7 @@ msgstr "パッケージ %s は既にインストールされています。" - msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" - msgstr "環境変数の予期しない値: DNF_DISABLE_ALIASES=%s" - --#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 -+#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 - #, python-format - msgid "Parsing file \"%s\" failed: %s" - msgstr "ファイル \"%s\" の解析に失敗しました: %s" -@@ -593,19 +618,24 @@ msgstr " ビルド : %s (日時: %s)" - msgid "" - "The operation would result in switching of module '{0}' stream '{1}' to " - "stream '{2}'" --msgstr "オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと切り替える結果となります" -+msgstr "" -+"オペレーションは、モジュール '{0}' ストリーム '{1}' を ストリーム '{2}' へと" -+"切り替える結果となります" - - #: dnf/cli/cli.py:173 --#, fuzzy, python-brace-format --#| msgid "" --#| "It is not possible to switch enabled streams of a module.\n" --#| "It is recommended to remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." -+#, python-brace-format - msgid "" --"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" --"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." -+"It is not possible to switch enabled streams of a module unless explicitly " -+"enabled via configuration option module_stream_switch.\n" -+"It is recommended to rather remove all installed content from the module, " -+"and reset the module using '{prog} module reset ' command. " -+"After you reset the module, you can install the other stream." - msgstr "" --"モジュールの有効なストリームを切り替えることはできません。\n" --"モジュールからインストールされた全てのコンテンツを削除し、 '{prog} module reset ' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。" -+"設定オプション module_stream_switch から明示的に有効化されていない限り、モ" -+"ジュールの有効なストリームを切り替えることはできません。\n" -+"モジュールからインストールされた全てのコンテンツを削除し、'{prog} module " -+"reset ' コマンドを使用してリセットすることが推奨されます。モ" -+"ジュールのリセット後、他のストリームをインストール可能です。" - - #: dnf/cli/cli.py:212 - #, python-brace-format -@@ -617,7 +647,9 @@ msgstr "{prog} はトランザクションでパッケージのダウンロー - msgid "" - "{prog} will only download packages, install gpg keys, and check the " - "transaction." --msgstr "{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションのチェックのみ行います。" -+msgstr "" -+"{prog} はパッケージのダウンロード、gpgキーのインストール、トランザクションの" -+"チェックのみ行います。" - - #: dnf/cli/cli.py:219 - msgid "Operation aborted." -@@ -653,12 +685,12 @@ msgstr "パッケージの廃止" - - #: dnf/cli/cli.py:399 - msgid "No packages marked for distribution synchronization." --msgstr "ディストリビューション同期対象のパッケージがありません" -+msgstr "ディストリビューション同期対象のパッケージがありません。" - - #: dnf/cli/cli.py:425 dnf/cli/commands/group.py:395 - #, python-format - msgid "No package %s available." --msgstr "利用可能なパッケージ %s がありません。" -+msgstr "利用可能なパッケージ %s はありません。" - - #: dnf/cli/cli.py:434 - msgid "No packages marked for downgrade." -@@ -708,52 +740,59 @@ msgstr "一致するリポジトリーがありません: %s" - - #: dnf/cli/cli.py:719 - msgid "" --"This command has to be run with superuser privileges (under the root user on" --" most systems)." --msgstr "このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しなければいけません。" -+"This command has to be run with superuser privileges (under the root user on " -+"most systems)." -+msgstr "" -+"このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しな" -+"ければいけません。" - - #: dnf/cli/cli.py:749 - #, python-format - msgid "No such command: %s. Please use %s --help" --msgstr "そのようなコマンドはありません: %s. %s --help を使用してください。" -+msgstr "そのようなコマンドはありません: %s. %s --help を使用してください" - - #: dnf/cli/cli.py:752 - #, 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)'\"" -+msgstr "" -+"{PROG} プラグインコマンドを実行できません、試してください: \"{prog} install " -+"'dnf-command(%s)'\"" - - #: dnf/cli/cli.py:756 - #, python-brace-format - msgid "" - "It could be a {prog} plugin command, but loading of plugins is currently " - "disabled." --msgstr "{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっているようです。" -+msgstr "" -+"{prog} プラグインコマンドを実行できません、プラグインのロードが現在無効になっ" -+"ているようです。" - - #: dnf/cli/cli.py:814 - msgid "" - "--destdir or --downloaddir must be used with --downloadonly or download or " - "system-upgrade command." - msgstr "" --"--destdir または --downloaddir は、--downloadonly、download あるいは system-upgrade " --"コマンドと共に使用する必要があります。" -+"--destdir または --downloaddir は、--downloadonly、download あるいは system-" -+"upgrade コマンドと共に使用する必要があります。" - - #: dnf/cli/cli.py:820 - msgid "" - "--enable, --set-enabled and --disable, --set-disabled must be used with " - "config-manager command." - msgstr "" --"--enable と --set-enabled および --disable と --set-disabled は、config-manager " --"コマンドと共に使用しなければなりません。" -+"--enable と --set-enabled および --disable と --set-disabled は、config-" -+"manager コマンドと共に使用しなければなりません。" - - #: dnf/cli/cli.py:902 - msgid "" - "Warning: Enforcing GPG signature check globally as per active RPM security " - "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" - msgstr "" --"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバルに強制します " --"(このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' を参照してください)" -+"警告: アクティブな RPM セキュリティーポリシーにより、GPG 署名の確認をグローバ" -+"ルに強制します (このメッセージをスケルチするには、dnf.conf(5) の 'gpgcheck' " -+"を参照してください)" - - #: dnf/cli/cli.py:922 - msgid "Config file \"{}\" does not exist" -@@ -763,7 +802,9 @@ msgstr "設定ファイル \"{}\" は存在しません" - msgid "" - "Unable to detect release version (use '--releasever' to specify release " - "version)" --msgstr "リリースバージョンを検出できません (リリースバージョンを指定するには '--releasever' を使用してください)" -+msgstr "" -+"リリースバージョンを検出できません (リリースバージョンを指定するには '--" -+"releasever' を使用してください)" - - #: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 - msgid "argument {}: not allowed with argument {}" -@@ -798,13 +839,16 @@ msgstr "問題を診断するには実行してみてください: '%s'." - #: dnf/cli/commands/__init__.py:40 - #, python-format - msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." --msgstr "RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる可能性があります。" -+msgstr "" -+"RPMDB を破損させたかもしれませんが、'%s' を実行することでこの問題を解決できる" -+"可能性があります。" - - #: dnf/cli/commands/__init__.py:44 - #, python-brace-format - msgid "" - "You have enabled checking of packages via GPG keys. This is a good thing.\n" --"However, you do not have any GPG public keys installed. You need to download\n" -+"However, you do not have any GPG public keys installed. You need to " -+"download\n" - "the keys for packages you wish to install and install them.\n" - "You can do that by running the command:\n" - " rpm --import public.gpg.key\n" -@@ -823,11 +867,13 @@ msgstr "" - " rpm --import public.gpg.key\n" - "\n" - "\n" --"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用し\n" -+"代わりにレポジトリーセクションの 'gpgkey' オプションにあるレポジトリーを使用" -+"し\n" - "キーのurlを特定したのち、 {prog} がインストールされます。\n" - "\n" - "\n" --"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトしてください。" -+"詳細情報はディストリビューションまたはパッケージプロバイダーにコンタクトして" -+"ください。" - - #: dnf/cli/commands/__init__.py:71 - #, python-format -@@ -1062,7 +1108,8 @@ msgstr "一致するエイリアスがありません: %s" - #: dnf/cli/commands/autoremove.py:41 - msgid "" - "remove all unneeded packages that were originally installed as dependencies" --msgstr "当初は依存関係としてインストールされた不要なパッケージをすべて削除します" -+msgstr "" -+"当初は依存関係としてインストールされた不要なパッケージをすべて削除します" - - #: dnf/cli/commands/autoremove.py:46 dnf/cli/commands/remove.py:59 - msgid "Package to remove" -@@ -1141,12 +1188,12 @@ msgid "Waiting for process with pid %d to finish." - msgstr "pid %d のプロセスが終了するのを待ちます。" - - #: dnf/cli/commands/deplist.py:32 --#, fuzzy --#| msgid "List package's dependencies and what packages provide them" - msgid "" - "[deprecated, use repoquery --deplist] List package's dependencies and what " - "packages provide them" --msgstr "パッケージの依存関係とこれを提供するパッケージがどれかを一覧表示します" -+msgstr "" -+"[非推奨、epoquery --deplist を使用] パッケージの依存関係とこれを提供するパッ" -+"ケージがどれかを一覧表示します" - - #: dnf/cli/commands/distrosync.py:32 - msgid "synchronize installed packages to the latest available versions" -@@ -1236,7 +1283,7 @@ msgstr "グループサブコマンドの引数" - #: dnf/cli/commands/group.py:343 - #, python-format - msgid "Invalid groups sub-command, use: %s." --msgstr "groups のサブコマンドが無効です: %s. を使用します" -+msgstr "groups のサブコマンドが無効です: %s を使用します。" - - #: dnf/cli/commands/group.py:398 - msgid "Unable to find a mandatory group package." -@@ -1248,25 +1295,31 @@ msgstr "トランザクション履歴を表示、または使用します" - - #: dnf/cli/commands/history.py:66 - msgid "For the store command, file path to store the transaction to" --msgstr "" -+msgstr "store コマンドの場合は、トランザクションを保存するファイルパス" - - #: dnf/cli/commands/history.py:68 - msgid "" --"For the replay command, don't check for installed packages matching those in" --" transaction" -+"For the replay command, don't check for installed packages matching those in " -+"transaction" - msgstr "" -+"replay コマンドの場合は、トランザクション内のパッケージに一致するインストール" -+"済みパッケージを確認しない" - - #: dnf/cli/commands/history.py:71 - msgid "" - "For the replay command, don't check for extra packages pulled into the " - "transaction" - msgstr "" -+"replay コマンドの場合は、トランザクションにプルされた追加パッケージを確認しな" -+"い" - - #: dnf/cli/commands/history.py:74 - msgid "" --"For the replay command, skip packages that are not available or have missing" --" dependencies" -+"For the replay command, skip packages that are not available or have missing " -+"dependencies" - msgstr "" -+"replay コマンドの場合は、利用できないパッケージや、依存関係が不足しているパッ" -+"ケージをスキップ" - - #: dnf/cli/commands/history.py:94 - msgid "" -@@ -1277,16 +1330,12 @@ msgstr "" - "'{}' は 1 つのトランザクション ID またはパッケージ名が必要です。" - - #: dnf/cli/commands/history.py:101 --#, fuzzy --#| msgid "No transaction ID or package name given." - msgid "No transaction file name given." --msgstr "トランザクション ID、またはパッケージ名が指定されていません。" -+msgstr "トランザクションファイル名が指定されていません。" - - #: dnf/cli/commands/history.py:103 --#, fuzzy --#| msgid "Failed to remove transaction file %s" - msgid "More than one argument given as transaction file name." --msgstr "トランザクションファイル %s の削除に失敗しました" -+msgstr "トランザクションファイル名として指定された複数の引数。" - - #: dnf/cli/commands/history.py:122 dnf/cli/commands/history.py:130 - msgid "No transaction ID or package name given." -@@ -1300,26 +1349,29 @@ msgstr "履歴 DB にアクセスできません: %s" - #: dnf/cli/commands/history.py:151 - #, python-format - msgid "" --"Cannot undo transaction %s, doing so would result in an inconsistent package" --" database." --msgstr "トランザクション %s を取り消すことはできません。取り消すことで、パッケージデータベースに矛盾が生じます。" -+"Cannot undo transaction %s, doing so would result in an inconsistent package " -+"database." -+msgstr "" -+"トランザクション %s を取り消すことはできません。取り消すことで、パッケージ" -+"データベースに矛盾が生じます。" - - #: dnf/cli/commands/history.py:156 - #, python-format - msgid "" - "Cannot rollback transaction %s, doing so would result in an inconsistent " - "package database." --msgstr "トランザクション %s をロールバックすることはできません。ロールバックすることで、パッケージデータベースに矛盾が生じます。" -+msgstr "" -+"トランザクション %s をロールバックすることはできません。ロールバックすること" -+"で、パッケージデータベースに矛盾が生じます。" - - #: dnf/cli/commands/history.py:175 - msgid "No transaction ID given" - msgstr "トランザクション ID は指定されていません" - - #: dnf/cli/commands/history.py:179 --#, fuzzy, python-brace-format --#| msgid "TransactionItem not found for key: {}" -+#, python-brace-format - msgid "Transaction ID \"{0}\" not found." --msgstr "TransactionItemが見つかりません鍵: {}" -+msgstr "トランザクション ID \"{0}\" が見つかりません。" - - #: dnf/cli/commands/history.py:185 - msgid "Found more than one transaction ID!" -@@ -1361,27 +1413,23 @@ msgstr "パッケージ '{}' を操作するトランザクションが見つか - - #: dnf/cli/commands/history.py:357 - msgid "{} exists, overwrite?" --msgstr "" -+msgstr "{} は存在します。上書きしますか?" - - #: dnf/cli/commands/history.py:360 - msgid "Not overwriting {}, exiting." --msgstr "" -+msgstr "{} は存在するため上書きしません。" - - #: dnf/cli/commands/history.py:367 --#, fuzzy --#| msgid "Transaction failed" - msgid "Transaction saved to {}." --msgstr "トランザクションが失敗しました" -+msgstr "{} に保存されているトランザクション。" - - #: dnf/cli/commands/history.py:370 --#, fuzzy --#| msgid "Errors occurred during transaction." - msgid "Error storing transaction: {}" --msgstr "トランザクション中にエラーが発生しました。" -+msgstr "トランザクションの保存エラー: {}" - - #: dnf/cli/commands/history.py:386 - msgid "Warning, the following problems occurred while running a transaction:" --msgstr "" -+msgstr "警告: トランザクションの実行中に以下の問題が発生しました:" - - #: dnf/cli/commands/install.py:47 - msgid "install a package or packages on your system" -@@ -1415,7 +1463,9 @@ msgstr "すべてのメタデータファイルのキャッシュファイルを - - #: dnf/cli/commands/mark.py:39 - msgid "mark or unmark installed packages as installed by user." --msgstr "インストール済みパッケージをユーザーがインストールしたとマークするか、またはマークをはずします。" -+msgstr "" -+"インストール済みパッケージをユーザーがインストールしたとマークするか、または" -+"マークをはずします。" - - #: dnf/cli/commands/mark.py:44 - msgid "" -@@ -1454,9 +1504,11 @@ msgstr "パッケージ %s はインストールされていません。" - - #: dnf/cli/commands/module.py:54 - msgid "" --"Only module name, stream, architecture or profile is used. Ignoring unneeded" --" information in argument: '{}'" --msgstr "モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されています。引数: '{}' の不要な情報は無視します" -+"Only module name, stream, architecture or profile is used. Ignoring unneeded " -+"information in argument: '{}'" -+msgstr "" -+"モジュール名、ストリーム、アーキテクチャーまたはプロファイルのみが使用されて" -+"います。引数: '{}' の不要な情報は無視します" - - #: dnf/cli/commands/module.py:80 - msgid "list all module streams, profiles and states" -@@ -1500,7 +1552,7 @@ msgstr "パッケージ {} は複数のモジュールに属しています、 - - #: dnf/cli/commands/module.py:280 - msgid "switch a module to a stream and distrosync rpm packages" --msgstr "" -+msgstr "モジュールをストリームに切り替え、rpm パッケージを distrosync します" - - #: dnf/cli/commands/module.py:302 - msgid "list modular packages" -@@ -1727,7 +1779,9 @@ msgstr "キーワードに一致するパッケージを検索します" - msgid "" - "Query all packages (shorthand for repoquery '*' or repoquery without " - "argument)" --msgstr "すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの repoquery)" -+msgstr "" -+"すべてのパッケージをクエリーします (repoquery '*' の短縮形、または引数なしの " -+"repoquery)" - - #: dnf/cli/commands/repoquery.py:124 - msgid "Query all versions of packages (default)" -@@ -1749,7 +1803,9 @@ msgstr "REQ と競合する結果のみを表示します" - msgid "" - "shows results that requires, suggests, supplements, enhances,or recommends " - "package provides and files REQ" --msgstr "REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推奨する結果を表示します" -+msgstr "" -+"REQ を提供およびファイルするパッケージを必要、提案、補完、機能強化、または推" -+"奨する結果を表示します" - - #: dnf/cli/commands/repoquery.py:139 - msgid "show only results that obsolete REQ" -@@ -1791,7 +1847,9 @@ msgstr "指定されたとおりに依存関係を確認します。--alldeps - msgid "" - "used with --whatrequires, and --requires --resolve, query packages " - "recursively." --msgstr "--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的にクエリーします。" -+msgstr "" -+"--whatrequires および --requires --resolve と共に使用し、パッケージを再帰的に" -+"クエリーします。" - - #: dnf/cli/commands/repoquery.py:166 - msgid "show a list of all dependencies and what packages provide them" -@@ -1813,7 +1871,9 @@ msgstr "対応するソース RPM で操作します" - msgid "" - "show N latest packages for a given name.arch (or latest but N if N is " - "negative)" --msgstr "特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合は N 以外の最新のもの)" -+msgstr "" -+"特定の name.arch に最新パッケージ N を表示します (または N がネガティブな場合" -+"は N 以外の最新のもの)" - - #: dnf/cli/commands/repoquery.py:177 - msgid "list also packages of inactive module streams" -@@ -1838,9 +1898,11 @@ msgstr "パッケージの changelogs を表示します" - #: dnf/cli/commands/repoquery.py:194 - #, python-format, python-brace-format - msgid "" --"display format for listing packages: \"%%{name} %%{version} ...\", use " --"--querytags to view full tag list" -+"display format for listing packages: \"%%{name} %%{version} ...\", use --" -+"querytags to view full tag list" - msgstr "" -+"パッケージを一覧表示するための形式の表示: \"%%{name} %%{version} ...\"。--" -+"querytags を指定して完全なタグリストを表示" - - #: dnf/cli/commands/repoquery.py:198 - msgid "show available tags to use with --queryformat" -@@ -1851,19 +1913,24 @@ msgid "" - "use name-epoch:version-release.architecture format for displaying found " - "packages (default)" - msgstr "" --"見つかったパッケージを表示するには name-epoch:version-release.architecture 形式を使用します (デフォルト)" -+"見つかったパッケージを表示するには name-epoch:version-release.architecture 形" -+"式を使用します (デフォルト)" - - #: dnf/cli/commands/repoquery.py:205 - msgid "" - "use name-version-release format for displaying found packages (rpm query " - "default)" --msgstr "見つかったパッケージを表示するには name-version-release 形式を使用します (rpm クエリーデフォルト)" -+msgstr "" -+"見つかったパッケージを表示するには name-version-release 形式を使用します " -+"(rpm クエリーデフォルト)" - - #: dnf/cli/commands/repoquery.py:211 - msgid "" - "use epoch:name-version-release.architecture format for displaying found " - "packages" --msgstr "見つかったパッケージを表示するには epoch:name-version-release.architecture 形式を使用します" -+msgstr "" -+"見つかったパッケージを表示するには epoch:name-version-release.architecture 形" -+"式を使用します" - - #: dnf/cli/commands/repoquery.py:214 - msgid "Display in which comps groups are presented selected packages" -@@ -1879,7 +1946,8 @@ msgstr "インストール済みの installonly パッケージへのクエリ - - #: dnf/cli/commands/repoquery.py:228 - msgid "limit the query to installed packages with unsatisfied dependencies" --msgstr "未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" -+msgstr "" -+"未充足な依存関係があるインストール済みパッケージへのクエリーを制限します" - - #: dnf/cli/commands/repoquery.py:230 - msgid "show a location from where packages can be downloaded" -@@ -1893,7 +1961,8 @@ msgstr "パッケージが競合する機能を表示します。" - msgid "" - "Display capabilities that the package can depend on, enhance, recommend, " - "suggest, and supplement." --msgstr "パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" -+msgstr "" -+"パッケージが依存、機能強化、推奨、提案、および補完できる機能を表示します。" - - #: dnf/cli/commands/repoquery.py:236 - msgid "Display capabilities that the package can enhance." -@@ -1918,9 +1987,10 @@ msgid "" - "running %%pre and %%post scriptlets. If the package is installed display " - "capabilities that is depends for %%pre, %%post, %%preun and %%postun." - msgstr "" --"このパッケージがインストールされていない場合、 %%pre と %%post " --"スクリプトレット実行に依存するケイパビリティを表示します。このパッケージがインストールされている場合、 %%pre, %%post, %%preun と" --" %%postun に依存するケイパビリティを表示します。" -+"このパッケージがインストールされていない場合、 %%pre と %%post スクリプトレッ" -+"ト実行に依存するケイパビリティを表示します。このパッケージがインストールされ" -+"ている場合、 %%pre, %%post, %%preun と %%postun に依存するケイパビリティを表" -+"示します。" - - #: dnf/cli/commands/repoquery.py:243 - msgid "Display capabilities that the package suggests." -@@ -1947,7 +2017,9 @@ msgstr "利用可能なリポジトリーに存在しないパッケージのみ - msgid "" - "Display only packages that provide an upgrade for some already installed " - "package." --msgstr "インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを表示します。" -+msgstr "" -+"インストール済みのパッケージの一部にアップグレードを提供するパッケージのみを" -+"表示します。" - - #: dnf/cli/commands/repoquery.py:256 - #, python-brace-format -@@ -1969,26 +2041,28 @@ msgstr "検索するための鍵" - - #: dnf/cli/commands/repoquery.py:295 - msgid "" --"Option '--resolve' has to be used together with one of the '--conflicts', '" --"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" -+"Option '--resolve' has to be used together with one of the '--conflicts', '--" -+"depends', '--enhances', '--provides', '--recommends', '--requires', '--" - "requires-pre', '--suggests' or '--supplements' options" - msgstr "" --"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--provides'、'--" --"recommends'、'--requires'、'--requires-pre'、'--suggests' または '--supplements' " --"オプションのいずれか 1 つと使用する必要があります。" -+"オプションの '--resolve' は、'--conflicts'、'--depends'、'--enhances'、'--" -+"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' また" -+"は '--supplements' オプションのいずれか 1 つと使用する必要があります" - - #: dnf/cli/commands/repoquery.py:305 - msgid "" - "Option '--recursive' has to be used with '--whatrequires ' (optionally " --"with '--alldeps', but not with '--exactdeps'), or with '--requires " --"--resolve'" -+"with '--alldeps', but not with '--exactdeps'), or with '--requires --" -+"resolve'" - msgstr "" --"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--exactdeps' ではなく、'" --"--alldeps' と共に使用) または '--requires --resolve' と共に使用する必要があります。" -+"オプションの '--recursive' は、'--whatrequires ' (オプションでは '--" -+"exactdeps' ではなく、'--alldeps' と共に使用) または '--requires --" -+"resolve' と共に使用する必要があります" - - #: dnf/cli/commands/repoquery.py:312 - msgid "argument {} requires --whatrequires or --whatdepends option" --msgstr "引数 {} は --whatrequires または --whatdepends オプションを必要とします" -+msgstr "" -+"引数 {} は --whatrequires または --whatdepends オプションを必要とします" - - #: dnf/cli/commands/repoquery.py:344 - msgid "Package {} contains no files" -@@ -1998,13 +2072,17 @@ msgstr "パッケージ {} はファイルを含んでいません" - #, python-brace-format - msgid "" - "No valid switch specified\n" --"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "description:\n" - " For the given packages print a tree of thepackages." - msgstr "" - "正規のスイッチが特定されません\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" - "説明:\n" - " 与えられたパッケージではパッケージのツリーを表示します。" -@@ -2044,8 +2122,7 @@ msgstr "説明" - msgid "URL" - msgstr "URL" - --#. TRANSLATORS: separator used between package attributes (eg. Name & Summary --#. & URL) -+#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) - #: dnf/cli/commands/search.py:76 - msgid " & " - msgstr " & " -@@ -2121,7 +2198,8 @@ msgid "" - " disable: disable repositories. option = repository id" - msgstr "" - "{} arg [オプション]\n" --" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | glob]\n" -+" 一覧: リポジトリーとその状態を一覧表示します。オプション = [all | id | " -+"glob]\n" - " 有効化: リポジトリーの有効化。オプション = リポジトリー id\n" - " 無効化: リポジトリーの無効化。オプション = リポジトリー id" - -@@ -2179,7 +2257,8 @@ msgstr "" - "ヘルプ ヘルプの印刷\n" - "リポジトリー (または repo) リポジトリーの有効化、無効化、または一覧表示\n" - "resolvedep トランザクションセットの解決\n" --"トランザクション (または ts) トランザクションセットの一覧表示、再設定、または実行\n" -+"トランザクション (または ts) トランザクションセットの一覧表示、再設定、" -+"または実行\n" - "実行 トランザクションセットの解決および実行\n" - "終了 (または 中止) シェルの終了" - -@@ -2199,7 +2278,9 @@ msgstr "シェルを終了します" - #: dnf/cli/commands/swap.py:35 - #, python-brace-format - msgid "run an interactive {prog} mod for remove and install one spec" --msgstr "一つのspecを削除またはインストールするためインタラクティブ {prog} モジュールを実行" -+msgstr "" -+"一つのspecを削除またはインストールするためインタラクティブ {prog} モジュール" -+"を実行" - - #: dnf/cli/commands/swap.py:40 - msgid "The specs that will be removed" -@@ -2251,13 +2332,16 @@ msgstr "インストール済みパッケージの新しいバージョンに関 - - #: dnf/cli/commands/updateinfo.py:80 - msgid "advisories about equal and older versions of installed packages" --msgstr "インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" -+msgstr "" -+"インストール済みパッケージの同じバージョンおよび古いバージョンに関する勧告" - - #: dnf/cli/commands/updateinfo.py:83 - msgid "" - "advisories about newer versions of those installed packages for which a " - "newer version is available" --msgstr "最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する勧告" -+msgstr "" -+"最新バージョンが利用可能なインストール済みパッケージの最新バージョンに関する" -+"勧告" - - #: dnf/cli/commands/updateinfo.py:87 - msgid "advisories about any versions of installed packages" -@@ -2398,7 +2482,8 @@ msgstr "正" - - #: dnf/cli/commands/upgrade.py:40 - msgid "upgrade a package or packages on your system" --msgstr "システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" -+msgstr "" -+"システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします" - - #: dnf/cli/commands/upgrade.py:44 - msgid "Package to upgrade" -@@ -2408,7 +2493,9 @@ msgstr "アップグレードするパッケージ" - msgid "" - "upgrade, but only 'newest' package match which fixes a problem that affects " - "your system" --msgstr "システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします" -+msgstr "" -+"システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアッ" -+"プグレードします" - - #: dnf/cli/main.py:88 - msgid "Terminated." -@@ -2420,23 +2507,29 @@ msgstr "現在のディレクトリーには読み取り/実行権限があり - - #: dnf/cli/main.py:135 - msgid "try to add '{}' to command line to replace conflicting packages" --msgstr "競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてください" -+msgstr "" -+"競合するパッケージを置き換えるには、コマンドラインに '{}' を追加してみてくだ" -+"さい" - - #: dnf/cli/main.py:139 - msgid "try to add '{}' to skip uninstallable packages" --msgstr "インストール不可のパッケージをスキップするには、'{}' を追加してみてください" -+msgstr "" -+"インストール不可のパッケージをスキップするには、'{}' を追加してみてください" - - #: dnf/cli/main.py:142 - msgid " or '{}' to skip uninstallable packages" --msgstr " または、'{}' を追加して、インストール不可のパッケージをスキップしてください" -+msgstr "" -+" または、'{}' を追加して、インストール不可のパッケージをスキップしてください" - - #: dnf/cli/main.py:147 - msgid "try to add '{}' to use not only best candidate packages" --msgstr "最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" -+msgstr "" -+"最適候補のパッケージのみを使用しないためには、'{}' を追加してみてください" - - #: dnf/cli/main.py:150 - msgid " or '{}' to use not only best candidate packages" --msgstr " または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" -+msgstr "" -+" または、'{}' を追加して、最適候補のパッケージのみを使用しないでください" - - #: dnf/cli/main.py:167 - msgid "Dependencies resolved." -@@ -2528,7 +2621,9 @@ msgstr "依存関係を解決するために、インストール済みパッケ - - #: dnf/cli/option_parser.py:221 - msgid "try the best available package versions in transactions." --msgstr "トランザクションにおいて利用可能な最適なパッケージバージョンを試してください。" -+msgstr "" -+"トランザクションにおいて利用可能な最適なパッケージバージョンを試してくださ" -+"い。" - - #: dnf/cli/option_parser.py:223 - msgid "do not limit the transaction to the best candidate" -@@ -2564,8 +2659,8 @@ msgid "" - "enables {prog}'s obsoletes processing logic for upgrade or display " - "capabilities that the package obsoletes for info, list and repoquery" - msgstr "" --"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを表示するため、 {prog} " --"の旧プロセスロジックを有効化" -+"アップグレードまたは、info, list, repoquery で旧パッケージのケイパビリティを" -+"表示するため、 {prog} の旧プロセスロジックを有効化" - - #: dnf/cli/option_parser.py:251 - msgid "debugging output level for rpm" -@@ -2583,19 +2678,25 @@ msgstr "すべての質問に「いいえ」(no) と自動的に答えます" - msgid "" - "Enable additional repositories. List option. Supports globs, can be " - "specified multiple times." --msgstr "追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能です。" -+msgstr "" -+"追加レポジトリを有効化、オプションのリスト、globsのサポートは何度でも指定可能" -+"です。" - - #: dnf/cli/option_parser.py:266 - msgid "" --"Disable repositories. List option. Supports globs, can be specified multiple" --" times." --msgstr "追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能です。" -+"Disable repositories. List option. Supports globs, can be specified multiple " -+"times." -+msgstr "" -+"追加レポジトリを無効化、オプションのリスト、globsのサポートは何度でも指定可能" -+"です。" - - #: dnf/cli/option_parser.py:270 - msgid "" - "enable just specific repositories by an id or a glob, can be specified " - "multiple times" --msgstr "id または glob により特定のリポジトリーだけを有効にします。複数回指定することが可能です" -+msgstr "" -+"id または glob により特定のリポジトリーだけを有効にします。複数回指定すること" -+"が可能です" - - #: dnf/cli/option_parser.py:275 - msgid "enable repos with config-manager command (automatically saves)" -@@ -2617,7 +2718,9 @@ msgstr "excludepkgs を無効にします" - msgid "" - "label and path to an additional repository to use (same path as in a " - "baseurl), can be specified multiple times." --msgstr "利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能です。" -+msgstr "" -+"利用する追加レポジトリ(baseurlと同じパス)のラベルとパスは何度でも指定可能で" -+"す。" - - #: dnf/cli/option_parser.py:297 - msgid "disable removal of dependencies that are no longer used" -@@ -2697,7 +2800,7 @@ msgstr "主要コマンドの一覧:" - - #: dnf/cli/option_parser.py:376 - msgid "List of Plugin Commands:" --msgstr "プラグインコマンドの一覧" -+msgstr "プラグインコマンドの一覧:" - - #: dnf/cli/option_parser.py:413 - #, python-format -@@ -2928,7 +3031,7 @@ msgstr "Repo : %s" - - #: dnf/cli/output.py:857 - msgid "Description : " --msgstr "説明 : " -+msgstr "説明: " - - #: dnf/cli/output.py:861 - #, python-format -@@ -3470,10 +3573,6 @@ msgstr " 開始しました : %s - %s 秒経過" - msgid " State : %s" - msgstr " 状態 : %s" - --#: dnf/comps.py:104 --msgid "skipping." --msgstr "スキップします。" -- - #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 - #, python-format - msgid "Module or Group '%s' is not installed." -@@ -3490,16 +3589,14 @@ msgid "Module or Group '%s' does not exist." - msgstr "モジュールまたはグループ '%s' は存在しません。" - - #: dnf/comps.py:599 --#, fuzzy, python-format --#| msgid "Environment '%s' is not installed." -+#, python-format - msgid "Environment id '%s' does not exist." --msgstr "環境 '%s' はインストールされていません。" -+msgstr "環境 id '%s' は存在しません。" - - #: dnf/comps.py:622 dnf/transaction_sr.py:477 dnf/transaction_sr.py:487 --#, fuzzy, python-format --#| msgid "Environment '%s' is not installed." -+#, python-format - msgid "Environment id '%s' is not installed." --msgstr "環境 '%s' はインストールされていません。" -+msgstr "環境 id '%s' はインストールされていません。" - - #: dnf/comps.py:639 - #, python-format -@@ -3512,10 +3609,9 @@ msgid "Environment '%s' is not available." - msgstr "環境 '%s' は利用不可です。" - - #: dnf/comps.py:673 --#, fuzzy, python-format --#| msgid "Group_id '%s' does not exist." -+#, python-format - msgid "Group id '%s' does not exist." --msgstr "Group_id '%s' は存在しません。" -+msgstr "グループ id '%s' は存在しません。" - - #: dnf/conf/config.py:136 - #, python-format -@@ -3523,16 +3619,19 @@ msgid "Error parsing '%s': %s" - msgstr "'%s' の解析中にエラーが発生しました: %s" - - #: dnf/conf/config.py:151 --#, fuzzy, python-format --#| msgid "Unknown configuration value: %s=%s in %s; %s" -+#, python-format - msgid "Invalid configuration value: %s=%s in %s; %s" --msgstr "不明な設定値: %s=%s in %s; %s" -+msgstr "正しくない設定値: %s=%s in %s; %s" -+ -+#: dnf/conf/config.py:194 -+msgid "Cannot set \"{}\" to \"{}\": {}" -+msgstr "\"{}\" を \"{}\": {} に設定できません。" - --#: dnf/conf/config.py:226 -+#: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" - msgstr "cachedir を設定できませんでした: {}" - --#: dnf/conf/config.py:275 -+#: dnf/conf/config.py:293 - msgid "" - "Configuration file URL \"{}\" could not be downloaded:\n" - " {}" -@@ -3540,31 +3639,31 @@ msgstr "" - "設定ファイル URL \"{}\" はダウンロードできませんでした:\n" - " {}" - --#: dnf/conf/config.py:355 dnf/conf/config.py:391 -+#: dnf/conf/config.py:373 dnf/conf/config.py:409 - #, python-format - msgid "Unknown configuration option: %s = %s" - msgstr "不明な設定オプション: %s = %s" - --#: dnf/conf/config.py:372 -+#: dnf/conf/config.py:390 - #, python-format - msgid "Error parsing --setopt with key '%s', value '%s': %s" - msgstr "鍵 '%s'、値 '%s' の --setopt を解析中にエラーが発生しました: %s" - --#: dnf/conf/config.py:380 -+#: dnf/conf/config.py:398 - #, python-format - msgid "Main config did not have a %s attr. before setopt" - msgstr "主要設定には setopt の前に %s attr. がありませんでした" - --#: dnf/conf/config.py:427 dnf/conf/config.py:445 -+#: dnf/conf/config.py:445 dnf/conf/config.py:463 - msgid "Incorrect or unknown \"{}\": {}" - msgstr "誤りかまたは不明な \"{}\": {}" - --#: dnf/conf/config.py:501 -+#: dnf/conf/config.py:519 - #, python-format - msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" - msgstr "鍵 '%s.%s'、値 '%s' の --setopt を解析中にエラーが発生しました: %s" - --#: dnf/conf/config.py:504 -+#: dnf/conf/config.py:522 - #, python-format - msgid "Repo %s did not have a %s attr. before setopt" - msgstr "repo %s には setopt の前に %s attr. がありませんでした" -@@ -3572,7 +3671,7 @@ msgstr "repo %s には setopt の前に %s attr. がありませんでした" - #: dnf/conf/read.py:60 - #, python-format - msgid "Warning: failed loading '%s', skipping." --msgstr "警告: '%s' のロードに失敗、スキップします。" -+msgstr "警告: '%s' のロードに失敗、スキップします。" - - #: dnf/conf/read.py:72 - msgid "Bad id for repo: {} ({}), byte = {} {}" -@@ -3610,31 +3709,33 @@ msgstr "repo %s: 0x%s はインポート済みです" - #: dnf/crypto.py:115 - #, python-format - msgid "repo %s: imported key 0x%s." --msgstr "repo %s: インポート済みの鍵 0x%s。" -+msgstr "repo %s: インポート済みのキー 0x%s。" - - #: dnf/crypto.py:145 - msgid "Verified using DNS record with DNSSEC signature." --msgstr "" -+msgstr "DNSSEC 署名付きの DNS レコードを使用して検証しました。" - - #: dnf/crypto.py:147 - msgid "NOT verified using DNS record." --msgstr "" -+msgstr "DNS レコードを使用して検証されませんでした。" - - #: dnf/crypto.py:184 - #, python-format - msgid "retrieving repo key for %s unencrypted from %s" --msgstr "" -+msgstr "%s から暗号化されていない %s の repo キーを取得しています" - - #: dnf/db/group.py:302 - msgid "" - "No available modular metadata for modular package '{}', it cannot be " - "installed on the system" --msgstr "モジュラーパッケージ '{}' のモジュラーメタデータは利用不可です、システムにインストールはできません" -+msgstr "" -+"モジュラーパッケージ '{}' のモジュラーメタデータは利用不可です、システムにイ" -+"ンストールはできません" - - #: dnf/db/group.py:353 - #, python-format - msgid "An rpm exception occurred: %s" --msgstr "" -+msgstr "rpm 例外が発生しました: %s" - - #: dnf/db/group.py:355 - msgid "No available modular metadata for modular package" -@@ -3645,35 +3746,33 @@ msgstr "モジュラーパッケージ のモジュラーメタデータは利 - msgid "Will not install a source rpm package (%s)." - msgstr "ソース rpm パッケージ (%s) をインストールしません。" - --#: dnf/dnssec.py:168 --#, fuzzy --#| msgid "" --#| "Configuration option 'gpgkey_dns_verification' requires libunbound ({})" -+#: dnf/dnssec.py:171 - msgid "" - "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" --msgstr "設定オプション 'gpgkey_dns_verification' は libunbound ({}) が必要です" -+msgstr "" -+"設定オプション 'gpgkey_dns_verification' は python3-unbound ({}) が必要です" - --#: dnf/dnssec.py:239 -+#: dnf/dnssec.py:243 - msgid "DNSSEC extension: Key for user " - msgstr "DNSSEC 拡張: ユーザー用の鍵 " - --#: dnf/dnssec.py:241 -+#: dnf/dnssec.py:245 - msgid "is valid." - msgstr "は有効です。" - --#: dnf/dnssec.py:243 -+#: dnf/dnssec.py:247 - msgid "has unknown status." - msgstr "の状態は不明です。" - --#: dnf/dnssec.py:251 -+#: dnf/dnssec.py:255 - msgid "DNSSEC extension: " - msgstr "DNSSEC 拡張: " - --#: dnf/dnssec.py:283 -+#: dnf/dnssec.py:287 - msgid "Testing already imported keys for their validity." - msgstr "すでにインポートされた鍵の有効性をテストします。" - --#: dnf/drpm.py:62 dnf/repo.py:268 -+#: dnf/drpm.py:62 dnf/repo.py:267 - #, python-format - msgid "unsupported checksum type: %s" - msgstr "サポートされていないチェックサム形式: %s" -@@ -3715,7 +3814,7 @@ msgid "Modular dependency problem with Defaults:" - msgid_plural "Modular dependency problems with Defaults:" - msgstr[0] "デフォルトのモジュラー依存問題:" - --#: dnf/exceptions.py:131 dnf/module/module_base.py:854 -+#: dnf/exceptions.py:131 dnf/module/module_base.py:857 - msgid "Modular dependency problem:" - msgid_plural "Modular dependency problems:" - msgstr[0] "モジュラーの依存に関する問題:" -@@ -3724,10 +3823,12 @@ msgstr[0] "モジュラーの依存に関する問題:" - #, python-format - msgid "" - "Malformed lock file found: %s.\n" --"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." -+"Ensure no other dnf/yum process is running and remove the lock file manually " -+"or run systemd-tmpfiles --remove dnf.conf." - msgstr "" - "不正な形式のロックファイル: %s 。\n" --"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除するかsystemd-tmpfiles --remove dnf.conf を実行してください。" -+"他のdnf/yum プロセスが実行されていないことを確認し、ロックファイルを手動削除" -+"するかsystemd-tmpfiles --remove dnf.conf を実行してください。" - - #: dnf/module/__init__.py:26 - msgid "Enabling different stream for '{}'." -@@ -3739,7 +3840,8 @@ msgstr "表示するものがありません。" - - #: dnf/module/__init__.py:28 - msgid "Installing newer version of '{}' than specified. Reason: {}" --msgstr "指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" -+msgstr "" -+"指定されたものよりも新しいバージョンの '{}' をインストールします。理由: {}" - - #: dnf/module/__init__.py:29 - msgid "Enabled modules: {}." -@@ -3747,57 +3849,49 @@ msgstr "有効なモジュール: {}." - - #: dnf/module/__init__.py:30 - msgid "No profile specified for '{}', please specify profile." --msgstr "'{}' に指定したプロファイルはありません。プロファイルを指定してください。" -+msgstr "" -+"'{}' に指定したプロファイルはありません。プロファイルを指定してください。" - - #: dnf/module/exceptions.py:27 --#, fuzzy --#| msgid "No profiles for module {}:{}" - msgid "No such module: {}" --msgstr "モジュール {}:{} にプロファイルがありません" -+msgstr "次のようなモジュールはありません: {}" - - #: dnf/module/exceptions.py:33 - msgid "No such stream: {}" --msgstr "" -+msgstr "次のようなストリームはありません: {}" - - #: dnf/module/exceptions.py:39 --#, fuzzy --#| msgid "No profiles for module {}:{}" - msgid "No enabled stream for module: {}" --msgstr "モジュール {}:{} にプロファイルがありません" -+msgstr "次のモジュールに有効化されたストリームはありません: {}" - - #: dnf/module/exceptions.py:46 - msgid "Cannot enable more streams from module '{}' at the same time" --msgstr "" -+msgstr "モジュール '{}' から、さらにストリームを同時に有効にできません" - - #: dnf/module/exceptions.py:52 - msgid "Different stream enabled for module: {}" --msgstr "" -+msgstr "次のモジュールに有効化された異なるストリーム: {}" - - #: dnf/module/exceptions.py:58 - msgid "No such profile: {}" --msgstr "" -+msgstr "次ようなプロファイルはありません: {}" - - #: dnf/module/exceptions.py:64 - msgid "Specified profile not installed for {}" --msgstr "" -+msgstr "指定のプロファイルは次にインストールされていません: {}" - - #: dnf/module/exceptions.py:70 --#, fuzzy --#| msgid "No profile specified for '{}', please specify profile." - msgid "No stream specified for '{}', please specify stream" --msgstr "'{}' に指定したプロファイルはありません。プロファイルを指定してください。" -+msgstr "'{}' に指定したストリームはありません。ストリームを指定してください" - - #: dnf/module/exceptions.py:82 --#, fuzzy --#| msgid "No repositories available" - msgid "No such profile: {}. No profiles available" --msgstr "利用できるリポジトリーがありません" -+msgstr "" -+"次のようなプロファイルはありません: {}。利用できるプロファイルはありません" - - #: dnf/module/exceptions.py:88 --#, fuzzy --#| msgid "No profiles for module {}:{}" - msgid "No profile to remove for '{}'" --msgstr "モジュール {}:{} にプロファイルがありません" -+msgstr "'{}' の削除するプロファイルがありません" - - #: dnf/module/module_base.py:35 - msgid "" -@@ -3820,24 +3914,28 @@ msgstr "" - "ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive" - - #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 --#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 -+#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 - msgid "Ignoring unnecessary profile: '{}/{}'" - msgstr "不要なプロファイルを無視します: '{}/{}'" - - #: dnf/module/module_base.py:86 - #, python-brace-format - msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" --msgstr "モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" -+msgstr "" -+"モジュール '{1}:{2}' の引数 '{0}' に一致するものはすべて非アクティブです" - - #: dnf/module/module_base.py:94 dnf/module/module_base.py:204 - #, python-brace-format - msgid "Installing module '{0}' from Fail-Safe repository {1} is not allowed" --msgstr "フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可されていません" -+msgstr "" -+"フェイルセーフレポジトリー {1} からのモジュール '{0}' インストールは許可され" -+"ていません" - - #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 - msgid "" - "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" --msgstr "引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" -+msgstr "" -+"引数 {} でプロファイルが見つかりません。利用可能プロファイル '{}:{}': {}" - - #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 - msgid "Unable to match profile for argument {}" -@@ -3845,7 +3943,9 @@ msgstr "引数 {} でプロファイルが見つかりません" - - #: dnf/module/module_base.py:120 - msgid "No default profiles for module {}:{}. Available profiles: {}" --msgstr "モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイル: {}" -+msgstr "" -+"モジュール {}:{} にデフォルトのプロファイルがありません。利用可能プロファイ" -+"ル: {}" - - #: dnf/module/module_base.py:124 - msgid "No profiles for module {}:{}" -@@ -3857,36 +3957,38 @@ 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 --#, fuzzy, python-brace-format --#| msgid "" --#| "All matches for argument '{0}' in module '{1}:{2}' are not active" -+#, 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 --#, fuzzy, python-brace-format --#| msgid "Default profile {} not available in module {}:{}" -+#, python-brace-format - msgid "Installed profile '{0}' is not available in module '{1}' stream '{2}'" --msgstr "デフォルトのプロファイル {} はモジュール {}:{} で利用不可です" -+msgstr "" -+"インストールされたプロファイル '{0}' は、モジュール '{1}' ストリーム '{2}' で" -+"は利用できません" - - #: dnf/module/module_base.py:267 - msgid "No packages available to distrosync for package name '{}'" --msgstr "" -+msgstr "パッケージ名 '{}' 向けに distrosync するパッケージはありません" - - #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 - #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 - #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 --#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 -+#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 - msgid "Unable to resolve argument {}" - 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 {}" -@@ -3894,22 +3996,25 @@ msgstr "引数 {} でプロファイルを一致できません" - - #: dnf/module/module_base.py:348 - msgid "Upgrading module from Fail-Safe repository is not allowed" --msgstr "フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" -+msgstr "" -+"フェイルセーフレポジトリーからのモジュールアップグレードは許可されていません" - - #: dnf/module/module_base.py:422 - #, python-brace-format - msgid "" --"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" --" '{module}', but none of the streams are enabled or default" -+"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " -+"'{module}', but none of the streams are enabled or default" - msgstr "" -+"引数 '{argument}' は、モジュール '{module}' の {stream_count} ストリーム " -+"('{streams}' と一致しますが、有効化されている、あるいはデフォルトのストリーム" -+"はありません" - - #: dnf/module/module_base.py:509 - msgid "" --"Only module name is required. Ignoring unneeded information in argument: " --"'{}'" -+"Only module name is required. Ignoring unneeded information in argument: '{}'" - msgstr "モジュール名のみが必要です。引数で不必要な情報を無視します: '{}'" - --#: dnf/module/module_base.py:841 -+#: dnf/module/module_base.py:844 - msgid "No match for package {}" - msgstr "パッケージ {} に一致するものはありません" - -@@ -3922,12 +4027,12 @@ msgstr "%s は空のファイルです" - #: dnf/persistor.py:90 - #, python-format - msgid "Failed to load expired repos cache: %s" --msgstr "" -+msgstr "期限切れのリポジトリーキャッシュのロードに失敗しました: %s" - - #: dnf/persistor.py:98 - #, python-format - msgid "Failed to store expired repos cache: %s" --msgstr "" -+msgstr "期限切れのリポジトリーキャッシュの保存に失敗しました: %s" - - #: dnf/persistor.py:105 - msgid "Failed storing last makecache time." -@@ -3970,7 +4075,7 @@ msgid "Already downloaded" - msgstr "ダウンロード済み" - - #. pinging mirrors, this might take a while --#: dnf/repo.py:347 -+#: dnf/repo.py:346 - #, python-format - msgid "determining the fastest mirror (%s hosts).. " - msgstr "最速のミラーを確定しています (%s hosts).. " -@@ -3988,13 +4093,21 @@ msgstr "%s から %s repo を追加しました" - #: dnf/rpm/miscutils.py:32 - #, python-format - msgid "Using rpmkeys executable at %s to verify signatures" --msgstr "" -+msgstr "%s で rpmkeys 実行可能ファイルを使用して、署名を検証します" - - #: dnf/rpm/miscutils.py:66 - msgid "Cannot find rpmkeys executable to verify signatures." --msgstr "" -+msgstr "署名を検証する rpmkeys 実行ファイルが見つかりません。" - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function connot 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 "テストトランザクション中にエラーが発生しました。" - -@@ -4003,6 +4116,8 @@ msgid "" - "allow_vendor_change is disabled. This option is currently not supported for " - "downgrade and distro-sync commands" - msgstr "" -+"allow_vendor_change は無効になっています。このオプションは、downgrade コマン" -+"ドおよび distro-sync コマンドではサポートされていません" - - #. TRANSLATORS: This is for a single package currently being downgraded. - #: dnf/transaction.py:80 -@@ -4056,22 +4171,22 @@ msgid "" - "The following problems occurred while replaying the transaction from file " - "\"{filename}\":" - msgstr "" -+"ファイル \"{filename}\" からのトランザクションの再生中に以下の問題が発生しま" -+"した:" - - #: dnf/transaction_sr.py:68 --#, fuzzy --#| msgid "Errors occurred during transaction." - msgid "The following problems occurred while running a transaction:" --msgstr "トランザクション中にエラーが発生しました。" -+msgstr "トランザクションの実行中に以下の問題が発生しました:" - - #: dnf/transaction_sr.py:89 - #, python-brace-format - msgid "Invalid major version \"{major}\", number expected." --msgstr "" -+msgstr "無効なメジャーバージョン \"{major}\"。数字が必要です。" - - #: dnf/transaction_sr.py:97 - #, python-brace-format - msgid "Invalid minor version \"{minor}\", number expected." --msgstr "" -+msgstr "無効なマイナーバージョン \"{minor}\"。数字が必要です。" - - #: dnf/transaction_sr.py:103 - #, python-brace-format -@@ -4079,47 +4194,51 @@ msgid "" - "Incompatible major version \"{major}\", supported major version is " - "\"{major_supp}\"." - msgstr "" -+"互換性のないメジャーバージョン \"{major}\"。サポートされているメジャーバー" -+"ジョンは \"{major_supp}\" です。" - - #: dnf/transaction_sr.py:224 - msgid "" - "Conflicting TransactionReplay arguments have been specified: filename, data" --msgstr "" -+msgstr "競合する TransactionReplay 引数が指定されています。filename, data" - - #: dnf/transaction_sr.py:265 - #, python-brace-format - msgid "Unexpected type of \"{id}\", {exp} expected." --msgstr "" -+msgstr "予期しない {id}\" のタイプ。{exp} が必要です。" - - #: dnf/transaction_sr.py:271 - #, python-brace-format - msgid "Missing key \"{key}\"." --msgstr "" -+msgstr "\"{key}\" キーがありません。" - - #: dnf/transaction_sr.py:285 - #, python-brace-format - msgid "Missing object key \"{key}\" in an rpm." --msgstr "" -+msgstr "オブジェクトキー \"{key}\" が rpm にありません。" - - #: dnf/transaction_sr.py:289 - #, python-brace-format --msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." --msgstr "" -+msgid "" -+"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." -+msgstr "rpm nevra \"{nevra}\" の予期しないパッケージ理由 \"{reason}\" の値。" - - #: dnf/transaction_sr.py:297 - #, python-brace-format - msgid "Cannot parse NEVRA for package \"{nevra}\"." --msgstr "" -+msgstr "パッケージ \"{nevra}\" の NEVRA を解析できません。" - - #: dnf/transaction_sr.py:321 - #, python-brace-format - msgid "Cannot find rpm nevra \"{nevra}\"." --msgstr "" -+msgstr "rpm nevra \"{nevra}\" を見つけることはできません。" - - #: dnf/transaction_sr.py:336 --#, fuzzy, python-brace-format --#| msgid "Package %s is already installed." -+#, python-brace-format - msgid "Package \"{na}\" is already installed for action \"{action}\"." --msgstr "パッケージ %s は既にインストールされています。" -+msgstr "" -+"パッケージ \"{na}\" は、アクション \"{action}\" 用に既にインストールされてい" -+"ます。" - - #: dnf/transaction_sr.py:345 - #, python-brace-format -@@ -4127,39 +4246,42 @@ msgid "" - "Package nevra \"{nevra}\" not available in repositories for action " - "\"{action}\"." - msgstr "" -+"アクション \"{action}\" に利用できる パッケージ nevra \"{nevra}\" はレポジト" -+"リーにありません。" - - #: dnf/transaction_sr.py:356 - #, python-brace-format - msgid "Package nevra \"{nevra}\" not installed for action \"{action}\"." - msgstr "" -+"アクション \"{action}\" には、パッケージ nevra \"{nevra}\" インストールされて" -+"いません。" - - #: dnf/transaction_sr.py:370 - #, python-brace-format --msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." -+msgid "" -+"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." - msgstr "" -+"rpm nevra \"{nevra}\" の、パッケージアクション \"{action}\" の予期しない値。" - - #: dnf/transaction_sr.py:377 --#, fuzzy, python-format --#| msgid "Module or Group '%s' is not available." -+#, python-format - msgid "Group id '%s' is not available." --msgstr "モジュールまたはグループ '%s' は利用不可です。" -+msgstr "グループ id '%s' は利用できません。" - - #: dnf/transaction_sr.py:398 - #, python-brace-format - msgid "Missing object key \"{key}\" in groups.packages." --msgstr "" -+msgstr "オブジェクトキー \"{key}\" が groups.packages に含まれません。" - - #: dnf/transaction_sr.py:411 dnf/transaction_sr.py:421 --#, fuzzy, python-format --#| msgid "Module or Group '%s' is not installed." -+#, python-format - msgid "Group id '%s' is not installed." --msgstr "モジュールまたはグループ '%s' がインストールされていません。" -+msgstr "グループ id '%s' がインストールされていません。" - - #: dnf/transaction_sr.py:432 --#, fuzzy, python-format --#| msgid "Environment '%s' is not available." -+#, python-format - msgid "Environment id '%s' is not available." --msgstr "環境 '%s' は利用不可です。" -+msgstr "環境 id '%s' は利用できません。" - - #: dnf/transaction_sr.py:456 - #, python-brace-format -@@ -4167,38 +4289,45 @@ msgid "" - "Invalid value \"{group_type}\" of environments.groups.group_type, only " - "\"mandatory\" or \"optional\" is supported." - msgstr "" -+"environments.groups.group_type の無効な値 \"{group_type}\"。\"mandatory\" ま" -+"たは \"optional\" のみに対応しています。" - - #: dnf/transaction_sr.py:464 - #, python-brace-format - msgid "Missing object key \"{key}\" in environments.groups." --msgstr "" -+msgstr "オブジェクトキー \"{key}\" が environments.groups に含まれません。" - - #: dnf/transaction_sr.py:542 - #, python-brace-format - msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." - msgstr "" -+"グループ \"{group}\" の グループアクション \"{action}\" の予期しない値。" - - #: dnf/transaction_sr.py:547 - #, python-brace-format - msgid "Missing object key \"{key}\" in a group." --msgstr "" -+msgstr "オブジェクトキー \"{key}\" がグループ内にありません。" - - #: dnf/transaction_sr.py:571 - #, python-brace-format --msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." --msgstr "" -+msgid "" -+"Unexpected value of environment action \"{action}\" for environment " -+"\"{env}\"." -+msgstr "環境 \"{env}\" の環境アクション \"{action}\" の予期しない値。" - - #: dnf/transaction_sr.py:576 - #, python-brace-format - msgid "Missing object key \"{key}\" in an environment." --msgstr "" -+msgstr "オブジェクトキー \"{key}\" が環境にありません。" - - #: dnf/transaction_sr.py:615 - #, python-brace-format - msgid "" --"Package nevra \"{nevra}\", which is not present in the transaction file, was" --" pulled into the transaction." -+"Package nevra \"{nevra}\", which is not present in the transaction file, was " -+"pulled into the transaction." - msgstr "" -+"トランザクションファイルに存在しないパッケージ nevra \"{nevra}\" がトランザク" -+"ションにプルされていました。" - - # translation auto-copied from project jbpm-designer, version 6.0.1, document - # org.jbpm/jbpm-designer- -@@ -4241,6 +4370,16 @@ msgstr "失敗しました" - msgid "" - msgstr "" - -+#~ msgid "skipping." -+#~ msgstr "スキップします。" -+ -+#~ msgid "" -+#~ "Using rpmkeys executable from {path} to verify signature for package: " -+#~ "{package}." -+#~ msgstr "" -+#~ "{path} から実行可能ファイル rpmkeys を使用して、パッケージの署名を検証しま" -+#~ "す: {package}。" -+ - #~ msgid "%s: %s check failed: %s vs %s" - #~ msgstr "%s: %s の確認に失敗しました: %s vs %s" - -@@ -4266,5 +4405,7 @@ msgstr "" - #~ msgstr "不正なトランザクション ID、またはパッケージが指定されました" - - #~ msgid "" --#~ "Display capabilities that the package depends on for running a %%pre script." --#~ msgstr "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" -+#~ "Display capabilities that the package depends on for running a %%pre " -+#~ "script." -+#~ msgstr "" -+#~ "%%pre スクリプトを実行するためにパッケージが依存する機能を表示します。" -diff --git a/po/ko.po b/po/ko.po -index 6effd129..330b2b6d 100644 ---- a/po/ko.po -+++ b/po/ko.po -@@ -2,20 +2,22 @@ - # Eun-Ju Kim , 2016. #zanata - # Ludek Janda , 2018. #zanata, 2020. - # simmon , 2021. -+# Kim InSoo , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2021-06-13 09:18-0400\n" --"PO-Revision-Date: 2021-06-07 17:15+0000\n" --"Last-Translator: simmon \n" --"Language-Team: Korean \n" -+"POT-Creation-Date: 2022-02-28 11:37+0100\n" -+"PO-Revision-Date: 2022-03-02 04:16+0000\n" -+"Last-Translator: Kim InSoo \n" -+"Language-Team: Korean \n" - "Language: ko\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=1; plural=0;\n" --"X-Generator: Weblate 4.6.2\n" -+"X-Generator: Weblate 4.11\n" - - #: dnf/automatic/emitter.py:32 - #, python-format -@@ -109,7 +111,8 @@ msgstr "저장소 '{}'의 적재하기가 실패했습니다" - - #: dnf/base.py:327 - msgid "Metadata timer caching disabled when running on metered connection." --msgstr "데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." -+msgstr "" -+"데이터 통신 연결을 사용 할 때에 메타 자료 타이머 캐싱을 비활성화합니다." - - #: dnf/base.py:332 - msgid "Metadata timer caching disabled when running on a battery." -@@ -166,7 +169,7 @@ msgstr "저장소를 무시합니다: %s" - #: dnf/base.py:419 - #, python-format - msgid "Last metadata expiration check: %s ago on %s." --msgstr "마지막 메타자료 만료 확인: %s 이전에 %s." -+msgstr "마지막 메타자료 만료확인 %s 이전인: %s." - - #: dnf/base.py:512 - msgid "" -@@ -189,154 +192,155 @@ msgstr "설정 파일에서 tsflag 사용이 잘못되었습니다: %s" - msgid "Failed to add groups file for repository: %s - %s" - msgstr "리포지토리의 그룹 파일을 추가하지 못했습니다. %s - %s" - --#: dnf/base.py:904 -+#: dnf/base.py:922 - msgid "Running transaction check" - msgstr "연결 확인 실행 중" - --#: dnf/base.py:912 -+#: dnf/base.py:930 - msgid "Error: transaction check vs depsolve:" --msgstr "오류 : 연결 확인 및 종속성 해결 오류:" -+msgstr "오류: 연결 확인 및 종속성 해결 오류:" - --#: dnf/base.py:918 -+#: dnf/base.py:936 - msgid "Transaction check succeeded." - msgstr "연결 확인에 성공했습니다." - --#: dnf/base.py:921 -+#: dnf/base.py:939 - msgid "Running transaction test" - msgstr "연결 시험 실행 중" - --#: dnf/base.py:931 dnf/base.py:1082 -+#: dnf/base.py:949 dnf/base.py:1100 - msgid "RPM: {}" - msgstr "RPM: {}" - --#: dnf/base.py:932 -+#: dnf/base.py:950 - msgid "Transaction test error:" - msgstr "연결 시험 오류:" - --#: dnf/base.py:943 -+#: dnf/base.py:961 - msgid "Transaction test succeeded." - msgstr "연결 시험에 성공했습니다." - --#: dnf/base.py:964 -+#: dnf/base.py:982 - msgid "Running transaction" - msgstr "연결 실행 중" - --#: dnf/base.py:1001 -+#: dnf/base.py:1019 - msgid "Disk Requirements:" - msgstr "디스크 요구 사항 :" - --#: dnf/base.py:1004 -+#: dnf/base.py:1022 - #, 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:1011 -+#: dnf/base.py:1029 - msgid "Error Summary" - msgstr "오류 요약" - --#: dnf/base.py:1037 -+#: dnf/base.py:1055 - #, python-brace-format - msgid "RPMDB altered outside of {prog}." - msgstr "RPMDB는 {prog} 외부에서 변경되었습니다." - --#: dnf/base.py:1083 dnf/base.py:1091 -+#: dnf/base.py:1101 dnf/base.py:1109 - msgid "Could not run transaction." - msgstr "연결를 실행 할 수 없습니다." - --#: dnf/base.py:1086 -+#: dnf/base.py:1104 - msgid "Transaction couldn't start:" - msgstr "연결을 시작 할 수 없습니다 :" - --#: dnf/base.py:1100 -+#: dnf/base.py:1118 - #, python-format - msgid "Failed to remove transaction file %s" - msgstr "%s 연결 파일을 삭제하지 못했습니다" - --#: dnf/base.py:1182 -+#: dnf/base.py:1200 - msgid "Some packages were not downloaded. Retrying." --msgstr "일부 꾸러미가 내려받기되지 않았습니다. 다시 시도 중입니다." -+msgstr "일부 꾸러미를 내려받지 못했습니다. 다시 시도합니다." - --#: dnf/base.py:1212 -+#: dnf/base.py:1230 - #, python-format - msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" --msgstr "델타 RPM이 %.1f MB의 최신화를 %.1f MB로 줄였습니다. (%.1%% 절약됨)" -+msgstr "델타 RPM은 %.1f MB의 최신화를 %.1f MB으로 줄였습니다.(%.1f%% 절약됨)" - --#: dnf/base.py:1216 -+#: dnf/base.py:1234 - #, python-format - msgid "" - "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" --msgstr "Delta RPM은 %.1f MB의 최신화를 %.1f MB로 줄이는데 실패했습니다. (%.1f%% 손실됨)" -+msgstr "Delta RPM은 %.1f MB의 최신화를 %.1f MB로 늘리는데 실패했습니다.(%.1f%% " -+"낭비됨)" - --#: dnf/base.py:1258 -+#: dnf/base.py:1276 - msgid "Cannot add local packages, because transaction job already exists" - msgstr "연결 작업이 이미 존재하므로 로컬 꾸러미를 추가할 수 없습니다" - --#: dnf/base.py:1272 -+#: dnf/base.py:1290 - msgid "Could not open: {}" - msgstr "열 수 없음 : {}" - --#: dnf/base.py:1310 -+#: dnf/base.py:1328 - #, python-format - msgid "Public key for %s is not installed" - msgstr "%s의 공개 키는 설치되어 있지 않습니다" - --#: dnf/base.py:1314 -+#: dnf/base.py:1332 - #, python-format - msgid "Problem opening package %s" - msgstr "%s 꾸러미를 여는 중에 문제가 발생했습니다" - --#: dnf/base.py:1322 -+#: dnf/base.py:1340 - #, python-format - msgid "Public key for %s is not trusted" - msgstr "%s의 공개 키는 신뢰 할 수 없습니다" - --#: dnf/base.py:1326 -+#: dnf/base.py:1344 - #, python-format - msgid "Package %s is not signed" - msgstr "%s 꾸러미가 서명되지 않았습니다" - --#: dnf/base.py:1356 -+#: dnf/base.py:1374 - #, python-format - msgid "Cannot remove %s" - msgstr "%s를 삭제 할 수 없습니다" - --#: dnf/base.py:1360 -+#: dnf/base.py:1378 - #, python-format - msgid "%s removed" - msgstr "%s가 삭제되었습니다" - --#: dnf/base.py:1640 -+#: dnf/base.py:1658 - msgid "No match for group package \"{}\"" - msgstr "그룹 꾸러미 \"{}\"에 일치하는 항목이 없습니다" - --#: dnf/base.py:1726 -+#: dnf/base.py:1740 - #, python-format - msgid "Adding packages from group '%s': %s" - msgstr "'%s' 그룹에서 꾸러미 추가: %s" - --#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1763 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:1767 -+#: dnf/base.py:1781 - msgid "No groups marked for removal." - msgstr "제거할 꾸러미 그룹이 없습니다." - --#: dnf/base.py:1801 -+#: dnf/base.py:1815 - msgid "No group marked for upgrade." - msgstr "향상을 위해 표시된 그룹이 없습니다." - --#: dnf/base.py:2015 -+#: dnf/base.py:2029 - #, python-format - msgid "Package %s not installed, cannot downgrade it." - msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 수 없습니다." - --#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 --#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 -+#: 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/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,188 +350,193 @@ msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 하향설치 할 - msgid "No match for argument: %s" - msgstr "인수가 일치하지 않습니다: %s" - --#: dnf/base.py:2024 -+#: dnf/base.py:2038 - #, python-format - msgid "Package %s of lower version already installed, cannot downgrade it." --msgstr "%s 꾸러미의 하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." -+msgstr "" -+"%s 꾸러미의 하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." - --#: dnf/base.py:2047 -+#: dnf/base.py:2061 - #, python-format - msgid "Package %s not installed, cannot reinstall it." --msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 다시 설치할 수 없습니다." -+msgstr "꾸러미 %s가 설치되지 않아서, 다시 설치 할 수 없습니다." - --#: dnf/base.py:2062 -+#: dnf/base.py:2076 - #, python-format - msgid "File %s is a source package and cannot be updated, ignoring." - msgstr "%s 파일은 소스 꾸러미이며 최신화 할 수 없습니다. 무시합니다." - --#: dnf/base.py:2073 -+#: dnf/base.py:2087 - #, python-format - msgid "Package %s not installed, cannot update it." - msgstr "%s 꾸러미가 설치되어 있지 않기 때문에 최신화 할 수 없습니다." - --#: dnf/base.py:2083 -+#: dnf/base.py:2097 - #, python-format - msgid "" - "The same or higher version of %s is already installed, cannot update it." - msgstr "%s 이상의 버전이 이미 설치되어 있으므로 최신화 할 수 없습니다." - --#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 - #, python-format - msgid "Package %s available, but not installed." - msgstr "%s 꾸러미는 사용할 수는 있지만 설치되어 있지 않습니다." - --#: dnf/base.py:2132 -+#: dnf/base.py:2146 - #, python-format - msgid "Package %s available, but installed for different architecture." - msgstr "%s 꾸러미는 사용 가능하지만 다른 구조용으로 설치되어 있습니다." - --#: dnf/base.py:2157 -+#: dnf/base.py:2171 - #, python-format - msgid "No package %s installed." - msgstr "%s 꾸러미는 설치되어 있지 않습니다." - --#: dnf/base.py:2175 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2189 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:2190 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 - #: dnf/cli/commands/remove.py:162 - msgid "No packages marked for removal." - msgstr "제거 대상 꾸러미가 없습니다." - --#: dnf/base.py:2278 dnf/cli/cli.py:428 -+#: dnf/base.py:2292 dnf/cli/cli.py:428 - #, python-format - msgid "Packages for argument %s available, but not installed." - msgstr "%s 인수에 대한 꾸러미를 사용할 수 있지만 설치되어 있지 않습니다." - --#: dnf/base.py:2283 -+#: dnf/base.py:2297 - #, python-format - msgid "Package %s of lowest version already installed, cannot downgrade it." --msgstr "%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." -+msgstr "" -+"%s 꾸러미의 최하위 버전이 이미 설치되어 있으므로 다운그레이드 할 수 없습니다." - --#: dnf/base.py:2383 -+#: dnf/base.py:2397 - msgid "No security updates needed, but {} update available" - msgstr "보안 최신화가 필요하지 않지만, {} 최신화가 가능합니다" - --#: dnf/base.py:2385 -+#: dnf/base.py:2399 - msgid "No security updates needed, but {} updates available" - msgstr "보안 최신화는 필요하지 않지만 {} 최신화는 가능합니다" - --#: dnf/base.py:2389 -+#: dnf/base.py:2403 - msgid "No security updates needed for \"{}\", but {} update available" - msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" - --#: dnf/base.py:2391 -+#: dnf/base.py:2405 - msgid "No security updates needed for \"{}\", but {} updates available" - msgstr "\"{}\"에는 보안 최신화가 필요하지 않지만 {} 최신화가 가능합니다" - - #. raise an exception, because po.repoid is not in self.repos --#: dnf/base.py:2412 -+#: dnf/base.py:2426 - #, python-format - msgid "Unable to retrieve a key for a commandline package: %s" - msgstr "명령줄 꾸러미: %s 대한 키를 검색 할 수 없습니다" - --#: dnf/base.py:2420 -+#: dnf/base.py:2434 - #, python-format - msgid ". Failing package is: %s" - msgstr "실패한 꾸러미는 다음과 같습니다. %s" - --#: dnf/base.py:2421 -+#: dnf/base.py:2435 - #, python-format - msgid "GPG Keys are configured as: %s" - msgstr "GPG 키는 다음과 같이 설정되어 있습니다. %s" - --#: dnf/base.py:2433 -+#: dnf/base.py:2447 - #, python-format - msgid "GPG key at %s (0x%s) is already installed" - msgstr "%s (0x%s)의 GPG 키가 이미 설치되어 있습니다" - --#: dnf/base.py:2469 -+#: dnf/base.py:2483 - msgid "The key has been approved." - msgstr "키가 승인되었습니다." - --#: dnf/base.py:2472 -+#: dnf/base.py:2486 - msgid "The key has been rejected." - msgstr "키가 거부되었습니다." - --#: dnf/base.py:2505 -+#: dnf/base.py:2519 - #, python-format - msgid "Key import failed (code %d)" - msgstr "키 가져 오기에 실패했습니다 (코드 %d)" - --#: dnf/base.py:2507 -+#: dnf/base.py:2521 - msgid "Key imported successfully" - msgstr "키 가져오기에 성공했습니다" - --#: dnf/base.py:2511 -+#: dnf/base.py:2525 - msgid "Didn't install any keys" - msgstr "키를 하나도 설치하지 못했습니다" - --#: dnf/base.py:2514 -+#: dnf/base.py:2528 - #, python-format - msgid "" --"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" -+"The GPG keys listed for the \"%s\" repository are already installed but they " -+"are not correct for this package.\n" - "Check that the correct key URLs are configured for this repository." - msgstr "" - "해당 GPG 키는 \"%s\"저장소가 이미 설치되어 있지만이 꾸러미에 맞지 않습니다.\n" - "이 저장소에 대해 올바른 키 URL이 구성되었는지 확인하십시오." - --#: dnf/base.py:2525 -+#: dnf/base.py:2539 - msgid "Import of key(s) didn't help, wrong key(s)?" - msgstr "가져온 키에 문제가 있습니다. 잘못된 키입니까?" - --#: dnf/base.py:2578 -+#: dnf/base.py:2592 - msgid " * Maybe you meant: {}" - msgstr " * 다음을 의미 할 수도 있습니다: {}" - --#: dnf/base.py:2610 -+#: dnf/base.py:2624 - msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" - msgstr "로컬 저장소 \"{}\"의 \"{}\"꾸러미에 잘못된 체크섬이 있습니다" - --#: dnf/base.py:2613 -+#: dnf/base.py:2627 - msgid "Some packages from local repository have incorrect checksum" - msgstr "로컬 저장소의 일부 꾸러미에 잘못된 체크섬이 있습니다" - --#: dnf/base.py:2616 -+#: dnf/base.py:2630 - msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" - msgstr "저장소 \"{}\"의 꾸러미 \"{}\"에 잘못된 체크섬이 있습니다" - --#: dnf/base.py:2619 -+#: dnf/base.py:2633 - msgid "" - "Some packages have invalid cache, but cannot be downloaded due to \"--" - "cacheonly\" option" --msgstr "일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려받기 할 수 없습니다" -+msgstr "" -+"일부 꾸러미에는 유효하지 않은 캐쉬가 있지만 \"--cacheonly\"옵션으로 인해 내려" -+"받기 할 수 없습니다" - --#: dnf/base.py:2637 dnf/base.py:2657 -+#: dnf/base.py:2651 dnf/base.py:2671 - msgid "No match for argument" - msgstr "일치하는 인수가 없습니다" - --#: dnf/base.py:2645 dnf/base.py:2665 -+#: dnf/base.py:2659 dnf/base.py:2679 - msgid "All matches were filtered out by exclude filtering for argument" - msgstr "모든 일치 항목이 인수의 제외 필터로 필터링되었습니다" - --#: dnf/base.py:2647 -+#: dnf/base.py:2661 - msgid "All matches were filtered out by modular filtering for argument" - msgstr "모든 일치 항목이 인수의 모듈식 필터로 필터링되었습니다" - --#: dnf/base.py:2663 -+#: dnf/base.py:2677 - msgid "All matches were installed from a different repository for argument" - msgstr "모든 일치 항목이 인수의 다른 리포지토리에서 설치되었습니다" - --#: dnf/base.py:2710 -+#: dnf/base.py:2724 - #, python-format - msgid "Package %s is already installed." --msgstr "꾸러미 %s 가 이미 설치되어 있습니다." -+msgstr "꾸러미 %s가 이미 설치되어 있습니다." - - #: dnf/cli/aliases.py:96 - #, python-format - msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" - msgstr "예상치 못한 환경 변수 값 : DNF_DISABLE_ALIASES =%s" - --#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 -+#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 - #, python-format - msgid "Parsing file \"%s\" failed: %s" - msgstr "\"%s\" 파일의 구문 분석에 실패했습니다 : %s" -@@ -572,11 +581,17 @@ msgstr "이 작업은 '{0}' 모듈을 '{1}' 스트림에서 ‘{2}' 스트림으 - #: dnf/cli/cli.py:173 - #, python-brace-format - msgid "" --"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" --"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." -+"It is not possible to switch enabled streams of a module unless explicitly " -+"enabled via configuration option module_stream_switch.\n" -+"It is recommended to rather remove all installed content from the module, " -+"and reset the module using '{prog} module reset ' command. " -+"After you reset the module, you can install the other stream." - msgstr "" --"설정 선택 module_stream_switch을 통해 명시적으로 활성화 하지 않는한 모듈의 활성화된 스트림을 전환 할 수 없습니다.\n" --"모듈에서 설치된 모든 내용을 모듈에서 제거하고, '{prog} module reset '명령을 사용하여 모듈을 재설정하는 것을 권장합니다. 모듈을 재설정 후에, 다른 스트림을 설치 할 수 있습니다." -+"구성 옵션 module_stream_switch를 통해 명시적으로 활성화하지 않는 한 활성화된 " -+"모듈 스트림을 전환 할 수 없습니다.\n" -+"설치된 모든 내용을 모듈에서 제거하고 ‘{prog} module reset ' 명령" -+"을 사용하여 모듈을 재설정하는 것이 좋습니다. 모듈을 재설정한 후 다른 스트림" -+"을 설치 할 수 있습니다." - - #: dnf/cli/cli.py:212 - #, python-brace-format -@@ -596,7 +611,7 @@ msgstr "작업이 중지됩니다." - - #: dnf/cli/cli.py:226 - msgid "Downloading Packages:" --msgstr "꾸러미 내려받기중:" -+msgstr "꾸러미 내려받기 중:" - - #: dnf/cli/cli.py:232 - msgid "Error downloading packages:" -@@ -680,9 +695,11 @@ msgstr "일치하는 저장소가 없습니다 : %s" - - #: dnf/cli/cli.py:719 - msgid "" --"This command has to be run with superuser privileges (under the root user on" --" most systems)." --msgstr "이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자로 실행)." -+"This command has to be run with superuser privileges (under the root user on " -+"most systems)." -+msgstr "" -+"이 명령은 슈퍼유저 권한으로 실행해야합니다 (대부분의 시스템에서 root 사용자" -+"로 실행)." - - #: dnf/cli/cli.py:749 - #, python-format -@@ -701,31 +718,32 @@ msgstr "{PROG} 플러그인 명령일 수 있습니다: \"{prog} 'dnf-command(%s - msgid "" - "It could be a {prog} plugin command, but loading of plugins is currently " - "disabled." --msgstr "{prog} 플러그인 명령일 수 있지만 플러그인 로딩은 현재 비활성화되어 있습니다." -+msgstr "" -+"{prog} 플러그인 명령일 수 있지만 플러그인 로딩은 현재 비활성화되어 있습니다." - - #: dnf/cli/cli.py:814 - msgid "" - "--destdir or --downloaddir must be used with --downloadonly or download or " - "system-upgrade command." - msgstr "" --"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-upgrade 명령과" --" 함께 사용해야합니다." -+"--destdir 또는 --downloaddir은 --downloadonly 또는 download 또는 system-" -+"upgrade 명령과 함께 사용해야합니다." - - #: dnf/cli/cli.py:820 - msgid "" - "--enable, --set-enabled and --disable, --set-disabled must be used with " - "config-manager command." - msgstr "" --"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 함께 " --"사용해야합니다." -+"--enable, --set-enabled 및 --disable, --set-disabled는 config-manager 명령과 " -+"함께 사용해야합니다." - - #: dnf/cli/cli.py:902 - msgid "" - "Warning: Enforcing GPG signature check globally as per active RPM security " - "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" - msgstr "" --"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 (이 메시지를 제거하는 방법은 dnf.conf (5)의" --" 'gpgcheck' 참조)" -+"경고: 활성화된 RPM 보안 정책에 따라 GPG 서명 검사를 전체적으로 시행합니다 " -+"(이 메시지를 제거하는 방법은 dnf.conf (5)의 'gpgcheck' 참조)" - - #: dnf/cli/cli.py:922 - msgid "Config file \"{}\" does not exist" -@@ -735,7 +753,9 @@ msgstr "설정 파일 \"{}\" 이 존재하지 않습니다" - msgid "" - "Unable to detect release version (use '--releasever' to specify release " - "version)" --msgstr "출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십시오)" -+msgstr "" -+"출시 버전을 찾을 수 없습니다 ('--releasever'를 사용하여 출시 버전을 지정하십" -+"시오)" - - #: dnf/cli/cli.py:1016 dnf/cli/commands/repoquery.py:471 - msgid "argument {}: not allowed with argument {}" -@@ -770,13 +790,15 @@ msgstr "문제를 진단하려면 다음을 실행하십시오. '%s'." - #: dnf/cli/commands/__init__.py:40 - #, python-format - msgid "You probably have corrupted RPMDB, running '%s' might fix the issue." --msgstr "RPMDB가 손상되었을 수 있습니다 '%s'를 실행하여 문제를 해결할 수 있습니다." -+msgstr "" -+"RPMDB가 손상되었을 수 있습니다 '%s'를 실행하여 문제를 해결할 수 있습니다." - - #: dnf/cli/commands/__init__.py:44 - #, python-brace-format - msgid "" - "You have enabled checking of packages via GPG keys. This is a good thing.\n" --"However, you do not have any GPG public keys installed. You need to download\n" -+"However, you do not have any GPG public keys installed. You need to " -+"download\n" - "the keys for packages you wish to install and install them.\n" - "You can do that by running the command:\n" - " rpm --import public.gpg.key\n" -@@ -790,13 +812,13 @@ msgid "" - msgstr "" - "GPG 키를 통해 꾸러미 검사를 활성화했습니다. 이는 적절한 작업 실행입니다.\n" - "그러나 GPG 공개 키가 설치되어 있지 않습니다.\n" --"설치하려는 꾸러미의 키를 내려받기하여 설치해야 합니다.\n" -+"설치하려는 꾸러미의 키를 내려 받기하여 설치해야 합니다.\n" - "다음 명령으로 이 작업을 수행할 수 있습니다:\n" - "rpm --import public.gpg.key\n" - "\n" - "\n" --"또는 저장소 섹션의 'gpgkey' 옵션을 사용하여\n" --"저장소에 사용할 키의 URL을 지정할 수 있으며 {prog}가\n" -+"또는 저장소 부분의 'gpgkey' 옵션을 사용하여\n" -+"저장소에 사용할 키의 URL을 지정 할 수 있으며 {prog}가\n" - "이를 설치합니다\n" - "\n" - "자세한 내용은 배포 또는 꾸러미 공급 업체에 문의하십시오." -@@ -1116,7 +1138,9 @@ msgstr "PID %d 프로세스가 종료되기를 기다리고 있습니다." - msgid "" - "[deprecated, use repoquery --deplist] List package's dependencies and what " - "packages provide them" --msgstr "[비추천, repoquery --deplist 사용] 꾸러미 의존성과 이를 제공하는 꾸러미를 나열" -+msgstr "" -+"[더 이상 사용되지 않음, repoquery --deplist 사용] 꾸러미의 종속성과 이를 제공" -+"하는 꾸러미 목록 나열" - - #: dnf/cli/commands/distrosync.py:32 - msgid "synchronize installed packages to the latest available versions" -@@ -1222,9 +1246,10 @@ msgstr "저장 명령을 위해, 트랜젝션을 저장할 파일 경로" - - #: dnf/cli/commands/history.py:68 - msgid "" --"For the replay command, don't check for installed packages matching those in" --" transaction" --msgstr "재생명령을 위하여, 연결에 그것들과 일치하는 설치된 꾸러미를 확인하지 마세요" -+"For the replay command, don't check for installed packages matching those in " -+"transaction" -+msgstr "" -+"재생명령을 위하여, 연결에 그것들과 일치하는 설치된 꾸러미를 확인하지 마세요" - - #: dnf/cli/commands/history.py:71 - msgid "" -@@ -1234,9 +1259,11 @@ msgstr "응답 명령을 위하여, 연결에 추가 된 꾸러미를 확인하 - - #: dnf/cli/commands/history.py:74 - msgid "" --"For the replay command, skip packages that are not available or have missing" --" dependencies" --msgstr "지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건너띄기" -+"For the replay command, skip packages that are not available or have missing " -+"dependencies" -+msgstr "" -+"지연 명령을 위하여, 사용 할 수 없는 또는 찾을 수 없는 의존성을 갖는 목록 건너" -+"띄기" - - #: dnf/cli/commands/history.py:94 - msgid "" -@@ -1266,16 +1293,20 @@ msgstr "기록 DB에 액세스할 수 없습니다: %s" - #: dnf/cli/commands/history.py:151 - #, python-format - msgid "" --"Cannot undo transaction %s, doing so would result in an inconsistent package" --" database." --msgstr "%s 연결을 취소 할 수 없습니다. 취소하면 꾸러미 자료 저장소가 일치하지 않게 됩니다." -+"Cannot undo transaction %s, doing so would result in an inconsistent package " -+"database." -+msgstr "" -+"%s 연결을 취소 할 수 없습니다. 취소하면 꾸러미 자료 저장소가 일치하지 않게 됩" -+"니다." - - #: dnf/cli/commands/history.py:156 - #, python-format - msgid "" - "Cannot rollback transaction %s, doing so would result in an inconsistent " - "package database." --msgstr "%s 연결을 되돌릴 수 없습니다. 이렇게 하면 꾸러미 데이타베이스가 일치하지 않게 됩니다." -+msgstr "" -+"%s 연결을 되돌릴 수 없습니다. 이렇게 하면 꾸러미 데이타베이스가 일치하지 않" -+"게 됩니다." - - #: dnf/cli/commands/history.py:175 - msgid "No transaction ID given" -@@ -1415,9 +1446,11 @@ msgstr "꾸러미 %s가 설치되지 않았습니다." - - #: dnf/cli/commands/module.py:54 - msgid "" --"Only module name, stream, architecture or profile is used. Ignoring unneeded" --" information in argument: '{}'" --msgstr "모듈 이름, 스트림, 구조 또는 프로파일만 사용됩니다. '{}'인수에서 불필요한 정보는 무시하십시오" -+"Only module name, stream, architecture or profile is used. Ignoring unneeded " -+"information in argument: '{}'" -+msgstr "" -+"모듈 이름, 스트림, 구조 또는 프로파일만 사용됩니다. '{}'인수에서 불필요한 정" -+"보는 무시하십시오" - - #: dnf/cli/commands/module.py:80 - msgid "list all module streams, profiles and states" -@@ -1665,7 +1698,7 @@ msgstr "Repo-filename : " - #. 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 -@@ -1674,7 +1707,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: {}" -@@ -1688,7 +1721,8 @@ msgstr "키워드와 일치하는 꾸러미 검색" - msgid "" - "Query all packages (shorthand for repoquery '*' or repoquery without " - "argument)" --msgstr "모든 꾸러미를 쿼리하십시오 (repoquery '*'의 축약형 또는 인수없는 repoquery)" -+msgstr "" -+"모든 꾸러미를 쿼리하십시오 (repoquery '*'의 축약형 또는 인수없는 repoquery)" - - #: dnf/cli/commands/repoquery.py:124 - msgid "Query all versions of packages (default)" -@@ -1710,7 +1744,9 @@ msgstr "REQ와 충돌하는 결과 만 표시" - msgid "" - "shows results that requires, suggests, supplements, enhances,or recommends " - "package provides and files REQ" --msgstr "REQ를 제공하고 파일 꾸러미를 요구, 제안, 보완, 개선, 권장하는 결과를 표시합니다" -+msgstr "" -+"꾸러미 제공과 파일 REQ를 요구, 제안, 보완, 향상 또는 권장하는 결과를 표시합니" -+"다" - - #: dnf/cli/commands/repoquery.py:139 - msgid "show only results that obsolete REQ" -@@ -1752,7 +1788,9 @@ msgstr "지정된대로 종속성을 확인. --alldeps와 반대됩니다" - msgid "" - "used with --whatrequires, and --requires --resolve, query packages " - "recursively." --msgstr "--whatrequires, --requires --resolve와 함계 사용하여 꾸러미를 재귀적으로 쿼리합니다." -+msgstr "" -+"--whatrequires, --requires --resolve와 함계 사용하여 꾸러미를 재귀적으로 쿼리" -+"합니다." - - #: dnf/cli/commands/repoquery.py:166 - msgid "show a list of all dependencies and what packages provide them" -@@ -1774,7 +1812,9 @@ msgstr "해당 소스 RPM에서 작동합니다" - msgid "" - "show N latest packages for a given name.arch (or latest but N if N is " - "negative)" --msgstr "지정된 name.arch (또는 N이 음수인 경우 가장 오래된 꾸러미)에 대한 N 개의 최신 꾸러미를 표시합니다" -+msgstr "" -+"지정된 name.arch (또는 N이 음수인 경우 가장 오래된 꾸러미)에 대한 N 개의 최" -+"신 꾸러미를 표시합니다" - - #: dnf/cli/commands/repoquery.py:177 - msgid "list also packages of inactive module streams" -@@ -1799,11 +1839,11 @@ msgstr "꾸러미의 변경 로그 표시" - #: dnf/cli/commands/repoquery.py:194 - #, python-format, python-brace-format - msgid "" --"display format for listing packages: \"%%{name} %%{version} ...\", use " --"--querytags to view full tag list" -+"display format for listing packages: \"%%{name} %%{version} ...\", use --" -+"querytags to view full tag list" - msgstr "" --"꾸러미 목록 표시형식 : \"%%{name} %%{version} ...\" 모든 태그 목록을 보여주기 위해 --querytags " --"사용합니다" -+"꾸러미 목록 표시형식 : \"%%{name} %%{version} ...\" 모든 태그 목록을 보여주" -+"기 위해 --querytags 사용합니다" - - #: dnf/cli/commands/repoquery.py:198 - msgid "show available tags to use with --queryformat" -@@ -1813,19 +1853,25 @@ msgstr "--queryformat과 함께 사용할 수 있는 태그를 표시합니다" - msgid "" - "use name-epoch:version-release.architecture format for displaying found " - "packages (default)" --msgstr "name-epoch:version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시합니다 (기본값)" -+msgstr "" -+"name-epoch:version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시" -+"합니다 (기본값)" - - #: dnf/cli/commands/repoquery.py:205 - msgid "" - "use name-version-release format for displaying found packages (rpm query " - "default)" --msgstr "name-version-release 형식을 사용하여 검색된 꾸러미를 표시합니다 (rpm 쿼리 기본값)" -+msgstr "" -+"name-version-release 형식을 사용하여 검색된 꾸러미를 표시합니다 (rpm 쿼리 기" -+"본값)" - - #: dnf/cli/commands/repoquery.py:211 - msgid "" - "use epoch:name-version-release.architecture format for displaying found " - "packages" --msgstr "epoch : name-version-release.architecture 형식을 사용하여 검색된 꾸러미를 표시합니다" -+msgstr "" -+"epoch : name-version-release.architecture 형식을 사용하여 검색된 꾸러미를 표" -+"시합니다" - - #: dnf/cli/commands/repoquery.py:214 - msgid "Display in which comps groups are presented selected packages" -@@ -1855,7 +1901,9 @@ msgstr "꾸러미와 충돌하는 기능을 표시합니다." - msgid "" - "Display capabilities that the package can depend on, enhance, recommend, " - "suggest, and supplement." --msgstr "꾸러미가 종속 기능 강화, 개선, 권장, 제안 및 보완할 수 있는 기능을 표시합니다." -+msgstr "" -+"꾸러미가 종속 기능 강화, 개선, 권장, 제안 및 보완할 수 있는 기능을 표시합니" -+"다." - - #: dnf/cli/commands/repoquery.py:236 - msgid "Display capabilities that the package can enhance." -@@ -1880,8 +1928,9 @@ msgid "" - "running %%pre and %%post scriptlets. If the package is installed display " - "capabilities that is depends for %%pre, %%post, %%preun and %%postun." - msgstr "" --"꾸러미가 설치되어 있지 않은 경우 %%pre 과 %%post 스크립트를 실행할 수 있는 기능이 표시됩니다. 꾸러미가 설치 되어 있는 경우" --" %%pre, %%post , %%preun, %%postun에 종속된 기능이 표시됩니다." -+"꾸러미가 설치되어 있지 않은 경우 %%pre 과 %%post 스크립트를 실행할 수 있는 기" -+"능이 표시됩니다. 꾸러미가 설치 되어 있는 경우 %%pre, %%post , %%preun, " -+"%%postun에 종속된 기능이 표시됩니다." - - #: dnf/cli/commands/repoquery.py:243 - msgid "Display capabilities that the package suggests." -@@ -1930,22 +1979,23 @@ msgstr "검색에 사용되는 키워드" - - #: dnf/cli/commands/repoquery.py:295 - msgid "" --"Option '--resolve' has to be used together with one of the '--conflicts', '" --"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" -+"Option '--resolve' has to be used together with one of the '--conflicts', '--" -+"depends', '--enhances', '--provides', '--recommends', '--requires', '--" - "requires-pre', '--suggests' or '--supplements' options" - msgstr "" --"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', '--" --"recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-pre', '--" --"suggests'또는 '--supplements'옵션들" -+"옵션 '--resolve'는 '--conflicts', '--depends', '--enhances', '--provides', " -+"'--recommends', '--requires'중 하나와 함께 사용해야합니다. , '--requires-" -+"pre', '--suggests'또는 '--supplements'옵션들" - - #: dnf/cli/commands/repoquery.py:305 - msgid "" - "Option '--recursive' has to be used with '--whatrequires ' (optionally " --"with '--alldeps', but not with '--exactdeps'), or with '--requires " --"--resolve'" -+"with '--alldeps', but not with '--exactdeps'), or with '--requires --" -+"resolve'" - msgstr "" --"옵션 '--reative'를 '--whatrequires ' (선택 옵션으로 '--exactdeps' 대신 '--" --"alldeps'와 함께 사용), 또는 '--requires --resolve'와 함께 사용해야 합니다" -+"옵션 '--reative'를 '--whatrequires ' (선택 옵션으로 '--exactdeps' 대신 " -+"'--alldeps'와 함께 사용), 또는 '--requires --resolve'와 함께 사용해야 " -+"합니다" - - #: dnf/cli/commands/repoquery.py:312 - msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -1959,13 +2009,17 @@ msgstr "꾸러미 {}에 파일이 없습니다" - #, python-brace-format - msgid "" - "No valid switch specified\n" --"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "description:\n" - " For the given packages print a tree of thepackages." - msgstr "" - "유효한 매개 변수를 지정하지 않았습니다.\n" --"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"사용법: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "설명:\n" - " 지정된 꾸러미의 경우 꾸러미 트리를 출력하십시오." -@@ -2005,8 +2059,7 @@ msgstr "설명" - msgid "URL" - msgstr "URL" - --#. TRANSLATORS: separator used between package attributes (eg. Name & Summary --#. & URL) -+#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) - #: dnf/cli/commands/search.py:76 - msgid " & " - msgstr " & " -@@ -2016,14 +2069,14 @@ msgstr " & " - #: dnf/cli/commands/search.py:80 - #, python-format - msgid "%s Exactly Matched: %%s" --msgstr "%s 정확히 일치하는 항목: %%s" -+msgstr "%s과 정확히 일치하는 항목: %%s" - - #. TRANSLATORS: %s - translated package attributes, - #. %%s - found keys (in listed attributes) - #: dnf/cli/commands/search.py:84 - #, python-format - msgid "%s Matched: %%s" --msgstr "%s 일치하는 항목: %%s" -+msgstr "%s과 일치하는 항목: %%s" - - #: dnf/cli/commands/search.py:134 - msgid "No matches found." -@@ -2371,7 +2424,9 @@ msgstr "최신화 할 꾸러미" - msgid "" - "upgrade, but only 'newest' package match which fixes a problem that affects " - "your system" --msgstr "최신화 하지만 ‘최신' 꾸러미에만 시스템에 영향을 줄 수 있는 수정된 문제가 있습니다" -+msgstr "" -+"최신화 하지만 ‘최신' 꾸러미에만 시스템에 영향을 줄 수 있는 수정된 문제가 있습" -+"니다" - - #: dnf/cli/main.py:88 - msgid "Terminated." -@@ -2383,7 +2438,7 @@ msgstr "현재 디렉토리에서 읽기 / 실행 액세스가 없습니다. / - - #: dnf/cli/main.py:135 - msgid "try to add '{}' to command line to replace conflicting packages" --msgstr "충돌하는 꾸러미를 바꾸려면 명령 줄에 '{}'을 (를) 추가하십시오" -+msgstr "충돌하는 꾸러미를 교체하려면 명령줄에 '{}'을 추가하세요" - - #: dnf/cli/main.py:139 - msgid "try to add '{}' to skip uninstallable packages" -@@ -2475,7 +2530,7 @@ 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" -@@ -2495,7 +2550,7 @@ msgstr "연결에서 사용 가능한 최상의 꾸러미 버전을 사용해보 - - #: dnf/cli/option_parser.py:223 - msgid "do not limit the transaction to the best candidate" --msgstr "연결를 최상의 선택 옵션으로 제한하지 마십시오" -+msgstr "연결을 최상의 선택 옵션으로 제한하지 마십시오" - - #: dnf/cli/option_parser.py:226 - msgid "run entirely from system cache, don't update cache" -@@ -2527,8 +2582,8 @@ msgid "" - "enables {prog}'s obsoletes processing logic for upgrade or display " - "capabilities that the package obsoletes for info, list and repoquery" - msgstr "" --"꾸러미가 info, list, repoquery에 더 이상 사용하지 않는 최신화 또는 표시 기능을 위해 {prog}의 더 이상 사용되지 " --"않는 처리 로직을 활성화합니다" -+"꾸러미가 info, list, repoquery에 더 이상 사용하지 않는 최신화 또는 표시 기능" -+"을 위해 {prog}의 더 이상 사용되지 않는 처리 로직을 활성화합니다" - - #: dnf/cli/option_parser.py:251 - msgid "debugging output level for rpm" -@@ -2546,19 +2601,25 @@ msgstr "모든 질문에 대해 \"아니오\"(no)로 자동 응답합니다" - msgid "" - "Enable additional repositories. List option. Supports globs, can be " - "specified multiple times." --msgstr "추가 리포지토리를 활성화하십시오. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정할 수 있습니다." -+msgstr "" -+"추가 저장소를 활성화하십시오. 옵션이 나열됩니다. glob를 지원하며 여러 번 지" -+"정 할 수 있습니다." - - #: dnf/cli/option_parser.py:266 - msgid "" --"Disable repositories. List option. Supports globs, can be specified multiple" --" times." --msgstr "리포지토리를 비활성화합니다. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정할 수 있습니다." -+"Disable repositories. List option. Supports globs, can be specified multiple " -+"times." -+msgstr "" -+"저장소를 비활성화 합니다. 옵션이 나열됩니다. glob를 지원하며 여러 번 지정 할 " -+"수 있습니다." - - #: dnf/cli/option_parser.py:270 - msgid "" - "enable just specific repositories by an id or a glob, can be specified " - "multiple times" --msgstr "id 나 glob로 특정 리포지토리를 활성화할 수 있습니다. 여러 번 지정할 수 있습니다" -+msgstr "" -+"id 나 glob로 특정 리포지토리를 활성화할 수 있습니다. 여러 번 지정할 수 있습니" -+"다" - - #: dnf/cli/option_parser.py:275 - msgid "enable repos with config-manager command (automatically saves)" -@@ -2580,7 +2641,9 @@ msgstr "excludepkgs 비활성화" - msgid "" - "label and path to an additional repository to use (same path as in a " - "baseurl), can be specified multiple times." --msgstr "사용할 추가 리포지터리에 대한 레이블 및 경로 (baseurl과 동일한 경로)를 여러 번 지정할 수 있습니다." -+msgstr "" -+"사용 할 추가 레포지터리에 대한 이름표와 경로 (baseurl과 동일한 경로)를 여러 " -+"번 지정와 할 수 있습니다." - - #: dnf/cli/option_parser.py:297 - msgid "disable removal of dependencies that are no longer used" -@@ -2739,19 +2802,19 @@ msgstr "소스" - #: 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)) -@@ -2969,7 +3032,7 @@ msgstr "그룹 꾸러미 설치" - #: dnf/cli/output.py:1051 - msgctxt "summary" - msgid "Installing" --msgstr "설치중" -+msgstr "설치 중" - - #. TRANSLATORS: This is for a list of packages to be upgraded. - #: dnf/cli/output.py:1053 -@@ -2991,9 +3054,9 @@ msgstr "종속 꾸러미 설치 중" - msgid "Installing weak dependencies" - msgstr "취약한 종속 꾸러미 설치 중" - --#. TRANSLATORS: This is for a list of packages to be removed. - # translation auto-copied from project subscription-manager, version 1.11.X, - # document keys -+#. TRANSLATORS: This is for a list of packages to be removed. - #: dnf/cli/output.py:1060 - msgid "Removing" - msgstr "삭제 중" -@@ -3038,7 +3101,7 @@ msgstr "모듈 재설정" - - #: dnf/cli/output.py:1142 - msgid "Installing Environment Groups" --msgstr "환경 그룹 설치중" -+msgstr "환경 그룹 설치 중" - - #: dnf/cli/output.py:1149 - msgid "Upgrading Environment Groups" -@@ -3066,8 +3129,8 @@ msgid "" - "Skipping packages with conflicts:\n" - "(add '%s' to command line to force their upgrade)" - msgstr "" --"충돌 꾸러미 건너 뛰기 :\n" --"(최신화를 강제하려면 명령행에 '%s' 추가)" -+"충돌 꾸러미 건너 뛰기:\n" -+"(향상을 강제하려면 명령행에 '%s' 추가)" - - #: dnf/cli/output.py:1203 - #, python-format -@@ -3195,7 +3258,7 @@ msgstr "연결 ID 또는 꾸러미가 지정되지 않았습니다" - - #: dnf/cli/output.py:1653 - msgid "Erased" --msgstr "제거됨" -+msgstr "제거되었습니다" - - #: dnf/cli/output.py:1654 dnf/cli/output.py:1821 dnf/util.py:614 - msgid "Downgraded" -@@ -3393,7 +3456,7 @@ msgstr "" - - #: dnf/cli/utils.py:98 - msgid "Running" --msgstr "실행중" -+msgstr "실행 중" - - #: dnf/cli/utils.py:99 - msgid "Sleeping" -@@ -3440,10 +3503,6 @@ msgstr " 시작됨: %s - %s 전" - msgid " State : %s" - msgstr " 상태 : %s" - --#: dnf/comps.py:104 --msgid "skipping." --msgstr "건너 뛰기." -- - #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 - #, python-format - msgid "Module or Group '%s' is not installed." -@@ -3492,13 +3551,17 @@ msgstr "'%s' 구문 분석 중 오류 발생: %s" - #: dnf/conf/config.py:151 - #, python-format - msgid "Invalid configuration value: %s=%s in %s; %s" --msgstr "알 수없는 설정 값: %s; %s에서 %s=%s" -+msgstr "잘못된 구성 값: %s=%s (%s; %s에서)" -+ -+#: dnf/conf/config.py:194 -+msgid "Cannot set \"{}\" to \"{}\": {}" -+msgstr "\"{}\"을 \"{}\" 으로 설정 할 수 없습니다: {}" - --#: dnf/conf/config.py:226 -+#: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" - msgstr "cachedir를 설정할 수 없습니다: {}" - --#: dnf/conf/config.py:275 -+#: dnf/conf/config.py:293 - msgid "" - "Configuration file URL \"{}\" could not be downloaded:\n" - " {}" -@@ -3506,31 +3569,31 @@ msgstr "" - "구성 파일 URL \"{}\"를 내려받기 할 수 없습니다:\n" - " {}" - --#: dnf/conf/config.py:355 dnf/conf/config.py:391 -+#: dnf/conf/config.py:373 dnf/conf/config.py:409 - #, python-format - msgid "Unknown configuration option: %s = %s" - msgstr "알 수 없는 설정 옵션 : %s = %s" - --#: dnf/conf/config.py:372 -+#: dnf/conf/config.py:390 - #, python-format - msgid "Error parsing --setopt with key '%s', value '%s': %s" - msgstr "키 ‘%s', 값 '%s'를 사용하여 --setopt 구문 분석 중 오류 발생: %s" - --#: dnf/conf/config.py:380 -+#: dnf/conf/config.py:398 - #, python-format - msgid "Main config did not have a %s attr. before setopt" - msgstr "기본 설정에는 setopt 이전에 %s attr이 없습니다" - --#: dnf/conf/config.py:427 dnf/conf/config.py:445 -+#: dnf/conf/config.py:445 dnf/conf/config.py:463 - msgid "Incorrect or unknown \"{}\": {}" - msgstr "잘못되었거나 알 수 없음 \"{}\": {}" - --#: dnf/conf/config.py:501 -+#: dnf/conf/config.py:519 - #, python-format - msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" - msgstr "키 %s.%s', 값 '%s'를 사용하여 --setopt 구문 분석 중 오류 발생: %s" - --#: dnf/conf/config.py:504 -+#: dnf/conf/config.py:522 - #, python-format - msgid "Repo %s did not have a %s attr. before setopt" - msgstr "Repo %s에 setopt 이전에 %s attr이 없습니다" -@@ -3542,11 +3605,11 @@ msgstr "경고: '%s'을 적재하지 못했습니다, 건너 뛰기." - - #: dnf/conf/read.py:72 - msgid "Bad id for repo: {} ({}), byte = {} {}" --msgstr "리포지터리의 ID가 잘못되었습니다. {} ({}), byte = {} {}" -+msgstr "레포지터리의 ID가 잘못되었습니다. {} ({}), byte = {} {}" - - #: dnf/conf/read.py:76 - msgid "Bad id for repo: {}, byte = {} {}" --msgstr "리포지터리의 ID가 잘못되었습니다. {}, byte = {} {}" -+msgstr "레포지터리의 ID가 잘못되었습니다. {}, byte = {} {}" - - #: dnf/conf/read.py:84 - msgid "Repository '{}' ({}): Error parsing config: {}" -@@ -3558,7 +3621,8 @@ msgstr "Repository '{}' : 구문 분석 설정 오류: {}" - - #: dnf/conf/read.py:93 - msgid "Repository '{}' ({}) is missing name in configuration, using id." --msgstr "Repository '{}' ({})의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." -+msgstr "" -+"Repository '{}' ({})의 설정에 이름이 누락되어 있습니다. id를 사용하십시오." - - #: dnf/conf/read.py:96 - msgid "Repository '{}' is missing name in configuration, using id." -@@ -3580,11 +3644,11 @@ msgstr "repo %s: 0x%s 키를 가져왔습니다." - - #: dnf/crypto.py:145 - msgid "Verified using DNS record with DNSSEC signature." --msgstr "DNSSEC 서명과 함께 DNS 기록을 사용하여 확인되었습니다." -+msgstr "DNSSEC 서명이 있는 DNS 레코드를 사용하여 확인됨." - - #: dnf/crypto.py:147 - msgid "NOT verified using DNS record." --msgstr "DNS 기록 사용은 검증되지 않았습니다." -+msgstr "DNS 레코드를 사용하여 확인되지 않음." - - #: dnf/crypto.py:184 - #, python-format -@@ -3595,7 +3659,9 @@ msgstr "%s에서 암호화 하지 않은 %s를 위한 저장소 키 검색" - msgid "" - "No available modular metadata for modular package '{}', it cannot be " - "installed on the system" --msgstr "모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니다" -+msgstr "" -+"모듈 꾸러미 '{}'에 사용 가능한 메타 자료가 없으며 시스템에 설치 할 수 없습니" -+"다" - - #: dnf/db/group.py:353 - #, python-format -@@ -3611,32 +3677,33 @@ msgstr "모듈 꾸러미에 사용 가능한 모듈 메타 자료가 없습니 - msgid "Will not install a source rpm package (%s)." - msgstr "소스 RPM 꾸러미를 설치하지 않습니다 (%s)." - --#: dnf/dnssec.py:168 -+#: dnf/dnssec.py:171 - msgid "" - "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" --msgstr "설정 선택 'gpgkey_dns_verification'는 python3-unbound ({}) 가 필요합니다" -+msgstr "" -+"구성 선택 'gpgkey_dns_verification'에는 python3-unbound ({})가 필요합니다" - --#: dnf/dnssec.py:239 -+#: dnf/dnssec.py:243 - msgid "DNSSEC extension: Key for user " - msgstr "DNSSEC 확장 : 사용자 키 " - --#: dnf/dnssec.py:241 -+#: dnf/dnssec.py:245 - msgid "is valid." - msgstr "유효합니다." - --#: dnf/dnssec.py:243 -+#: dnf/dnssec.py:247 - msgid "has unknown status." - msgstr "알 수 없는 상태입니다." - --#: dnf/dnssec.py:251 -+#: dnf/dnssec.py:255 - msgid "DNSSEC extension: " - msgstr "DNSSEC 확장: " - --#: dnf/dnssec.py:283 -+#: dnf/dnssec.py:287 - msgid "Testing already imported keys for their validity." - msgstr "유효성 검사를 위해 이미 가져온 키를 테스트 중입니다." - --#: dnf/drpm.py:62 dnf/repo.py:268 -+#: dnf/drpm.py:62 dnf/repo.py:267 - #, python-format - msgid "unsupported checksum type: %s" - msgstr "지원되지 않는 검사 유형: %s" -@@ -3680,7 +3747,7 @@ msgid "Modular dependency problem with Defaults:" - msgid_plural "Modular dependency problems with Defaults:" - msgstr[0] "기본값의 모듈 종속성 문제 :" - --#: dnf/exceptions.py:131 dnf/module/module_base.py:854 -+#: dnf/exceptions.py:131 dnf/module/module_base.py:857 - msgid "Modular dependency problem:" - msgid_plural "Modular dependency problems:" - msgstr[0] "모듈 종속성 문제 :" -@@ -3689,10 +3756,12 @@ msgstr[0] "모듈 종속성 문제 :" - #, python-format - msgid "" - "Malformed lock file found: %s.\n" --"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." -+"Ensure no other dnf/yum process is running and remove the lock file manually " -+"or run systemd-tmpfiles --remove dnf.conf." - msgstr "" - "잘못된 잠금 파일이 발견되었습니다. %s \n" --"다른 dnf / yum 프로세스가 실행되고 있는지 확인하고 잠금 파일을 수동으로 제거하거나 systemd-tmpfiles --remove dnf.conf를 실행하십시오." -+"다른 dnf / yum 프로세스가 실행되고 있는지 확인하고 잠금 파일을 수동으로 제거" -+"하거나 systemd-tmpfiles --remove dnf.conf를 실행하십시오." - - #: dnf/module/__init__.py:26 - msgid "Enabling different stream for '{}'." -@@ -3720,19 +3789,19 @@ msgstr "그런 모듈이 없습니다: {}" - - #: dnf/module/exceptions.py:33 - msgid "No such stream: {}" --msgstr "그런 스트림: {} 없습니다" -+msgstr "그런 스트림이 없습니다: {}" - - #: dnf/module/exceptions.py:39 - msgid "No enabled stream for module: {}" --msgstr "모듈에 대한 스트림이 없습니다 : {}" -+msgstr "모듈에 대한 활성화된 스트림이 없습니다: {}" - - #: dnf/module/exceptions.py:46 - msgid "Cannot enable more streams from module '{}' at the same time" --msgstr "동시에 모듈'{}'에서 더이상 스트림을 활성화 할 수 없습니다" -+msgstr "동시에 모듈 '{}'에서 더 많은 스트림을 활성화 할 수 없습니다" - - #: dnf/module/exceptions.py:52 - msgid "Different stream enabled for module: {}" --msgstr "모듈: {} 을 위한 다른 스트림이 활성화되었습니다" -+msgstr "모듈에 대해 활성화된 다른 스트림: {}" - - #: dnf/module/exceptions.py:58 - msgid "No such profile: {}" -@@ -3740,19 +3809,19 @@ msgstr "그런 프로파일이 없습니다: {}" - - #: dnf/module/exceptions.py:64 - msgid "Specified profile not installed for {}" --msgstr "{}을 위한 지정한 프로파일이 설치되어 있지 않습니다" -+msgstr "{}를 위한 지정된 프로필이 설치되지 않았습니다" - - #: dnf/module/exceptions.py:70 - msgid "No stream specified for '{}', please specify stream" --msgstr "'{}'에 지정된 프로필이 없습니다. 프로필을 지정하십시오" -+msgstr "'{}'을 위한 지정된 스트림이 없으며, 스트림을 지정해주세요" - - #: dnf/module/exceptions.py:82 - msgid "No such profile: {}. No profiles available" --msgstr "그런 프로파일이 없습니다: {}. 가용한 프로파일이 없습니다" -+msgstr "그런 프로파일이 없습니다: {}. 사용 가능한 프로파일이 없습니다" - - #: dnf/module/exceptions.py:88 - msgid "No profile to remove for '{}'" --msgstr "'{}' 위해 제거 할 프로파일이 없습니다" -+msgstr "제거되는 프로파일이 없습니다('{}'를 위해 )" - - #: dnf/module/module_base.py:35 - msgid "" -@@ -3775,14 +3844,15 @@ msgstr "" - "힌트 : [d] efault, [e] nabled, [x] disabled, [i] stalled, [a] ctive" - - #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 --#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 -+#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 - msgid "Ignoring unnecessary profile: '{}/{}'" - 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 -@@ -3792,7 +3862,8 @@ msgstr "실패 방지 저장소 {1}에서 모듈 '{0}’를 설치 할 수 없 - #: dnf/module/module_base.py:104 dnf/module/module_base.py:214 - msgid "" - "Unable to match profile for argument {}. Available profiles for '{}:{}': {}" --msgstr "인수 {}의 프로파일을 찾을 수 없습니다. '{}:{}': {} 에 사용 가능한 프로파일" -+msgstr "" -+"인수 {}의 프로파일을 찾을 수 없습니다. '{}:{}': {} 에 사용 가능한 프로파일" - - #: dnf/module/module_base.py:108 dnf/module/module_base.py:218 - msgid "Unable to match profile for argument {}" -@@ -3812,7 +3883,7 @@ msgstr "{} 모듈에서 기본 프로필 {}을 (를) 사용할 수 없음 : {}" - - #: dnf/module/module_base.py:144 dnf/module/module_base.py:247 - msgid "Installing module from Fail-Safe repository is not allowed" --msgstr "Fail-Safe 리포지토리에서 모듈을 설치할 수 없습니다" -+msgstr "실패-방지 저장소에서 설치된 모듈은 허용하지 않습니다" - - #: dnf/module/module_base.py:196 - #, python-brace-format -@@ -3831,7 +3902,7 @@ msgstr "꾸러미 이름 '{}'를 위하여 배포판에서 사용 할 수 있는 - #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 - #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 - #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 --#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 -+#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 - msgid "Unable to resolve argument {}" - msgstr "인수 {}을 (를) 구문 분석할 수 없습니다" - -@@ -3851,19 +3922,18 @@ msgstr "실패-방지 저장소에서 모듈을 향상 할 수 없습니다" - #: dnf/module/module_base.py:422 - #, python-brace-format - msgid "" --"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" --" '{module}', but none of the streams are enabled or default" -+"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " -+"'{module}', but none of the streams are enabled or default" - msgstr "" --"인수 '{argument}' 일치 {stream_count} 스트림 ('{streams}') of 모듈 '{module}', 그러나 " --"활성화 된 스트림 또는 기본 스트림이 없습니다" -+"인수 '{argument}'는 {stream_count} 스트림 ('{streams}')과 일치합니다 (모듈의 " -+"'{module}'), 하지만 활성화 되었거나 지정된 스트림이 없습니다" - - #: dnf/module/module_base.py:509 - msgid "" --"Only module name is required. Ignoring unneeded information in argument: " --"'{}'" -+"Only module name is required. Ignoring unneeded information in argument: '{}'" - msgstr "모듈 이름만 필요합니다. '{}'인수에서 불필요한 정보를 무시합니다" - --#: dnf/module/module_base.py:841 -+#: dnf/module/module_base.py:844 - msgid "No match for package {}" - msgstr "{} 꾸러미와 일치하지 않습니다" - -@@ -3924,7 +3994,7 @@ msgid "Already downloaded" - msgstr "이미 내려받음" - - #. pinging mirrors, this might take a while --#: dnf/repo.py:347 -+#: dnf/repo.py:346 - #, python-format - msgid "determining the fastest mirror (%s hosts).. " - msgstr "가장 빠른 미러 지정 (%s 호스트).. " -@@ -3942,13 +4012,21 @@ msgstr "%s 에서 %s repo를 추가했습니다" - #: 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 "서명 확인에서 실행 가능한 rpmkey를 찾을 수 없습니다." -+msgstr "서명을 확인하기 위해 실행 할 수 있는 rpmkeys를 찾을 수 없습니다." - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function connot 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 "연결 시험 중에 오류가 발생했습니다." - -@@ -3956,13 +4034,15 @@ msgstr "연결 시험 중에 오류가 발생했습니다." - msgid "" - "allow_vendor_change is disabled. This option is currently not supported for " - "downgrade and distro-sync commands" --msgstr "허용_공급업체_변화는 사용 할 수 없습니다. 이 선택은 현재 다운드레이드와 distro-sync 명령을 지원하지 않습니다" -+msgstr "" -+"허용_공급업체_변화는 사용 할 수 없습니다. 이 선택은 현재 다운드레이드와 " -+"distro-sync 명령을 지원하지 않습니다" - - #. TRANSLATORS: This is for a single package currently being downgraded. - #: dnf/transaction.py:80 - msgctxt "currently" - msgid "Downgrading" --msgstr "하향설치중" -+msgstr "하향 설치 중" - - #: dnf/transaction.py:81 dnf/transaction.py:88 dnf/transaction.py:93 - #: dnf/transaction.py:95 -@@ -3973,7 +4053,7 @@ msgstr "정리" - #: dnf/transaction.py:83 - msgctxt "currently" - msgid "Installing" --msgstr "설치중" -+msgstr "설치 중" - - #. TRANSLATORS: This is for a single package currently being reinstalled. - #: dnf/transaction.py:87 -@@ -4030,7 +4110,8 @@ msgstr "잘못된 하위 버전 \"{minor}\", 번호가 예상됩니다." - msgid "" - "Incompatible major version \"{major}\", supported major version is " - "\"{major_supp}\"." --msgstr "호환되지 않는 주요 버전 \"{major}\", 지원되는 주요 버전 \"{major_supp}\"." -+msgstr "" -+"호환되지 않는 주요 버전 \"{major}\", 지원되는 주요 버전 \"{major_supp}\"." - - #: dnf/transaction_sr.py:224 - msgid "" -@@ -4054,8 +4135,10 @@ msgstr "rpm안에 누락된 객체 키 \"{key}\"." - - #: dnf/transaction_sr.py:289 - #, python-brace-format --msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." --msgstr "rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유\"{reason}\" 의 값." -+msgid "" -+"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." -+msgstr "" -+"rpm nevra \"{nevra}\"를 위한 예상되지 않은 꾸러미 이유\"{reason}\" 의 값." - - #: dnf/transaction_sr.py:297 - #, python-brace-format -@@ -4077,7 +4160,9 @@ msgstr "꾸러미 \"{na}\"는 활동 \"{action}\"를 위해 이미 설치되어 - msgid "" - "Package nevra \"{nevra}\" not available in repositories for action " - "\"{action}\"." --msgstr "꾸러미 nervra \"{nevra}\"는 실행 \"{action}\"을 위한 저장소에서 사용 할 수 없음." -+msgstr "" -+"꾸러미 nervra \"{nevra}\"는 실행 \"{action}\"을 위한 저장소에서 사용 할 수 없" -+"음." - - #: dnf/transaction_sr.py:356 - #, python-brace-format -@@ -4086,8 +4171,10 @@ msgstr "꾸러미 nevra\"{nevra}\"는 활동 \"{action}\"을 위해 설치되지 - - #: dnf/transaction_sr.py:370 - #, python-brace-format --msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." --msgstr "rpm nevra \"{nevra}\"를 위해 기대하지 않는 꾸러미 활동 \"{action}\"의 값." -+msgid "" -+"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." -+msgstr "" -+"rpm nevra \"{nevra}\"를 위해 기대하지 않는 꾸러미 활동 \"{action}\"의 값." - - #: dnf/transaction_sr.py:377 - #, python-format -@@ -4114,7 +4201,9 @@ msgstr "환경 id '%s'는 사용 할 수 없습니다." - msgid "" - "Invalid value \"{group_type}\" of environments.groups.group_type, only " - "\"mandatory\" or \"optional\" is supported." --msgstr "잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 \"선택\"만 지원합니다." -+msgstr "" -+"잘못된 environments.groups.group_type의 값 \"{group_type}\", \"필 수\" 또는 " -+"\"선택\"만 지원합니다." - - #: dnf/transaction_sr.py:464 - #, python-brace-format -@@ -4133,7 +4222,9 @@ msgstr "그룹 안에 누락된 객체 키 \"{key}\"." - - #: dnf/transaction_sr.py:571 - #, python-brace-format --msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." -+msgid "" -+"Unexpected value of environment action \"{action}\" for environment " -+"\"{env}\"." - msgstr "환경 \"{env}\"를 위해 예상하지 못한 환경 활동 \"{action}\"의 값." - - #: dnf/transaction_sr.py:576 -@@ -4144,9 +4235,10 @@ msgstr "환경에 누락된 객체 키 \"{key}\"." - #: dnf/transaction_sr.py:615 - #, python-brace-format - msgid "" --"Package nevra \"{nevra}\", which is not present in the transaction file, was" --" pulled into the transaction." --msgstr "꾸러미 nevra \"{nevra}\", 연겨 파일에 존재하지 않는 것은 연결로 가져왔습니다." -+"Package nevra \"{nevra}\", which is not present in the transaction file, was " -+"pulled into the transaction." -+msgstr "" -+"꾸러미 nevra \"{nevra}\", 연겨 파일에 존재하지 않는 것은 연결로 가져왔습니다." - - #: dnf/util.py:417 dnf/util.py:419 - msgid "Problem" -@@ -4174,7 +4266,7 @@ msgstr "건너 뛰기됨" - - #: dnf/util.py:621 - msgid "Removed" --msgstr "제거됨" -+msgstr "제거되었습니다" - - #: dnf/util.py:624 - msgid "Failed" -@@ -4185,10 +4277,14 @@ msgstr "실패하였습니다" - msgid "" - msgstr "" - -+#~ msgid "skipping." -+#~ msgstr "건너 뛰기." -+ - #~ msgid "" - #~ "Using rpmkeys executable from {path} to verify signature for package: " - #~ "{package}." --#~ msgstr "{path}에서 실행 가능한 rpmkey를 사용하여 꾸러미: {package}을 위해 서명을 확인합니다." -+#~ msgstr "" -+#~ "{path}에서 실행 할 수 있는 rpmkeys를 사용하여 꾸러미 서명 확인: {package}." - - #~ msgid "%s: %s check failed: %s vs %s" - #~ msgstr "%s: %s 확인 실패 : %s 대 %s" -diff --git a/po/zh_CN.po b/po/zh_CN.po -index dcde2037..65c5273b 100644 ---- a/po/zh_CN.po -+++ b/po/zh_CN.po -@@ -21,25 +21,29 @@ - # zhouxiaobo , 2017. #zanata - # Ludek Janda , 2018. #zanata - # Pany , 2018. #zanata --# Qiyu Yan , 2018. #zanata, 2021. --# Qiyu Yan , 2019. #zanata, 2021. -+# Qiyu Yan , 2018. #zanata -+# Qiyu Yan , 2019. #zanata - # Anonymous , 2020. - # Hongqiao Chen , 2020. - # Harry Chen , 2020. -+# Sundeep Anand , 2021. -+# weidong , 2021. -+# Transtats , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2021-06-13 09:18-0400\n" --"PO-Revision-Date: 2021-04-23 08:02+0000\n" --"Last-Translator: Charles Lee \n" --"Language-Team: Chinese (Simplified) \n" -+"POT-Creation-Date: 2022-02-28 11:37+0100\n" -+"PO-Revision-Date: 2022-03-09 12:39+0000\n" -+"Last-Translator: Transtats \n" -+"Language-Team: Chinese (Simplified) \n" - "Language: zh_CN\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=1; plural=0;\n" --"X-Generator: Weblate 4.6\n" -+"X-Generator: Weblate 4.11.2\n" - - #: dnf/automatic/emitter.py:32 - #, python-format -@@ -213,158 +217,154 @@ msgstr "配置文件 %s 中使用 tsflag 是错误的" - msgid "Failed to add groups file for repository: %s - %s" - msgstr "为仓库 %s 添加组文件时失败:%s" - --#: dnf/base.py:904 -+#: dnf/base.py:922 - msgid "Running transaction check" - msgstr "运行事务检查" - --#: dnf/base.py:912 -+#: dnf/base.py:930 - msgid "Error: transaction check vs depsolve:" - msgstr "错误:事务检查与依赖解决错误:" - --#: dnf/base.py:918 -+#: dnf/base.py:936 - msgid "Transaction check succeeded." - msgstr "事务检查成功。" - --#: dnf/base.py:921 -+#: dnf/base.py:939 - msgid "Running transaction test" - msgstr "运行事务测试" - --#: dnf/base.py:931 dnf/base.py:1082 -+#: dnf/base.py:949 dnf/base.py:1100 - msgid "RPM: {}" - msgstr "RPM软件包: {}" - --#: dnf/base.py:932 -+#: dnf/base.py:950 - msgid "Transaction test error:" - msgstr "事物测试失败:" - --#: dnf/base.py:943 -+#: dnf/base.py:961 - msgid "Transaction test succeeded." - msgstr "事务测试成功。" - --#: dnf/base.py:964 -+#: dnf/base.py:982 - msgid "Running transaction" - msgstr "运行事务" - --#: dnf/base.py:1001 -+#: dnf/base.py:1019 - msgid "Disk Requirements:" - msgstr "磁盘需求:" - --#: dnf/base.py:1004 -+#: dnf/base.py:1022 - #, 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 的空间。" - --#: dnf/base.py:1011 -+#: dnf/base.py:1029 - msgid "Error Summary" - msgstr "错误汇总" - --#: dnf/base.py:1037 -+#: dnf/base.py:1055 - #, python-brace-format - msgid "RPMDB altered outside of {prog}." - msgstr "RPMDB 在 {prog} 外被改动了。" - --#: dnf/base.py:1083 dnf/base.py:1091 -+#: dnf/base.py:1101 dnf/base.py:1109 - msgid "Could not run transaction." - msgstr "不能执行事务。" - --#: dnf/base.py:1086 -+#: dnf/base.py:1104 - msgid "Transaction couldn't start:" - msgstr "事务无法启动:" - --#: dnf/base.py:1100 -+#: dnf/base.py:1118 - #, python-format - msgid "Failed to remove transaction file %s" - msgstr "移除事务文件 %s 失败" - --#: dnf/base.py:1182 -+#: dnf/base.py:1200 - msgid "Some packages were not downloaded. Retrying." - msgstr "某些软件包没有被下载。正在重试。" - --#: dnf/base.py:1212 --#, fuzzy, python-format --#| msgid "" --#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" -+#: dnf/base.py:1230 -+#, python-format - msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" --msgstr "增量 RPM 将 %.1f MB 的更新减少至 %.1f MB(已节省 %d.1%% )" -+msgstr "增量 RPM 将更新的 %.1f MB 减少到 %.1f MB(节省了 %.1f%%)" - --#: dnf/base.py:1216 --#, fuzzy, python-format --#| msgid "" --#| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" -+#: dnf/base.py:1234 -+#, python-format - msgid "" - "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" --msgstr "增量 RPM 未能将 %.1f MB 的更新减少至 %.1f MB(已浪费 %d.1%% )" -+msgstr "失败的增量 RPM 将更新的 %.1f MB 增加到 %.1f MB(浪费了 %.1f%%)" - --#: dnf/base.py:1258 -+#: dnf/base.py:1276 - msgid "Cannot add local packages, because transaction job already exists" - msgstr "由于事物已经存在,无法添加本地软件包" - --#: dnf/base.py:1272 -+#: dnf/base.py:1290 - msgid "Could not open: {}" - msgstr "无法打开: {}" - --#: dnf/base.py:1310 -+#: dnf/base.py:1328 - #, python-format - msgid "Public key for %s is not installed" - msgstr "%s 的公钥没有安装" - --#: dnf/base.py:1314 -+#: dnf/base.py:1332 - #, python-format - msgid "Problem opening package %s" - msgstr "打开软件包 %s 出现问题" - --#: dnf/base.py:1322 -+#: dnf/base.py:1340 - #, python-format - msgid "Public key for %s is not trusted" - msgstr "%s 的公钥不可信任" - --#: dnf/base.py:1326 -+#: dnf/base.py:1344 - #, python-format - msgid "Package %s is not signed" - msgstr "软件包 %s 没有签名" - --#: dnf/base.py:1356 -+#: dnf/base.py:1374 - #, python-format - msgid "Cannot remove %s" - msgstr "无法删除 %s" - --#: dnf/base.py:1360 -+#: dnf/base.py:1378 - #, python-format - msgid "%s removed" - msgstr "%s 已删除" - --#: dnf/base.py:1640 -+#: dnf/base.py:1658 - msgid "No match for group package \"{}\"" - msgstr "没有和组 \"{}\" 匹配的" - --#: dnf/base.py:1726 -+#: dnf/base.py:1740 - #, python-format - msgid "Adding packages from group '%s': %s" - msgstr "从组 '%s': %s 添加软件包" - --#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1763 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:1767 -+#: dnf/base.py:1781 - msgid "No groups marked for removal." - msgstr "没有软件包组需要移除。" - --#: dnf/base.py:1801 -+#: dnf/base.py:1815 - msgid "No group marked for upgrade." - msgstr "没有标记为要升级的组。" - --#: dnf/base.py:2015 -+#: dnf/base.py:2029 - #, python-format - msgid "Package %s not installed, cannot downgrade it." - msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" - --#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 --#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 -+#: 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/cli/commands/__init__.py:420 dnf/cli/commands/__init__.py:477 - #: dnf/cli/commands/__init__.py:581 dnf/cli/commands/__init__.py:628 - #: dnf/cli/commands/__init__.py:706 dnf/cli/commands/install.py:147 -@@ -374,178 +374,179 @@ msgstr "软件包 %s 并没有能够安装,无法进行降级操作。" - msgid "No match for argument: %s" - msgstr "未找到匹配的参数: %s" - --#: dnf/base.py:2024 -+#: dnf/base.py:2038 - #, python-format - msgid "Package %s of lower version already installed, cannot downgrade it." - msgstr "软件包 %s 的低版本已经安装,无法进行降级。" - --#: dnf/base.py:2047 -+#: dnf/base.py:2061 - #, python-format - msgid "Package %s not installed, cannot reinstall it." - msgstr "软件包 %s 未能够安装成功,无法进行重新安装。" - --#: dnf/base.py:2062 -+#: dnf/base.py:2076 - #, python-format - msgid "File %s is a source package and cannot be updated, ignoring." - msgstr "%s 文件无法被升级,已忽略。" - --#: dnf/base.py:2073 -+#: dnf/base.py:2087 - #, python-format - msgid "Package %s not installed, cannot update it." - msgstr "软件包 %s 未安装,无法更新。" - --#: dnf/base.py:2083 -+#: dnf/base.py:2097 - #, python-format - msgid "" - "The same or higher version of %s is already installed, cannot update it." - msgstr "已经安装了软件包%s的相同或更高版本,无法更新。" - --#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 - #, python-format - msgid "Package %s available, but not installed." - msgstr "软件包 %s 可用,但没有被安装。" - --#: dnf/base.py:2132 -+#: dnf/base.py:2146 - #, python-format - msgid "Package %s available, but installed for different architecture." - msgstr "软件包 %s 可用,当是为其它架构安装。" - --#: dnf/base.py:2157 -+#: dnf/base.py:2171 - #, python-format - msgid "No package %s installed." - msgstr "没有软件包 %s 安装。" - --#: dnf/base.py:2175 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2189 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:2190 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 - #: dnf/cli/commands/remove.py:162 - msgid "No packages marked for removal." - msgstr "没有软件包需要移除。" - --#: dnf/base.py:2278 dnf/cli/cli.py:428 -+#: dnf/base.py:2292 dnf/cli/cli.py:428 - #, python-format - msgid "Packages for argument %s available, but not installed." - msgstr "针对于参数 %s 的软件包可用, 但是目前没有安装。" - --#: dnf/base.py:2283 -+#: dnf/base.py:2297 - #, python-format - msgid "Package %s of lowest version already installed, cannot downgrade it." - msgstr "软件包 %s 的最低版本已经安装,无法再进行降级。" - --#: dnf/base.py:2383 -+#: dnf/base.py:2397 - msgid "No security updates needed, but {} update available" - msgstr "没有必须的安全更新, 但是 {} 的更新可用" - --#: dnf/base.py:2385 -+#: dnf/base.py:2399 - msgid "No security updates needed, but {} updates available" - msgstr "没有必须的安全更新, 但是 {} 的更新可用" - --#: dnf/base.py:2389 -+#: dnf/base.py:2403 - msgid "No security updates needed for \"{}\", but {} update available" - msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" - --#: dnf/base.py:2391 -+#: dnf/base.py:2405 - msgid "No security updates needed for \"{}\", but {} updates available" - msgstr "没有针对于\"{}\" 所必须的安全更新, 但是 {} 的更新可用" - - #. raise an exception, because po.repoid is not in self.repos --#: dnf/base.py:2412 -+#: dnf/base.py:2426 - #, python-format - msgid "Unable to retrieve a key for a commandline package: %s" - msgstr "无法获取来自命令行的软件包的密钥:%s" - --#: dnf/base.py:2420 -+#: dnf/base.py:2434 - #, python-format - msgid ". Failing package is: %s" - msgstr ". 失败的软件包是:%s" - --#: dnf/base.py:2421 -+#: dnf/base.py:2435 - #, python-format - msgid "GPG Keys are configured as: %s" - msgstr "GPG密钥配置为:%s" - --#: dnf/base.py:2433 -+#: dnf/base.py:2447 - #, python-format - msgid "GPG key at %s (0x%s) is already installed" - msgstr "%s 的 GPG 公钥(0x%s)已安装" - --#: dnf/base.py:2469 -+#: dnf/base.py:2483 - msgid "The key has been approved." - msgstr "密钥已被确认。" - --#: dnf/base.py:2472 -+#: dnf/base.py:2486 - msgid "The key has been rejected." - msgstr "密钥已被拒绝。" - --#: dnf/base.py:2505 -+#: dnf/base.py:2519 - #, python-format - msgid "Key import failed (code %d)" - msgstr "导入公钥失败(代码 %d)" - --#: dnf/base.py:2507 -+#: dnf/base.py:2521 - msgid "Key imported successfully" - msgstr "导入公钥成功" - --#: dnf/base.py:2511 -+#: dnf/base.py:2525 - msgid "Didn't install any keys" - msgstr "没有安装任何公钥" - --#: dnf/base.py:2514 -+#: dnf/base.py:2528 - #, python-format - msgid "" --"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" -+"The GPG keys listed for the \"%s\" repository are already installed but they " -+"are not correct for this package.\n" - "Check that the correct key URLs are configured for this repository." - msgstr "" - "仓库 \"%s\" 的 GPG 公钥已安装,但是不适用于此软件包。\n" - "请检查此仓库的公钥 URL 是否配置正确。" - --#: dnf/base.py:2525 -+#: dnf/base.py:2539 - msgid "Import of key(s) didn't help, wrong key(s)?" - msgstr "导入的密钥没有公钥,错误的公钥?" - --#: dnf/base.py:2578 -+#: dnf/base.py:2592 - msgid " * Maybe you meant: {}" - msgstr " * 可能您的意思是:{}" - --#: dnf/base.py:2610 -+#: dnf/base.py:2624 - msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" - msgstr "软件包 \"{}\"(来自于本地仓库 \"{}\")的 checksum 不正确" - --#: dnf/base.py:2613 -+#: dnf/base.py:2627 - msgid "Some packages from local repository have incorrect checksum" - msgstr "本地仓库的一些软件包校验值(checksum)不正确,无法确定软件包完整" - --#: dnf/base.py:2616 -+#: dnf/base.py:2630 - msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" - msgstr "软件包 \"{}\"(来自仓库 \"{}\")的 checksum 不正确" - --#: dnf/base.py:2619 -+#: dnf/base.py:2633 - msgid "" - "Some packages have invalid cache, but cannot be downloaded due to \"--" - "cacheonly\" option" - msgstr "以下软件包有无效缓存,因为使用了 \"--cacheonly\" 选项不能下载" - --#: dnf/base.py:2637 dnf/base.py:2657 -+#: dnf/base.py:2651 dnf/base.py:2671 - msgid "No match for argument" - msgstr "未找到匹配的参数" - --#: dnf/base.py:2645 dnf/base.py:2665 -+#: dnf/base.py:2659 dnf/base.py:2679 - msgid "All matches were filtered out by exclude filtering for argument" - msgstr "由于您的搜索参数,所有相关结果都已被滤掉" - --#: dnf/base.py:2647 -+#: dnf/base.py:2661 - msgid "All matches were filtered out by modular filtering for argument" - msgstr "所有的匹配结果均已经被参数的模块化过滤条件筛除" - --#: dnf/base.py:2663 -+#: dnf/base.py:2677 - msgid "All matches were installed from a different repository for argument" - msgstr "已从另一个仓库安装了参数的所有匹配" - --#: dnf/base.py:2710 -+#: dnf/base.py:2724 - #, python-format - msgid "Package %s is already installed." - msgstr "软件包 %s 已安装。" -@@ -555,7 +556,7 @@ msgstr "软件包 %s 已安装。" - msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" - msgstr "该环境变量具有错误的值:DNF_DISABLE_ALIASES=%s" - --#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 -+#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 - #, python-format - msgid "Parsing file \"%s\" failed: %s" - msgstr "解析文件 \"%s\" 失败:%s" -@@ -600,11 +601,15 @@ msgstr "这个操作会把模块 '{0}' 从流 '{1}' 切换到流 '{2}'" - #: dnf/cli/cli.py:173 - #, python-brace-format - msgid "" --"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" --"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." -+"It is not possible to switch enabled streams of a module unless explicitly " -+"enabled via configuration option module_stream_switch.\n" -+"It is recommended to rather remove all installed content from the module, " -+"and reset the module using '{prog} module reset ' command. " -+"After you reset the module, you can install the other stream." - msgstr "" - "无法切换已启用模块的流,除非显式的通过配置选项 module_stream_switch 启用。\n" --"推荐直接移除来自模块的所有已安装内容,然后通过 '{prog} module reset ' 命令重置模块。在您重置模块之后,就可以安装其他的流。" -+"推荐直接移除来自模块的所有已安装内容,然后通过 '{prog} module reset " -+"' 命令重置模块。在您重置模块之后,就可以安装其他的流。" - - #: dnf/cli/cli.py:212 - #, python-brace-format -@@ -707,8 +712,8 @@ msgstr "没有仓库匹配: %s" - - #: dnf/cli/cli.py:719 - msgid "" --"This command has to be run with superuser privileges (under the root user on" --" most systems)." -+"This command has to be run with superuser privileges (under the root user on " -+"most systems)." - msgstr "运行此命令需要管理员特权(多数系统下是root用户)。" - - #: dnf/cli/cli.py:749 -@@ -735,21 +740,24 @@ msgid "" - "--destdir or --downloaddir must be used with --downloadonly or download or " - "system-upgrade command." - msgstr "" --"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-upgrade " --"命令一起使用。" -+"--destdir 或 --downloaddir 必须和 --downloadonly 或 download 或 system-" -+"upgrade 命令一起使用。" - - #: dnf/cli/cli.py:820 - msgid "" - "--enable, --set-enabled and --disable, --set-disabled must be used with " - "config-manager command." - msgstr "" --"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命令一起使用。" -+"--enable、--set-enabled 和 --disable、--set-disabled 必须和 config-manager 命" -+"令一起使用。" - - #: dnf/cli/cli.py:902 - msgid "" - "Warning: Enforcing GPG signature check globally as per active RPM security " - "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" --msgstr "警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中的'gpgcheck'以了解如何阻止这条信息)" -+msgstr "" -+"警告:由于活动的RPM安全策略,强制执行全局GPG签名检查 (请参照dnf.conf(5)中" -+"的'gpgcheck'以了解如何阻止这条信息)" - - #: dnf/cli/cli.py:922 - msgid "Config file \"{}\" does not exist" -@@ -800,7 +808,8 @@ msgstr "RPM 数据库可能出错,请尝试运行'%s'进行恢复。" - #, python-brace-format - msgid "" - "You have enabled checking of packages via GPG keys. This is a good thing.\n" --"However, you do not have any GPG public keys installed. You need to download\n" -+"However, you do not have any GPG public keys installed. You need to " -+"download\n" - "the keys for packages you wish to install and install them.\n" - "You can do that by running the command:\n" - " rpm --import public.gpg.key\n" -@@ -1140,7 +1149,8 @@ msgstr "正在等待 pid 为%d的进程退出。" - msgid "" - "[deprecated, use repoquery --deplist] List package's dependencies and what " - "packages provide them" --msgstr "[已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源" -+msgstr "" -+"[已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源" - - #: dnf/cli/commands/distrosync.py:32 - msgid "synchronize installed packages to the latest available versions" -@@ -1242,12 +1252,12 @@ msgstr "显示或使用事务历史" - - #: dnf/cli/commands/history.py:66 - msgid "For the store command, file path to store the transaction to" --msgstr "对于 store 命令,将事务保存到的文件路径" -+msgstr "对于 store 命令,要将事务保存到的文件路径" - - #: dnf/cli/commands/history.py:68 - msgid "" --"For the replay command, don't check for installed packages matching those in" --" transaction" -+"For the replay command, don't check for installed packages matching those in " -+"transaction" - msgstr "对于 replay 命令,不要检查已安装的包是否与事务中符合" - - #: dnf/cli/commands/history.py:71 -@@ -1258,8 +1268,8 @@ msgstr "对于 replay 命令,不要检查被拉入事务的额外的包" - - #: dnf/cli/commands/history.py:74 - msgid "" --"For the replay command, skip packages that are not available or have missing" --" dependencies" -+"For the replay command, skip packages that are not available or have missing " -+"dependencies" - msgstr "对于 replay 命令,跳过不可用或者缺少依赖项的软件包" - - #: dnf/cli/commands/history.py:94 -@@ -1290,8 +1300,8 @@ msgstr "你没有权限访问历史数据库:%s" - #: dnf/cli/commands/history.py:151 - #, python-format - msgid "" --"Cannot undo transaction %s, doing so would result in an inconsistent package" --" database." -+"Cannot undo transaction %s, doing so would result in an inconsistent package " -+"database." - msgstr "无法撤销事务 %s,这样做将可能导致不一致的软件包数据库。" - - #: dnf/cli/commands/history.py:156 -@@ -1439,8 +1449,8 @@ msgstr "软件包 %s 尚未安装。" - - #: dnf/cli/commands/module.py:54 - msgid "" --"Only module name, stream, architecture or profile is used. Ignoring unneeded" --" information in argument: '{}'" -+"Only module name, stream, architecture or profile is used. Ignoring unneeded " -+"information in argument: '{}'" - msgstr "仅使用模块名称、流、架构或者配置文件。忽略参数中不需要的信息:'{}'" - - #: dnf/cli/commands/module.py:80 -@@ -1609,15 +1619,15 @@ 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 : " -@@ -1679,11 +1689,11 @@ msgstr "Repo-include : " - #. 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)... -@@ -1734,7 +1744,9 @@ msgstr "只显示与 REQ 冲突的结果" - msgid "" - "shows results that requires, suggests, supplements, enhances,or recommends " - "package provides and files REQ" --msgstr "选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 REQ 的结果" -+msgstr "" -+"选择 requires、suggest、supplement、enhance 或 recommend 软件包提供和文件 " -+"REQ 的结果" - - #: dnf/cli/commands/repoquery.py:139 - msgid "show only results that obsolete REQ" -@@ -1823,9 +1835,11 @@ msgstr "显示软件包的 changelogs" - #: dnf/cli/commands/repoquery.py:194 - #, python-format, python-brace-format - msgid "" --"display format for listing packages: \"%%{name} %%{version} ...\", use " --"--querytags to view full tag list" --msgstr "软件包列表的显示格式 : \"%%{name} %%{version} ...\", 使用 --querytags 参数来查看完整的标签列表" -+"display format for listing packages: \"%%{name} %%{version} ...\", use --" -+"querytags to view full tag list" -+msgstr "" -+"软件包列表的显示格式 : \"%%{name} %%{version} ...\", 使用 --querytags 参数来" -+"查看完整的标签列表" - - #: dnf/cli/commands/repoquery.py:198 - msgid "show available tags to use with --queryformat" -@@ -1835,13 +1849,16 @@ msgstr "显示可被 --queryformat 使用的标签" - msgid "" - "use name-epoch:version-release.architecture format for displaying found " - "packages (default)" --msgstr "使用 name-epoch:version-release.architecture 的格式来输出找到的软件包(默认格式)" -+msgstr "" -+"使用 name-epoch:version-release.architecture 的格式来输出找到的软件包(默认格" -+"式)" - - #: dnf/cli/commands/repoquery.py:205 - msgid "" - "use name-version-release format for displaying found packages (rpm query " - "default)" --msgstr "使用 name-version-release 的格式来输出找到的软件包(rpm 查询的默认格式)" -+msgstr "" -+"使用 name-version-release 的格式来输出找到的软件包(rpm 查询的默认格式)" - - #: dnf/cli/commands/repoquery.py:211 - msgid "" -@@ -1877,7 +1894,9 @@ msgstr "显示与该软件包冲突的功能。" - msgid "" - "Display capabilities that the package can depend on, enhance, recommend, " - "suggest, and supplement." --msgstr "显示软件包可用在其中 depend on、enhance、recommend、suggest 和 supplement 的功能。" -+msgstr "" -+"显示软件包可用在其中 depend on、enhance、recommend、suggest 和 supplement 的" -+"功能。" - - #: dnf/cli/commands/repoquery.py:236 - msgid "Display capabilities that the package can enhance." -@@ -1902,8 +1921,8 @@ msgid "" - "running %%pre and %%post scriptlets. If the package is installed display " - "capabilities that is depends for %%pre, %%post, %%preun and %%postun." - msgstr "" --"如果未安装软件包,则显示执行 %%pre 和 %%post 脚本所依赖的功能。如果已经了安装软件包,则显示执行 %%pre、%%post、%%preun" --" 和 %%postun 脚本所依赖的功能。" -+"如果未安装软件包,则显示执行 %%pre 和 %%post 脚本所依赖的功能。如果已经了安装" -+"软件包,则显示执行 %%pre、%%post、%%preun 和 %%postun 脚本所依赖的功能。" - - #: dnf/cli/commands/repoquery.py:243 - msgid "Display capabilities that the package suggests." -@@ -1952,22 +1971,23 @@ msgstr "搜索所用的关键词" - - #: dnf/cli/commands/repoquery.py:295 - msgid "" --"Option '--resolve' has to be used together with one of the '--conflicts', '" --"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" -+"Option '--resolve' has to be used together with one of the '--conflicts', '--" -+"depends', '--enhances', '--provides', '--recommends', '--requires', '--" - "requires-pre', '--suggests' or '--supplements' options" - msgstr "" --"选项 '--resolve' 需要和 '--conflicts'、'--depends'、'--enhances'、'--provides'、'--" --"recommends'、'--requires'、'--requires-pre'、'--suggests' 或 '--supplements' " --"选项之一一起使用" -+"选项 '--resolve' 需要和 '--conflicts'、'--depends'、'--enhances'、'--" -+"provides'、'--recommends'、'--requires'、'--requires-pre'、'--suggests' 或 " -+"'--supplements' 选项之一一起使用" - - #: dnf/cli/commands/repoquery.py:305 - msgid "" - "Option '--recursive' has to be used with '--whatrequires ' (optionally " --"with '--alldeps', but not with '--exactdeps'), or with '--requires " --"--resolve'" -+"with '--alldeps', but not with '--exactdeps'), or with '--requires --" -+"resolve'" - msgstr "" --"选项 '--recursive' 需要和 '--whatrequires ' 一起使用(以及可选的 '--alldeps',但不能是 '--" --"exactdeps'),或和 '--requires --resolve' 一起使用" -+"选项 '--recursive' 需要和 '--whatrequires ' 一起使用(以及可选的 '--" -+"alldeps',但不能是 '--exactdeps'),或和 '--requires --resolve' 一起使" -+"用" - - #: dnf/cli/commands/repoquery.py:312 - msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -1981,13 +2001,17 @@ msgstr "软件包 {} 不包含文件" - #, python-brace-format - msgid "" - "No valid switch specified\n" --"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "description:\n" - " For the given packages print a tree of thepackages." - msgstr "" - "没有指定有效参数\n" --"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "描述:\n" - " 对于指定的软件包,打印此软件包的树状图。" -@@ -2027,8 +2051,7 @@ msgstr "描述" - msgid "URL" - msgstr "URL" - --#. TRANSLATORS: separator used between package attributes (eg. Name & Summary --#. & URL) -+#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) - #: dnf/cli/commands/search.py:76 - msgid " & " - msgstr " 和 " -@@ -2546,7 +2569,9 @@ msgstr "错误输出级别" - msgid "" - "enables {prog}'s obsoletes processing logic for upgrade or display " - "capabilities that the package obsoletes for info, list and repoquery" --msgstr "对 upgrade 启用 {prog} 的过期处理逻辑,或对 info、list 和 repoquery 启用软件包过期的显示功能" -+msgstr "" -+"对 upgrade 启用 {prog} 的过期处理逻辑,或对 info、list 和 repoquery 启用软件" -+"包过期的显示功能" - - #: dnf/cli/option_parser.py:251 - msgid "debugging output level for rpm" -@@ -2568,8 +2593,8 @@ msgstr "启用附加仓库。列出选项。支持通配符,可以指定多次 - - #: dnf/cli/option_parser.py:266 - msgid "" --"Disable repositories. List option. Supports globs, can be specified multiple" --" times." -+"Disable repositories. List option. Supports globs, can be specified multiple " -+"times." - msgstr "停用仓库。列出选项。支持通配符,可指定多次。" - - #: dnf/cli/option_parser.py:270 -@@ -2598,7 +2623,8 @@ msgstr "禁用 excludepkgs" - msgid "" - "label and path to an additional repository to use (same path as in a " - "baseurl), can be specified multiple times." --msgstr "附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。" -+msgstr "" -+"附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。" - - #: dnf/cli/option_parser.py:297 - msgid "disable removal of dependencies that are no longer used" -@@ -3161,7 +3187,7 @@ msgstr "总计" - - #: dnf/cli/output.py:1466 - msgid "" --msgstr "<空>" -+msgstr "" - - #: dnf/cli/output.py:1467 - msgid "System" -@@ -3451,10 +3477,6 @@ msgstr " 已启动: %s - %s之前" - msgid " State : %s" - msgstr " 状态 : %s" - --#: dnf/comps.py:104 --msgid "skipping." --msgstr "正在跳过。" -- - #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 - #, python-format - msgid "Module or Group '%s' is not installed." -@@ -3505,11 +3527,15 @@ msgstr "解析 “%s” 时错误: %s" - msgid "Invalid configuration value: %s=%s in %s; %s" - msgstr "无效配置值: %s=%s 在 %s 中; %s" - --#: dnf/conf/config.py:226 -+#: dnf/conf/config.py:194 -+msgid "Cannot set \"{}\" to \"{}\": {}" -+msgstr "无法将 \"{}\" 设置为 \"{}\": {}" -+ -+#: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" - msgstr "不能设置 cachedir: {}" - --#: dnf/conf/config.py:275 -+#: dnf/conf/config.py:293 - msgid "" - "Configuration file URL \"{}\" could not be downloaded:\n" - " {}" -@@ -3517,31 +3543,31 @@ msgstr "" - "配置文件的 URL \"{}\" 无法下载:\n" - " {}" - --#: dnf/conf/config.py:355 dnf/conf/config.py:391 -+#: dnf/conf/config.py:373 dnf/conf/config.py:409 - #, python-format - msgid "Unknown configuration option: %s = %s" - msgstr "未知配置选项: %s = %s" - --#: dnf/conf/config.py:372 -+#: dnf/conf/config.py:390 - #, python-format - msgid "Error parsing --setopt with key '%s', value '%s': %s" - msgstr "解析 --setopt 时出现错误,键为 '%s',值是 '%s': %s" - --#: dnf/conf/config.py:380 -+#: dnf/conf/config.py:398 - #, python-format - msgid "Main config did not have a %s attr. before setopt" - msgstr "主配置在 setopt 前没有一个 %s 属性" - --#: dnf/conf/config.py:427 dnf/conf/config.py:445 -+#: dnf/conf/config.py:445 dnf/conf/config.py:463 - msgid "Incorrect or unknown \"{}\": {}" - msgstr "不正确或未知的 \"{}\": {}" - --#: dnf/conf/config.py:501 -+#: dnf/conf/config.py:519 - #, python-format - msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" - msgstr "解析 --setopt 时出现错误,键为 '%s.%s', 值是 '%s': %s" - --#: dnf/conf/config.py:504 -+#: dnf/conf/config.py:522 - #, python-format - msgid "Repo %s did not have a %s attr. before setopt" - msgstr "Repo %s 在 setopt 前没有一个 %s 属性" -@@ -3611,7 +3637,7 @@ msgstr "对于模块软件包 '{}' 没有可用的模块元数据,它将不能 - #: dnf/db/group.py:353 - #, python-format - msgid "An rpm exception occurred: %s" --msgstr "rpm 出现了一个异常:%s" -+msgstr "发生了 rpm 异常:%s" - - #: dnf/db/group.py:355 - msgid "No available modular metadata for modular package" -@@ -3622,32 +3648,32 @@ msgstr "对于模块软件包没有可用的模块元数据" - msgid "Will not install a source rpm package (%s)." - msgstr "将不安装一个源码 RPM 软件包 (%s)。" - --#: dnf/dnssec.py:168 -+#: dnf/dnssec.py:171 - msgid "" - "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" - msgstr "配置文件选项 'gpgkey_dns_verification' 要求 python3-unbound ({})" - --#: dnf/dnssec.py:239 -+#: dnf/dnssec.py:243 - msgid "DNSSEC extension: Key for user " - msgstr "DNSSEC 扩展 : 用户的密钥 " - --#: dnf/dnssec.py:241 -+#: dnf/dnssec.py:245 - msgid "is valid." - msgstr "有效。" - --#: dnf/dnssec.py:243 -+#: dnf/dnssec.py:247 - msgid "has unknown status." - msgstr "具有未知的状态。" - --#: dnf/dnssec.py:251 -+#: dnf/dnssec.py:255 - msgid "DNSSEC extension: " - msgstr "DNSSEC 扩展 : " - --#: dnf/dnssec.py:283 -+#: dnf/dnssec.py:287 - msgid "Testing already imported keys for their validity." - msgstr "测试已导入的密钥以检查有效性。" - --#: dnf/drpm.py:62 dnf/repo.py:268 -+#: dnf/drpm.py:62 dnf/repo.py:267 - #, python-format - msgid "unsupported checksum type: %s" - msgstr "不支持的校验类型: %s" -@@ -3689,7 +3715,7 @@ msgid "Modular dependency problem with Defaults:" - msgid_plural "Modular dependency problems with Defaults:" - msgstr[0] "默认设置中的模块依赖问题 :" - --#: dnf/exceptions.py:131 dnf/module/module_base.py:854 -+#: dnf/exceptions.py:131 dnf/module/module_base.py:857 - msgid "Modular dependency problem:" - msgid_plural "Modular dependency problems:" - msgstr[0] "模块依赖问题:" -@@ -3698,10 +3724,12 @@ msgstr[0] "模块依赖问题:" - #, python-format - msgid "" - "Malformed lock file found: %s.\n" --"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." -+"Ensure no other dnf/yum process is running and remove the lock file manually " -+"or run systemd-tmpfiles --remove dnf.conf." - msgstr "" - "发现损坏的锁文件 : %s。\n" --"请确保没有其他 dnf/yum 进程正在运行,并手工删除锁文件,或执行 systemd-tmpfiles --remove dnf.conf 。" -+"请确保没有其他 dnf/yum 进程正在运行,并手工删除锁文件,或执行 systemd-" -+"tmpfiles --remove dnf.conf 。" - - #: dnf/module/__init__.py:26 - msgid "Enabling different stream for '{}'." -@@ -3784,19 +3812,19 @@ msgstr "" - "提示 : [d]默认, [e]启用, [x]禁用, [i]已安装的, [a]活跃的" - - #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 --#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 -+#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 - msgid "Ignoring unnecessary profile: '{}/{}'" - 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 +3849,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 -@@ -3840,14 +3868,14 @@ msgstr "软件包名称 '{}' 没有可用的软件包用于 distrosync" - #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 - #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 - #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 --#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 -+#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 - msgid "Unable to resolve argument {}" - 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,24 +3883,23 @@ msgstr "无法匹配参数 {} 中的配置档案" - - #: dnf/module/module_base.py:348 - msgid "Upgrading module from Fail-Safe repository is not allowed" --msgstr "不允许从失效保险仓库中升级模块" -+msgstr "不允许从自动防故障仓库升级模块" - - #: dnf/module/module_base.py:422 - #, python-brace-format - msgid "" --"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" --" '{module}', but none of the streams are enabled or default" -+"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " -+"'{module}', but none of the streams are enabled or default" - msgstr "" --"参数 '{argument}' 可以匹配模块 '{module}' 的 {stream_count} " --"个流('{streams}'),但是这些流都未被启用或非默认" -+"参数 '{argument}' 匹配模块 '{module}' 的 {stream_count} 流 ('{streams}') " -+",但是这些流都未被启用或为默认" - - #: dnf/module/module_base.py:509 - msgid "" --"Only module name is required. Ignoring unneeded information in argument: " --"'{}'" -+"Only module name is required. Ignoring unneeded information in argument: '{}'" - msgstr "只需要模块名。正在忽略'{}'中的无用信息" - --#: dnf/module/module_base.py:841 -+#: dnf/module/module_base.py:844 - msgid "No match for package {}" - msgstr "没有和{}匹配的软件包" - -@@ -3933,7 +3960,7 @@ msgid "Already downloaded" - msgstr "已下载" - - #. pinging mirrors, this might take a while --#: dnf/repo.py:347 -+#: dnf/repo.py:346 - #, python-format - msgid "determining the fastest mirror (%s hosts).. " - msgstr "正在查找最快的镜像(%s 的主机) " -@@ -3949,16 +3976,23 @@ msgid "Added %s repo from %s" - msgstr "已添加 %s 仓库来自 %s" - - #: dnf/rpm/miscutils.py:32 --#, fuzzy, python-format --#| msgid "Cannot find rpmkeys executable to verify signatures." -+#, python-format - msgid "Using rpmkeys executable at %s to verify signatures" --msgstr "无法找到 rpmkeys 的可执行文件以验证签名。" -+msgstr "使用 %s 处的 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 connot 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 数据库的 cookie。" -+ -+#: dnf/rpm/transaction.py:135 - msgid "Errors occurred during test transaction." - msgstr "测试事务过程中出现错误。" - -@@ -3966,7 +4000,8 @@ msgstr "测试事务过程中出现错误。" - msgid "" - "allow_vendor_change is disabled. This option is currently not supported for " - "downgrade and distro-sync commands" --msgstr "allow_vendor_change 被禁用。此选项目前不支持 downgrade 和 distro-sync 命令" -+msgstr "" -+"allow_vendor_change 被禁用。此选项目前不支持 downgrade 和 distro-sync 命令" - - #. TRANSLATORS: This is for a single package currently being downgraded. - #: dnf/transaction.py:80 -@@ -4064,8 +4099,9 @@ msgstr "在 rpm 中缺少对象键 \"{key}\"。" - - #: dnf/transaction_sr.py:289 - #, python-brace-format --msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." --msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的值无效。" -+msgid "" -+"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." -+msgstr "rpm nevra \"{nevra}\" 的软件包原因 \"{reason}\" 的意外值。" - - #: dnf/transaction_sr.py:297 - #, python-brace-format -@@ -4080,24 +4116,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}\" 。" - - #: dnf/transaction_sr.py:370 - #, python-brace-format --msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." --msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 无效。" -+msgid "" -+"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." -+msgstr "rpm nevra \"{nevra}\" 的软件包操作 \"{action}\" 的意外值。" - - #: dnf/transaction_sr.py:377 - #, python-format -@@ -4125,8 +4162,8 @@ msgid "" - "Invalid value \"{group_type}\" of environments.groups.group_type, only " - "\"mandatory\" or \"optional\" is supported." - msgstr "" --"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory\" 或者 " --"\"optional\"。" -+"environments.groups.group_type 的值 \"{group_type}\" 无效,仅支持 \"mandatory" -+"\" 或者 \"optional\"。" - - #: dnf/transaction_sr.py:464 - #, python-brace-format -@@ -4136,17 +4173,19 @@ msgstr "在 environment.groups 中缺少对象键 \"{key}\"。" - #: dnf/transaction_sr.py:542 - #, python-brace-format - msgid "Unexpected value of group action \"{action}\" for group \"{group}\"." --msgstr "组 \"{group}\" 的组操作 \"{action}\" 的值无效。" -+msgstr "对组 \"{group}\" 的组操作 \"{action}\" 的意外值。" - - #: dnf/transaction_sr.py:547 - #, python-brace-format - msgid "Missing object key \"{key}\" in a group." --msgstr "在一个组中缺少对象键 \"{key}\"。" -+msgstr "在组中缺少对象键 \"{key}\"。" - - #: dnf/transaction_sr.py:571 - #, 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}\" 的意外值。" - - #: dnf/transaction_sr.py:576 - #, python-brace-format -@@ -4156,8 +4195,8 @@ msgstr "在环境中缺少对象键 \"{key}\"。" - #: dnf/transaction_sr.py:615 - #, python-brace-format - msgid "" --"Package nevra \"{nevra}\", which is not present in the transaction file, was" --" pulled into the transaction." -+"Package nevra \"{nevra}\", which is not present in the transaction file, was " -+"pulled into the transaction." - msgstr "软件包 nevra \"{nevra}\" 没有包括在事务文件中,但它被拉取到事务中。" - - #: dnf/util.py:417 dnf/util.py:419 -@@ -4195,12 +4234,15 @@ msgstr "失败" - #. returns for everything that evaluates to False (None, empty..) - #: dnf/util.py:633 - msgid "" --msgstr "<名称-未设定>" -+msgstr "" -+ -+#~ msgid "skipping." -+#~ msgstr "正在跳过。" - - #~ msgid "" - #~ "Using rpmkeys executable from {path} to verify signature for package: " - #~ "{package}." --#~ msgstr "使用来自 {path} 的 rpmkeys 可执行文件以验证此包的签名:{package}。" -+#~ msgstr "使用来自 {path} 的 rpmkeys 可执行代码验证软件包的签名:{package}。" - - #~ msgid "%s: %s check failed: %s vs %s" - #~ msgstr "%s: %s 检查失败:%s vs %s" -@@ -4227,5 +4269,6 @@ msgstr "<名称-未设定>" - #~ msgstr "错误的事务 ID 或软件包" - - #~ msgid "" --#~ "Display capabilities that the package depends on for running a %%pre script." -+#~ "Display capabilities that the package depends on for running a %%pre " -+#~ "script." - #~ msgstr "显示软件包运行一个 %%pre 脚本所依赖的功能" -diff --git a/po/zh_TW.po b/po/zh_TW.po -index 8bf32e7d..d6f21e86 100644 ---- a/po/zh_TW.po -+++ b/po/zh_TW.po -@@ -11,10 +11,11 @@ msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2021-06-13 09:18-0400\n" -+"POT-Creation-Date: 2022-02-28 11:37+0100\n" - "PO-Revision-Date: 2020-09-08 22:00+0000\n" - "Last-Translator: Cheng-Chia Tseng \n" --"Language-Team: Chinese (Traditional) \n" -+"Language-Team: Chinese (Traditional) \n" - "Language: zh_TW\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" -@@ -196,82 +197,81 @@ msgstr "在 config 檔案中無效的 tsflag:%s" - msgid "Failed to add groups file for repository: %s - %s" - msgstr "為軟體庫建立群組檔案時失敗:%s - %s" - --#: dnf/base.py:904 -+#: dnf/base.py:922 - msgid "Running transaction check" - msgstr "執行處理事項檢查" - --#: dnf/base.py:912 -+#: dnf/base.py:930 - msgid "Error: transaction check vs depsolve:" - msgstr "錯誤:處理事項 check vs depsolve:" - --#: dnf/base.py:918 -+#: dnf/base.py:936 - msgid "Transaction check succeeded." - msgstr "處理事項檢查成功。" - --#: dnf/base.py:921 -+#: dnf/base.py:939 - msgid "Running transaction test" - msgstr "執行處理事項測試" - --#: dnf/base.py:931 dnf/base.py:1082 -+#: dnf/base.py:949 dnf/base.py:1100 - msgid "RPM: {}" - msgstr "RPM:{}" - --#: dnf/base.py:932 -+#: dnf/base.py:950 - msgid "Transaction test error:" - msgstr "處理事項測試錯誤:" - --#: dnf/base.py:943 -+#: dnf/base.py:961 - msgid "Transaction test succeeded." - msgstr "處理事項測試成功。" - --#: dnf/base.py:964 -+#: dnf/base.py:982 - msgid "Running transaction" - msgstr "執行處理事項" - --#: dnf/base.py:1001 -+#: dnf/base.py:1019 - msgid "Disk Requirements:" - msgstr "需要磁碟:" - --#: dnf/base.py:1004 -+#: dnf/base.py:1022 - #, 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:1011 -+#: dnf/base.py:1029 - msgid "Error Summary" - msgstr "錯誤摘要" - --#: dnf/base.py:1037 -+#: dnf/base.py:1055 - #, python-brace-format - msgid "RPMDB altered outside of {prog}." - msgstr "RPMDB 在 {prog} 外有變動。" - --#: dnf/base.py:1083 dnf/base.py:1091 -+#: dnf/base.py:1101 dnf/base.py:1109 - msgid "Could not run transaction." - msgstr "無法執行處理事項。" - --#: dnf/base.py:1086 -+#: dnf/base.py:1104 - msgid "Transaction couldn't start:" - msgstr "無法啓動處理事項:" - --#: dnf/base.py:1100 -+#: dnf/base.py:1118 - #, python-format - msgid "Failed to remove transaction file %s" - msgstr "移除處理事項檔案 %s 失敗" - --#: dnf/base.py:1182 -+#: dnf/base.py:1200 - msgid "Some packages were not downloaded. Retrying." - msgstr "有些軟體包未下載。重試。" - --#: dnf/base.py:1212 -+#: dnf/base.py:1230 - #, fuzzy, python-format --#| msgid "" --#| "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" -+#| msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%d.1%% saved)" - msgid "Delta RPMs reduced %.1f MB of updates to %.1f MB (%.1f%% saved)" - msgstr "Delta RPM 已將更新所需從 %.1f MB 減少為 %.1f MB(節省 %d.1%%)" - --#: dnf/base.py:1216 -+#: dnf/base.py:1234 - #, fuzzy, python-format - #| msgid "" - #| "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%d.1%% wasted)" -@@ -279,75 +279,75 @@ msgid "" - "Failed Delta RPMs increased %.1f MB of updates to %.1f MB (%.1f%% wasted)" - msgstr "失敗的 Delta RPM 已將更新所需從 %.1f MB 增加為 %.1f MB(浪費 %d.1%%)" - --#: dnf/base.py:1258 -+#: dnf/base.py:1276 - msgid "Cannot add local packages, because transaction job already exists" - msgstr "因為已經有處理事項工作,無法加入本機軟體包" - --#: dnf/base.py:1272 -+#: dnf/base.py:1290 - msgid "Could not open: {}" - msgstr "無法開啟:{}" - --#: dnf/base.py:1310 -+#: dnf/base.py:1328 - #, python-format - msgid "Public key for %s is not installed" - msgstr "%s 的公鑰尚未安裝" - --#: dnf/base.py:1314 -+#: dnf/base.py:1332 - #, python-format - msgid "Problem opening package %s" - msgstr "開啟 %s 軟體包時發生問題" - --#: dnf/base.py:1322 -+#: dnf/base.py:1340 - #, python-format - msgid "Public key for %s is not trusted" - msgstr "%s 的公鑰未被信任" - --#: dnf/base.py:1326 -+#: dnf/base.py:1344 - #, python-format - msgid "Package %s is not signed" - msgstr "%s 軟體包尚未簽名" - --#: dnf/base.py:1356 -+#: dnf/base.py:1374 - #, python-format - msgid "Cannot remove %s" - msgstr "無法移除 %s" - --#: dnf/base.py:1360 -+#: dnf/base.py:1378 - #, python-format - msgid "%s removed" - msgstr "已移除 %s" - --#: dnf/base.py:1640 -+#: dnf/base.py:1658 - msgid "No match for group package \"{}\"" - msgstr "找不到符合「{}」軟體包群組的項目" - --#: dnf/base.py:1726 -+#: dnf/base.py:1740 - #, python-format - msgid "Adding packages from group '%s': %s" - msgstr "正在從群組「%s」加入軟體包:%s" - --#: dnf/base.py:1749 dnf/cli/cli.py:221 dnf/cli/commands/__init__.py:437 -+#: dnf/base.py:1763 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:1767 -+#: dnf/base.py:1781 - msgid "No groups marked for removal." - msgstr "沒有標記為移除的群組。" - --#: dnf/base.py:1801 -+#: dnf/base.py:1815 - msgid "No group marked for upgrade." - msgstr "沒有標記為升級的群組。" - --#: dnf/base.py:2015 -+#: dnf/base.py:2029 - #, python-format - msgid "Package %s not installed, cannot downgrade it." - msgstr "尚未安裝軟體包 %s,所以無法降級。" - --#: dnf/base.py:2017 dnf/base.py:2036 dnf/base.py:2049 dnf/base.py:2076 --#: dnf/base.py:2129 dnf/base.py:2137 dnf/base.py:2271 dnf/cli/cli.py:417 -+#: 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/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 -@@ -357,178 +357,179 @@ msgstr "尚未安裝軟體包 %s,所以無法降級。" - msgid "No match for argument: %s" - msgstr "引數不符:%s" - --#: dnf/base.py:2024 -+#: dnf/base.py:2038 - #, python-format - msgid "Package %s of lower version already installed, cannot downgrade it." - msgstr "已經安裝較舊版本的軟體包 %s,所以無法降級。" - --#: dnf/base.py:2047 -+#: dnf/base.py:2061 - #, python-format - msgid "Package %s not installed, cannot reinstall it." - msgstr "尚未安裝軟體包 %s,所以無法重新安裝。" - --#: dnf/base.py:2062 -+#: dnf/base.py:2076 - #, python-format - msgid "File %s is a source package and cannot be updated, ignoring." - msgstr "檔案 %s 為來源軟體包且無法更新,忽略。" - --#: dnf/base.py:2073 -+#: dnf/base.py:2087 - #, python-format - msgid "Package %s not installed, cannot update it." - msgstr "尚未安裝軟體包 %s,所以無法更新。" - --#: dnf/base.py:2083 -+#: dnf/base.py:2097 - #, python-format - msgid "" - "The same or higher version of %s is already installed, cannot update it." - msgstr "已經安裝同版或更新版的 %s,無法更新。" - --#: dnf/base.py:2126 dnf/cli/commands/reinstall.py:81 -+#: dnf/base.py:2140 dnf/cli/commands/reinstall.py:81 - #, python-format - msgid "Package %s available, but not installed." - msgstr "軟體包 %s 可用,但尚未安裝。" - --#: dnf/base.py:2132 -+#: dnf/base.py:2146 - #, python-format - msgid "Package %s available, but installed for different architecture." - msgstr "軟體包 %s 可用,但是針對不同架構安裝。" - --#: dnf/base.py:2157 -+#: dnf/base.py:2171 - #, python-format - msgid "No package %s installed." - msgstr "軟體包 %s 未安裝。" - --#: dnf/base.py:2175 dnf/cli/commands/install.py:136 -+#: dnf/base.py:2189 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:2190 dnf/cli/commands/__init__.py:676 -+#: dnf/base.py:2204 dnf/cli/commands/__init__.py:676 - #: dnf/cli/commands/remove.py:162 - msgid "No packages marked for removal." - msgstr "沒有軟體包標記為要移除。" - --#: dnf/base.py:2278 dnf/cli/cli.py:428 -+#: dnf/base.py:2292 dnf/cli/cli.py:428 - #, python-format - msgid "Packages for argument %s available, but not installed." - msgstr "%s 引數的軟體包可用,但尚未安裝。" - --#: dnf/base.py:2283 -+#: dnf/base.py:2297 - #, python-format - msgid "Package %s of lowest version already installed, cannot downgrade it." - msgstr "已經安裝最舊版本的軟體包 %s,所以無法降級。" - --#: dnf/base.py:2383 -+#: dnf/base.py:2397 - msgid "No security updates needed, but {} update available" - msgstr "不需要任何的安全性更新,但有 {} 個更新可用" - --#: dnf/base.py:2385 -+#: dnf/base.py:2399 - msgid "No security updates needed, but {} updates available" - msgstr "不需要任何的安全性更新,但有 {} 個更新可用" - --#: dnf/base.py:2389 -+#: dnf/base.py:2403 - msgid "No security updates needed for \"{}\", but {} update available" - msgstr "不需要「{}」的任何安全性更新,但有 {} 個更新可用" - --#: dnf/base.py:2391 -+#: dnf/base.py:2405 - msgid "No security updates needed for \"{}\", but {} updates available" - msgstr "不需要「{}」的任何安全性更新,但有 {} 個更新可用" - - #. raise an exception, because po.repoid is not in self.repos --#: dnf/base.py:2412 -+#: dnf/base.py:2426 - #, python-format - msgid "Unable to retrieve a key for a commandline package: %s" - msgstr "無法擷取命令列軟體包的金鑰:%s" - --#: dnf/base.py:2420 -+#: dnf/base.py:2434 - #, python-format - msgid ". Failing package is: %s" - msgstr "失敗的軟體包為:%s" - --#: dnf/base.py:2421 -+#: dnf/base.py:2435 - #, python-format - msgid "GPG Keys are configured as: %s" - msgstr "GPG 金鑰已經設定為:%s" - --#: dnf/base.py:2433 -+#: dnf/base.py:2447 - #, python-format - msgid "GPG key at %s (0x%s) is already installed" - msgstr "於 %s (0x%s) 的 GPG 密鑰已經安裝" - --#: dnf/base.py:2469 -+#: dnf/base.py:2483 - msgid "The key has been approved." - msgstr "金鑰已經核可。" - --#: dnf/base.py:2472 -+#: dnf/base.py:2486 - msgid "The key has been rejected." - msgstr "金鑰已被拒絕。" - --#: dnf/base.py:2505 -+#: dnf/base.py:2519 - #, python-format - msgid "Key import failed (code %d)" - msgstr "密鑰匯入失敗(錯誤代碼 %d)" - --#: dnf/base.py:2507 -+#: dnf/base.py:2521 - msgid "Key imported successfully" - msgstr "密鑰匯入成功" - --#: dnf/base.py:2511 -+#: dnf/base.py:2525 - msgid "Didn't install any keys" - msgstr "無法安裝任何密鑰" - --#: dnf/base.py:2514 -+#: dnf/base.py:2528 - #, python-format - msgid "" --"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" -+"The GPG keys listed for the \"%s\" repository are already installed but they " -+"are not correct for this package.\n" - "Check that the correct key URLs are configured for this repository." - msgstr "" - "列出的「%s」軟體庫 GPG 金鑰已經安裝,但這些金鑰對這個軟體包都不正確。\n" - "檢查這個軟體庫的不正確金鑰之網址設定。" - --#: dnf/base.py:2525 -+#: dnf/base.py:2539 - msgid "Import of key(s) didn't help, wrong key(s)?" - msgstr "匯入的金鑰沒有作用,可能是因為金鑰是錯誤的?" - --#: dnf/base.py:2578 -+#: dnf/base.py:2592 - msgid " * Maybe you meant: {}" - msgstr " * 或許您想要:{}" - --#: dnf/base.py:2610 -+#: dnf/base.py:2624 - msgid "Package \"{}\" from local repository \"{}\" has incorrect checksum" - msgstr "「{}」軟體包來自本機「{}」軟體庫有不正確的 checksum" - --#: dnf/base.py:2613 -+#: dnf/base.py:2627 - msgid "Some packages from local repository have incorrect checksum" - msgstr "來自本機軟體庫的部份軟體包有不正確的 checksum" - --#: dnf/base.py:2616 -+#: dnf/base.py:2630 - msgid "Package \"{}\" from repository \"{}\" has incorrect checksum" - msgstr "「{}」軟體包來自「{}」軟體庫有不正確的 checksum" - --#: dnf/base.py:2619 -+#: dnf/base.py:2633 - msgid "" - "Some packages have invalid cache, but cannot be downloaded due to \"--" - "cacheonly\" option" - msgstr "部份的軟體包有無效的快取,但是因為「--cacheonly」選項而無法下載" - --#: dnf/base.py:2637 dnf/base.py:2657 -+#: dnf/base.py:2651 dnf/base.py:2671 - msgid "No match for argument" - msgstr "沒有符合引數的項目" - --#: dnf/base.py:2645 dnf/base.py:2665 -+#: dnf/base.py:2659 dnf/base.py:2679 - msgid "All matches were filtered out by exclude filtering for argument" - msgstr "所有符合項目皆被引數的排除過濾器濾掉" - --#: dnf/base.py:2647 -+#: dnf/base.py:2661 - msgid "All matches were filtered out by modular filtering for argument" - msgstr "所有符合項目皆被引數的模組化過濾器濾掉" - --#: dnf/base.py:2663 -+#: dnf/base.py:2677 - msgid "All matches were installed from a different repository for argument" - msgstr "所有符合項目皆從引數的不同軟體庫安裝" - --#: dnf/base.py:2710 -+#: dnf/base.py:2724 - #, python-format - msgid "Package %s is already installed." - msgstr "已安裝 %s 軟體包。" -@@ -538,7 +539,7 @@ msgstr "已安裝 %s 軟體包。" - msgid "Unexpected value of environment variable: DNF_DISABLE_ALIASES=%s" - msgstr "未預期的環境變數值:DNF_DISABLE_ALIASES=%s" - --#: dnf/cli/aliases.py:105 dnf/conf/config.py:457 -+#: dnf/cli/aliases.py:105 dnf/conf/config.py:475 - #, python-format - msgid "Parsing file \"%s\" failed: %s" - msgstr "解析「%s」檔案失敗:%s" -@@ -584,13 +585,19 @@ msgstr "動作可能會導致「{0}」模組的「{1}」串流被切換到「{2} - #, fuzzy, python-brace-format - #| msgid "" - #| "It is not possible to switch enabled streams of a module.\n" --#| "It is recommended to remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." -+#| "It is recommended to remove all installed content from the module, and " -+#| "reset the module using '{prog} module reset ' command. After " -+#| "you reset the module, you can install the other stream." - msgid "" --"It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.\n" --"It is recommended to rather remove all installed content from the module, and reset the module using '{prog} module reset ' command. After you reset the module, you can install the other stream." -+"It is not possible to switch enabled streams of a module unless explicitly " -+"enabled via configuration option module_stream_switch.\n" -+"It is recommended to rather remove all installed content from the module, " -+"and reset the module using '{prog} module reset ' command. " -+"After you reset the module, you can install the other stream." - msgstr "" - "無法切換模組的已啟用串流。\n" --"建議移除模組的所有已安裝內容,並使用 '{prog} module reset ' 命令重設模組。重設完模組後,就可以安裝其他串流。" -+"建議移除模組的所有已安裝內容,並使用 '{prog} module reset ' 命令" -+"重設模組。重設完模組後,就可以安裝其他串流。" - - #: dnf/cli/cli.py:212 - #, python-brace-format -@@ -693,8 +700,8 @@ msgstr "沒有軟體庫符合:%s" - - #: dnf/cli/cli.py:719 - msgid "" --"This command has to be run with superuser privileges (under the root user on" --" most systems)." -+"This command has to be run with superuser privileges (under the root user on " -+"most systems)." - msgstr "此命令需要以超級使用者權限執行(大部分系統是在 root 使用者下)。" - - #: dnf/cli/cli.py:749 -@@ -707,7 +714,8 @@ msgstr "未知的指令:%s。請使用 %s --help" - msgid "" - "It could be a {PROG} plugin command, try: \"{prog} install 'dnf-" - "command(%s)'\"" --msgstr "其可能是 {PROG} 插件的命令,請試試:「{prog} install 'dnf-command(%s)'」" -+msgstr "" -+"其可能是 {PROG} 插件的命令,請試試:「{prog} install 'dnf-command(%s)'」" - - #: dnf/cli/cli.py:756 - #, python-brace-format -@@ -729,14 +737,16 @@ msgid "" - "--enable, --set-enabled and --disable, --set-disabled must be used with " - "config-manager command." - msgstr "" --"--enable、--set-enabled 及 --disable、--set-disabled 必須與 config-manager 命令一起使用。" -+"--enable、--set-enabled 及 --disable、--set-disabled 必須與 config-manager 命" -+"令一起使用。" - - #: dnf/cli/cli.py:902 - msgid "" - "Warning: Enforcing GPG signature check globally as per active RPM security " - "policy (see 'gpgcheck' in dnf.conf(5) for how to squelch this message)" - msgstr "" --"警告:因為作用中的 RPM 安全性策略,已強制執行全域 GPG 簽名檢查(請參閱 dnf.conf(5) 的「gpgcheck」以了解如何隱藏此則訊息)" -+"警告:因為作用中的 RPM 安全性策略,已強制執行全域 GPG 簽名檢查(請參閱 dnf." -+"conf(5) 的「gpgcheck」以了解如何隱藏此則訊息)" - - #: dnf/cli/cli.py:922 - msgid "Config file \"{}\" does not exist" -@@ -787,7 +797,8 @@ msgstr "您的 RPMDB 可能損壞,可執行「%s」可能會修復這個問題 - #, python-brace-format - msgid "" - "You have enabled checking of packages via GPG keys. This is a good thing.\n" --"However, you do not have any GPG public keys installed. You need to download\n" -+"However, you do not have any GPG public keys installed. You need to " -+"download\n" - "the keys for packages you wish to install and install them.\n" - "You can do that by running the command:\n" - " rpm --import public.gpg.key\n" -@@ -1235,8 +1246,8 @@ msgstr "" - - #: dnf/cli/commands/history.py:68 - msgid "" --"For the replay command, don't check for installed packages matching those in" --" transaction" -+"For the replay command, don't check for installed packages matching those in " -+"transaction" - msgstr "" - - #: dnf/cli/commands/history.py:71 -@@ -1247,8 +1258,8 @@ msgstr "" - - #: dnf/cli/commands/history.py:74 - msgid "" --"For the replay command, skip packages that are not available or have missing" --" dependencies" -+"For the replay command, skip packages that are not available or have missing " -+"dependencies" - msgstr "" - - #: dnf/cli/commands/history.py:94 -@@ -1283,8 +1294,8 @@ msgstr "您沒有權限存取歷史紀錄資料庫:%s" - #: dnf/cli/commands/history.py:151 - #, python-format - msgid "" --"Cannot undo transaction %s, doing so would result in an inconsistent package" --" database." -+"Cannot undo transaction %s, doing so would result in an inconsistent package " -+"database." - msgstr "無法復原處理事項 %s,這樣做會導致軟體包資料庫不一致。" - - #: dnf/cli/commands/history.py:156 -@@ -1437,8 +1448,8 @@ msgstr "%s 軟體包尚未安裝。" - - #: dnf/cli/commands/module.py:54 - msgid "" --"Only module name, stream, architecture or profile is used. Ignoring unneeded" --" information in argument: '{}'" -+"Only module name, stream, architecture or profile is used. Ignoring unneeded " -+"information in argument: '{}'" - msgstr "只使用模組名稱、串流、架構或設定檔。忽略引數中的非必要資訊:「{}」" - - #: dnf/cli/commands/module.py:80 -@@ -1710,7 +1721,8 @@ msgstr "搜尋軟體包符合的關鍵詞" - msgid "" - "Query all packages (shorthand for repoquery '*' or repoquery without " - "argument)" --msgstr "查詢所有軟體包(為軟體包查詢「*」或不包含引數的軟體包查詢的 shorthand)" -+msgstr "" -+"查詢所有軟體包(為軟體包查詢「*」或不包含引數的軟體包查詢的 shorthand)" - - #: dnf/cli/commands/repoquery.py:124 - msgid "Query all versions of packages (default)" -@@ -1796,7 +1808,8 @@ msgstr "在相應的來源 RPM 上執行" - msgid "" - "show N latest packages for a given name.arch (or latest but N if N is " - "negative)" --msgstr "為提供的 name.arch 顯示 N 個最新的軟體包(或最新、除了 N 如果 N 是否定的)" -+msgstr "" -+"為提供的 name.arch 顯示 N 個最新的軟體包(或最新、除了 N 如果 N 是否定的)" - - #: dnf/cli/commands/repoquery.py:177 - msgid "list also packages of inactive module streams" -@@ -1821,9 +1834,11 @@ msgstr "顯示軟體包的變更紀錄" - #: dnf/cli/commands/repoquery.py:194 - #, python-format, python-brace-format - msgid "" --"display format for listing packages: \"%%{name} %%{version} ...\", use " --"--querytags to view full tag list" --msgstr "軟體包清單的顯示格式:「%%{name} %%{version} ...」,使用 --querytags 檢視完整標籤清單" -+"display format for listing packages: \"%%{name} %%{version} ...\", use --" -+"querytags to view full tag list" -+msgstr "" -+"軟體包清單的顯示格式:「%%{name} %%{version} ...」,使用 --querytags 檢視完整" -+"標籤清單" - - #: dnf/cli/commands/repoquery.py:198 - msgid "show available tags to use with --queryformat" -@@ -1833,7 +1848,8 @@ msgstr "與 --queryformat 顯示可供使用的標籤" - msgid "" - "use name-epoch:version-release.architecture format for displaying found " - "packages (default)" --msgstr "使用 name-epoch:version-release.architecture 格式來顯示找到的軟體包(預設值)" -+msgstr "" -+"使用 name-epoch:version-release.architecture 格式來顯示找到的軟體包(預設值)" - - #: dnf/cli/commands/repoquery.py:205 - msgid "" -@@ -1900,8 +1916,8 @@ msgid "" - "running %%pre and %%post scriptlets. If the package is installed display " - "capabilities that is depends for %%pre, %%post, %%preun and %%postun." - msgstr "" --"如果未安裝軟體包,則顯示執行 %%pre 及 %%post 小令稿所依賴的功能。如果已安裝軟體包,則顯示執行 %%pre、%%post、%%preun " --"以及 %%postun 小令稿所依賴的功能。" -+"如果未安裝軟體包,則顯示執行 %%pre 及 %%post 小令稿所依賴的功能。如果已安裝軟" -+"體包,則顯示執行 %%pre、%%post、%%preun 以及 %%postun 小令稿所依賴的功能。" - - #: dnf/cli/commands/repoquery.py:243 - msgid "Display capabilities that the package suggests." -@@ -1950,23 +1966,23 @@ msgstr "要搜尋的關鍵詞:" - - #: dnf/cli/commands/repoquery.py:295 - msgid "" --"Option '--resolve' has to be used together with one of the '--conflicts', '" --"--depends', '--enhances', '--provides', '--recommends', '--requires', '--" -+"Option '--resolve' has to be used together with one of the '--conflicts', '--" -+"depends', '--enhances', '--provides', '--recommends', '--requires', '--" - "requires-pre', '--suggests' or '--supplements' options" - msgstr "" --"選項 '--resolve' 需要與 '--conflicts', '--depends', '--enhances', '--provides', '" --"--recommends', '--requires', '--requires-pre', '--suggests' 或 '--" --"supplements' 選項一起使用" -+"選項 '--resolve' 需要與 '--conflicts', '--depends', '--enhances', '--" -+"provides', '--recommends', '--requires', '--requires-pre', '--suggests' 或 " -+"'--supplements' 選項一起使用" - - #: dnf/cli/commands/repoquery.py:305 - msgid "" - "Option '--recursive' has to be used with '--whatrequires ' (optionally " --"with '--alldeps', but not with '--exactdeps'), or with '--requires " --"--resolve'" -+"with '--alldeps', but not with '--exactdeps'), or with '--requires --" -+"resolve'" - msgstr "" --"「--recursive」選項必須與「--whatrequires " --"」一起使用(可以選擇與「--alldeps」一起使用,但不可以是「--exactdeps」),或是與「--requires " --"--resolve」一起使用" -+"「--recursive」選項必須與「--whatrequires 」一起使用(可以選擇與「--" -+"alldeps」一起使用,但不可以是「--exactdeps」),或是與「--requires --" -+"resolve」一起使用" - - #: dnf/cli/commands/repoquery.py:312 - msgid "argument {} requires --whatrequires or --whatdepends option" -@@ -1980,13 +1996,17 @@ msgstr "軟體包 {} 不包含任何檔案" - #, python-brace-format - msgid "" - "No valid switch specified\n" --"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"usage: {prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "description:\n" - " For the given packages print a tree of thepackages." - msgstr "" - "未指定有效的開關選項\n" --"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree]\n" -+"用法:{prog} repoquery [--conflicts|--enhances|--obsoletes|--provides|--" -+"recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--" -+"tree]\n" - "\n" - "描述:\n" - " 列出提供軟體包的樹狀圖。" -@@ -2026,8 +2046,7 @@ msgstr "描述" - msgid "URL" - msgstr "URL" - --#. TRANSLATORS: separator used between package attributes (eg. Name & Summary --#. & URL) -+#. TRANSLATORS: separator used between package attributes (eg. Name & Summary & URL) - #: dnf/cli/commands/search.py:76 - msgid " & " - msgstr " & " -@@ -2545,7 +2564,9 @@ msgstr "錯誤輸出等級" - msgid "" - "enables {prog}'s obsoletes processing logic for upgrade or display " - "capabilities that the package obsoletes for info, list and repoquery" --msgstr "啟用 {prog} 中 upgrade 的棄用處理邏輯,或啟用 info、list 和 repoquery 顯示軟體包棄用的功能" -+msgstr "" -+"啟用 {prog} 中 upgrade 的棄用處理邏輯,或啟用 info、list 和 repoquery 顯示軟" -+"體包棄用的功能" - - #: dnf/cli/option_parser.py:251 - msgid "debugging output level for rpm" -@@ -2567,8 +2588,8 @@ msgstr "啟用額外軟體庫。列出選項。支援 Glob,可多次指定。" - - #: dnf/cli/option_parser.py:266 - msgid "" --"Disable repositories. List option. Supports globs, can be specified multiple" --" times." -+"Disable repositories. List option. Supports globs, can be specified multiple " -+"times." - msgstr "停用軟體庫。列出選項。支援 Glob,可多次指定。" - - #: dnf/cli/option_parser.py:270 -@@ -2597,7 +2618,8 @@ msgstr "停用 excludepkgs" - msgid "" - "label and path to an additional repository to use (same path as in a " - "baseurl), can be specified multiple times." --msgstr "要使用之額外軟體庫的標籤與路徑(跟基礎 URL 中的路徑一致),可多次指定。" -+msgstr "" -+"要使用之額外軟體庫的標籤與路徑(跟基礎 URL 中的路徑一致),可多次指定。" - - #: dnf/cli/option_parser.py:297 - msgid "disable removal of dependencies that are no longer used" -@@ -3450,10 +3472,6 @@ msgstr " 開始於:%s - %s 之前" - msgid " State : %s" - msgstr " 狀態:%s" - --#: dnf/comps.py:104 --msgid "skipping." --msgstr "略過。" -- - #: dnf/comps.py:196 dnf/comps.py:692 dnf/comps.py:706 - #, python-format - msgid "Module or Group '%s' is not installed." -@@ -3508,11 +3526,15 @@ msgstr "無法解析「%s」:%s" - msgid "Invalid configuration value: %s=%s in %s; %s" - msgstr "未知的設定值:%s = %s 於 %s;%s" - --#: dnf/conf/config.py:226 -+#: dnf/conf/config.py:194 -+msgid "Cannot set \"{}\" to \"{}\": {}" -+msgstr "" -+ -+#: dnf/conf/config.py:244 - msgid "Could not set cachedir: {}" - msgstr "無法設定 cachedir:{}" - --#: dnf/conf/config.py:275 -+#: dnf/conf/config.py:293 - msgid "" - "Configuration file URL \"{}\" could not be downloaded:\n" - " {}" -@@ -3520,31 +3542,31 @@ msgstr "" - "無法下載「{}」設定檔 URL:\n" - " {}" - --#: dnf/conf/config.py:355 dnf/conf/config.py:391 -+#: dnf/conf/config.py:373 dnf/conf/config.py:409 - #, python-format - msgid "Unknown configuration option: %s = %s" - msgstr "無效的設定選項:%s = %s" - --#: dnf/conf/config.py:372 -+#: dnf/conf/config.py:390 - #, python-format - msgid "Error parsing --setopt with key '%s', value '%s': %s" - msgstr "以「%s」鍵,「%s」值解析 --setopt 時發生錯誤:%s" - --#: dnf/conf/config.py:380 -+#: dnf/conf/config.py:398 - #, python-format - msgid "Main config did not have a %s attr. before setopt" - msgstr "主組態未在 setopt 之前設定 %s 屬性" - --#: dnf/conf/config.py:427 dnf/conf/config.py:445 -+#: dnf/conf/config.py:445 dnf/conf/config.py:463 - msgid "Incorrect or unknown \"{}\": {}" - msgstr "錯誤的或者是無效的 \"{}\": {}" - --#: dnf/conf/config.py:501 -+#: dnf/conf/config.py:519 - #, python-format - msgid "Error parsing --setopt with key '%s.%s', value '%s': %s" - msgstr "以「%s.%s」鍵,「%s」值解析 --setopt 時發生錯誤:%s" - --#: dnf/conf/config.py:504 -+#: dnf/conf/config.py:522 - #, python-format - msgid "Repo %s did not have a %s attr. before setopt" - msgstr "%s 軟體庫未在 setopt 之前設定 %s 屬性" -@@ -3625,7 +3647,7 @@ msgstr "沒有「{}」模組化軟體包可用的模組化中介資料" - msgid "Will not install a source rpm package (%s)." - msgstr "將不會安裝 RPM 原始檔(%s)。" - --#: dnf/dnssec.py:168 -+#: dnf/dnssec.py:171 - #, fuzzy - #| msgid "" - #| "Configuration option 'gpgkey_dns_verification' requires libunbound ({})" -@@ -3633,27 +3655,27 @@ msgid "" - "Configuration option 'gpgkey_dns_verification' requires python3-unbound ({})" - msgstr "「gpgkey_dns_verification」設定選項需要 libunbound ({})" - --#: dnf/dnssec.py:239 -+#: dnf/dnssec.py:243 - msgid "DNSSEC extension: Key for user " - msgstr "DNSSEC 擴充:給使用者的金鑰 " - --#: dnf/dnssec.py:241 -+#: dnf/dnssec.py:245 - msgid "is valid." - msgstr "有效。" - --#: dnf/dnssec.py:243 -+#: dnf/dnssec.py:247 - msgid "has unknown status." - msgstr "狀態未知。" - --#: dnf/dnssec.py:251 -+#: dnf/dnssec.py:255 - msgid "DNSSEC extension: " - msgstr "DNSSEC 擴充: " - --#: dnf/dnssec.py:283 -+#: dnf/dnssec.py:287 - msgid "Testing already imported keys for their validity." - msgstr "測試已經匯入的金鑰其有效性。" - --#: dnf/drpm.py:62 dnf/repo.py:268 -+#: dnf/drpm.py:62 dnf/repo.py:267 - #, python-format - msgid "unsupported checksum type: %s" - msgstr "未支援的查核碼類型:%s" -@@ -3695,7 +3717,7 @@ msgid "Modular dependency problem with Defaults:" - msgid_plural "Modular dependency problems with Defaults:" - msgstr[0] "預設值發生模組依賴關係問題:" - --#: dnf/exceptions.py:131 dnf/module/module_base.py:854 -+#: dnf/exceptions.py:131 dnf/module/module_base.py:857 - msgid "Modular dependency problem:" - msgid_plural "Modular dependency problems:" - msgstr[0] "模組化的依賴關係問題:" -@@ -3704,10 +3726,12 @@ msgstr[0] "模組化的依賴關係問題:" - #, python-format - msgid "" - "Malformed lock file found: %s.\n" --"Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf." -+"Ensure no other dnf/yum process is running and remove the lock file manually " -+"or run systemd-tmpfiles --remove dnf.conf." - msgstr "" - "發現格式錯誤的鎖定檔:%s。\n" --"請確定沒有其他正在執行的 dnf/yum 處理程序,然後手動移除鎖定檔或執行 systemd-tmpfiles --remove dnf.conf。" -+"請確定沒有其他正在執行的 dnf/yum 處理程序,然後手動移除鎖定檔或執行 systemd-" -+"tmpfiles --remove dnf.conf。" - - #: dnf/module/__init__.py:26 - msgid "Enabling different stream for '{}'." -@@ -3800,7 +3824,7 @@ msgstr "" - "提示:[d] 預設、[e] 已啟用, [x] 已停用, [i] 已安裝, [a] 作用中" - - #: dnf/module/module_base.py:56 dnf/module/module_base.py:556 --#: dnf/module/module_base.py:615 dnf/module/module_base.py:681 -+#: dnf/module/module_base.py:615 dnf/module/module_base.py:684 - msgid "Ignoring unnecessary profile: '{}/{}'" - msgstr "忽略不必要的設定檔:「{}/{}」" - -@@ -3841,8 +3865,7 @@ msgstr "不允許從防故障軟體庫安裝模組" - - #: dnf/module/module_base.py:196 - #, fuzzy, python-brace-format --#| msgid "" --#| "All matches for argument '{0}' in module '{1}:{2}' are not active" -+#| msgid "All matches for argument '{0}' in module '{1}:{2}' are not active" - msgid "No active matches for argument '{0}' in module '{1}:{2}'" - msgstr "所有「{1}:{2}」模組中的「{0}」引數符合項目皆未作用中" - -@@ -3859,7 +3882,7 @@ msgstr "" - #: dnf/module/module_base.py:310 dnf/module/module_base.py:461 - #: dnf/module/module_base.py:486 dnf/module/module_base.py:505 - #: dnf/module/module_base.py:552 dnf/module/module_base.py:611 --#: dnf/module/module_base.py:677 dnf/module/module_base.py:840 -+#: dnf/module/module_base.py:680 dnf/module/module_base.py:843 - msgid "Unable to resolve argument {}" - msgstr "無法解析 {} 引數" - -@@ -3879,17 +3902,16 @@ msgstr "不允許從防故障軟體庫升級模組" - #: dnf/module/module_base.py:422 - #, python-brace-format - msgid "" --"Argument '{argument}' matches {stream_count} streams ('{streams}') of module" --" '{module}', but none of the streams are enabled or default" -+"Argument '{argument}' matches {stream_count} streams ('{streams}') of module " -+"'{module}', but none of the streams are enabled or default" - msgstr "" - - #: dnf/module/module_base.py:509 - msgid "" --"Only module name is required. Ignoring unneeded information in argument: " --"'{}'" -+"Only module name is required. Ignoring unneeded information in argument: '{}'" - msgstr "只需要模組名稱。忽略引數中的非必要資訊:「{}」" - --#: dnf/module/module_base.py:841 -+#: dnf/module/module_base.py:844 - msgid "No match for package {}" - msgstr "找不到符合的軟體包 {}" - -@@ -3950,7 +3972,7 @@ msgid "Already downloaded" - msgstr "已經下載" - - #. pinging mirrors, this might take a while --#: dnf/repo.py:347 -+#: dnf/repo.py:346 - #, python-format - msgid "determining the fastest mirror (%s hosts).. " - msgstr "正在決定最快速的鏡像站 (%s 主機)… " -@@ -3974,7 +3996,15 @@ msgstr "" - msgid "Cannot find rpmkeys executable to verify signatures." - msgstr "" - --#: dnf/rpm/transaction.py:119 -+#: dnf/rpm/transaction.py:70 -+msgid "The openDB() function connot 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." - msgstr "測試處理事項時發生錯誤。" - -@@ -4082,7 +4112,8 @@ msgstr "" - - #: dnf/transaction_sr.py:289 - #, python-brace-format --msgid "Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." -+msgid "" -+"Unexpected value of package reason \"{reason}\" for rpm nevra \"{nevra}\"." - msgstr "" - - #: dnf/transaction_sr.py:297 -@@ -4115,7 +4146,8 @@ msgstr "" - - #: dnf/transaction_sr.py:370 - #, python-brace-format --msgid "Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." -+msgid "" -+"Unexpected value of package action \"{action}\" for rpm nevra \"{nevra}\"." - msgstr "" - - #: dnf/transaction_sr.py:377 -@@ -4165,7 +4197,9 @@ msgstr "" - - #: dnf/transaction_sr.py:571 - #, python-brace-format --msgid "Unexpected value of environment action \"{action}\" for environment \"{env}\"." -+msgid "" -+"Unexpected value of environment action \"{action}\" for environment " -+"\"{env}\"." - msgstr "" - - #: dnf/transaction_sr.py:576 -@@ -4176,8 +4210,8 @@ msgstr "" - #: dnf/transaction_sr.py:615 - #, python-brace-format - msgid "" --"Package nevra \"{nevra}\", which is not present in the transaction file, was" --" pulled into the transaction." -+"Package nevra \"{nevra}\", which is not present in the transaction file, was " -+"pulled into the transaction." - msgstr "" - - #: dnf/util.py:417 dnf/util.py:419 -@@ -4217,6 +4251,9 @@ msgstr "失敗" - msgid "" - msgstr "<名稱未設定>" - -+#~ msgid "skipping." -+#~ msgstr "略過。" -+ - #~ msgid "%s: %s check failed: %s vs %s" - #~ msgstr "%s:%s 檢查失敗:%s 比對 %s" - -@@ -4242,5 +4279,6 @@ msgstr "<名稱未設定>" - #~ msgstr "給予的處理事項 ID、或軟體包不良" - - #~ msgid "" --#~ "Display capabilities that the package depends on for running a %%pre script." -+#~ "Display capabilities that the package depends on for running a %%pre " -+#~ "script." - #~ msgstr "顯示軟體包執行在 %%pre 指令上的功能。" --- -2.35.1 - diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec index 9bafd9f..71738ac 100644 --- a/SPECS/dnf.spec +++ b/SPECS/dnf.spec @@ -2,7 +2,7 @@ %define __cmake_in_source_build 1 # default dependencies -%global hawkey_version 0.65.0 +%global hawkey_version 0.66.0 %global libcomps_version 0.1.8 %global libmodulemd_version 2.9.3 %global rpm_version 4.14.0 @@ -65,19 +65,19 @@ It supports RPMs, modules and comps groups & environments. Name: dnf -Version: 4.10.0 -Release: 5%{?dist} +Version: 4.12.0 +Release: 3%{?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-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch -Patch2: 0002-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch -Patch3: 0003-Documentation-API-notes-for-cacheonly.patch -Patch4: 0004-Use-rpm.TransactionSet.dbCookie-to-determining-if-rp.patch -Patch5: 0005-Update-translations-RhBug-2017347.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 BuildArch: noarch BuildRequires: cmake BuildRequires: gettext @@ -257,22 +257,13 @@ popd %post automatic -%systemd_post dnf-automatic.timer -%systemd_post dnf-automatic-notifyonly.timer -%systemd_post dnf-automatic-download.timer -%systemd_post dnf-automatic-install.timer +%systemd_post dnf-automatic.timer dnf-automatic-notifyonly.timer dnf-automatic-download.timer dnf-automatic-install.timer %preun automatic -%systemd_preun dnf-automatic.timer -%systemd_preun dnf-automatic-notifyonly.timer -%systemd_preun dnf-automatic-download.timer -%systemd_preun dnf-automatic-install.timer +%systemd_preun dnf-automatic.timer dnf-automatic-notifyonly.timer dnf-automatic-download.timer dnf-automatic-install.timer %postun automatic -%systemd_postun_with_restart dnf-automatic.timer -%systemd_postun_with_restart dnf-automatic-notifyonly.timer -%systemd_postun_with_restart dnf-automatic-download.timer -%systemd_postun_with_restart dnf-automatic-install.timer +%systemd_postun_with_restart dnf-automatic.timer dnf-automatic-notifyonly.timer dnf-automatic-download.timer dnf-automatic-install.timer %files -f %{name}.lang @@ -375,8 +366,32 @@ popd %{python3_sitelib}/%{name}/automatic/ %changelog -* Mon Mar 21 2022 Marek Blaha - 4.10.0-5 -- Update translations +* Tue Jul 19 2022 Lukas Hrazky - 4.12.0-3 +- Add only relevant pkgs to upgrade transaction (RhBug:2097757) + +* Thu Apr 28 2022 Richard W.M. Jones - 4.12.0-2 +- Backport fix for leak of libsolv's page file descriptors + +* Thu Apr 28 2022 Pavla Kratochvilova - 4.12.0-1 +- Allow destdir option with modulesync command +- Add documentation for query api flags (RhBug:2035577) +- Fix swap command to work with local rpm files correctly (RhBug:2036434) +- Fix regression in verifying signatures using rpmkeys +- Fix decompression of groups.xml (RhBug:2030255) +- Fix history undo on a Reason Change (RhBug:2010259,2053014) +- Remove /usr/bin from sys.path to avoid accidentally importing garbage +- Fix python3.11 build: remove deprecated, update traceback regex +- fix dnf mark error when history sqlite missing +- [doc] clarify effect of --enablerepo and --disablerepo options (RhBug:2031414) +- [doc] default values for module_obsoletes and module_stream_switch (RhBug: 2051846) +- dnf.conf: hint users where to find more info about defaults and other options +- Fix unittests that relied on checksum being at the end of solvfiles +- completion: remove unnecessary echo +- Fix remove when no repos are enabled (RhBug:2064341) +- Add loongarch support for dnf +- Add spaces between words to fix typos (RhBug:2077296) +- [doc] Improve "proxy" configuration option documentation (RhBug:2072332) +- Fix download errors handling in non-english locales (RhBug:2024527) * Mon Feb 07 2022 Pavla Kratochvilova - 4.10.0-4 - Use rpm.TransactionSet.dbCookie() to determining if rpmdb has changed (RhBug:2043476)