From 684ca2defa920fb19a1f2f443ea02a7660c0a7d1 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Wed, 17 May 2023 13:59:08 +0300 Subject: [PATCH] import dnf-plugins-core-4.3.0-5.el9_2 --- .dnf-plugins-core.metadata | 2 +- .gitignore | 2 +- ...upgrade-plugin-to-core-RhBug-2054235.patch | 1711 ++++++++++ ...chroots-for-CentOS-Stream-RhBug-2058.patch | 37 - ...ng-when-using-system-upgrade-on-RHEL.patch | 78 + SOURCES/0002-Update-translations.patch | 2786 ----------------- ...offline-upgrade-Add-security-filters.patch | 61 + ...Show-warning-always-for-a-downstream.patch | 62 + SOURCES/0005-Update-translations.patch | 2782 ++++++++++++++++ SPECS/dnf-plugins-core.spec | 71 +- 10 files changed, 4759 insertions(+), 2833 deletions(-) create mode 100644 SOURCES/0001-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch delete mode 100644 SOURCES/0001-copr-Guess-EPEL-chroots-for-CentOS-Stream-RhBug-2058.patch create mode 100644 SOURCES/0002-Add-a-warning-when-using-system-upgrade-on-RHEL.patch delete mode 100644 SOURCES/0002-Update-translations.patch create mode 100644 SOURCES/0003-offline-upgrade-Add-security-filters.patch create mode 100644 SOURCES/0004-system-upgrade-Show-warning-always-for-a-downstream.patch create mode 100644 SOURCES/0005-Update-translations.patch diff --git a/.dnf-plugins-core.metadata b/.dnf-plugins-core.metadata index 89f436d..a3b145a 100644 --- a/.dnf-plugins-core.metadata +++ b/.dnf-plugins-core.metadata @@ -1 +1 @@ -22fcfa23b92ea8052ba2eb14ef9264e61c4b7d8b SOURCES/dnf-plugins-core-4.1.0.tar.gz +d9a1561a5c4d238340b3db6d081c70b86841c291 SOURCES/dnf-plugins-core-4.3.0.tar.gz diff --git a/.gitignore b/.gitignore index a01eec8..ccc6400 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dnf-plugins-core-4.1.0.tar.gz +SOURCES/dnf-plugins-core-4.3.0.tar.gz diff --git a/SOURCES/0001-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch b/SOURCES/0001-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch new file mode 100644 index 0000000..d474231 --- /dev/null +++ b/SOURCES/0001-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch @@ -0,0 +1,1711 @@ +From 75e92678bfb687d23594c3ecef299cddca657c3e Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Thu, 22 Sep 2022 16:02:55 +0000 +Subject: [PATCH 1/4] Move system-upgrade plugin to core (RhBug:2054235) + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2054235 +--- + CMakeLists.txt | 15 + + dnf-plugins-core.spec | 38 +- + doc/CMakeLists.txt | 1 + + doc/conf.py | 1 + + doc/index.rst | 1 + + doc/system-upgrade.rst | 207 ++++++ + etc/CMakeLists.txt | 1 + + etc/systemd/CMakeLists.txt | 1 + + .../dnf-system-upgrade-cleanup.service | 11 + + etc/systemd/dnf-system-upgrade.service | 20 + + plugins/CMakeLists.txt | 1 + + plugins/system_upgrade.py | 699 ++++++++++++++++++ + tests/test_system_upgrade.py | 502 +++++++++++++ + 13 files changed, 1494 insertions(+), 4 deletions(-) + create mode 100644 doc/system-upgrade.rst + create mode 100644 etc/systemd/CMakeLists.txt + create mode 100644 etc/systemd/dnf-system-upgrade-cleanup.service + create mode 100644 etc/systemd/dnf-system-upgrade.service + create mode 100644 plugins/system_upgrade.py + create mode 100644 tests/test_system_upgrade.py + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 59c4f2a..a1eea7b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -23,6 +23,21 @@ MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") + + SET (SYSCONFDIR /etc) + ++find_package (PkgConfig) ++ ++if (PKG_CONFIG_FOUND) ++ pkg_search_module (SYSTEMD systemd) ++ if (SYSTEMD_FOUND) ++ execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=systemdsystemunitdir systemd ++ OUTPUT_VARIABLE SYSTEMD_DIR ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ endif () ++endif() ++ ++if (NOT SYSTEMD_DIR) ++ set (SYSTEMD_DIR /usr/lib/systemd/system) ++endif () ++ + ADD_SUBDIRECTORY (libexec) + ADD_SUBDIRECTORY (doc) + ADD_SUBDIRECTORY (etc) +diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec +index c37dda8..4df6e44 100644 +--- a/dnf-plugins-core.spec ++++ b/dnf-plugins-core.spec +@@ -64,6 +64,9 @@ Provides: dnf-command(repograph) + Provides: dnf-command(repomanage) + Provides: dnf-command(reposync) + Provides: dnf-command(repodiff) ++Provides: dnf-command(system-upgrade) ++Provides: dnf-command(offline-upgrade) ++Provides: dnf-command(offline-distrosync) + Provides: dnf-plugins-extras-debug = %{version}-%{release} + Provides: dnf-plugins-extras-repoclosure = %{version}-%{release} + Provides: dnf-plugins-extras-repograph = %{version}-%{release} +@@ -80,6 +83,7 @@ Provides: dnf-plugin-repodiff = %{version}-%{release} + Provides: dnf-plugin-repograph = %{version}-%{release} + Provides: dnf-plugin-repomanage = %{version}-%{release} + Provides: dnf-plugin-reposync = %{version}-%{release} ++Provides: dnf-plugin-system-upgrade = %{version}-%{release} + %if %{with yumcompatibility} + Provides: yum-plugin-copr = %{version}-%{release} + Provides: yum-plugin-changelog = %{version}-%{release} +@@ -133,8 +137,8 @@ Conflicts: python-%{name} < %{version}-%{release} + %description -n python2-%{name} + Core Plugins for DNF, Python 2 interface. This package enhances DNF with builddep, + config-manager, copr, degug, debuginfo-install, download, needs-restarting, +-groups-manager, repoclosure, repograph, repomanage, reposync, changelog +-and repodiff commands. ++groups-manager, repoclosure, repograph, repomanage, reposync, changelog, ++repodiff, system-upgrade, offline-upgrade and offline-distrosync commands. + Additionally provides generate_completion_cache passive plugin. + %endif + +@@ -145,6 +149,10 @@ Summary: Core Plugins for DNF + BuildRequires: python3-dbus + BuildRequires: python3-devel + BuildRequires: python3-dnf >= %{dnf_lowest_compatible} ++BuildRequires: python3-systemd ++BuildRequires: pkgconfig(systemd) ++BuildRequires: systemd ++%{?systemd_ordering} + %if 0%{?fedora} + Requires: python3-distro + %endif +@@ -152,14 +160,17 @@ Requires: python3-dbus + Requires: python3-dnf >= %{dnf_lowest_compatible} + Requires: python3-hawkey >= %{hawkey_version} + Requires: python3-dateutil ++Requires: python3-systemd + Provides: python3-dnf-plugins-extras-debug = %{version}-%{release} + Provides: python3-dnf-plugins-extras-repoclosure = %{version}-%{release} + Provides: python3-dnf-plugins-extras-repograph = %{version}-%{release} + Provides: python3-dnf-plugins-extras-repomanage = %{version}-%{release} ++Provides: python3-dnf-plugin-system-upgrade = %{version}-%{release} + Obsoletes: python3-dnf-plugins-extras-debug < %{dnf_plugins_extra} + Obsoletes: python3-dnf-plugins-extras-repoclosure < %{dnf_plugins_extra} + Obsoletes: python3-dnf-plugins-extras-repograph < %{dnf_plugins_extra} + Obsoletes: python3-dnf-plugins-extras-repomanage < %{dnf_plugins_extra} ++Obsoletes: python3-dnf-plugin-system-upgrade < %{version}-%{release} + + Conflicts: %{name} <= 0.1.5 + # let the both python plugin versions be updated simultaneously +@@ -169,8 +180,8 @@ Conflicts: python-%{name} < %{version}-%{release} + %description -n python3-%{name} + Core Plugins for DNF, Python 3 interface. This package enhances DNF with builddep, + config-manager, copr, debug, debuginfo-install, download, needs-restarting, +-groups-manager, repoclosure, repograph, repomanage, reposync, changelog +-and repodiff commands. ++groups-manager, repoclosure, repograph, repomanage, reposync, changelog, ++repodiff, system-upgrade, offline-upgrade and offline-distrosync commands. + Additionally provides generate_completion_cache passive plugin. + %endif + +@@ -451,6 +462,17 @@ pushd build-py3 + %make_install + popd + %endif ++ ++%if %{with python3} ++mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants/ ++pushd %{buildroot}%{_unitdir}/system-update.target.wants/ ++ ln -sr ../dnf-system-upgrade.service ++popd ++ ++ln -sf %{_mandir}/man8/dnf-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf-offline-upgrade.8.gz ++ln -sf %{_mandir}/man8/dnf-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf-offline-distrosync.8.gz ++%endif ++ + %find_lang %{name} + %if %{with yumutils} + %if %{with python3} +@@ -515,6 +537,9 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ + %{_mandir}/man8/dnf-repograph.* + %{_mandir}/man8/dnf-repomanage.* + %{_mandir}/man8/dnf-reposync.* ++%{_mandir}/man8/dnf-system-upgrade.* ++%{_mandir}/man8/dnf-offline-upgrade.* ++%{_mandir}/man8/dnf-offline-distrosync.* + %if %{with yumcompatibility} + %{_mandir}/man1/yum-changelog.* + %{_mandir}/man8/yum-copr.* +@@ -572,6 +597,7 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ + %{python3_sitelib}/dnf-plugins/repograph.py + %{python3_sitelib}/dnf-plugins/repomanage.py + %{python3_sitelib}/dnf-plugins/reposync.py ++%{python3_sitelib}/dnf-plugins/system_upgrade.py + %{python3_sitelib}/dnf-plugins/__pycache__/builddep.* + %{python3_sitelib}/dnf-plugins/__pycache__/changelog.* + %{python3_sitelib}/dnf-plugins/__pycache__/config_manager.* +@@ -587,7 +613,11 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ + %{python3_sitelib}/dnf-plugins/__pycache__/repograph.* + %{python3_sitelib}/dnf-plugins/__pycache__/repomanage.* + %{python3_sitelib}/dnf-plugins/__pycache__/reposync.* ++%{python3_sitelib}/dnf-plugins/__pycache__/system_upgrade.* + %{python3_sitelib}/dnfpluginscore/ ++%{_unitdir}/dnf-system-upgrade.service ++%{_unitdir}/dnf-system-upgrade-cleanup.service ++%{_unitdir}/system-update.target.wants/dnf-system-upgrade.service + %endif + + %if %{with yumutils} +diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt +index ff84cf8..79472a5 100644 +--- a/doc/CMakeLists.txt ++++ b/doc/CMakeLists.txt +@@ -37,6 +37,7 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dnf-builddep.8 + ${CMAKE_CURRENT_BINARY_DIR}/dnf-reposync.8 + ${CMAKE_CURRENT_BINARY_DIR}/dnf-post-transaction-actions.8 + ${CMAKE_CURRENT_BINARY_DIR}/dnf-show-leaves.8 ++ ${CMAKE_CURRENT_BINARY_DIR}/dnf-system-upgrade.8 + ${CMAKE_CURRENT_BINARY_DIR}/dnf-versionlock.8 + ${CMAKE_CURRENT_BINARY_DIR}/yum-copr.8 + ${CMAKE_CURRENT_BINARY_DIR}/yum-versionlock.8 +diff --git a/doc/conf.py b/doc/conf.py +index 41d6936..327ac07 100644 +--- a/doc/conf.py ++++ b/doc/conf.py +@@ -264,6 +264,7 @@ man_pages = [ + ('post-transaction-actions', 'dnf-post-transaction-actions', + u'DNF post transaction actions Plugin', AUTHORS, 8), + ('show-leaves', 'dnf-show-leaves', u'DNF show-leaves Plugin', AUTHORS, 8), ++ ('system-upgrade', 'dnf-system-upgrade', u'DNF system-upgrade Plugin', AUTHORS, 8), + ('versionlock', 'dnf-versionlock', u'DNF versionlock Plugin', AUTHORS, 8), + + # yum3 compatible layer for manpages +diff --git a/doc/index.rst b/doc/index.rst +index 07f6052..251a24e 100644 +--- a/doc/index.rst ++++ b/doc/index.rst +@@ -46,6 +46,7 @@ This documents core plugins of DNF: + repomanage + reposync + show-leaves ++ system-upgrade + versionlock + + +diff --git a/doc/system-upgrade.rst b/doc/system-upgrade.rst +new file mode 100644 +index 0000000..3110460 +--- /dev/null ++++ b/doc/system-upgrade.rst +@@ -0,0 +1,207 @@ ++.. ++ Copyright (C) 2014-2016 Red Hat, Inc. ++ ++ This copyrighted material is made available to anyone wishing to use, ++ modify, copy, or redistribute it subject to the terms and conditions of ++ the GNU General Public License v.2, or (at your option) any later version. ++ This program is distributed in the hope that it will be useful, but WITHOUT ++ ANY WARRANTY expressed or implied, including the implied warranties of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++ Public License for more details. You should have received a copy of the ++ GNU General Public License along with this program; if not, write to the ++ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++ 02110-1301, USA. Any Red Hat trademarks that are incorporated in the ++ source code or documentation are not subject to the GNU General Public ++ License and may only be used or replicated with the express permission of ++ Red Hat, Inc. ++ ++========================= ++DNF system-upgrade Plugin ++========================= ++ ++----------- ++Description ++----------- ++ ++DNF system-upgrades plugin provides three commands: ``system-upgrade``, ``offline-upgrade``, and ++``offline-distrosync``. Only ``system-upgrade`` command requires increase of distribution major ++version (``--releasever``) compared to installed version. ++ ++``dnf system-upgrade`` can be used to upgrade a Fedora system to a new major ++release. It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system ++is fully upgraded (``dnf --refresh upgrade``). ++ ++The ``system-upgrade`` command also performes additional actions necessary for the upgrade of the ++system, for example an upgrade of groups and environments. ++ ++-------- ++Synopsis ++-------- ++ ++``dnf system-upgrade download --releasever VERSION [OPTIONS]`` ++ ++``dnf system-upgrade reboot`` ++ ++``dnf system-upgrade clean`` ++ ++``dnf system-upgrade log`` ++ ++``dnf system-upgrade log --number=`` ++ ++``dnf offline-upgrade download [OPTIONS]`` ++ ++``dnf offline-upgrade reboot`` ++ ++``dnf offline-upgrade clean`` ++ ++``dnf offline-upgrade log`` ++ ++``dnf offline-upgrade log --number=`` ++ ++``dnf offline-distrosync download [OPTIONS]`` ++ ++``dnf offline-distrosync reboot`` ++ ++``dnf offline-distrosync clean`` ++ ++``dnf offline-distrosync log`` ++ ++``dnf offline-distrosync log --number=`` ++ ++----------- ++Subcommands ++----------- ++ ++``download`` ++ Downloads everything needed to upgrade to a new major release. ++ ++``reboot`` ++ Prepares the system to perform the upgrade, and reboots to start the upgrade. ++ This can only be used after the ``download`` command completes successfully. ++ ++``clean`` ++ Remove previously-downloaded data. This happens automatically at the end of ++ a successful upgrade. ++ ++``log`` ++ Used to see a list of boots during which an upgrade was attempted, or show ++ the logs from an upgrade attempt. The logs for one of the boots can be shown ++ by specifying one of the numbers in the first column. Negative numbers can ++ be used to number the boots from last to first. For example, ``log --number=-1`` can ++ be used to see the logs for the last upgrade attempt. ++ ++------- ++Options ++------- ++ ++``--releasever=VERSION`` ++ REQUIRED. The version to upgrade to. Sets ``$releasever`` in all enabled ++ repos. Usually a number, or ``rawhide``. ++ ++``--downloaddir=`` ++ Redirect download of packages to provided ````. By default, packages ++ are downloaded into (per repository created) subdirectories of ++ /var/lib/dnf/system-upgrade. ++ ++``--distro-sync`` ++ Behave like ``dnf distro-sync``: always install packages from the new ++ release, even if they are older than the currently-installed version. This ++ is the default behavior. ++ ++``--no-downgrade`` ++ Behave like ``dnf update``: do not install packages from the new release ++ if they are older than what is currently installed. This is the opposite of ++ ``--distro-sync``. If both are specified, the last option will be used. The option cannot be ++ used with the ``offline-distrosync`` command. ++ ++``--number`` ++ Applied with ``log`` subcommand will show the log specified by the number. ++ ++----- ++Notes ++----- ++ ++``dnf system-upgrade reboot`` does not create a "System Upgrade" boot item. The ++upgrade will start regardless of which boot item is chosen. ++ ++The ``DNF_SYSTEM_UPGRADE_NO_REBOOT`` environment variable can be set to a ++non-empty value to disable the actual reboot performed by ``system-upgrade`` ++(e.g. for testing purposes). ++ ++Since this is a DNF plugin, options accepted by ``dnf`` are also valid here, ++such as ``--allowerasing``. ++See :manpage:`dnf(8)` for more information. ++ ++The ``fedup`` command is not provided, not even as an alias for ++``dnf system-upgrade``. ++ ++---- ++Bugs ++---- ++ ++Upgrading from install media (e.g. a DVD or .iso file) currently requires the ++user to manually set up a DNF repo and fstab entry for the media. ++ ++-------- ++Examples ++-------- ++ ++Typical upgrade usage ++--------------------- ++ ++``dnf --refresh upgrade`` ++ ++``dnf system-upgrade download --releasever 26`` ++ ++``dnf system-upgrade reboot`` ++ ++Show logs from last upgrade attempt ++----------------------------------- ++ ++``dnf system-upgrade log --number=-1`` ++ ++-------------- ++Reporting Bugs ++-------------- ++ ++Bugs should be filed here: ++ ++ https://bugzilla.redhat.com/ ++ ++For more info on filing bugs, see the Fedora Project wiki: ++ ++ https://fedoraproject.org/wiki/How_to_file_a_bug_report ++ ++ https://fedoraproject.org/wiki/Bugs_and_feature_requests ++ ++Please include ``/var/log/dnf.log`` and the output of ++``dnf system-upgrade log --number=-1`` (if applicable) in your bug reports. ++ ++Problems with dependency solving during download are best reported to the ++maintainers of the package(s) with the dependency problems. ++ ++Similarly, problems encountered on your system after the upgrade completes ++should be reported to the maintainers of the affected components. In other ++words: if (for example) KDE stops working, it's best if you report that to ++the KDE maintainers. ++ ++-------- ++See Also ++-------- ++ ++:manpage:`dnf(8)`, ++:manpage:`dnf.conf(5)`, ++:manpage:`journalctl(1)`. ++ ++Project homepage ++---------------- ++ ++https://github.com/rpm-software-management/dnf-plugins-core ++ ++------- ++Authors ++------- ++ ++Will Woods ++ ++ล tฤ›pรกn Smetana +diff --git a/etc/CMakeLists.txt b/etc/CMakeLists.txt +index 2e9cccd..a892f8a 100644 +--- a/etc/CMakeLists.txt ++++ b/etc/CMakeLists.txt +@@ -1 +1,2 @@ + ADD_SUBDIRECTORY (dnf) ++ADD_SUBDIRECTORY (systemd) +diff --git a/etc/systemd/CMakeLists.txt b/etc/systemd/CMakeLists.txt +new file mode 100644 +index 0000000..8a29403 +--- /dev/null ++++ b/etc/systemd/CMakeLists.txt +@@ -0,0 +1 @@ ++INSTALL (FILES "dnf-system-upgrade.service" "dnf-system-upgrade-cleanup.service" DESTINATION ${SYSTEMD_DIR}) +diff --git a/etc/systemd/dnf-system-upgrade-cleanup.service b/etc/systemd/dnf-system-upgrade-cleanup.service +new file mode 100644 +index 0000000..49f771c +--- /dev/null ++++ b/etc/systemd/dnf-system-upgrade-cleanup.service +@@ -0,0 +1,11 @@ ++[Unit] ++Description=System Upgrade using DNF failed ++DefaultDependencies=no ++ ++[Service] ++Type=oneshot ++# Remove the symlink if it's still there, to protect against reboot loops. ++ExecStart=/usr/bin/rm -fv /system-update ++# If anything goes wrong, reboot back to the normal system. ++ExecStart=/usr/bin/systemctl --no-block reboot ++ +diff --git a/etc/systemd/dnf-system-upgrade.service b/etc/systemd/dnf-system-upgrade.service +new file mode 100644 +index 0000000..2d23cfe +--- /dev/null ++++ b/etc/systemd/dnf-system-upgrade.service +@@ -0,0 +1,20 @@ ++[Unit] ++Description=System Upgrade using DNF ++ConditionPathExists=/system-update ++Documentation=http://www.freedesktop.org/wiki/Software/systemd/SystemUpdates ++ ++DefaultDependencies=no ++Requires=sysinit.target ++After=sysinit.target systemd-journald.socket system-update-pre.target ++Before=shutdown.target system-update.target ++OnFailure=dnf-system-upgrade-cleanup.service ++ ++[Service] ++# We are done when the script exits, not before ++Type=oneshot ++# Upgrade output goes to journal and on-screen. ++StandardOutput=journal+console ++ExecStart=/usr/bin/dnf system-upgrade upgrade ++ ++[Install] ++WantedBy=system-update.target +diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt +index 59f148f..d004e5e 100644 +--- a/plugins/CMakeLists.txt ++++ b/plugins/CMakeLists.txt +@@ -22,6 +22,7 @@ INSTALL (FILES repograph.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) + INSTALL (FILES repomanage.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) + INSTALL (FILES reposync.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) + INSTALL (FILES show_leaves.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) ++INSTALL (FILES system_upgrade.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) + INSTALL (FILES modulesync.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) + INSTALL (FILES versionlock.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins) + +diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py +new file mode 100644 +index 0000000..fee6762 +--- /dev/null ++++ b/plugins/system_upgrade.py +@@ -0,0 +1,699 @@ ++# -*- coding: utf-8 -*- ++# ++# Copyright (c) 2015-2020 Red Hat, Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see . ++# ++# Author(s): Will Woods ++ ++"""system_upgrade.py - DNF plugin to handle major-version system upgrades.""" ++ ++from subprocess import call, Popen, check_output, CalledProcessError ++import json ++import os ++import os.path ++import re ++import sys ++import uuid ++ ++from systemd import journal ++ ++from dnfpluginscore import _, logger ++ ++import dnf ++import dnf.cli ++from dnf.cli import CliError ++from dnf.i18n import ucd ++import dnf.transaction ++from dnf.transaction_sr import serialize_transaction, TransactionReplay ++ ++import libdnf.conf ++ ++ ++# Translators: This string is only used in unit tests. ++_("the color of the sky") ++ ++DOWNLOAD_FINISHED_ID = uuid.UUID('9348174c5cc74001a71ef26bd79d302e') ++REBOOT_REQUESTED_ID = uuid.UUID('fef1cc509d5047268b83a3a553f54b43') ++UPGRADE_STARTED_ID = uuid.UUID('3e0a5636d16b4ca4bbe5321d06c6aa62') ++UPGRADE_FINISHED_ID = uuid.UUID('8cec00a1566f4d3594f116450395f06c') ++ ++ID_TO_IDENTIFY_BOOTS = UPGRADE_STARTED_ID ++ ++PLYMOUTH = '/usr/bin/plymouth' ++ ++RELEASEVER_MSG = _( ++ "Need a --releasever greater than the current system version.") ++DOWNLOAD_FINISHED_MSG = _( # Translators: do not change "reboot" here ++ "Download complete! Use 'dnf {command} reboot' to start the upgrade.\n" ++ "To remove cached metadata and transaction use 'dnf {command} clean'") ++CANT_RESET_RELEASEVER = _( ++ "Sorry, you need to use 'download --releasever' instead of '--network'") ++ ++STATE_VERSION = 2 ++ ++# --- Miscellaneous helper functions ------------------------------------------ ++ ++ ++def reboot(): ++ if os.getenv("DNF_SYSTEM_UPGRADE_NO_REBOOT", default=False): ++ logger.info(_("Reboot turned off, not rebooting.")) ++ else: ++ Popen(["systemctl", "reboot"]) ++ ++ ++def get_url_from_os_release(): ++ key = "UPGRADE_GUIDE_URL=" ++ for path in ["/etc/os-release", "/usr/lib/os-release"]: ++ try: ++ with open(path) as release_file: ++ for line in release_file: ++ line = line.strip() ++ if line.startswith(key): ++ return line[len(key):].strip('"') ++ except IOError: ++ continue ++ return None ++ ++ ++# DNF-FIXME: dnf.util.clear_dir() doesn't delete regular files :/ ++def clear_dir(path, ignore=[]): ++ if not os.path.isdir(path): ++ return ++ ++ for entry in os.listdir(path): ++ fullpath = os.path.join(path, entry) ++ if fullpath in ignore: ++ continue ++ try: ++ if os.path.isdir(fullpath): ++ dnf.util.rm_rf(fullpath) ++ else: ++ os.unlink(fullpath) ++ except OSError: ++ pass ++ ++ ++def check_release_ver(conf, target=None): ++ if dnf.rpm.detect_releasever(conf.installroot) == conf.releasever: ++ raise CliError(RELEASEVER_MSG) ++ if target and target != conf.releasever: ++ # it's too late to set releasever here, so this can't work. ++ # (see https://bugzilla.redhat.com/show_bug.cgi?id=1212341) ++ raise CliError(CANT_RESET_RELEASEVER) ++ ++ ++def disable_blanking(): ++ try: ++ tty = open('/dev/tty0', 'wb') ++ tty.write(b'\33[9;0]') ++ except Exception as e: ++ print(_("Screen blanking can't be disabled: %s") % e) ++ ++# --- State object - for tracking upgrade state between runs ------------------ ++ ++ ++# DNF-INTEGRATION-NOTE: basically the same thing as dnf.persistor.JSONDB ++class State(object): ++ def __init__(self, statefile): ++ self.statefile = statefile ++ self._data = {} ++ self._read() ++ ++ def _read(self): ++ try: ++ with open(self.statefile) as fp: ++ self._data = json.load(fp) ++ except IOError: ++ self._data = {} ++ except ValueError: ++ self._data = {} ++ logger.warning(_("Failed loading state file: %s, continuing with " ++ "empty state."), self.statefile) ++ ++ def write(self): ++ dnf.util.ensure_dir(os.path.dirname(self.statefile)) ++ with open(self.statefile, 'w') as outf: ++ json.dump(self._data, outf, indent=4, sort_keys=True) ++ ++ def clear(self): ++ if os.path.exists(self.statefile): ++ os.unlink(self.statefile) ++ self._read() ++ ++ def __enter__(self): ++ return self ++ ++ def __exit__(self, exc_type, exc_value, traceback): ++ if exc_type is None: ++ self.write() ++ ++ # helper function for creating properties. pylint: disable=protected-access ++ def _prop(option): # pylint: disable=no-self-argument ++ def setprop(self, value): ++ self._data[option] = value ++ ++ def getprop(self): ++ return self._data.get(option) ++ return property(getprop, setprop) ++ ++ # !!! Increase STATE_VERSION for any changes in data structure like a new property or a new ++ # data structure !!! ++ state_version = _prop("state_version") ++ download_status = _prop("download_status") ++ destdir = _prop("destdir") ++ target_releasever = _prop("target_releasever") ++ system_releasever = _prop("system_releasever") ++ gpgcheck = _prop("gpgcheck") ++ # list of repos with gpgcheck=True ++ gpgcheck_repos = _prop("gpgcheck_repos") ++ # list of repos with repo_gpgcheck=True ++ repo_gpgcheck_repos = _prop("repo_gpgcheck_repos") ++ upgrade_status = _prop("upgrade_status") ++ upgrade_command = _prop("upgrade_command") ++ distro_sync = _prop("distro_sync") ++ enable_disable_repos = _prop("enable_disable_repos") ++ module_platform_id = _prop("module_platform_id") ++ ++# --- Plymouth output helpers ------------------------------------------------- ++ ++ ++class PlymouthOutput(object): ++ """A plymouth output helper class. ++ ++ Filters duplicate calls, and stops calling the plymouth binary if we ++ fail to contact it. ++ """ ++ ++ def __init__(self): ++ self.alive = True ++ self._last_args = dict() ++ self._last_msg = None ++ ++ def _plymouth(self, cmd, *args): ++ dupe_cmd = (args == self._last_args.get(cmd)) ++ if (self.alive and not dupe_cmd) or cmd == '--ping': ++ try: ++ self.alive = (call((PLYMOUTH, cmd) + args) == 0) ++ except OSError: ++ self.alive = False ++ self._last_args[cmd] = args ++ return self.alive ++ ++ def ping(self): ++ return self._plymouth("--ping") ++ ++ def message(self, msg): ++ if self._last_msg and self._last_msg != msg: ++ self._plymouth("hide-message", "--text", self._last_msg) ++ self._last_msg = msg ++ return self._plymouth("display-message", "--text", msg) ++ ++ def set_mode(self): ++ mode = 'updates' ++ try: ++ s = check_output([PLYMOUTH, '--help']) ++ if re.search('--system-upgrade', ucd(s)): ++ mode = 'system-upgrade' ++ except (CalledProcessError, OSError): ++ pass ++ return self._plymouth("change-mode", "--" + mode) ++ ++ def progress(self, percent): ++ return self._plymouth("system-update", "--progress", str(percent)) ++ ++ ++# A single PlymouthOutput instance for us to use within this module ++Plymouth = PlymouthOutput() ++ ++ ++# A TransactionProgress class that updates plymouth for us. ++class PlymouthTransactionProgress(dnf.callback.TransactionProgress): ++ ++ # pylint: disable=too-many-arguments ++ def progress(self, package, action, ti_done, ti_total, ts_done, ts_total): ++ self._update_plymouth(package, action, ts_done, ts_total) ++ ++ def _update_plymouth(self, package, action, current, total): ++ # Prevents quick jumps of progressbar when pretrans scriptlets ++ # and TRANS_PREPARATION are reported as 1/1 ++ if total == 1: ++ return ++ # Verification goes through all the packages again, ++ # which resets the "current" param value, this prevents ++ # resetting of the progress bar as well. (Rhbug:1809096) ++ if action != dnf.callback.PKG_VERIFY: ++ Plymouth.progress(int(90.0 * current / total)) ++ else: ++ Plymouth.progress(90 + int(10.0 * current / total)) ++ ++ Plymouth.message(self._fmt_event(package, action, current, total)) ++ ++ def _fmt_event(self, package, action, current, total): ++ action = dnf.transaction.ACTIONS.get(action, action) ++ return "[%d/%d] %s %s..." % (current, total, action, package) ++ ++# --- journal helpers ------------------------------------------------- ++ ++ ++def find_boots(message_id): ++ """Find all boots with this message id. ++ ++ Returns the entries of all found boots. ++ """ ++ j = journal.Reader() ++ j.add_match(MESSAGE_ID=message_id.hex, # identify the message ++ _UID=0) # prevent spoofing of logs ++ ++ oldboot = None ++ for entry in j: ++ boot = entry['_BOOT_ID'] ++ if boot == oldboot: ++ continue ++ oldboot = boot ++ yield entry ++ ++ ++def list_logs(): ++ print(_('The following boots appear to contain upgrade logs:')) ++ n = -1 ++ for n, entry in enumerate(find_boots(ID_TO_IDENTIFY_BOOTS)): ++ print('{} / {.hex}: {:%Y-%m-%d %H:%M:%S} {}โ†’{}'.format( ++ n + 1, ++ entry['_BOOT_ID'], ++ entry['__REALTIME_TIMESTAMP'], ++ entry.get('SYSTEM_RELEASEVER', '??'), ++ entry.get('TARGET_RELEASEVER', '??'))) ++ if n == -1: ++ print(_('-- no logs were found --')) ++ ++ ++def pick_boot(message_id, n): ++ boots = list(find_boots(message_id)) ++ # Positive indices index all found boots starting with 1 and going forward, ++ # zero is the current boot, and -1, -2, -3 are previous going backwards. ++ # This is the same as journalctl. ++ try: ++ if n == 0: ++ raise IndexError ++ if n > 0: ++ n -= 1 ++ return boots[n]['_BOOT_ID'] ++ except IndexError: ++ raise CliError(_("Cannot find logs with this index.")) ++ ++ ++def show_log(n): ++ boot_id = pick_boot(ID_TO_IDENTIFY_BOOTS, n) ++ process = Popen(['journalctl', '--boot', boot_id.hex]) ++ process.wait() ++ rc = process.returncode ++ if rc == 1: ++ raise dnf.exceptions.Error(_("Unable to match systemd journal entry")) ++ ++ ++CMDS = ['download', 'clean', 'reboot', 'upgrade', 'log'] ++ ++# --- The actual Plugin and Command objects! ---------------------------------- ++ ++ ++class SystemUpgradePlugin(dnf.Plugin): ++ name = 'system-upgrade' ++ ++ def __init__(self, base, cli): ++ super(SystemUpgradePlugin, self).__init__(base, cli) ++ if cli: ++ cli.register_command(SystemUpgradeCommand) ++ cli.register_command(OfflineUpgradeCommand) ++ cli.register_command(OfflineDistrosyncCommand) ++ ++ ++class SystemUpgradeCommand(dnf.cli.Command): ++ aliases = ('system-upgrade', 'fedup',) ++ summary = _("Prepare system for upgrade to a new release") ++ ++ DATADIR = 'var/lib/dnf/system-upgrade' ++ ++ def __init__(self, cli): ++ super(SystemUpgradeCommand, self).__init__(cli) ++ self.datadir = os.path.join(cli.base.conf.installroot, self.DATADIR) ++ self.transaction_file = os.path.join(self.datadir, 'system-upgrade-transaction.json') ++ self.magic_symlink = os.path.join(cli.base.conf.installroot, 'system-update') ++ ++ self.state = State(os.path.join(self.datadir, 'system-upgrade-state.json')) ++ ++ @staticmethod ++ def set_argparser(parser): ++ parser.add_argument("--no-downgrade", dest='distro_sync', ++ action='store_false', ++ help=_("keep installed packages if the new " ++ "release's version is older")) ++ parser.add_argument('tid', nargs=1, choices=CMDS, ++ metavar="[%s]" % "|".join(CMDS)) ++ parser.add_argument('--number', type=int, help=_('which logs to show')) ++ ++ def log_status(self, message, message_id): ++ """Log directly to the journal.""" ++ journal.send(message, ++ MESSAGE_ID=message_id, ++ PRIORITY=journal.LOG_NOTICE, ++ SYSTEM_RELEASEVER=self.state.system_releasever, ++ TARGET_RELEASEVER=self.state.target_releasever, ++ DNF_VERSION=dnf.const.VERSION) ++ ++ def pre_configure(self): ++ self._call_sub("check") ++ self._call_sub("pre_configure") ++ ++ def configure(self): ++ self._call_sub("configure") ++ ++ def run(self): ++ self._call_sub("run") ++ ++ def run_transaction(self): ++ self._call_sub("transaction") ++ ++ def run_resolved(self): ++ self._call_sub("resolved") ++ ++ def _call_sub(self, name): ++ subfunc = getattr(self, name + '_' + self.opts.tid[0], None) ++ if callable(subfunc): ++ subfunc() ++ ++ def _check_state_version(self, command): ++ if self.state.state_version != STATE_VERSION: ++ msg = _("Incompatible version of data. Rerun 'dnf {command} download [OPTIONS]'" ++ "").format(command=command) ++ raise CliError(msg) ++ ++ def _set_cachedir(self): ++ # set download directories from json state file ++ self.base.conf.cachedir = self.datadir ++ self.base.conf.destdir = self.state.destdir if self.state.destdir else None ++ ++ def _get_forward_reverse_pkg_reason_pairs(self): ++ """ ++ forward = {repoid:{pkg_nevra: {tsi.action: tsi.reason}} ++ reverse = {pkg_nevra: {tsi.action: tsi.reason}} ++ :return: forward, reverse ++ """ ++ backward_action = set(dnf.transaction.BACKWARD_ACTIONS + [libdnf.transaction.TransactionItemAction_REINSTALLED]) ++ forward_actions = set(dnf.transaction.FORWARD_ACTIONS) ++ ++ forward = {} ++ reverse = {} ++ for tsi in self.cli.base.transaction: ++ if tsi.action in forward_actions: ++ pkg = tsi.pkg ++ forward.setdefault(pkg.repo.id, {}).setdefault( ++ str(pkg), {})[tsi.action] = tsi.reason ++ elif tsi.action in backward_action: ++ reverse.setdefault(str(tsi.pkg), {})[tsi.action] = tsi.reason ++ return forward, reverse ++ ++ # == pre_configure_*: set up action-specific demands ========================== ++ def pre_configure_download(self): ++ # only download subcommand accepts --destdir command line option ++ self.base.conf.cachedir = self.datadir ++ self.base.conf.destdir = self.opts.destdir if self.opts.destdir else None ++ if 'offline-distrosync' == self.opts.command and not self.opts.distro_sync: ++ raise CliError( ++ _("Command 'offline-distrosync' cannot be used with --no-downgrade option")) ++ elif 'offline-upgrade' == self.opts.command: ++ self.opts.distro_sync = False ++ ++ def pre_configure_reboot(self): ++ self._set_cachedir() ++ ++ def pre_configure_upgrade(self): ++ self._set_cachedir() ++ if self.state.enable_disable_repos: ++ self.opts.repos_ed = self.state.enable_disable_repos ++ self.base.conf.releasever = self.state.target_releasever ++ ++ def pre_configure_clean(self): ++ self._set_cachedir() ++ ++ # == configure_*: set up action-specific demands ========================== ++ ++ def configure_download(self): ++ if 'system-upgrade' == self.opts.command or 'fedup' == self.opts.command: ++ help_url = get_url_from_os_release() ++ if help_url: ++ msg = _('Additional information for System Upgrade: {}') ++ logger.info(msg.format(ucd(help_url))) ++ if self.base._promptWanted(): ++ msg = _('Before you continue ensure that your system is fully upgraded by running ' ++ '"dnf --refresh upgrade". Do you want to continue') ++ if self.base.conf.assumeno or not self.base.output.userconfirm( ++ msg='{} [y/N]: '.format(msg), defaultyes_msg='{} [Y/n]: '.format(msg)): ++ logger.error(_("Operation aborted.")) ++ sys.exit(1) ++ check_release_ver(self.base.conf, target=self.opts.releasever) ++ self.cli.demands.root_user = True ++ self.cli.demands.resolving = True ++ self.cli.demands.available_repos = True ++ self.cli.demands.sack_activation = True ++ self.cli.demands.freshest_metadata = True ++ # We want to do the depsolve / download / transaction-test, but *not* ++ # run the actual RPM transaction to install the downloaded packages. ++ # Setting the "test" flag makes the RPM transaction a test transaction, ++ # so nothing actually gets installed. ++ # (It also means that we run two test transactions in a row, which is ++ # kind of silly, but that's something for DNF to fix...) ++ self.base.conf.tsflags += ["test"] ++ ++ def configure_reboot(self): ++ # FUTURE: add a --debug-shell option to enable debug shell: ++ # systemctl add-wants system-update.target debug-shell.service ++ self.cli.demands.root_user = True ++ ++ def configure_upgrade(self): ++ # same as the download, but offline and non-interactive. so... ++ self.cli.demands.root_user = True ++ self.cli.demands.resolving = True ++ self.cli.demands.available_repos = True ++ self.cli.demands.sack_activation = True ++ # use the saved value for --allowerasing, etc. ++ self.opts.distro_sync = self.state.distro_sync ++ if self.state.gpgcheck is not None: ++ self.base.conf.gpgcheck = self.state.gpgcheck ++ if self.state.gpgcheck_repos is not None: ++ for repo in self.base.repos.values(): ++ repo.gpgcheck = repo.id in self.state.gpgcheck_repos ++ if self.state.repo_gpgcheck_repos is not None: ++ for repo in self.base.repos.values(): ++ repo.repo_gpgcheck = repo.id in self.state.repo_gpgcheck_repos ++ self.base.conf.module_platform_id = self.state.module_platform_id ++ # don't try to get new metadata, 'cuz we're offline ++ self.cli.demands.cacheonly = True ++ # and don't ask any questions (we confirmed all this beforehand) ++ self.base.conf.assumeyes = True ++ self.cli.demands.transaction_display = PlymouthTransactionProgress() ++ # upgrade operation already removes all element that must be removed. Additional removal ++ # could trigger unwanted changes in transaction. ++ self.base.conf.clean_requirements_on_remove = False ++ self.base.conf.install_weak_deps = False ++ ++ def configure_clean(self): ++ self.cli.demands.root_user = True ++ ++ def configure_log(self): ++ pass ++ ++ # == check_*: do any action-specific checks =============================== ++ ++ def check_reboot(self): ++ if not self.state.download_status == 'complete': ++ raise CliError(_("system is not ready for upgrade")) ++ self._check_state_version(self.opts.command) ++ if self.state.upgrade_command != self.opts.command: ++ msg = _("the transaction was not prepared for '{command}'. " ++ "Rerun 'dnf {command} download [OPTIONS]'").format(command=self.opts.command) ++ raise CliError(msg) ++ if os.path.lexists(self.magic_symlink): ++ raise CliError(_("upgrade is already scheduled")) ++ dnf.util.ensure_dir(self.datadir) ++ # FUTURE: checkRPMDBStatus(self.state.download_transaction_id) ++ ++ def check_upgrade(self): ++ if not os.path.lexists(self.magic_symlink): ++ logger.info(_("trigger file does not exist. exiting quietly.")) ++ raise SystemExit(0) ++ if os.readlink(self.magic_symlink) != self.datadir: ++ logger.info(_("another upgrade tool is running. exiting quietly.")) ++ raise SystemExit(0) ++ # Delete symlink ASAP to avoid reboot loops ++ dnf.yum.misc.unlink_f(self.magic_symlink) ++ command = self.state.upgrade_command ++ if not command: ++ command = self.opts.command ++ self._check_state_version(command) ++ if not self.state.upgrade_status == 'ready': ++ msg = _("use 'dnf {command} reboot' to begin the upgrade").format(command=command) ++ raise CliError(msg) ++ ++ # == run_*: run the action/prep the transaction =========================== ++ ++ def run_prepare(self): ++ # make the magic symlink ++ os.symlink(self.datadir, self.magic_symlink) ++ # set upgrade_status so that the upgrade can run ++ with self.state as state: ++ state.upgrade_status = 'ready' ++ ++ def run_reboot(self): ++ self.run_prepare() ++ ++ if not self.opts.tid[0] == "reboot": ++ return ++ ++ self.log_status(_("Rebooting to perform upgrade."), ++ REBOOT_REQUESTED_ID) ++ reboot() ++ ++ def run_download(self): ++ # Mark everything in the world for upgrade/sync ++ if self.opts.distro_sync: ++ self.base.distro_sync() ++ else: ++ self.base.upgrade_all() ++ ++ if self.opts.command not in ['offline-upgrade', 'offline-distrosync']: ++ # Mark all installed groups and environments for upgrade ++ self.base.read_comps() ++ installed_groups = [g.id for g in self.base.comps.groups if self.base.history.group.get(g.id)] ++ if installed_groups: ++ self.base.env_group_upgrade(installed_groups) ++ installed_environments = [g.id for g in self.base.comps.environments if self.base.history.env.get(g.id)] ++ if installed_environments: ++ self.base.env_group_upgrade(installed_environments) ++ ++ with self.state as state: ++ state.download_status = 'downloading' ++ state.target_releasever = self.base.conf.releasever ++ state.destdir = self.base.conf.destdir ++ ++ def run_upgrade(self): ++ # change the upgrade status (so we can detect crashed upgrades later) ++ command = '' ++ with self.state as state: ++ state.upgrade_status = 'incomplete' ++ command = state.upgrade_command ++ if command == 'offline-upgrade': ++ msg = _("Starting offline upgrade. This will take a while.") ++ elif command == 'offline-distrosync': ++ msg = _("Starting offline distrosync. This will take a while.") ++ else: ++ msg = _("Starting system upgrade. This will take a while.") ++ ++ self.log_status(msg, UPGRADE_STARTED_ID) ++ ++ # reset the splash mode and let the user know we're running ++ Plymouth.set_mode() ++ Plymouth.progress(0) ++ Plymouth.message(msg) ++ ++ # disable screen blanking ++ disable_blanking() ++ ++ self.replay = TransactionReplay(self.base, self.transaction_file) ++ self.replay.run() ++ ++ def run_clean(self): ++ logger.info(_("Cleaning up downloaded data...")) ++ # Don't delete persistor, it contains paths for downloaded packages ++ # that are used by dnf during finalizing base to clean them up ++ clear_dir(self.base.conf.cachedir, ++ [dnf.persistor.TempfilePersistor(self.base.conf.cachedir).db_path]) ++ with self.state as state: ++ state.download_status = None ++ state.state_version = None ++ state.upgrade_status = None ++ state.upgrade_command = None ++ state.destdir = None ++ ++ def run_log(self): ++ if self.opts.number: ++ show_log(self.opts.number) ++ else: ++ list_logs() ++ ++ # == resolved_*: do staff after succesful resolvement ===================== ++ ++ def resolved_upgrade(self): ++ """Adjust transaction reasons according to stored values""" ++ self.replay.post_transaction() ++ ++ # == transaction_*: do stuff after a successful transaction =============== ++ ++ def transaction_download(self): ++ transaction = self.base.history.get_current() ++ ++ if not transaction.packages(): ++ logger.info(_("The system-upgrade transaction is empty, your system is already up-to-date.")) ++ return ++ ++ data = serialize_transaction(transaction) ++ try: ++ with open(self.transaction_file, "w") as f: ++ json.dump(data, f, indent=4, sort_keys=True) ++ f.write("\n") ++ ++ print(_("Transaction saved to {}.").format(self.transaction_file)) ++ ++ except OSError as e: ++ raise dnf.cli.CliError(_('Error storing transaction: {}').format(str(e))) ++ ++ # Okay! Write out the state so the upgrade can use it. ++ system_ver = dnf.rpm.detect_releasever(self.base.conf.installroot) ++ with self.state as state: ++ state.download_status = 'complete' ++ state.state_version = STATE_VERSION ++ state.distro_sync = self.opts.distro_sync ++ state.gpgcheck = self.base.conf.gpgcheck ++ state.gpgcheck_repos = [ ++ repo.id for repo in self.base.repos.values() if repo.gpgcheck] ++ state.repo_gpgcheck_repos = [ ++ repo.id for repo in self.base.repos.values() if repo.repo_gpgcheck] ++ state.system_releasever = system_ver ++ state.target_releasever = self.base.conf.releasever ++ state.module_platform_id = self.base.conf.module_platform_id ++ state.enable_disable_repos = self.opts.repos_ed ++ state.destdir = self.base.conf.destdir ++ state.upgrade_command = self.opts.command ++ ++ msg = DOWNLOAD_FINISHED_MSG.format(command=self.opts.command) ++ logger.info(msg) ++ self.log_status(_("Download finished."), DOWNLOAD_FINISHED_ID) ++ ++ def transaction_upgrade(self): ++ Plymouth.message(_("Upgrade complete! Cleaning up and rebooting...")) ++ self.log_status(_("Upgrade complete! Cleaning up and rebooting..."), ++ UPGRADE_FINISHED_ID) ++ self.run_clean() ++ if self.opts.tid[0] == "upgrade": ++ reboot() ++ ++ ++class OfflineUpgradeCommand(SystemUpgradeCommand): ++ aliases = ('offline-upgrade',) ++ summary = _("Prepare offline upgrade of the system") ++ ++ ++class OfflineDistrosyncCommand(SystemUpgradeCommand): ++ aliases = ('offline-distrosync',) ++ summary = _("Prepare offline distrosync of the system") +diff --git a/tests/test_system_upgrade.py b/tests/test_system_upgrade.py +new file mode 100644 +index 0000000..6ef4c21 +--- /dev/null ++++ b/tests/test_system_upgrade.py +@@ -0,0 +1,502 @@ ++# test_system_upgrade.py - unit tests for system-upgrade plugin ++ ++import system_upgrade ++ ++from system_upgrade import PLYMOUTH, CliError ++ ++import os ++import tempfile ++import shutil ++import gettext ++ ++from dnf.callback import (PKG_CLEANUP, PKG_DOWNGRADE, PKG_INSTALL, ++ PKG_OBSOLETE, PKG_REINSTALL, PKG_REMOVE, PKG_UPGRADE, ++ PKG_VERIFY, TRANS_POST) ++ ++import unittest ++ ++from tests.support import mock ++patch = mock.patch ++ ++ ++@patch('system_upgrade.call', return_value=0) ++class PlymouthTestCase(unittest.TestCase): ++ def setUp(self): ++ self.ply = system_upgrade.PlymouthOutput() ++ self.msg = "Hello, plymouth." ++ self.msg_args = (PLYMOUTH, "display-message", "--text", self.msg) ++ ++ def test_ping(self, call): ++ self.ply.ping() ++ call.assert_called_once_with((PLYMOUTH, "--ping")) ++ self.assertTrue(self.ply.alive) ++ ++ def test_ping_when_dead(self, call): ++ call.return_value = 1 ++ self.ply.ping() ++ self.assertFalse(self.ply.alive) ++ call.return_value = 0 ++ self.ply.ping() ++ self.assertEqual(call.call_count, 2) ++ self.assertTrue(self.ply.alive) ++ ++ def test_message(self, call): ++ self.ply.message(self.msg) ++ call.assert_called_once_with(self.msg_args) ++ ++ def test_hide_message(self, call): ++ messages = ("first", "middle", "BONUS", "last") ++ for m in messages: ++ self.ply.message(m) ++ ++ def hidem(m): ++ return mock.call((PLYMOUTH, "hide-message", "--text", m)) ++ ++ def dispm(m): ++ return mock.call((PLYMOUTH, "display-message", "--text", m)) ++ m1, m2, m3, m4 = messages ++ call.assert_has_calls([ ++ dispm(m1), ++ hidem(m1), dispm(m2), ++ hidem(m2), dispm(m3), ++ hidem(m3), dispm(m4), ++ ]) ++ ++ def test_message_dupe(self, call): ++ self.ply.message(self.msg) ++ self.ply.message(self.msg) ++ call.assert_called_once_with(self.msg_args) ++ ++ def test_message_dead(self, call): ++ call.return_value = 1 ++ self.ply.message(self.msg) ++ self.assertFalse(self.ply.alive) ++ self.ply.message("not even gonna bother") ++ call.assert_called_once_with(self.msg_args) ++ ++ def test_progress(self, call): ++ self.ply.progress(27) ++ call.assert_called_once_with( ++ (PLYMOUTH, "system-update", "--progress", str(27))) ++ ++ @patch('system_upgrade.check_output', ++ return_value="this plymouth does support --system-upgrade mode") ++ def test_mode(self, check_output, call): ++ self.ply.set_mode() ++ call.assert_called_once_with((PLYMOUTH, "change-mode", "--system-upgrade")) ++ ++ @patch('system_upgrade.check_output', ++ return_value="this plymouth doesn't support system-upgrade mode") ++ def test_mode_no_system_upgrade_plymouth(self, check_output, call): ++ self.ply.set_mode() ++ call.assert_called_once_with((PLYMOUTH, "change-mode", "--updates")) ++ ++ def test_mode_no_plymouth(self, call): ++ call.side_effect = OSError(2, 'No such file or directory') ++ self.ply.set_mode() ++ self.assertFalse(self.ply.alive) ++ ++ ++@patch('system_upgrade.call', return_value=0) ++class PlymouthTransactionProgressTestCase(unittest.TestCase): ++ actions = (PKG_CLEANUP, PKG_DOWNGRADE, PKG_INSTALL, PKG_OBSOLETE, ++ PKG_REINSTALL, PKG_REMOVE, PKG_UPGRADE, PKG_VERIFY, ++ TRANS_POST) ++ ++ # pylint: disable=protected-access ++ def setUp(self): ++ system_upgrade.Plymouth = system_upgrade.PlymouthOutput() ++ self.display = system_upgrade.PlymouthTransactionProgress() ++ self.pkg = "testpackage" ++ ++ def test_display(self, call): ++ for action in self.actions: ++ self.display.progress(self.pkg, action, 0, 100, 1, 1000) ++ msg = self.display._fmt_event(self.pkg, action, 1, 1000) ++ # updating plymouth display means two plymouth calls ++ call.assert_has_calls([ ++ mock.call((PLYMOUTH, "system-update", "--progress", "0")), ++ mock.call((PLYMOUTH, "display-message", "--text", msg)) ++ ], any_order=True) ++ ++ def test_filter_calls(self, call): ++ action = PKG_INSTALL ++ # first display update -> set percentage and text ++ self.display.progress(self.pkg, action, 0, 100, 1, 1000) ++ msg1 = self.display._fmt_event(self.pkg, action, 1, 1000) ++ call.assert_has_calls([ ++ mock.call((PLYMOUTH, "system-update", "--progress", "0")), ++ mock.call((PLYMOUTH, "display-message", "--text", msg1)), ++ ]) ++ ++ # event progress on the same transaction item. ++ # no new calls to plymouth because the percentage and text don't change ++ for te_cur in range(1, 100): ++ self.display.progress(self.pkg, action, te_cur, 100, 1, 1000) ++ call.assert_has_calls([ ++ mock.call((PLYMOUTH, "system-update", "--progress", "0")), ++ mock.call((PLYMOUTH, "display-message", "--text", msg1)), ++ ]) ++ ++ # new item: new message ("[2/1000] ..."), but percentage still 0.. ++ self.display.progress(self.pkg, action, 0, 100, 2, 1000) ++ # old message hidden, new message displayed. no new percentage. ++ msg2 = self.display._fmt_event(self.pkg, action, 2, 1000) ++ call.assert_has_calls([ ++ mock.call((PLYMOUTH, "system-update", "--progress", "0")), ++ mock.call((PLYMOUTH, "display-message", "--text", msg1)), ++ mock.call((PLYMOUTH, "hide-message", "--text", msg1)), ++ mock.call((PLYMOUTH, "display-message", "--text", msg2)), ++ ]) ++ ++ ++TESTLANG = "zh_CN" ++TESTLANG_MO = "po/%s.mo" % TESTLANG ++ ++ ++@unittest.skipUnless(os.path.exists(TESTLANG_MO), "make %s first" % ++ TESTLANG_MO) ++# @unittest.skip("There is no translation yet to system-upgrade") ++class I18NTestCaseBase(unittest.TestCase): ++ @classmethod ++ @unittest.skip("There is no translation yet to system-upgrade") ++ def setUpClass(cls): ++ cls.localedir = tempfile.mkdtemp(prefix='system_upgrade_test_i18n-') ++ cls.msgdir = os.path.join(cls.localedir, TESTLANG + "/LC_MESSAGES") ++ cls.msgfile = "dnf-plugins-extras" + ".mo" ++ os.makedirs(cls.msgdir) ++ shutil.copy2(TESTLANG_MO, os.path.join(cls.msgdir, cls.msgfile)) ++ ++ @classmethod ++ def tearDownClass(cls): ++ shutil.rmtree(cls.localedir) ++ ++ def setUp(self): ++ self.t = gettext.translation("dnf-plugins-extras", self.localedir, ++ languages=[TESTLANG], fallback=True) ++ self.gettext = self.t.gettext ++ ++ ++class I18NTestCase(I18NTestCaseBase): ++ @unittest.skip("There is no translation yet to system-upgrade") ++ def test_selftest(self): ++ self.assertIn(self.msgfile, os.listdir(self.msgdir)) ++ self.assertIn(TESTLANG, os.listdir(self.localedir)) ++ t = gettext.translation("dnf-plugins-extras", self.localedir, ++ languages=[TESTLANG], fallback=False) ++ info = t.info() ++ self.assertIn("language", info) ++ self.assertEqual(info["language"], TESTLANG.replace("_", "-")) ++ ++ @unittest.skip("There is no translation yet to system-upgrade") ++ def test_fallback(self): ++ msg = "THIS STRING DOES NOT EXIST" ++ trans_msg = self.gettext(msg) ++ self.assertEqual(msg, trans_msg) ++ ++ @unittest.skip("There is no translation yet to system-upgrade") ++ def test_translation(self): ++ msg = "the color of the sky" ++ trans_msg = self.gettext(msg) ++ self.assertNotEqual(msg, trans_msg) ++ ++ ++class StateTestCase(unittest.TestCase): ++ @classmethod ++ def setUpClass(cls): ++ cls.statedir = tempfile.mkdtemp(prefix="system_upgrade_test_state-") ++ cls.StateClass = system_upgrade.State ++ ++ def setUp(self): ++ self.state = self.StateClass(os.path.join(self.statedir, "state")) ++ ++ def test_bool_value(self): ++ with self.state: ++ self.state.distro_sync = True ++ del self.state ++ self.state = self.StateClass(os.path.join(self.statedir, "state")) ++ self.assertIs(self.state.distro_sync, True) ++ ++ @classmethod ++ def tearDownClass(cls): ++ shutil.rmtree(cls.statedir) ++ ++ ++class UtilTestCase(unittest.TestCase): ++ def setUp(self): ++ self.tmpdir = tempfile.mkdtemp(prefix='system_upgrade_test_util-') ++ self.dirs = ["dir1", "dir2"] ++ self.files = ["file1", "dir2/file2"] ++ for d in self.dirs: ++ os.makedirs(os.path.join(self.tmpdir, d)) ++ for f in self.files: ++ with open(os.path.join(self.tmpdir, f), 'wt') as fobj: ++ fobj.write("hi there\n") ++ ++ def test_self_test(self): ++ for d in self.dirs: ++ self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, d))) ++ for f in self.files: ++ self.assertTrue(os.path.exists(os.path.join(self.tmpdir, f))) ++ ++ def test_clear_dir(self): ++ self.assertTrue(os.path.isdir(self.tmpdir)) ++ system_upgrade.clear_dir(self.tmpdir) ++ self.assertTrue(os.path.isdir(self.tmpdir)) ++ self.assertEqual(os.listdir(self.tmpdir), []) ++ ++ def tearDown(self): ++ shutil.rmtree(self.tmpdir) ++ ++ ++class CommandTestCaseBase(unittest.TestCase): ++ def setUp(self): ++ self.datadir = tempfile.mkdtemp(prefix="system_upgrade_test_datadir-") ++ self.installroot = tempfile.TemporaryDirectory(prefix="system_upgrade_test_installroot-") ++ system_upgrade.SystemUpgradeCommand.DATADIR = self.datadir ++ self.cli = mock.MagicMock() ++ # the installroot is not strictly necessary for the test, but ++ # releasever detection is accessing host system files without it, and ++ # this fails on permissions in COPR srpm builds (e.g. from rpm-gitoverlay) ++ self.cli.base.conf.installroot = self.installroot.name ++ self.command = system_upgrade.SystemUpgradeCommand(cli=self.cli) ++ self.command.base.conf.cachedir = os.path.join(self.datadir, "cache") ++ self.command.base.conf.destdir = None ++ ++ def tearDown(self): ++ shutil.rmtree(self.datadir) ++ self.installroot.cleanup() ++ ++ ++class CommandTestCase(CommandTestCaseBase): ++ # self-tests for the command test cases ++ def test_state(self): ++ # initial state: no status ++ self.assertIsNone(self.command.state.download_status) ++ self.assertIsNone(self.command.state.upgrade_status) ++ ++ ++class CleanCommandTestCase(CommandTestCaseBase): ++ def test_pre_configure_clean(self): ++ with self.command.state as state: ++ state.destdir = "/grape/wine" ++ self.command.pre_configure_clean() ++ self.assertEqual(self.command.base.conf.destdir, "/grape/wine") ++ ++ def test_configure_clean(self): ++ self.cli.demands.root_user = None ++ self.command.configure_clean() ++ self.assertTrue(self.cli.demands.root_user) ++ ++ def test_run_clean(self): ++ with self.command.state as state: ++ state.download_status = "complete" ++ state.upgrade_status = "ready" ++ # make sure the datadir and state info is set up OK ++ self.assertEqual(self.command.state.download_status, "complete") ++ self.assertEqual(self.command.state.upgrade_status, "ready") ++ # run cleanup ++ self.command.run_clean() ++ # state is cleared ++ self.assertIsNone(self.command.state.download_status) ++ self.assertIsNone(self.command.state.upgrade_status) ++ ++ ++class RebootCheckCommandTestCase(CommandTestCaseBase): ++ def setUp(self): ++ super(RebootCheckCommandTestCase, self).setUp() ++ self.magic_symlink = self.datadir + '/symlink' ++ self.command.magic_symlink = self.magic_symlink ++ ++ def test_pre_configure_reboot(self): ++ with self.command.state as state: ++ state.destdir = "/grape/wine" ++ self.command.pre_configure_reboot() ++ self.assertEqual(self.command.base.conf.destdir, "/grape/wine") ++ ++ def test_configure_reboot(self): ++ self.cli.demands.root_user = None ++ self.command.configure_reboot() ++ self.assertTrue(self.cli.demands.root_user) ++ ++ def check_reboot(self, status='complete', lexists=False, command='system-upgrade', ++ state_command='system-upgrade'): ++ with patch('system_upgrade.os.path.lexists') as lexists_func: ++ self.command.state.state_version = 2 ++ self.command.state.download_status = status ++ self.command.opts = mock.MagicMock() ++ self.command.opts.command = command ++ self.command.state.upgrade_command = state_command ++ lexists_func.return_value = lexists ++ self.command.check_reboot() ++ ++ def test_check_reboot_ok(self): ++ self.check_reboot(status='complete', lexists=False) ++ ++ def test_check_reboot_different_command(self): ++ with self.assertRaises(CliError): ++ self.check_reboot(status='complete', lexists=False, command='system-upgrade', ++ state_command='offline-upgrade') ++ ++ def test_check_reboot_no_download(self): ++ with self.assertRaises(CliError): ++ self.check_reboot(status=None, lexists=False) ++ ++ def test_check_reboot_link_exists(self): ++ with self.assertRaises(CliError): ++ self.check_reboot(status='complete', lexists=True) ++ ++ def test_run_prepare(self): ++ self.command.run_prepare() ++ self.assertEqual(os.readlink(self.magic_symlink), self.datadir) ++ self.assertEqual(self.command.state.upgrade_status, 'ready') ++ ++ @patch('system_upgrade.SystemUpgradeCommand.run_prepare') ++ @patch('system_upgrade.SystemUpgradeCommand.log_status') ++ @patch('system_upgrade.reboot') ++ def test_run_reboot(self, reboot, log_status, run_prepare): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.tid = ["reboot"] ++ self.command.run_reboot() ++ run_prepare.assert_called_once_with() ++ self.assertEqual(system_upgrade.REBOOT_REQUESTED_ID, ++ log_status.call_args[0][1]) ++ self.assertTrue(reboot.called) ++ ++ @patch('system_upgrade.SystemUpgradeCommand.run_prepare') ++ @patch('system_upgrade.SystemUpgradeCommand.log_status') ++ @patch('system_upgrade.reboot') ++ def test_reboot_prepare_only(self, reboot, log_status, run_prepare): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.tid = [None] ++ self.command.run_reboot() ++ run_prepare.assert_called_once_with() ++ self.assertFalse(log_status.called) ++ self.assertFalse(reboot.called) ++ ++ ++class DownloadCommandTestCase(CommandTestCase): ++ def test_pre_configure_download_default(self): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.destdir = None ++ self.command.base.conf.destdir = None ++ self.command.pre_configure_download() ++ self.assertEqual(self.command.base.conf.cachedir, self.datadir) ++ ++ def test_pre_configure_download_destdir(self): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.destdir = self.datadir ++ self.command.pre_configure_download() ++ self.assertEqual(self.command.base.conf.destdir, self.datadir) ++ ++ def test_configure_download(self): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.tid = "download" ++ self.command.configure() ++ self.assertTrue(self.cli.demands.root_user) ++ self.assertTrue(self.cli.demands.resolving) ++ self.assertTrue(self.cli.demands.sack_activation) ++ self.assertTrue(self.cli.demands.available_repos) ++ ++ def test_transaction_download(self): ++ pkg = mock.MagicMock() ++ repo = mock.MagicMock() ++ repo.id = 'test' ++ pkg.name = "kernel" ++ pkg.repo = repo ++ self.cli.base.transaction.install_set = [pkg] ++ self.command.opts = mock.MagicMock() ++ self.command.opts.distro_sync = True ++ self.command.opts.command = "system_upgrade" ++ self.command.opts.repos_ed = [] ++ self.cli.demands.allow_erasing = "allow_erasing" ++ self.command.base.conf.best = True ++ self.command.base.conf.releasever = "35" ++ self.command.base.conf.gpgcheck = True ++ self.command.opts.destdir = self.datadir ++ self.command.base.conf.install_weak_deps = True ++ self.command.base.conf.module_platform_id = '' ++ self.command.pre_configure_download() ++ self.command.transaction_download() ++ with system_upgrade.State(self.command.state.statefile) as state: ++ self.assertEqual(state.state_version, system_upgrade.STATE_VERSION) ++ self.assertEqual(state.download_status, "complete") ++ self.assertEqual(state.distro_sync, True) ++ self.assertEqual(state.destdir, self.datadir) ++ self.assertEqual(state.upgrade_command, "system_upgrade") ++ ++ def test_transaction_download_offline_upgrade(self): ++ pkg = mock.MagicMock() ++ repo = mock.MagicMock() ++ repo.id = 'test' ++ pkg.name = "kernel" ++ pkg.repo = repo ++ self.cli.base.transaction.install_set = [pkg] ++ self.command.opts = mock.MagicMock() ++ self.command.opts.distro_sync = True ++ self.command.opts.command = "offline-upgrade" ++ self.command.opts.repos_ed = [] ++ self.cli.demands.allow_erasing = "allow_erasing" ++ self.command.base.conf.best = True ++ self.command.base.conf.releasever = "35" ++ self.command.base.conf.gpgcheck = True ++ self.command.opts.destdir = self.datadir ++ self.command.base.conf.install_weak_deps = True ++ self.command.base.conf.module_platform_id = '' ++ self.command.pre_configure_download() ++ self.command.transaction_download() ++ with system_upgrade.State(self.command.state.statefile) as state: ++ self.assertEqual(state.download_status, "complete") ++ self.assertEqual(state.distro_sync, False) ++ self.assertEqual(state.destdir, self.datadir) ++ self.assertEqual(state.upgrade_command, "offline-upgrade") ++ ++ ++class UpgradeCommandTestCase(CommandTestCase): ++ def test_pre_configure_upgrade(self): ++ with self.command.state as state: ++ state.destdir = "/grape/wine" ++ state.target_releasever = "35" ++ self.command.pre_configure_upgrade() ++ self.assertEqual(self.command.base.conf.destdir, "/grape/wine") ++ self.assertEqual(self.command.base.conf.releasever, "35") ++ ++ def test_configure_upgrade(self): ++ # write state like download would have ++ with self.command.state as state: ++ state.download_status = "complete" ++ state.distro_sync = True ++ state.allow_erasing = True ++ state.best = True ++ # okay, now configure upgrade ++ self.command.opts = mock.MagicMock() ++ self.command.opts.tid = "upgrade" ++ self.command.configure() ++ # did we reset the depsolving flags? ++ self.assertTrue(self.command.opts.distro_sync) ++ self.assertTrue(self.cli.demands.allow_erasing) ++ self.assertTrue(self.command.base.conf.best) ++ # are we on autopilot? ++ self.assertTrue(self.command.base.conf.assumeyes) ++ self.assertTrue(self.cli.demands.cacheonly) ++ ++ ++class LogCommandTestCase(CommandTestCase): ++ def test_configure_log(self): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.tid = "log" ++ self.command.configure() ++ ++ def test_run_log_list(self): ++ self.command.opts = mock.MagicMock() ++ self.command.opts.number = None ++ with patch('system_upgrade.list_logs') as list_logs: ++ self.command.run_log() ++ list_logs.assert_called_once_with() ++ ++ def test_run_log_prev(self): ++ with patch('system_upgrade.show_log') as show_log: ++ self.command.opts = mock.MagicMock() ++ self.command.opts.number = -2 ++ self.command.run_log() ++ show_log.assert_called_once_with(-2) +-- +2.38.1 + diff --git a/SOURCES/0001-copr-Guess-EPEL-chroots-for-CentOS-Stream-RhBug-2058.patch b/SOURCES/0001-copr-Guess-EPEL-chroots-for-CentOS-Stream-RhBug-2058.patch deleted file mode 100644 index 751d9d2..0000000 --- a/SOURCES/0001-copr-Guess-EPEL-chroots-for-CentOS-Stream-RhBug-2058.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 579ef1bb577807090a114378219a812ec26b724a Mon Sep 17 00:00:00 2001 -From: Carl George -Date: Mon, 27 Jun 2022 23:12:05 -0500 -Subject: [PATCH] copr: Guess EPEL chroots for CentOS Stream (RhBug:2058471) - -Packages built in epel-9 chroots are almost always compatible with -CentOS Stream 9. Not having the copr plugin guess this chroot is -causing user friction. Users are creating epel-9 chroots expecting them -to work for both CentOS Stream 9 and RHEL 9. When they get reports -about `dnf copr enable` not working, they try to add a centos-stream-9 -chroot, only to discover the dependencies they need from EPEL are not -available. - -Instead of making the majority of CentOS Stream users include an -explicit chroot argument, let's reserve that workaround only for the -people that don't want their CentOS Stream systems picking the EPEL -chroot. ---- - plugins/copr.py | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/plugins/copr.py b/plugins/copr.py -index 297210b..16946b7 100644 ---- a/plugins/copr.py -+++ b/plugins/copr.py -@@ -469,8 +469,6 @@ Bugzilla. In case of problems, contact the owner of this repository. - chroot = ("opensuse-tumbleweed-{}".format(distarch)) - else: - chroot = ("opensuse-leap-{0}-{1}".format(dist[1], distarch)) -- elif "CentOS Stream" in dist: -- chroot = ("centos-stream-{0}-{1}".format(dist[1], distarch)) - else: - chroot = ("epel-%s-x86_64" % dist[1].split(".", 1)[0]) - return chroot --- -2.36.1 - diff --git a/SOURCES/0002-Add-a-warning-when-using-system-upgrade-on-RHEL.patch b/SOURCES/0002-Add-a-warning-when-using-system-upgrade-on-RHEL.patch new file mode 100644 index 0000000..8cf7eae --- /dev/null +++ b/SOURCES/0002-Add-a-warning-when-using-system-upgrade-on-RHEL.patch @@ -0,0 +1,78 @@ +From 307641a869134de4ebd496d1a78e5ff128a26293 Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Fri, 30 Sep 2022 11:36:26 +0000 +Subject: [PATCH 2/4] Add a warning when using `system-upgrade` on RHEL + +--- + dnf-plugins-core.spec | 3 +-- + doc/system-upgrade.rst | 6 ++++-- + plugins/system_upgrade.py | 4 ++++ + 3 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec +index 4df6e44..1ee87a1 100644 +--- a/dnf-plugins-core.spec ++++ b/dnf-plugins-core.spec +@@ -148,14 +148,13 @@ Summary: Core Plugins for DNF + %{?python_provide:%python_provide python3-%{name}} + BuildRequires: python3-dbus + BuildRequires: python3-devel ++BuildRequires: python3-distro + BuildRequires: python3-dnf >= %{dnf_lowest_compatible} + BuildRequires: python3-systemd + BuildRequires: pkgconfig(systemd) + BuildRequires: systemd + %{?systemd_ordering} +-%if 0%{?fedora} + Requires: python3-distro +-%endif + Requires: python3-dbus + Requires: python3-dnf >= %{dnf_lowest_compatible} + Requires: python3-hawkey >= %{hawkey_version} +diff --git a/doc/system-upgrade.rst b/doc/system-upgrade.rst +index 3110460..87b7319 100644 +--- a/doc/system-upgrade.rst ++++ b/doc/system-upgrade.rst +@@ -27,13 +27,15 @@ DNF system-upgrades plugin provides three commands: ``system-upgrade``, ``offlin + ``offline-distrosync``. Only ``system-upgrade`` command requires increase of distribution major + version (``--releasever``) compared to installed version. + +-``dnf system-upgrade`` can be used to upgrade a Fedora system to a new major +-release. It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system ++``dnf system-upgrade`` is a recommended way to upgrade a system to a new major release. ++It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system + is fully upgraded (``dnf --refresh upgrade``). + + The ``system-upgrade`` command also performes additional actions necessary for the upgrade of the + system, for example an upgrade of groups and environments. + ++.. WARNING:: The ``system-upgrade`` command is not supported on the RHEL distribution. ++ + -------- + Synopsis + -------- +diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py +index fee6762..0baf978 100644 +--- a/plugins/system_upgrade.py ++++ b/plugins/system_upgrade.py +@@ -20,6 +20,7 @@ + """system_upgrade.py - DNF plugin to handle major-version system upgrades.""" + + from subprocess import call, Popen, check_output, CalledProcessError ++import distro + import json + import os + import os.path +@@ -451,6 +452,9 @@ class SystemUpgradeCommand(dnf.cli.Command): + + def configure_download(self): + if 'system-upgrade' == self.opts.command or 'fedup' == self.opts.command: ++ if distro.id() == 'rhel': ++ logger.warning(_('WARNING: this operation is not supported on the RHEL distribution. ' ++ 'Proceed at your own risk.')) + help_url = get_url_from_os_release() + if help_url: + msg = _('Additional information for System Upgrade: {}') +-- +2.38.1 + diff --git a/SOURCES/0002-Update-translations.patch b/SOURCES/0002-Update-translations.patch deleted file mode 100644 index 84db0c5..0000000 --- a/SOURCES/0002-Update-translations.patch +++ /dev/null @@ -1,2786 +0,0 @@ -From 328db1e97471fe2b4a08a8eb7de5800c3cf057c5 Mon Sep 17 00:00:00 2001 -From: Marek Blaha -Date: Wed, 14 Sep 2022 16:22:01 +0200 -Subject: [PATCH] Update translations - ---- - po/fr.po | 166 ++++++++++++----------- - po/ja.po | 346 ++++++++++++++++++++++++++--------------------- - po/ko.po | 382 ++++++++++++++++++++++++++++------------------------ - po/zh_CN.po | 230 +++++++++++++++---------------- - 4 files changed, 598 insertions(+), 526 deletions(-) - -diff --git a/po/fr.po b/po/fr.po -index 3ed3dba..f2134f2 100644 ---- a/po/fr.po -+++ b/po/fr.po -@@ -6,21 +6,23 @@ - # Ludek Janda , 2018. #zanata, 2021. - # Jean-Baptiste Holcroft , 2019. #zanata, 2020. - # Julien Humbert , 2020, 2021. --# Arnaud T. , 2021. -+# Sundeep Anand , 2021. -+# Transtats , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2022-01-11 01:55+0000\n" --"PO-Revision-Date: 2021-10-08 05:05+0000\n" --"Last-Translator: Julien Humbert \n" --"Language-Team: French \n" -+"POT-Creation-Date: 2022-08-31 13:39+0200\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.8\n" -+"X-Generator: Weblate 4.11.2\n" - - #: plugins/builddep.py:45 - msgid "[PACKAGE|PACKAGE.spec]" -@@ -41,8 +43,7 @@ msgstr "dรฉfinit une macro pour lโ€™interprรฉtation du fichier spec" - - #: plugins/builddep.py:95 - msgid "skip build dependencies not available in repositories" --msgstr "" --"ignorer les dรฉpendances de compilation non disponibles dans les dรฉpรดts" -+msgstr "ignorer les dรฉpendances de compilation non disponibles dans les dรฉpรดts" - - #: plugins/builddep.py:98 - msgid "treat commandline arguments as spec files" -@@ -61,8 +62,7 @@ msgid "Some packages could not be found." - msgstr "Certains paquets nโ€™ont pu รชtre trouvรฉs." - - #. No provides, no files --#. Richdeps can have no matches but it could be correct (solver must decide --#. later) -+#. Richdeps can have no matches but it could be correct (solver must decide later) - #: plugins/builddep.py:173 - #, python-format - msgid "No matching package to install: '%s'" -@@ -82,7 +82,7 @@ msgstr "Toutes les dรฉpendances ne sont pas satisfaites" - msgid "Failed to open: '%s', not a valid spec file: %s" - msgstr "ร‰chec ร  lโ€™ouvertureโ€ฏde ยซ %s ยป, %s nโ€™est pas un fichier spec valide" - --#: plugins/builddep.py:230 plugins/repoclosure.py:118 -+#: plugins/builddep.py:230 plugins/repoclosure.py:124 - #, python-format - msgid "no package matched: %s" - msgstr "aucun paquet ne correspondย ร โ€ฏ: %s" -@@ -297,49 +297,49 @@ msgstr "Lister les dรฉpรดts Copr disponibles par NOM dโ€™utilisateur" - msgid "Specify an instance of Copr to work with" - msgstr "Prรฉcisez une instance Copr avec laquelle travailler" - --#: plugins/copr.py:164 plugins/copr.py:232 plugins/copr.py:259 -+#: plugins/copr.py:164 plugins/copr.py:236 plugins/copr.py:263 - msgid "Error: " - msgstr "Erreurโ€ฏ: " - - #: plugins/copr.py:165 - msgid "" --"specify Copr hub either with `--hub` or using " --"`copr_hub/copr_username/copr_projectname` format" -+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" -+"copr_projectname` format" - msgstr "" --"prรฉcisez un hub Copr soit via `--hub` ou en utilisant le format " --"`hub_copr/utilisateur_copr/projet_copr`" -+"prรฉcisez un hub Copr soit via `--hub` ou en utilisant le format `hub_copr/" -+"utilisateur_copr/projet_copr`" - - #: plugins/copr.py:168 - msgid "multiple hubs specified" - msgstr "de multiples hubs ont รฉtรฉ renseignรฉs" - --#: plugins/copr.py:233 plugins/copr.py:237 -+#: plugins/copr.py:237 plugins/copr.py:241 - msgid "exactly two additional parameters to copr command are required" - msgstr "la commande copr requiert exactement deux paramรจtres additionnels" - --#: plugins/copr.py:242 -+#: plugins/copr.py:246 - msgid "Too many arguments." --msgstr "Trop de paramรจtres." -+msgstr "Trop d'arguments." - --#: plugins/copr.py:245 -+#: plugins/copr.py:249 - msgid "" - "Bad format of optional chroot. The format is distribution-version-" - "architecture." - msgstr "" --"Mauvais format de chroot facultatif. Le format est distribution-version-" -+"Mauvais format du chroot optionnel. Le format est distribution-version-" - "architecture." - --#: plugins/copr.py:260 -+#: plugins/copr.py:264 - msgid "use format `copr_username/copr_projectname` to reference copr project" - msgstr "" - "utilisez le format `copr_username/copr_projectname` pour faire rรฉfรฉrence au " - "projet copr" - --#: plugins/copr.py:262 -+#: plugins/copr.py:266 - msgid "bad copr project format" - msgstr "mauvais format de projet copr" - --#: plugins/copr.py:276 -+#: plugins/copr.py:280 - msgid "" - "\n" - "Enabling a Copr repository. Please note that this repository is not part\n" -@@ -347,7 +347,8 @@ msgid "" - "\n" - "The Fedora Project does not exercise any power over the contents of\n" - "this repository beyond the rules outlined in the Copr FAQ at\n" --",\n" -+",\n" - "and packages are not held to any quality or security level.\n" - "\n" - "Please do not file bug reports about these packages in Fedora\n" -@@ -359,97 +360,97 @@ msgstr "" - "\n" - "Le projet Fedora nโ€™exerce aucun pouvoir sur le contenu de ce dรฉpรดt au delร \n" - "des rรจgles prรฉcisรฉes dans la FAQ Copr \n" --",\n" -+",\n" - "et les paquets ne sont tenus ร  aucun niveau de qualitรฉ ou de sรฉcuritรฉ.\n" - "\n" --"Veuillez ne pas signaler de bogues ร  propos de ces paquets dans le Bugzilla de Fedora.\n" -+"Veuillez ne pas signaler de bogues ร  propos de ces paquets dans le Bugzilla " -+"de Fedora.\n" - "En cas de problรจmes, contactez le propriรฉtaire de ce dรฉpรดt.\n" - --#: plugins/copr.py:293 -+#: plugins/copr.py:297 - msgid "Repository successfully enabled." - msgstr "Activation du dรฉpรดt rรฉussie." - --#: plugins/copr.py:298 -+#: plugins/copr.py:302 - msgid "Repository successfully disabled." - msgstr "Dรฉsactivation du dรฉpรดt rรฉussie." - --#: plugins/copr.py:302 -+#: plugins/copr.py:306 - msgid "Repository successfully removed." - msgstr "Suppression du dรฉpรดt rรฉussie." - --#: plugins/copr.py:306 plugins/copr.py:719 -+#: plugins/copr.py:310 plugins/copr.py:721 - msgid "Unknown subcommand {}." - msgstr "Sous-commande inconnue {}." - --#: plugins/copr.py:363 -+#: plugins/copr.py:367 - msgid "" --"* These coprs have repo file with an old format that contains no information" --" about Copr hub - the default one was assumed. Re-enable the project to fix " -+"* These coprs have repo file with an old format that contains no information " -+"about Copr hub - the default one was assumed. Re-enable the project to fix " - "this." - msgstr "" - "* Ces Copr ont des fichiers de dรฉpรดts avec un ancien format qui ne contient " - "aucune information ร  propos de Copr hub - celui par dรฉfaut a รฉtรฉ utilisรฉ. " - "Rรฉactivez le projet pour rรฉsoudre le problรจme." - --#: plugins/copr.py:376 -+#: plugins/copr.py:380 - msgid "Can't parse repositories for username '{}'." - msgstr "" - "Ne peut analyser les dรฉpรดts pour y chercher le nom dโ€™utilisateur ยซ {} ยป." - --#: plugins/copr.py:379 -+#: plugins/copr.py:383 - msgid "List of {} coprs" - msgstr "Liste de {} coprs" - --#: plugins/copr.py:384 -+#: plugins/copr.py:388 - msgid "No description given" - msgstr "Aucune description fournie" - --#: plugins/copr.py:396 -+#: plugins/copr.py:400 - msgid "Can't parse search for '{}'." - msgstr "Impossible dโ€™analyser la recherche pour ยซ {} ยป." - --#: plugins/copr.py:399 -+#: plugins/copr.py:403 - msgid "Matched: {}" - msgstr "Correspondanceโ€ฏ: {}" - --#: plugins/copr.py:404 -+#: plugins/copr.py:408 - msgid "No description given." - msgstr "Pas de description fournie." - --#: plugins/copr.py:426 -+#: plugins/copr.py:430 - msgid "Safe and good answer. Exiting." - msgstr "Rรฉponse sรปre et exacte. Fin." - --#: plugins/copr.py:433 -+#: plugins/copr.py:437 - msgid "This command has to be run under the root user." - msgstr "Cette commande requiert les privilรจges du super utilisateur." - --#: plugins/copr.py:485 -+#: plugins/copr.py:487 - #, python-brace-format - msgid "Request to {0} failed: {1} - {2}" - msgstr "" - --#: plugins/copr.py:487 -+#: plugins/copr.py:489 - msgid "It wasn't possible to enable this project.\n" - msgstr "" - --#: plugins/copr.py:492 -+#: plugins/copr.py:494 - #, fuzzy, python-brace-format - #| msgid "Such repository does not exist." - msgid "Repository '{0}' does not exist in project '{1}'." - msgstr "Ce dรฉpรดt nโ€™existe pas." - --#: plugins/copr.py:495 -+#: plugins/copr.py:497 - #, fuzzy - #| msgid "List enabled Copr repositories" - msgid "" - "\n" - "Available repositories: " --msgstr "" --"\n" --"Lister les dรฉpรดts Copr activรฉs " -+msgstr "Lister les dรฉpรดts Copr activรฉs" - --#: plugins/copr.py:497 -+#: plugins/copr.py:499 - #, python-brace-format - msgid "" - "\n" -@@ -459,19 +460,19 @@ msgid "" - "But note that the installed repo file will likely need a manual modification." - msgstr "" - --#: plugins/copr.py:503 -+#: plugins/copr.py:505 - #, fuzzy, python-brace-format - #| msgid "Such repository does not exist." - msgid "Project {0} does not exist." - msgstr "Ce dรฉpรดt nโ€™existe pas." - --#: plugins/copr.py:506 -+#: plugins/copr.py:508 - #, fuzzy, python-brace-format - #| msgid "Failed to remove copr repo {0}/{1}/{2}" - msgid "Failed to connect to {0}: {1}" - msgstr "ร‰chec de la suppression du dรฉpรดt Copr {0}/{1}/{2}" - --#: plugins/copr.py:553 -+#: plugins/copr.py:555 - #, python-brace-format - msgid "" - "Maintainer of the enabled Copr repository decided to make\n" -@@ -500,44 +501,44 @@ msgstr "" - "\n" - "Ces dรฉpรดts ont รฉtรฉ activรฉs automatiquement." - --#: plugins/copr.py:574 -+#: plugins/copr.py:576 - msgid "Do you want to keep them enabled?" - msgstr "Souhaitez-vous les maintenir activรฉsโ€ฏ?" - --#: plugins/copr.py:607 -+#: plugins/copr.py:609 - #, python-brace-format - msgid "Failed to remove copr repo {0}/{1}/{2}" - msgstr "ร‰chec de la suppression du dรฉpรดt Copr {0}/{1}/{2}" - --#: plugins/copr.py:618 -+#: plugins/copr.py:620 - msgid "Failed to disable copr repo {}/{}" - msgstr "ร‰chec de la dรฉsactivation du dรฉpรดt copr {}/{}" - --#: plugins/copr.py:636 plugins/copr.py:673 -+#: plugins/copr.py:638 plugins/copr.py:675 - msgid "Unknown response from server." - msgstr "Rรฉponse inconnue du serveur." - --#: plugins/copr.py:658 -+#: plugins/copr.py:660 - msgid "Interact with Playground repository." - msgstr "Interagit avec le dรฉpรดt Playground." - --#: plugins/copr.py:664 -+#: plugins/copr.py:666 - msgid "Enabling a Playground repository." - msgstr "Activation dโ€™un dรฉpรดt Playground." - --#: plugins/copr.py:665 -+#: plugins/copr.py:667 - msgid "Do you want to continue?" - msgstr "Souhaitez-vous continuerโ€ฏ?" - --#: plugins/copr.py:709 -+#: plugins/copr.py:711 - msgid "Playground repositories successfully enabled." - msgstr "Activation des dรฉpรดts Playground rรฉussie." - --#: plugins/copr.py:712 -+#: plugins/copr.py:714 - msgid "Playground repositories successfully disabled." - msgstr "Dรฉsactivation des dรฉpรดts Playground rรฉussie." - --#: plugins/copr.py:716 -+#: plugins/copr.py:718 - msgid "Playground repositories successfully updated." - msgstr "Mise ร  jour des dรฉpรดts Playground rรฉussie." - -@@ -623,8 +624,7 @@ msgstr "" - msgid "" - "Could not find debugsource package for the following available packages: %s" - msgstr "" --"Impossible de trouver le paquet debugsource pour ces paquets disponibles : " --"%s" -+"Impossible de trouver le paquet debugsource pour ces paquets disponibles : %s" - - #: plugins/debuginfo-install.py:190 - #, python-format -@@ -827,8 +827,8 @@ msgstr "Les paquets ne peuvent pas รชtre retirรฉs d'un groupe qui n'existe pas" - - #: plugins/groups_manager.py:307 - msgid "" --"Group id '{}' generated from '{}' is duplicit. Please specify group id using" --" --id." -+"Group id '{}' generated from '{}' is duplicit. Please specify group id using " -+"--id." - msgstr "" - "L'id du groupe ยซ {} ยป qui a รฉtรฉ gรฉnรฉrรฉ pour ยซ {} ยป est en double. Veuillez " - "le spรฉcifier en utilisant --id." -@@ -1012,25 +1012,27 @@ msgstr "post-transaction-actions : mauvaise commande ยซ %s ยป : %s" - msgid "Display a list of unresolved dependencies for repositories" - msgstr "Affiche une liste de dรฉpendances non rรฉsolues pour les dรฉpรดts" - --#: plugins/repoclosure.py:66 --msgid "Repoclosure ended with unresolved dependencies." -+#: plugins/repoclosure.py:69 -+#, fuzzy -+#| msgid "Repoclosure ended with unresolved dependencies." -+msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." - msgstr "Repoclosure a terminรฉ avec des dรฉpendances non-rรฉsolues." - --#: plugins/repoclosure.py:153 -+#: plugins/repoclosure.py:159 - msgid "check packages of the given archs, can be specified multiple times" - msgstr "" - "vรฉrifie les paquets pour les architectures spรฉcifiรฉes, peut รชtre utilisรฉ " - "plusieurs fois" - --#: plugins/repoclosure.py:156 -+#: plugins/repoclosure.py:162 - msgid "Specify repositories to check" - msgstr "Spรฉcifie les dรฉpรดts ร  vรฉrifier" - --#: plugins/repoclosure.py:158 -+#: plugins/repoclosure.py:164 - msgid "Check only the newest packages in the repos" - msgstr "Vรฉrifier uniquement les paquets les plus rรฉcents dans les dรฉpรดts" - --#: plugins/repoclosure.py:161 -+#: plugins/repoclosure.py:167 - msgid "Check closure for this package only" - msgstr "Vรฉrifie la clรดture pour ce paquet seulement" - -@@ -1060,11 +1062,10 @@ msgstr "Affichez des donnรฉes supplรฉmentaires sur la taille des changements." - - #: plugins/repodiff.py:69 - msgid "" --"Compare packages also by arch. By default packages are compared just by " --"name." -+"Compare packages also by arch. By default packages are compared just by name." - msgstr "" --"Compare รฉgalement les paquets par architecture. Par dรฉfaut, les paquets sont" --" uniquement comparรฉs par nom." -+"Compare รฉgalement les paquets par architecture. Par dรฉfaut, les paquets sont " -+"uniquement comparรฉs par nom." - - #: plugins/repodiff.py:72 - msgid "Output a simple one line message for modified packages." -@@ -1247,11 +1248,11 @@ msgstr "รฉgalement tรฉlรฉcharger et dรฉcompresser comps.xml" - - #: plugins/reposync.py:75 - msgid "" --"where to store downloaded repository metadata. Defaults to the value of " --"--download-path." -+"where to store downloaded repository metadata. Defaults to the value of --" -+"download-path." - msgstr "" --"lร  oรน stocker les mรฉtadonnรฉes du dรฉpรดt. Prend par dรฉfaut la valeur de " --"--download-path." -+"lร  oรน stocker les mรฉtadonnรฉes du dรฉpรดt. Prend par dรฉfaut la valeur de --" -+"download-path." - - #: plugins/reposync.py:78 - msgid "download only newest packages per-repo" -@@ -1374,7 +1375,8 @@ msgstr "" - "appliquรฉesโ€ฏ: {}" - - #: plugins/versionlock.py:44 --msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" -+msgid "" -+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" - msgstr "" - "Plugin versionlockโ€ฏ: nombre de rรจgles dโ€™exclusion du fichier \"{}\" " - "appliquรฉesโ€ฏ: {}" -diff --git a/po/ja.po b/po/ja.po -index e5ac84c..87ce45a 100644 ---- a/po/ja.po -+++ b/po/ja.po -@@ -1,20 +1,23 @@ - # Ooyama Yosiyuki , 2015. #zanata - # Ludek Janda , 2018. #zanata, 2021. - # Casey Jones , 2020. -+# Sundeep Anand , 2021. -+# Transtats , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2022-01-11 01:55+0000\n" --"PO-Revision-Date: 2021-09-11 10:04+0000\n" --"Last-Translator: Ludek Janda \n" --"Language-Team: Japanese \n" -+"POT-Creation-Date: 2022-08-31 13:39+0200\n" -+"PO-Revision-Date: 2022-09-07 14:19+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.8\n" -+"X-Generator: Weblate 4.14\n" - - #: plugins/builddep.py:45 - msgid "[PACKAGE|PACKAGE.spec]" -@@ -54,8 +57,7 @@ msgid "Some packages could not be found." - msgstr "ไธ€้ƒจใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸใ€‚" - - #. No provides, no files --#. Richdeps can have no matches but it could be correct (solver must decide --#. later) -+#. Richdeps can have no matches but it could be correct (solver must decide later) - #: plugins/builddep.py:173 - #, python-format - msgid "No matching package to install: '%s'" -@@ -64,7 +66,8 @@ msgstr "ใ‚คใƒณใ‚นใƒˆใƒผใƒซ็”จใฎไธ€่‡ดใ™ใ‚‹ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒใ‚ใ‚Šใพใ›ใ‚“: ' - #: plugins/builddep.py:191 - #, python-format - msgid "Failed to open: '%s', not a valid source rpm file." --msgstr "้–‹ใใ“ใจใซๅคฑๆ•—ใ—ใพใ—ใŸ: '%s'ใ€ๆœ‰ๅŠนใชใ‚ฝใƒผใ‚น rpm ใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" -+msgstr "" -+"้–‹ใใ“ใจใซๅคฑๆ•—ใ—ใพใ—ใŸ: '%s'ใ€ๆœ‰ๅŠนใชใ‚ฝใƒผใ‚น rpm ใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" - - #: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237 - msgid "Not all dependencies satisfied" -@@ -75,7 +78,7 @@ msgstr "ใ™ในใฆใฎไพๅญ˜้–ขไฟ‚ใŒๆบ€ใŸใ•ใ‚Œใฆใ„ใ‚‹ใ‚ใ‘ใงใฏใชใ„" - msgid "Failed to open: '%s', not a valid spec file: %s" - msgstr "้–‹ใใ“ใจใซๅคฑๆ•—ใ—ใพใ—ใŸ: '%s'ใ€ๆœ‰ๅŠนใชใ‚นใƒšใƒƒใ‚ฏใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“: %s" - --#: plugins/builddep.py:230 plugins/repoclosure.py:118 -+#: plugins/builddep.py:230 plugins/repoclosure.py:124 - #, python-format - msgid "no package matched: %s" - msgstr "ไธ€่‡ดใ™ใ‚‹ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏใ‚ใ‚Šใพใ›ใ‚“: %s" -@@ -93,7 +96,9 @@ msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ changelog ใƒ‡ใƒผใ‚ฟใ‚’่กจ็คบใ—ใพใ™" - msgid "" - "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " - "is recommended." --msgstr "DATE ไปฅ้™ใฎ changelog ใ‚จใƒณใƒˆใƒชใƒผใ‚’่กจ็คบใ—ใพใ™ใ€‚ไธๆ˜Ž็žญใ•ใ‚’้ฟใ‘ใ‚‹ใŸใ‚ใ€YYYY-MM-DD ใฎใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใŒๆŽจๅฅจใ•ใ‚Œใพใ™ใ€‚" -+msgstr "" -+"DATE ไปฅ้™ใฎ changelog ใ‚จใƒณใƒˆใƒชใƒผใ‚’่กจ็คบใ—ใพใ™ใ€‚ไธๆ˜Ž็žญใ•ใ‚’้ฟใ‘ใ‚‹ใŸใ‚ใ€YYYY-MM-" -+"DD ใฎใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใŒๆŽจๅฅจใ•ใ‚Œใพใ™ใ€‚" - - #: plugins/changelog.py:55 - msgid "show given number of changelog entries per package" -@@ -104,7 +109,8 @@ msgid "" - "show only new changelog entries for packages, that provide an upgrade for " - "some of already installed packages." - msgstr "" --"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ‘ใ‘ใฎๆ–ฐใ—ใ„ changelog ใ‚จใƒณใƒˆใƒชใƒผใฎใฟใ‚’่กจ็คบใ—ใพใ™ใ€‚ใ“ใ‚Œใฏใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎไธ€้ƒจใซใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’ๆไพ›ใ—ใพใ™ใ€‚" -+"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ‘ใ‘ใฎๆ–ฐใ—ใ„ changelog ใ‚จใƒณใƒˆใƒชใƒผใฎใฟใ‚’่กจ็คบใ—ใพใ™ใ€‚ใ“ใ‚Œใฏใ€ใ‚คใƒณใ‚น" -+"ใƒˆใƒผใƒซๆธˆใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎไธ€้ƒจใซใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’ๆไพ›ใ—ใพใ™ใ€‚" - - #: plugins/changelog.py:60 - msgid "PACKAGE" -@@ -126,7 +132,9 @@ msgstr[0] "ๆœ€ๆ–ฐใฎ changelog ใฎใฟใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" - - #: plugins/changelog.py:116 - msgid "Listing only new changelogs since installed version of the package" --msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณไปฅ้™ใฎๆ–ฐใ—ใ„ changelogs ใฎใฟใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" -+msgstr "" -+"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณไปฅ้™ใฎๆ–ฐใ—ใ„ changelogs ใฎใฟใ‚’ไธ€่ฆง่กจ" -+"็คบใ—ใพใ™" - - #: plugins/changelog.py:118 - msgid "Listing all changelogs" -@@ -178,8 +186,8 @@ msgid "" - "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " - "manager. Use --set-enabled/--set-disabled instead." - msgstr "" --"่ญฆๅ‘Š: --enablerepo/--disablerepo ใฎๅผ•ๆ•ฐใฏ config manager ใงใฏๆ„ๅ‘ณใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ไปฃใ‚ใ‚Šใซ -set-" --"enabled/--set-disabled ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚" -+"่ญฆๅ‘Š: --enablerepo/--disablerepo ใฎๅผ•ๆ•ฐใฏ config manager ใงใฏๆ„ๅ‘ณใŒใ‚ใ‚Šใพใ›" -+"ใ‚“ใ€‚ไปฃใ‚ใ‚Šใซ -set-enabled/--set-disabled ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚" - - #: plugins/config_manager.py:132 - #, python-format -@@ -261,7 +269,8 @@ msgstr "" - - #: plugins/copr.py:120 - msgid "List all installed Copr repositories (default)" --msgstr "ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใ™ในใฆใฎ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™ (ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ)" -+msgstr "" -+"ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใ™ในใฆใฎ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™ (ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ)" - - #: plugins/copr.py:122 - msgid "List enabled Copr repositories" -@@ -279,45 +288,49 @@ msgstr "ๅˆฉ็”จๅฏ่ƒฝใช Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ใƒฆใƒผใ‚ถใƒผ NAME ใ”ใจใซไธ€ - msgid "Specify an instance of Copr to work with" - msgstr "ไฝœๆฅญใ™ใ‚‹ Copr ใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‚’ๆŒ‡ๅฎšใ—ใพใ™" - --#: plugins/copr.py:164 plugins/copr.py:232 plugins/copr.py:259 -+#: plugins/copr.py:164 plugins/copr.py:236 plugins/copr.py:263 - msgid "Error: " - msgstr "ใ‚จใƒฉใƒผ: " - - #: plugins/copr.py:165 - msgid "" --"specify Copr hub either with `--hub` or using " --"`copr_hub/copr_username/copr_projectname` format" -+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" -+"copr_projectname` format" - msgstr "" --"`--hub` ใพใŸใฏ `copr_hub/copr_username/copr_projectname` ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใ‚’ไฝฟใฃใฆใ€Copr " --"ใƒใƒ–ใ‚’ๆŒ‡ๅฎšใ—ใพใ™" -+"`--hub` ใพใŸใฏ `copr_hub/copr_username/copr_projectname` ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใ‚’ไฝฟใฃ" -+"ใฆใ€Copr ใƒใƒ–ใ‚’ๆŒ‡ๅฎšใ—ใพใ™" - - #: plugins/copr.py:168 - msgid "multiple hubs specified" - msgstr "่ค‡ๆ•ฐใฎใƒใƒ–ใŒๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใพใ™" - --#: plugins/copr.py:233 plugins/copr.py:237 -+#: plugins/copr.py:237 plugins/copr.py:241 - msgid "exactly two additional parameters to copr command are required" - msgstr "copr ใ‚ณใƒžใƒณใƒ‰ใซๅŽณๅฏ†ใซ 2 ใคใฎ่ฟฝๅŠ ใƒ‘ใƒฉใƒกใƒผใ‚ฟใƒผใŒๅฟ…่ฆใงใ™" - --#: plugins/copr.py:242 -+#: plugins/copr.py:246 - msgid "Too many arguments." - msgstr "ๅผ•ๆ•ฐใŒๅคšใ™ใŽใพใ™ใ€‚" - --#: plugins/copr.py:245 -+#: plugins/copr.py:249 - msgid "" - "Bad format of optional chroot. The format is distribution-version-" - "architecture." --msgstr "ใ‚ชใƒ—ใ‚ทใƒงใƒณใฎ chroot ใฎๅฝขๅผใŒ็„กๅŠนใงใ™ใ€‚ๆญฃใ—ใ„ๅฝขๅผใฏ distribution-version-architecture ใงใ™ใ€‚" -+msgstr "" -+"ใ‚ชใƒ—ใ‚ทใƒงใƒณใฎ chroot ใฎๅฝขๅผใŒ็„กๅŠนใงใ™ใ€‚ๆญฃใ—ใ„ๅฝขๅผใฏ distribution-version-" -+"architecture ใงใ™ใ€‚" - --#: plugins/copr.py:260 -+#: plugins/copr.py:264 - msgid "use format `copr_username/copr_projectname` to reference copr project" --msgstr "copr ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ‚็…งใ™ใ‚‹ใซใฏ `copr_username/copr_projectname` ๅฝขๅผใ‚’ไฝฟ็”จใ—ใพใ™" -+msgstr "" -+"copr ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ‚็…งใ™ใ‚‹ใซใฏ `copr_username/copr_projectname` ๅฝขๅผใ‚’ไฝฟ็”จใ—" -+"ใพใ™" - --#: plugins/copr.py:262 -+#: plugins/copr.py:266 - msgid "bad copr project format" - msgstr "ไธๆญฃใช copr ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๅฝขๅผ" - --#: plugins/copr.py:276 -+#: plugins/copr.py:280 - msgid "" - "\n" - "Enabling a Copr repository. Please note that this repository is not part\n" -@@ -325,7 +338,8 @@ msgid "" - "\n" - "The Fedora Project does not exercise any power over the contents of\n" - "this repository beyond the rules outlined in the Copr FAQ at\n" --",\n" -+",\n" - "and packages are not held to any quality or security level.\n" - "\n" - "Please do not file bug reports about these packages in Fedora\n" -@@ -333,9 +347,11 @@ msgid "" - msgstr "" - "\n" - "Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนๅŒ–ใ—ใฆใ„ใพใ™ใ€‚ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฏ\n" --"ไธป่ฆใƒ‡ใ‚ฃใ‚นใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณใฎไธ€้ƒจใงใฏใชใ„ใŸใ‚ใ€ๅ“่ณชใŒไธ€ๅฎšใ—ใฆใ„ใชใ„็‚นใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚\n" -+"ไธป่ฆใƒ‡ใ‚ฃใ‚นใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณใฎไธ€้ƒจใงใฏใชใ„ใŸใ‚ใ€ๅ“่ณชใŒไธ€ๅฎšใ—ใฆใ„ใชใ„็‚นใซๆณจๆ„ใ—" -+"ใฆใใ ใ•ใ„ใ€‚\n" - "\n" --"Fedora Project ใฏใ€ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใซ้–ขใ—ใฆใ€ ใฎ \n" -+"Fedora Project ใฏใ€ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใซ้–ขใ—ใฆใ€ ใฎ \n" - "Copr FAQ ใง็คบใ•ใ‚ŒใŸใƒซใƒผใƒซใ‚’่ถ…ใˆใฆๆจฉๅˆฉใ‚’่กŒไฝฟใ™ใ‚‹ใ“ใจใฏ\n" - "ใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใพใŸใ€ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏใ€ไปปๆ„ใฎๅ“่ณชใพใŸใฏใ‚ปใ‚ญใƒฅใƒช\n" - "ใƒ†ใ‚ฃใƒผใƒฌใƒ™ใƒซใ‚’ๅ›บๅฎˆใ—ใฆใ„ใพใ›ใ‚“ใ€‚\n" -@@ -343,89 +359,87 @@ msgstr "" - "Fedora Bugzilla ใงใ“ใ‚Œใ‚‰ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใซ้–ขใ™ใ‚‹ใƒใ‚ฐๅ ฑๅ‘Šใ‚’ใ—ใชใ„ใงใใ ใ•ใ„ใ€‚\n" - "ๅ•้กŒใŒ็™บ็”Ÿใ—ใŸๅ ดๅˆใฏใ€ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฎใ‚ชใƒผใƒŠใƒผใซ้€ฃ็ตกใ—ใฆใใ ใ•ใ„ใ€‚\n" - --#: plugins/copr.py:293 -+#: plugins/copr.py:297 - msgid "Repository successfully enabled." - msgstr "ใƒชใƒใ‚ธใƒˆใƒชใŒๆญฃๅธธใซๆœ‰ๅŠนๅŒ–ใ•ใ‚Œใพใ—ใŸใ€‚" - --#: plugins/copr.py:298 -+#: plugins/copr.py:302 - msgid "Repository successfully disabled." - msgstr "ใƒชใƒใ‚ธใƒˆใƒชใŒๆญฃๅธธใซ็„กๅŠนๅŒ–ใ•ใ‚Œใพใ—ใŸใ€‚" - --#: plugins/copr.py:302 -+#: plugins/copr.py:306 - msgid "Repository successfully removed." - msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผใŒๆญฃๅธธใซๅ‰Š้™คใ•ใ‚Œใพใ—ใŸใ€‚" - --#: plugins/copr.py:306 plugins/copr.py:719 -+#: plugins/copr.py:310 plugins/copr.py:721 - msgid "Unknown subcommand {}." - msgstr "ไธๆ˜Žใชใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ {}ใ€‚" - --#: plugins/copr.py:363 -+#: plugins/copr.py:367 - msgid "" --"* These coprs have repo file with an old format that contains no information" --" about Copr hub - the default one was assumed. Re-enable the project to fix " -+"* These coprs have repo file with an old format that contains no information " -+"about Copr hub - the default one was assumed. Re-enable the project to fix " - "this." - msgstr "" - "* ใ“ใ‚Œใ‚‰ใฎ coprs ใซใฏใ€Copr ใƒใƒ–ใซ้–ขใ™ใ‚‹ๆƒ…ๅ ฑใŒใชใ„ๅคใ„ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎ repo " --"ใƒ•ใ‚กใ‚คใƒซใŒใ‚ใ‚Šใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใฏไปฎๅฎšใงใ™ใ€‚ใ“ใ‚Œใ‚’ไฟฎๆญฃใ™ใ‚‹ใซใฏใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ†ๅบฆๆœ‰ๅŠนๅŒ–ใ—ใฆใใ ใ•ใ„ใ€‚" -+"ใƒ•ใ‚กใ‚คใƒซใŒใ‚ใ‚Šใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใฏไปฎๅฎšใงใ™ใ€‚ใ“ใ‚Œใ‚’ไฟฎๆญฃใ™ใ‚‹ใซใฏใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’" -+"ๅ†ๅบฆๆœ‰ๅŠนๅŒ–ใ—ใฆใใ ใ•ใ„ใ€‚" - --#: plugins/copr.py:376 -+#: plugins/copr.py:380 - msgid "Can't parse repositories for username '{}'." - msgstr "ใƒฆใƒผใ‚ถใƒผๅ '{}' ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’่งฃๆžใงใใพใ›ใ‚“ใ€‚" - --#: plugins/copr.py:379 -+#: plugins/copr.py:383 - msgid "List of {} coprs" - msgstr "{} coprs ใฎไธ€่ฆง" - --#: plugins/copr.py:384 -+#: plugins/copr.py:388 - msgid "No description given" - msgstr "่ชฌๆ˜ŽใŒใ‚ใ‚Šใพใ›ใ‚“" - --#: plugins/copr.py:396 -+#: plugins/copr.py:400 - msgid "Can't parse search for '{}'." - msgstr "'{}' ใฎๆคœ็ดขใ‚’่งฃๆžใงใใพใ›ใ‚“ใ€‚" - --#: plugins/copr.py:399 -+#: plugins/copr.py:403 - msgid "Matched: {}" - msgstr "ไธ€่‡ด: {}" - --#: plugins/copr.py:404 -+#: plugins/copr.py:408 - msgid "No description given." - msgstr "่ชฌๆ˜ŽใŒไธŽใˆใ‚‰ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚" - --#: plugins/copr.py:426 -+#: plugins/copr.py:430 - msgid "Safe and good answer. Exiting." - msgstr "ๅฎ‰ๅ…จใงๅ„ชใ‚ŒใŸๅ›ž็ญ”ใ€‚็ต‚ไบ†ไธญใ€‚" - --#: plugins/copr.py:433 -+#: plugins/copr.py:437 - msgid "This command has to be run under the root user." - msgstr "ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใฏ root ใƒฆใƒผใ‚ถใƒผใฎไธ‹ใงๅฎŸ่กŒใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚" - --#: plugins/copr.py:485 -+#: plugins/copr.py:487 - #, python-brace-format - msgid "Request to {0} failed: {1} - {2}" --msgstr "" -+msgstr "{0} ใธใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใซๅคฑๆ•—ใ—ใพใ—ใŸ: {1} - {2}" - --#: plugins/copr.py:487 -+#: plugins/copr.py:489 - msgid "It wasn't possible to enable this project.\n" --msgstr "" -+msgstr "ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๆœ‰ๅŠนใซใ™ใ‚‹ใ“ใจใŒใงใใพใ›ใ‚“ใงใ—ใŸใ€‚\n" - --#: plugins/copr.py:492 --#, fuzzy, python-brace-format --#| msgid "Such repository does not exist." -+#: plugins/copr.py:494 -+#, python-brace-format - msgid "Repository '{0}' does not exist in project '{1}'." --msgstr "ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" -+msgstr "'{0}' ใƒชใƒใ‚ธใƒˆใƒชใƒผใฏใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ '{1}' ใซๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" - --#: plugins/copr.py:495 --#, fuzzy --#| msgid "List enabled Copr repositories" -+#: plugins/copr.py:497 - msgid "" - "\n" - "Available repositories: " - msgstr "" - "\n" --"ๆœ‰ๅŠนๅŒ–ใ•ใ‚ŒใŸ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™ " -+"ๅˆฉ็”จๅฏ่ƒฝใชใƒชใƒใ‚ธใƒˆใƒชใƒผ: " - --#: plugins/copr.py:497 -+#: plugins/copr.py:499 - #, python-brace-format - msgid "" - "\n" -@@ -434,20 +448,24 @@ msgid "" - " 'dnf copr enable {0} '\n" - "But note that the installed repo file will likely need a manual modification." - msgstr "" -+"\n" -+"\n" -+"ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆไปฅๅค–ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ™ใ‚‹ๅ ดๅˆใฏใ€ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จใ—ใพใ™:\n" -+" 'dnf copr enable {0} '\n" -+"ใŸใ ใ—ใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚Œใฆใ„ใ‚‹ใƒชใƒใ‚ธใƒˆใƒชใƒผใƒ•ใ‚กใ‚คใƒซใ‚’ๆ‰‹ๅ‹•ใงๅค‰ๆ›ดใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹" -+"ๅฏ่ƒฝๆ€งใŒใ‚ใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚" - --#: plugins/copr.py:503 --#, fuzzy, python-brace-format --#| msgid "Such repository does not exist." -+#: plugins/copr.py:505 -+#, python-brace-format - msgid "Project {0} does not exist." --msgstr "ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" -+msgstr "ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ {0} ใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" - --#: plugins/copr.py:506 --#, fuzzy, python-brace-format --#| msgid "Failed to remove copr repo {0}/{1}/{2}" -+#: plugins/copr.py:508 -+#, python-brace-format - msgid "Failed to connect to {0}: {1}" --msgstr "copr repo {0}/{1}/{2} ใฎๅ‰Š้™คใซๅคฑๆ•—ใ—ใพใ—ใŸ" -+msgstr "{0} ใธใฎๆŽฅ็ถšใซๅคฑๆ•—ใ—ใพใ—ใŸ: {1}" - --#: plugins/copr.py:553 -+#: plugins/copr.py:555 - #, python-brace-format - msgid "" - "Maintainer of the enabled Copr repository decided to make\n" -@@ -463,59 +481,58 @@ msgid "" - "\n" - "These repositories have been enabled automatically." - msgstr "" --"ๆœ‰ๅŠนๅŒ–ใ—ใŸ Copr ใƒชใƒใ‚ธใƒˆใƒชใฎ็ฎก็†่€…ใฏ\n" --"ไป–ใฎใƒชใƒใ‚ธใƒˆใƒชใซไพๅญ˜ใ™ใ‚‹ใ‚ˆใ†ใซๆฑบใ‚ใพใ—ใŸใ€‚\n" --"ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใฏไธปใช Corp ใƒฌใ‚ธใ‚นใƒˆใƒชใƒผ\n" --"ใƒฉใƒณใ‚ฟใ‚คใƒ ไพๅญ˜้–ขไฟ‚ใ‚’ๆไพ›) ใ‹ใ‚‰ RPM ใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’\n" --"ๆˆๅŠŸใ•ใ›ใ‚‹ใŸใ‚ใซ้€šๅธธๅฟ…่ฆใงใ™ใ€‚\n" -+"ๆœ‰ๅŠนๅŒ–ใ—ใŸ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎ็ฎก็†่€…ใฏ\n" -+"ไป–ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใซไพๅญ˜ใ™ใ‚‹ใ‚ˆใ†ใซๆฑบใ‚ใพใ—ใŸใ€‚\n" -+"ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏ้€šๅธธใ€ไธปใช Corp ใƒฌใ‚ธใ‚นใƒˆใƒชใƒผ(ใƒฉใƒณใ‚ฟใ‚คใƒ ไพๅญ˜้–ขไฟ‚ใ‚’ๆ" -+"ไพ›) ใ‹ใ‚‰ RPM ใ‚’\n" -+"ๆญฃๅธธใซใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆใงใ™ใ€‚\n" - "\n" --"ไธŠ่จ˜ใฎๅ“่ณชใจใƒใ‚ฐๅ ฑๅ‘Šใซใคใ„ใฆใฎๆณจๆ„็‚นใŒ\n" --"ใ“ใ“ใงใ‚‚้ฉ็”จใ•ใ‚Œใพใ™ใŒใ€Fedora Project ใฏๅ†…ๅฎนใ‚’\n" --"็ฎก็†ใ—ใฆใ„ใชใ„ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚ไปฅไธ‹ใฎใƒชใ‚นใƒˆใ‚’็ขบ่ช\n" --"ใ—ใฆใใ ใ•ใ„ใ€‚\n" -+"ไธŠ่จ˜ใฎๅ“่ณชใจใƒใ‚ฐๅ ฑๅ‘Šใซใคใ„ใฆใฎๆณจๆ„็‚นใŒใ“ใ“ใงใ‚‚้ฉ็”จ\n" -+"ใ•ใ‚Œใพใ™ใŒใ€Fedora Project ใฏๅ†…ๅฎนใ‚’็ฎก็†ใ—ใฆใ„ใชใ„ใ“ใจใซ\n" -+"ๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚ไปฅไธ‹ใฎใƒชใ‚นใƒˆใ‚’็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚\n" - "\n" - "{0}\n" - "\n" --"ใ“ใ‚Œใ‚‰ใฎใƒชใƒใ‚ธใƒˆใƒชใฏ่‡ชๅ‹•็š„ใซๆœ‰ๅŠนใซใชใฃใฆใ„ใพใ™ใ€‚" -+"ใ“ใ‚Œใ‚‰ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฏ่‡ชๅ‹•็š„ใซๆœ‰ๅŠนใซใชใฃใฆใ„ใพใ™ใ€‚" - --#: plugins/copr.py:574 -+#: plugins/copr.py:576 - msgid "Do you want to keep them enabled?" - msgstr "ๆœ‰ๅŠนใซใ—ใฆใŠใใพใ™ใ‹๏ผŸ" - --#: plugins/copr.py:607 -+#: plugins/copr.py:609 - #, python-brace-format - msgid "Failed to remove copr repo {0}/{1}/{2}" - msgstr "copr repo {0}/{1}/{2} ใฎๅ‰Š้™คใซๅคฑๆ•—ใ—ใพใ—ใŸ" - --#: plugins/copr.py:618 -+#: plugins/copr.py:620 - msgid "Failed to disable copr repo {}/{}" - msgstr "copr repo {}/{} ใฎ็„กๅŠนๅŒ–ใซๅคฑๆ•—ใ—ใพใ—ใŸ" - --#: plugins/copr.py:636 plugins/copr.py:673 -+#: plugins/copr.py:638 plugins/copr.py:675 - msgid "Unknown response from server." - msgstr "ใ‚ตใƒผใƒใƒผใ‹ใ‚‰ใฎไธๆ˜Žใชๅฟœ็ญ”ใงใ™ใ€‚" - --#: plugins/copr.py:658 -+#: plugins/copr.py:660 - msgid "Interact with Playground repository." - msgstr "Playground ใƒชใƒใ‚ธใƒˆใƒชใƒผใจใฎๅฏพ่ฉฑใ€‚" - --#: plugins/copr.py:664 -+#: plugins/copr.py:666 - msgid "Enabling a Playground repository." - msgstr "Playgroundใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฎๆœ‰ๅŠนๅŒ–ใ€‚" - --#: plugins/copr.py:665 -+#: plugins/copr.py:667 - msgid "Do you want to continue?" - msgstr "็ถš่กŒใ—ใพใ™ใ‹๏ผŸ" - --#: plugins/copr.py:709 -+#: plugins/copr.py:711 - msgid "Playground repositories successfully enabled." - msgstr "Playground ใƒชใƒใ‚ธใƒˆใƒชใƒผใŒๆญฃๅธธใซๆœ‰ๅŠนๅŒ–ใ•ใ‚Œใพใ—ใŸใ€‚" - --#: plugins/copr.py:712 -+#: plugins/copr.py:714 - msgid "Playground repositories successfully disabled." - msgstr "Playground ใƒชใƒใ‚ธใƒˆใƒชใƒผใŒๆญฃๅธธใซ็„กๅŠนๅŒ–ใ•ใ‚Œใพใ—ใŸใ€‚" - --#: plugins/copr.py:716 -+#: plugins/copr.py:718 - msgid "Playground repositories successfully updated." - msgstr "Playground ใƒชใƒใ‚ธใƒˆใƒชใƒผใŒๆญฃๅธธใซๆ›ดๆ–ฐใ•ใ‚Œใพใ—ใŸใ€‚" - -@@ -552,7 +569,9 @@ msgstr "่จ˜้Œฒใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎๆœ€ๆ–ฐใƒใƒผใ‚ธใƒงใƒณใ‚’ใ‚คใƒณใ‚นใƒˆใƒผ - msgid "" - "Ignore architecture and install missing packages matching the name, epoch, " - "version and release." --msgstr "ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’็„ก่ฆ–ใ—ใ€ๅๅ‰ใ€ใ‚จใƒใƒƒใ‚ฏใ€ใƒใƒผใ‚ธใƒงใƒณใ€ใŠใ‚ˆใณใƒชใƒชใƒผใ‚นใจไธ€่‡ดใ™ใ‚‹ไธ่ถณใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใพใ™ใ€‚" -+msgstr "" -+"ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’็„ก่ฆ–ใ—ใ€ๅๅ‰ใ€ใ‚จใƒใƒƒใ‚ฏใ€ใƒใƒผใ‚ธใƒงใƒณใ€ใŠใ‚ˆใณใƒชใƒชใƒผใ‚นใจไธ€่‡ดใ™" -+"ใ‚‹ไธ่ถณใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใพใ™ใ€‚" - - #: plugins/debug.py:196 - msgid "limit to specified type" -@@ -562,7 +581,9 @@ msgstr "ๆŒ‡ๅฎšใ—ใŸใ‚ฟใ‚คใƒ—ใซ้™ๅฎšใ—ใพใ™" - msgid "" - "Allow removing of install-only packages. Using this option may result in an " - "attempt to remove the running kernel." --msgstr "ใ‚คใƒณใ‚นใƒˆใƒผใƒซใฎใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎๅ‰Š้™คใ‚’่จฑๅฏใ—ใพใ™ใ€‚ใ“ใฎใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€ๅฎŸ่กŒใ—ใฆใ„ใ‚‹ใ‚ซใƒผใƒใƒซใฎๅ‰Š้™คใ‚’่ฉฆใฟใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚" -+msgstr "" -+"ใ‚คใƒณใ‚นใƒˆใƒผใƒซใฎใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎๅ‰Š้™คใ‚’่จฑๅฏใ—ใพใ™ใ€‚ใ“ใฎใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€" -+"ๅฎŸ่กŒใ—ใฆใ„ใ‚‹ใ‚ซใƒผใƒใƒซใฎๅ‰Š้™คใ‚’่ฉฆใฟใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚" - - #: plugins/debug.py:202 - msgid "name of dump file" -@@ -586,25 +607,31 @@ msgstr "debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ" - #, python-format - msgid "" - "Could not find debuginfo package for the following available packages: %s" --msgstr "ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" -+msgstr "" -+"ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" - - #: plugins/debuginfo-install.py:185 - #, python-format - msgid "" - "Could not find debugsource package for the following available packages: %s" --msgstr "ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" -+msgstr "" -+"ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" - - #: plugins/debuginfo-install.py:190 - #, python-format - msgid "" - "Could not find debuginfo package for the following installed packages: %s" --msgstr "ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" -+msgstr "" -+"ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—" -+"ใŸ: %s" - - #: plugins/debuginfo-install.py:195 - #, python-format - msgid "" - "Could not find debugsource package for the following installed packages: %s" --msgstr "ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" -+msgstr "" -+"ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—" -+"ใŸ: %s" - - #: plugins/debuginfo-install.py:199 - msgid "Unable to find a match" -@@ -642,12 +669,15 @@ msgstr "ๅฟ…่ฆใชไพๅญ˜้–ขไฟ‚ใ‚’่งฃๆฑบใ—ใ€ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™" - msgid "" - "when running with --resolve, download all dependencies (do not exclude " - "already installed ones)" --msgstr "--resolve ใงๅฎŸ่กŒใ™ใ‚‹ๅ ดๅˆใ€ใ™ในใฆใฎไพๅญ˜้–ขไฟ‚ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™ (ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใ‚‚ใฎใ‚’้™คๅค–ใ—ใชใ„ใงใใ ใ•ใ„)" -+msgstr "" -+"--resolve ใงๅฎŸ่กŒใ™ใ‚‹ๅ ดๅˆใ€ใ™ในใฆใฎไพๅญ˜้–ขไฟ‚ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™ (ใ‚คใƒณใ‚นใƒˆใƒผใƒซ" -+"ๆธˆใฟใฎใ‚‚ใฎใ‚’้™คๅค–ใ—ใชใ„ใงใใ ใ•ใ„)" - - #: plugins/download.py:67 - msgid "" - "print list of urls where the rpms can be downloaded instead of downloading" --msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€rpm ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใงใใ‚‹ url ใฎไธ€่ฆงใ‚’ๅฐๅˆทใ—ใพใ™" -+msgstr "" -+"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€rpm ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใงใใ‚‹ url ใฎไธ€่ฆงใ‚’ๅฐๅˆทใ—ใพใ™" - - #: plugins/download.py:72 - msgid "when running with --url, limit to specific protocols" -@@ -690,7 +720,9 @@ msgstr "็ฟป่จณใ•ใ‚ŒใŸใƒ‡ใƒผใ‚ฟใฎ็„กๅŠนใพใŸใฏ็ฉบใช่จ€่ชž" - - #: plugins/groups_manager.py:71 - msgid "Can't generate group id from '{}'. Please specify group id using --id." --msgstr "'{}' ใ‹ใ‚‰ใ‚ฐใƒซใƒผใƒ— ID ใ‚’็”Ÿๆˆใงใใพใ›ใ‚“ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„ใ€‚" -+msgstr "" -+"'{}' ใ‹ใ‚‰ใ‚ฐใƒซใƒผใƒ— ID ใ‚’็”Ÿๆˆใงใใพใ›ใ‚“ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆ" -+"ใใ ใ•ใ„ใ€‚" - - #: plugins/groups_manager.py:79 - msgid "create and edit groups metadata file" -@@ -766,7 +798,8 @@ msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธไป•ๆง˜" - - #: plugins/groups_manager.py:156 - msgid "Can't edit group without specifying it (use --id or --name)" --msgstr "ๆŒ‡ๅฎšใ›ใšใซใฏใ‚ฐใƒซใƒผใƒ—ใ‚’็ทจ้›†ใงใใพใ›ใ‚“ (--id ใพใŸใฏ --name ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„)" -+msgstr "" -+"ๆŒ‡ๅฎšใ›ใšใซใฏใ‚ฐใƒซใƒผใƒ—ใ‚’็ทจ้›†ใงใใพใ›ใ‚“ (--id ใพใŸใฏ --name ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„)" - - #: plugins/groups_manager.py:190 - msgid "Can't load file \"{}\": {}" -@@ -786,13 +819,16 @@ msgstr "ๅญ˜ๅœจใ—ใชใ„ใ‚ฐใƒซใƒผใƒ—ใ‹ใ‚‰ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅ‰Š้™คใงใใพใ›ใ‚“ - - #: plugins/groups_manager.py:307 - msgid "" --"Group id '{}' generated from '{}' is duplicit. Please specify group id using" --" --id." --msgstr "'{}' ใ‹ใ‚‰็”Ÿๆˆใ•ใ‚ŒใŸใ‚ฐใƒซใƒผใƒ— ID '{}' ใฏ้‡่ค‡ใ—ใฆใ„ใพใ™ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„ใ€‚" -+"Group id '{}' generated from '{}' is duplicit. Please specify group id using " -+"--id." -+msgstr "" -+"'{}' ใ‹ใ‚‰็”Ÿๆˆใ•ใ‚ŒใŸใ‚ฐใƒซใƒผใƒ— ID '{}' ใฏ้‡่ค‡ใ—ใฆใ„ใพใ™ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผ" -+"ใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„ใ€‚" - - #: plugins/leaves.py:32 - msgid "List installed packages not required by any other package" --msgstr "ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ๅฟ…่ฆใจใ•ใ‚Œใชใ„ใ‚คใƒณใ‚นใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" -+msgstr "" -+"ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ๅฟ…่ฆใจใ•ใ‚Œใชใ„ใ‚คใƒณใ‚นใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" - - #: plugins/local.py:122 - msgid "Unable to create a directory '{}' due to '{}'" -@@ -825,67 +861,61 @@ msgstr "ๅฑฅๆญดใƒ‡ใƒผใ‚ฟใ‚’็งป่กŒไธญ..." - #: plugins/modulesync.py:37 - msgid "" - "Download packages from modules and/or create a repository with modular data" --msgstr "" -+msgstr "ใƒขใ‚ธใƒฅใƒผใƒซใ‹ใ‚‰ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใŸใ‚Šใ€ใƒขใ‚ธใƒฅใƒฉใƒผใƒ‡ใƒผใ‚ฟใงใƒชใƒใ‚ธใƒˆใƒชใƒผ" -+"ใ‚’ไฝœๆˆใ—ใŸใ‚Šใ—ใพใ™" - - #: plugins/modulesync.py:44 - msgid "MODULE" --msgstr "" -+msgstr "MODULE" - - #: plugins/modulesync.py:45 --#, fuzzy --#| msgid "packages to download" - msgid "modules to download" --msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ" -+msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ใƒขใ‚ธใƒฅใƒผใƒซ" - - #: plugins/modulesync.py:47 --#, fuzzy --#| msgid "Specify repositories to check" - msgid "enable repositories with source packages" --msgstr "็ขบ่ชใ™ใ‚‹ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™" -+msgstr "ใ‚ฝใƒผใ‚นใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅซใ‚€ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ—ใพใ™" - - #: plugins/modulesync.py:49 - msgid "enable repositories with debug-info and debug-source packages" --msgstr "" -+msgstr "debug-info ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŠใ‚ˆใณ debug-source " -+"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใงใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ—ใพใ™" - - #: plugins/modulesync.py:53 --#, fuzzy --#| msgid "download all packages from remote repo" - msgid "download only packages from newest modules" --msgstr "ใƒชใƒขใƒผใƒˆ repo ใ‹ใ‚‰ใ™ในใฆใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™" -+msgstr "ๆœ€ๆ–ฐใฎใƒขใ‚ธใƒฅใƒผใƒซใ‹ใ‚‰ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใฟใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™" - - #: plugins/modulesync.py:85 --#, fuzzy --#| msgid "No match for argument: {}" - msgid "Unable to find a match for argument: '{}'" - msgid_plural "Unable to find a match for arguments: '{}'" --msgstr[0] "ไธ€่‡ดใ—ใŸๅผ•ๆ•ฐใŒใ‚ใ‚Šใพใ›ใ‚“: {}" -+msgstr[0] "ๅผ•ๆ•ฐใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: '{}'" - - #: plugins/modulesync.py:107 - msgid "" - "Creation of repository failed with return code {}. All downloaded content " - "was kept on the system" --msgstr "" -+msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎไฝœๆˆใฏๆˆปใ‚Šใ‚ณใƒผใƒ‰ {} " -+"ใงๅคฑๆ•—ใ—ใพใ—ใŸใ€‚ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ•ใ‚ŒใŸใ‚ณใƒณใƒ†ใƒณใƒ„ใฏใ™ในใฆใ‚ทใ‚นใƒ†ใƒ ใซไฟๆŒใ•ใ‚Œใพใ—ใŸ" - - #: plugins/modulesync.py:144 - #, python-brace-format - msgid "No match for artifact '{0}' from module '{1}'" --msgstr "" -+msgstr "ใƒขใ‚ธใƒฅใƒผใƒซ '{1}' ใฎใ‚ขใƒผใƒ†ใ‚ฃใƒ•ใ‚กใ‚ฏใƒˆ '{0}' ใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใฏใ‚ใ‚Šใพใ›ใ‚“" - - #: plugins/modulesync.py:162 - #, python-brace-format - msgid "No match for package name '{0}' in profile {1} from module {2}" --msgstr "" -+msgstr "ใƒขใ‚ธใƒฅใƒผใƒซ {2} ใ‹ใ‚‰ใฎใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซ {1} ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ '{0}' " -+"ใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใฏใ‚ใ‚Šใพใ›ใ‚“" - - #: plugins/modulesync.py:166 --#, fuzzy --#| msgid "No match for argument: {}" - msgid "No mach for argument '{}'" --msgstr "ไธ€่‡ดใ—ใŸๅผ•ๆ•ฐใŒใ‚ใ‚Šใพใ›ใ‚“: {}" -+msgstr "ๅผ•ๆ•ฐ '{}' ใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใฏใ‚ใ‚Šใพใ›ใ‚“" - - #. TODO(jmracek) Shell we end with an error or with RC 1? - #: plugins/modulesync.py:198 - msgid "Unable to satisfy require {}" --msgstr "" -+msgstr "่ฆๆฑ‚ {} ใ‚’ๆบ€ใŸใ™ใ“ใจใŒใงใใพใ›ใ‚“" - - #: plugins/needs_restarting.py:66 - #, python-brace-format -@@ -893,8 +923,8 @@ msgid "" - "No installed package found for package name \"{pkg}\" specified in needs-" - "restarting file \"{file}\"." - msgstr "" --"needs-restarting ใƒ•ใ‚กใ‚คใƒซ \"{file}\" ใซๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใ‚‹ {pkg} " --"ใจใ„ใ†ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใ€‚" -+"needs-restarting ใƒ•ใ‚กใ‚คใƒซ \"{file}\" ใซๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใ‚‹ \"{pkg}\" ใจใ„ใ†ใƒ‘ใƒƒ" -+"ใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใ€‚" - - #: plugins/needs_restarting.py:220 - msgid "determine updated binaries that need restarting" -@@ -907,7 +937,8 @@ msgstr "ใ“ใฎใƒฆใƒผใ‚ถใƒผใฎใƒ—ใƒญใ‚ปใ‚นใฎใฟใ‚’ๆคœ่จŽใ—ใพใ™" - #: plugins/needs_restarting.py:227 - msgid "" - "only report whether a reboot is required (exit code 1) or not (exit code 0)" --msgstr "ๅ†่ตทๅ‹•ใŒๅฟ…่ฆใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 1) ๅฟ…่ฆใงใชใ„ใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 0) ใฎใฟใ‚’ๅ ฑๅ‘Šใ—ใพใ™" -+msgstr "" -+"ๅ†่ตทๅ‹•ใŒๅฟ…่ฆใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 1) ๅฟ…่ฆใงใชใ„ใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 0) ใฎใฟใ‚’ๅ ฑๅ‘Šใ—ใพใ™" - - #: plugins/needs_restarting.py:230 - msgid "only report affected systemd services" -@@ -927,7 +958,8 @@ msgstr "่ฉณ็ดฐๆƒ…ๅ ฑ:" - - #: plugins/needs_restarting.py:263 - msgid "No core libraries or services have been updated since boot-up." --msgstr "่ตทๅ‹•ไปฅ้™ใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ•ใ‚ŒใŸใ‚ณใ‚ขใƒฉใ‚คใƒ–ใƒฉใƒชใƒผใพใŸใฏใ‚ตใƒผใƒ“ใ‚นใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" -+msgstr "" -+"่ตทๅ‹•ไปฅ้™ใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ•ใ‚ŒใŸใ‚ณใ‚ขใƒฉใ‚คใƒ–ใƒฉใƒชใƒผใพใŸใฏใ‚ตใƒผใƒ“ใ‚นใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" - - #: plugins/needs_restarting.py:265 - msgid "Reboot should not be necessary." -@@ -959,23 +991,23 @@ msgstr "post-transaction-actions: ไธๆญฃใชใ‚ณใƒžใƒณใƒ‰ \"%s\": %s" - msgid "Display a list of unresolved dependencies for repositories" - msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎๆœช่งฃๆฑบใฎไพๅญ˜้–ขไฟ‚ใฎไธ€่ฆงใ‚’่กจ็คบใ—ใพใ™" - --#: plugins/repoclosure.py:66 --msgid "Repoclosure ended with unresolved dependencies." --msgstr "repoclosure ใฏๆœช่งฃๆฑบใฎไพๅญ˜้–ขไฟ‚ใง็ต‚ไบ†ใ—ใพใ—ใŸใ€‚" -+#: plugins/repoclosure.py:69 -+msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." -+msgstr "Repoclosure ใฏใ€{} ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใงไพๅญ˜้–ขไฟ‚ ({}) ใŒ่งฃๆฑบใ•ใ‚Œใšใซ็ต‚ไบ†ใ—ใพใ™ใ€‚" - --#: plugins/repoclosure.py:153 -+#: plugins/repoclosure.py:159 - msgid "check packages of the given archs, can be specified multiple times" - msgstr "็‰นๅฎšใฎ arch ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’็ขบ่ชใ—ใพใ™ใ€‚่ค‡ๆ•ฐๅ›žๆŒ‡ๅฎšใ™ใ‚‹ใ“ใจใŒใงใใพใ™" - --#: plugins/repoclosure.py:156 -+#: plugins/repoclosure.py:162 - msgid "Specify repositories to check" - msgstr "็ขบ่ชใ™ใ‚‹ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™" - --#: plugins/repoclosure.py:158 -+#: plugins/repoclosure.py:164 - msgid "Check only the newest packages in the repos" - msgstr "repo ใฎๆœ€ๆ–ฐใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใฟใ‚’็ขบ่ชใ—ใพใ™" - --#: plugins/repoclosure.py:161 -+#: plugins/repoclosure.py:167 - msgid "Check closure for this package only" - msgstr "ใ“ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใฟใฎใ‚ฏใƒญใƒผใ‚ธใƒฃใƒผใ‚’็ขบ่ชใ—ใพใ™" - -@@ -995,7 +1027,9 @@ msgstr "ๆ–ฐใ—ใ„ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€ใ“ใ‚Œใฏ่ค‡ๆ•ฐๅ›žไฝฟ็”จ - msgid "" - "Specify architectures to compare, can be used multiple times. By default, " - "only source rpms are compared." --msgstr "ๆฏ”่ผƒใ™ใ‚‹ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€ใ“ใ‚Œใฏ่ค‡ๆ•ฐๅ›žไฝฟ็”จใงใใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ€ใ‚ฝใƒผใ‚น rpms ใฎใฟใŒๆฏ”่ผƒใ•ใ‚Œใพใ™ใ€‚" -+msgstr "" -+"ๆฏ”่ผƒใ™ใ‚‹ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€ใ“ใ‚Œใฏ่ค‡ๆ•ฐๅ›žไฝฟ็”จใงใใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ" -+"ใงใ€ใ‚ฝใƒผใ‚น rpms ใฎใฟใŒๆฏ”่ผƒใ•ใ‚Œใพใ™ใ€‚" - - #: plugins/repodiff.py:67 - msgid "Output additional data about the size of the changes." -@@ -1003,9 +1037,10 @@ msgstr "ๅค‰ๆ›ดใ‚ตใ‚คใ‚บใซ้–ขใ™ใ‚‹่ฟฝๅŠ ใƒ‡ใƒผใ‚ฟใ‚’ๅ‡บๅŠ›ใ—ใพใ™ใ€‚" - - #: plugins/repodiff.py:69 - msgid "" --"Compare packages also by arch. By default packages are compared just by " --"name." --msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ Arch ใงใ‚‚ๆฏ”่ผƒใ—ใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ€ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏๅๅ‰ใฎใฟใงๆฏ”่ผƒใ•ใ‚Œใพใ™ใ€‚" -+"Compare packages also by arch. By default packages are compared just by name." -+msgstr "" -+"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ Arch ใงใ‚‚ๆฏ”่ผƒใ—ใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ€ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏๅๅ‰ใฎใฟใงๆฏ”่ผƒใ•" -+"ใ‚Œใพใ™ใ€‚" - - #: plugins/repodiff.py:72 - msgid "Output a simple one line message for modified packages." -@@ -1015,7 +1050,9 @@ msgstr "ๅค‰ๆ›ดใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใซ็ฐกๅ˜ใช 1 ่กŒใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ๅ‡บๅŠ› - msgid "" - "Split the data for modified packages between upgraded and downgraded " - "packages." --msgstr "ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใƒ€ใ‚ฆใƒณใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใฎ้–“ใงใ€ๅค‰ๆ›ดใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒ‡ใƒผใ‚ฟใ‚’ๅˆ†ๅ‰ฒใ—ใพใ™ใ€‚" -+msgstr "" -+"ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใƒ€ใ‚ฆใƒณใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใฎ้–“ใงใ€ๅค‰ๆ›ด" -+"ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒ‡ใƒผใ‚ฟใ‚’ๅˆ†ๅ‰ฒใ—ใพใ™ใ€‚" - - #: plugins/repodiff.py:86 - msgid "Both old and new repositories must be set." -@@ -1128,7 +1165,7 @@ msgstr "rpm ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใƒผใ‚’็ฎก็†ใ—ใพใ™" - - #: plugins/repomanage.py:59 - msgid "Pass either --old or --new, not both!" --msgstr "--old ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€‚ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" -+msgstr "--old ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“!" - - #: plugins/repomanage.py:89 - msgid "No files to process" -@@ -1184,9 +1221,11 @@ msgstr "comps.xml ใ‚‚ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใฆๅฑ•้–‹ใ—ใพใ™" - - #: plugins/reposync.py:75 - msgid "" --"where to store downloaded repository metadata. Defaults to the value of " --"--download-path." --msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ๆธˆใฟใƒชใƒใ‚ธใƒˆใƒชใƒผใƒกใ‚ฟใƒ‡ใƒผใ‚ฟใฎไฟ็ฎกๅ ดๆ‰€ใ€‚ๅˆๆœŸๅ€คใฏ --download-path ใงใ™ใ€‚" -+"where to store downloaded repository metadata. Defaults to the value of --" -+"download-path." -+msgstr "" -+"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ๆธˆใฟใƒชใƒใ‚ธใƒˆใƒชใƒผใƒกใ‚ฟใƒ‡ใƒผใ‚ฟใฎไฟ็ฎกๅ ดๆ‰€ใ€‚ๅˆๆœŸๅ€คใฏ --download-path ใง" -+"ใ™ใ€‚" - - #: plugins/reposync.py:78 - msgid "download only newest packages per-repo" -@@ -1210,7 +1249,9 @@ msgstr "ใ‚ฝใƒผใ‚นใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใฟใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰" - - #: plugins/reposync.py:89 - msgid "Just list urls of what would be downloaded, don't download" --msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไบˆๅฎšใฎใ‚‚ใฎใฎ URL ใ‚’ใƒชใ‚นใƒˆใ™ใ‚‹ใ ใ‘ใงใ€ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใชใ„ใงใใ ใ•ใ„" -+msgstr "" -+"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไบˆๅฎšใฎใ‚‚ใฎใฎ URL ใ‚’ใƒชใ‚นใƒˆใ™ใ‚‹ใ ใ‘ใงใ€ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใชใ„ใงใใ " -+"ใ•ใ„" - - #: plugins/reposync.py:113 - msgid "Can't use --norepopath with multiple repositories" -@@ -1254,7 +1295,8 @@ msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผ %s ใฎ comps.xml ใŒไฟๅญ˜ใ•ใ‚Œใพใ—ใŸ" - - #: plugins/show_leaves.py:54 - msgid "New leaves:" --msgstr "ๆ–ฐ่ฆใฎใƒชใƒผใƒ•ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ (ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ไพๅญ˜ใ•ใ‚Œใฆใ„ใชใ„ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ) :" -+msgstr "" -+"ๆ–ฐ่ฆใฎใƒชใƒผใƒ•ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ (ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ไพๅญ˜ใ•ใ‚Œใฆใ„ใชใ„ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ) :" - - #: plugins/versionlock.py:33 - #, python-format -@@ -1302,7 +1344,8 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" - msgstr "versionlock ใƒ—ใƒฉใ‚ฐใ‚คใƒณ: ใƒ•ใ‚กใ‚คใƒซ \"{}\" ใฎใƒญใƒƒใ‚ฏใƒซใƒผใƒซใฎๆ•ฐใ‚’้ฉ็”จ: {}" - - #: plugins/versionlock.py:44 --msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" -+msgid "" -+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" - msgstr "versionlock ใƒ—ใƒฉใ‚ฐใ‚คใƒณ: ใƒ•ใ‚กใ‚คใƒซ \"{}\" ใฎ้™คๅค–ใƒซใƒผใƒซใฎๆ•ฐใ‚’้ฉ็”จ: {}" - - #: plugins/versionlock.py:45 -@@ -1319,11 +1362,14 @@ msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธไป•ๆง˜ใ‚’ใใฎใพใพไฝฟ็”จใ—ใ€่งฃๆžใ‚’่ฉฆใฟใชใ„ใง - - #: plugins/versionlock.py:164 - msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." --msgstr "ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ '{}' ใฏ้žๆŽจๅฅจใซใชใ‚Šใพใ—ใŸใ€‚ไปฃใ‚ใ‚Šใซ 'exclude' ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚" -+msgstr "" -+"ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ '{}' ใฏ้žๆŽจๅฅจใซใชใ‚Šใพใ—ใŸใ€‚ไปฃใ‚ใ‚Šใซ 'exclude' ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จ" -+"ใ—ใฆใใ ใ•ใ„ใ€‚" - - #~ msgid "" - #~ "This repository does not have any builds yet so you cannot enable it now." --#~ msgstr "ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใซใฏใพใ ใƒ“ใƒซใƒ‰ใŒใ‚ใ‚Šใพใ›ใ‚“ใฎใงใ€ไปŠใ™ใๆœ‰ๅŠนๅŒ–ใงใใพใ›ใ‚“ใ€‚" -+#~ msgstr "" -+#~ "ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใซใฏใพใ ใƒ“ใƒซใƒ‰ใŒใ‚ใ‚Šใพใ›ใ‚“ใฎใงใ€ไปŠใ™ใๆœ‰ๅŠนๅŒ–ใงใใพใ›ใ‚“ใ€‚" - - #~ msgid "" - #~ "\n" -diff --git a/po/ko.po b/po/ko.po -index 726adb5..46f9bf8 100644 ---- a/po/ko.po -+++ b/po/ko.po -@@ -1,20 +1,22 @@ - # Ludek Janda , 2018. #zanata, 2020. --# Marek Blaha , 2020. - # simmon , 2021. -+# Kim InSoo , 2022. -+# ๊น€์ธ์ˆ˜ , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2022-01-11 01:55+0000\n" --"PO-Revision-Date: 2021-09-04 17:04+0000\n" --"Last-Translator: simmon \n" --"Language-Team: Korean \n" -+"POT-Creation-Date: 2022-08-31 13:39+0200\n" -+"PO-Revision-Date: 2022-09-02 02:19+0000\n" -+"Last-Translator: ๊น€์ธ์ˆ˜ \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.8\n" -+"X-Generator: Weblate 4.14\n" - - #: plugins/builddep.py:45 - msgid "[PACKAGE|PACKAGE.spec]" -@@ -27,7 +29,7 @@ msgstr "'%s'๋Š” 'MACRO EXPR' ํ˜•์‹์ด ์•„๋‹™๋‹ˆ๋‹ค" - - #: plugins/builddep.py:90 - msgid "packages with builddeps to install" --msgstr "์„ค์น˜ ํ•  builddeps๊ฐ€ ์žˆ๋Š” ๊พธ๋Ÿฌ๋ฏธ(package)" -+msgstr "์„ค์น˜ ํ•  builddeps๊ฐ€ ์žˆ๋Š” ๊พธ๋Ÿฌ๋ฏธ" - - #: plugins/builddep.py:93 - msgid "define a macro for spec file parsing" -@@ -43,7 +45,7 @@ msgstr "๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•œ ํŒŒ์ผ๋กœ ๋‹ค๋ฃฌ๋‹ค" - - #: plugins/builddep.py:100 - msgid "treat commandline arguments as source rpm" --msgstr "๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ rpm ์†Œ์Šค๋กœ ๋‹ค๋ฃฌ๋‹ค" -+msgstr "์›์ฒœ rpm์œผ๋กœ ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ๋‹ค๋ฃฌ๋‹ค" - - #: plugins/builddep.py:144 - msgid "RPM: {}" -@@ -51,15 +53,14 @@ msgstr "RPM: {}" - - #: plugins/builddep.py:153 - msgid "Some packages could not be found." --msgstr "๋ช‡๋ช‡ ๊พธ๋Ÿฌ๋ฏธ(packages)๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." -+msgstr "๋ช‡๋ช‡ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." - - #. No provides, no files --#. Richdeps can have no matches but it could be correct (solver must decide --#. later) -+#. Richdeps can have no matches but it could be correct (solver must decide later) - #: plugins/builddep.py:173 - #, python-format - msgid "No matching package to install: '%s'" --msgstr "์„ค์น˜: '%s' ๊พธ๋Ÿฌ๋ฏธ(package)๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" -+msgstr "์„ค์น˜: '%s' ๊พธ๋Ÿฌ๋ฏธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" - - #: plugins/builddep.py:191 - #, python-format -@@ -75,39 +76,43 @@ msgstr "๋ชจ๋“  ์˜์กด์„ฑ์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" - msgid "Failed to open: '%s', not a valid spec file: %s" - msgstr "์—ฌ๋Š”๋ฐ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค '%s', ์ง€์ •ํ•œ ํŒŒ์ผ: %s๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" - --#: plugins/builddep.py:230 plugins/repoclosure.py:118 -+#: plugins/builddep.py:230 plugins/repoclosure.py:124 - #, python-format - msgid "no package matched: %s" --msgstr "์ผ์น˜ํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ(package) ์—†์Œ: %s" -+msgstr "์ผ์น˜ํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ ์—†์Œ: %s" - - #: plugins/changelog.py:37 - #, python-brace-format - msgid "Not a valid date: \"{0}\"." --msgstr "์œ ํšจํ•œ ๋‚ ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค: \"{0}\"." -+msgstr "์œ ํšจํ•œ ๋‚ ์งœ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค: \"{0}\"." - - #: plugins/changelog.py:43 - msgid "Show changelog data of packages" --msgstr "๊พธ๋Ÿฌ๋ฏธ(packages)์˜ ๋ณ€ํ™” ๊ธฐ๋ก์ž๋ฃŒ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค" -+msgstr "๊พธ๋Ÿฌ๋ฏธ์˜ ๋ณ€ํ™” ๊ธฐ๋ก์ž๋ฃŒ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค" - - #: plugins/changelog.py:51 - msgid "" - "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " - "is recommended." --msgstr "DATE ์ดํ›„์— ๋ณ€ํ™”๊ธฐ๋ก๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ชจํ˜ธํ•จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, YYYY-MM-DD ํ˜•์‹์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค." -+msgstr "" -+"DATE ์ดํ›„์— ๋ณ€ํ™”๊ธฐ๋ก๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ชจํ˜ธํ•จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, YYYY-MM-DD ํ˜•์‹์„ " -+"์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค." - - #: plugins/changelog.py:55 - msgid "show given number of changelog entries per package" --msgstr "์ฃผ์–ด์ง„ ์ˆ˜์˜ ๊พธ๋Ÿฌ๋ฏธ(package) ๋งˆ๋‹ค ๋ณ€ํ™”๊ธฐ๋ก ํ•ญ๋ชฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค" -+msgstr "์ฃผ์–ด์ง„ ์ˆ˜์˜ ๊พธ๋Ÿฌ๋ฏธ ๋งˆ๋‹ค ๋ณ€ํ™”๊ธฐ๋ก ํ•ญ๋ชฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค" - - #: plugins/changelog.py:58 - msgid "" - "show only new changelog entries for packages, that provide an upgrade for " - "some of already installed packages." --msgstr "๋ช‡๋ช‡ ์ด๋ฏธ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ(package)๋“ค์˜ ์ตœ์‹ ํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ณ€ํ™”๊ธฐ๋ก๋งŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค." -+msgstr "" -+"๋ช‡๋ช‡ ์ด๋ฏธ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋“ค์˜ ์ตœ์‹ ํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ณ€ํ™”๊ธฐ๋ก" -+"๋งŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค." - - #: plugins/changelog.py:60 - msgid "PACKAGE" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package)" -+msgstr "๊พธ๋Ÿฌ๋ฏธ" - - #: plugins/changelog.py:81 plugins/debuginfo-install.py:90 - #, python-format -@@ -142,7 +147,7 @@ msgstr "{prog} ํ™˜๊ฒฝ ์„ ํƒ๊ณผ ์ €์žฅ์†Œ ๊ด€๋ฆฌ" - - #: plugins/config_manager.py:45 - msgid "repo to modify" --msgstr "์ˆ˜์ •ํ•  repo" -+msgstr "์ˆ˜์ •ํ•˜๋ ค๋Š” ์ €์žฅ์†Œ" - - #: plugins/config_manager.py:48 - msgid "save the current options (useful with --setopt)" -@@ -177,8 +182,8 @@ msgid "" - "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " - "manager. Use --set-enabled/--set-disabled instead." - msgstr "" --"๊ฒฝ๊ณ : -- --enablerepo/--disablerepo ์ธ์ˆ˜๋Š” ์„ค์ • ๊ด€๋ฆฌ์ž์™€ ํ•จ๊ป˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— --set-" --"enabled/--set-disabled๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”." -+"๊ฒฝ๊ณ : -- --enablerepo/--disablerepo ์ธ์ˆ˜๋Š” ์„ค์ • ๊ด€๋ฆฌ์ž์™€ ํ•จ๊ป˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ณ  ์žˆ" -+"์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— --set-enabled/--set-disabled๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”." - - #: plugins/config_manager.py:132 - #, python-format -@@ -278,45 +283,47 @@ msgstr "์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” Copr ์ €์žฅ์†Œ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. NAME - msgid "Specify an instance of Copr to work with" - msgstr "์ผํ•˜๋Š” Copr์˜ ์˜ˆ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค" - --#: plugins/copr.py:164 plugins/copr.py:232 plugins/copr.py:259 -+#: plugins/copr.py:164 plugins/copr.py:236 plugins/copr.py:263 - msgid "Error: " - msgstr "์˜ค๋ฅ˜: " - - #: plugins/copr.py:165 - msgid "" --"specify Copr hub either with `--hub` or using " --"`copr_hub/copr_username/copr_projectname` format" -+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" -+"copr_projectname` format" - msgstr "" --"Corp hub๋ฅผ `--hub` ๋˜๋Š” ์‚ฌ์šฉํ•˜๊ธฐ `copr_hub/copr_username/copr_projectname`ํ˜•์‹์œผ๋กœ " --"์ง€์ •ํ•ฉ๋‹ˆ๋‹ค" -+"Corp hub๋ฅผ `--hub` ๋˜๋Š” ์‚ฌ์šฉํ•˜๊ธฐ `copr_hub/copr_username/copr_projectname`ํ˜•" -+"์‹์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค" - - #: plugins/copr.py:168 - msgid "multiple hubs specified" - msgstr "์ง€์ •๋œ ์—ฌ๋Ÿฌ ํ—ˆ๋ธŒ" - --#: plugins/copr.py:233 plugins/copr.py:237 -+#: plugins/copr.py:237 plugins/copr.py:241 - msgid "exactly two additional parameters to copr command are required" - msgstr "copr ๋ช…๋ น์— ์ •ํ™•ํžˆ ๋‘ ๊ฐœ์˜ ์ถ”๊ฐ€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค" - --#: plugins/copr.py:242 -+#: plugins/copr.py:246 - msgid "Too many arguments." - msgstr "๋„ˆ๋ฌด ๋งŽ์€ ์ธ์ˆ˜." - --#: plugins/copr.py:245 -+#: plugins/copr.py:249 - msgid "" - "Bad format of optional chroot. The format is distribution-version-" - "architecture." - msgstr "์„ ํƒ์ ์ธ chroot์˜ ๋‚˜์œ ํ˜•์‹. ํ˜•์‹์€ ๋ฐฐํฌ-๋ฒ„์ „-๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค." - --#: plugins/copr.py:260 -+#: plugins/copr.py:264 - msgid "use format `copr_username/copr_projectname` to reference copr project" --msgstr "copr ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด`copr_username / copr_projectname` ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค" -+msgstr "" -+"copr ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด`copr_username / copr_projectname` ํ˜•์‹์„ ์‚ฌ์šฉํ•˜" -+"์‹ญ์‹œ์˜ค" - --#: plugins/copr.py:262 -+#: plugins/copr.py:266 - msgid "bad copr project format" - msgstr "๋‚˜์œ copr ํ”„๋กœ์ ํŠธ ํ˜•์‹" - --#: plugins/copr.py:276 -+#: plugins/copr.py:280 - msgid "" - "\n" - "Enabling a Copr repository. Please note that this repository is not part\n" -@@ -324,107 +331,108 @@ msgid "" - "\n" - "The Fedora Project does not exercise any power over the contents of\n" - "this repository beyond the rules outlined in the Copr FAQ at\n" --",\n" -+",\n" - "and packages are not held to any quality or security level.\n" - "\n" - "Please do not file bug reports about these packages in Fedora\n" - "Bugzilla. In case of problems, contact the owner of this repository.\n" - msgstr "" - "\n" --"Core ์ €์ •์†Œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ์ฃผ์š” ๋ฐฐํฌํŒ ๋ถ€๋ถ„์ด ์•„๋‹˜์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋ฐ”๋ผ๊ณ ,\n" -+"Core ์ €์ •์†Œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ์ฃผ์š” ๋ฐฐํฌํŒ ๋ถ€๋ถ„์ด ์•„๋‹˜์„ ์•Œ๊ณ  ์žˆ๊ธฐ " -+"๋ฐ”๋ผ๊ณ ,\n" - "ํ’ˆ์งˆ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n" - "\n" - "ํŽ˜๋„๋ผ ํ”„๋กœ์ ํŠธ๋Š”\n" --"์—\n" --"Core FAQ์— ์žˆ๋Š” ์„ค๋ช…๋œ ๊ทœ์น™์„ ๋„˜๋Š” ์ €์žฅ์†Œ ๋‚ด์šฉ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ์‹œํ—˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ,\n" -+"์—\n" -+"Core FAQ์— ์žˆ๋Š” ์„ค๋ช…๋œ ๊ทœ์น™์„ ๋„˜๋Š” ์ €์žฅ์†Œ ๋‚ด์šฉ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ์‹œํ—˜ํ•˜์ง€ ์•Š์œผ" -+"๋ฉฐ,\n" - "๊ทธ๋ฆฌ๊ณ  ๊พธ๋Ÿฌ๋ฏธ(package)๋Š” ์–ด๋–ค ํ’ˆ์งˆ์ด๋‚˜ ๋ณด์•ˆ ์ˆ˜์ค€์„ ์œ ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.\n" - "\n" - "ํŽ˜๋„๋ผ ๋ฒ„๊ทธ์งˆ๋ผ์— ์ด๋“ค ๊พธ๋Ÿฌ๋ฏธ์— ๋Œ€ํ•œ ํŒŒ์ผ ๊ฒฐ์  ๋ณด๊ณ ๋ฅผ ์ œ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”.\n" - "์ด๋“ค ๋ฌธ์ œ๋Š”, ์ด๋“ค ์ €์žฅ์†Œ ์†Œ์œ ์ž์™€ ์ ‘์ด‰ํ•˜์„ธ์š”.\n" - --#: plugins/copr.py:293 -+#: plugins/copr.py:297 - msgid "Repository successfully enabled." - msgstr "์ €์žฅ์†Œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:298 -+#: plugins/copr.py:302 - msgid "Repository successfully disabled." - msgstr "์ €์žฅ์†Œ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:302 -+#: plugins/copr.py:306 - msgid "Repository successfully removed." - msgstr "์ €์žฅ์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:306 plugins/copr.py:719 -+#: plugins/copr.py:310 plugins/copr.py:721 - msgid "Unknown subcommand {}." - msgstr "์•Œ ์ˆ˜์—†๋Š” ๋ถ€์† ๋ช…๋ น {}." - --#: plugins/copr.py:363 -+#: plugins/copr.py:367 - msgid "" --"* These coprs have repo file with an old format that contains no information" --" about Copr hub - the default one was assumed. Re-enable the project to fix " -+"* These coprs have repo file with an old format that contains no information " -+"about Copr hub - the default one was assumed. Re-enable the project to fix " - "this." - msgstr "" --"* ์ด๋“ค coprs์€ Copr hub์— ๋Œ€ํ•˜์—ฌ ์–ด๋–ค ์ •๋ณด๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ํ˜•ํƒœ์˜ ์ €์žฅ์†Œ ํŒŒ์ผ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ" --" ์œ„ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์žฌํ™œ์„ฑํ™”ํ•˜์„ธ์š”." -+"* ์ด๋“ค coprs์€ Copr hub์— ๋Œ€ํ•˜์—ฌ ์–ด๋–ค ์ •๋ณด๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ํ˜•ํƒœ์˜ ์ €์žฅ" -+"์†Œ ํŒŒ์ผ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์žฌํ™œ์„ฑํ™”ํ•˜์„ธ์š”." - --#: plugins/copr.py:376 -+#: plugins/copr.py:380 - msgid "Can't parse repositories for username '{}'." - msgstr "์‚ฌ์šฉ์ž ์ด๋ฆ„ '{}'์— ๋Œ€ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:379 -+#: plugins/copr.py:383 - msgid "List of {} coprs" - msgstr "{} ๋ช…์˜ ๊ฒฝ์ฐฐ ๋ชฉ๋ก" - --#: plugins/copr.py:384 -+#: plugins/copr.py:388 - msgid "No description given" - msgstr "์„ค๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค" - --#: plugins/copr.py:396 -+#: plugins/copr.py:400 - msgid "Can't parse search for '{}'." - msgstr "'{}'์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์„ ๊ตฌ๋ฌธ ๋ถ„์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:399 -+#: plugins/copr.py:403 - msgid "Matched: {}" - msgstr "์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ : {}" - --#: plugins/copr.py:404 -+#: plugins/copr.py:408 - msgid "No description given." - msgstr "์„ค๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:426 -+#: plugins/copr.py:430 - msgid "Safe and good answer. Exiting." - msgstr "์•ˆ์ „ํ•˜๊ณ  ์ข‹์€ ๋Œ€๋‹ต. ๋‚˜๊ฐ€๊ธฐ." - --#: plugins/copr.py:433 -+#: plugins/copr.py:437 - msgid "This command has to be run under the root user." - msgstr "์ด ๋ช…๋ น์€ ๋ฃจํŠธ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค." - --#: plugins/copr.py:485 -+#: plugins/copr.py:487 - #, python-brace-format - msgid "Request to {0} failed: {1} - {2}" --msgstr "" -+msgstr "{0}์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์‹คํŒจํ•จ: {1} - {2}" - --#: plugins/copr.py:487 -+#: plugins/copr.py:489 - msgid "It wasn't possible to enable this project.\n" --msgstr "" -+msgstr "์ด์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n" - --#: plugins/copr.py:492 --#, fuzzy, python-brace-format --#| msgid "Such repository does not exist." -+#: plugins/copr.py:494 -+#, python-brace-format - msgid "Repository '{0}' does not exist in project '{1}'." --msgstr "์ด๋Ÿฌํ•œ ์ €์žฅ์†Œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." -+msgstr "์ €์žฅ์†Œ '{0}'๋Š” ํ”„๋กœ์ ํŠธ '{1}'์— ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:495 --#, fuzzy --#| msgid "List enabled Copr repositories" -+#: plugins/copr.py:497 - msgid "" - "\n" - "Available repositories: " - msgstr "" - "\n" --"์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Copr ์ €์žฅ์†Œ ๋ชฉ๋ก " -+"์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ €์žฅ์†Œ: " - --#: plugins/copr.py:497 -+#: plugins/copr.py:499 - #, python-brace-format - msgid "" - "\n" -@@ -433,20 +441,25 @@ msgid "" - " 'dnf copr enable {0} '\n" - "But note that the installed repo file will likely need a manual modification." - msgstr "" -+"\n" -+"\n" -+"๋งŒ์•ฝ ๊ธฐ๋ณธ์„ค์ •๋˜์ง€ ์•Š์€ ์ €์žฅ์†Œ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์„ธ์š”:" -+" \n" -+" 'dnf copr enable {0} ' \n" -+"ํ•˜์ง€๋งŒ ์„ค์น˜๋œ ์ €์žฅ์†Œ ํŒŒ์ผ์€ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ " -+"์ฐธ๊ณ ํ•˜์„ธ์š”." - --#: plugins/copr.py:503 --#, fuzzy, python-brace-format --#| msgid "Such repository does not exist." -+#: plugins/copr.py:505 -+#, python-brace-format - msgid "Project {0} does not exist." --msgstr "์ด๋Ÿฌํ•œ ์ €์žฅ์†Œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." -+msgstr "ํ”„๋กœ์ ํŠธ {0}๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:506 --#, fuzzy, python-brace-format --#| msgid "Failed to remove copr repo {0}/{1}/{2}" -+#: plugins/copr.py:508 -+#, python-brace-format - msgid "Failed to connect to {0}: {1}" --msgstr "copr repo {0}/{1}/{2} ์ œ๊ฑฐ๋ฅผ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค" -+msgstr "์—ฐ๊ฒฐ ํ•˜๋Š”๋ฐ ์‹คํŒจํ•จ {0}: {1}" - --#: plugins/copr.py:553 -+#: plugins/copr.py:555 - #, python-brace-format - msgid "" - "Maintainer of the enabled Copr repository decided to make\n" -@@ -475,50 +488,50 @@ msgstr "" - "\n" - "์ด๋“ค ์ €์žฅ์†Œ๋Š” ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™” ๋ฉ๋‹ˆ๋‹ค." - --#: plugins/copr.py:574 -+#: plugins/copr.py:576 - msgid "Do you want to keep them enabled?" - msgstr "๊ณ„์† ์‚ฌ์šฉํ•˜๊ธธ ์›ํ•˜์‹œ๋‚˜์š”?" - --#: plugins/copr.py:607 -+#: plugins/copr.py:609 - #, python-brace-format - msgid "Failed to remove copr repo {0}/{1}/{2}" - msgstr "copr repo {0}/{1}/{2} ์ œ๊ฑฐ๋ฅผ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค" - --#: plugins/copr.py:618 -+#: plugins/copr.py:620 - msgid "Failed to disable copr repo {}/{}" - msgstr "copr repo {} / {}๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€๋ฅผ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค" - --#: plugins/copr.py:636 plugins/copr.py:673 -+#: plugins/copr.py:638 plugins/copr.py:675 - msgid "Unknown response from server." - msgstr "์„œ๋ฒ„์—์„œ ์•Œ ์ˆ˜์—†๋Š” ์‘๋‹ต." - --#: plugins/copr.py:658 -+#: plugins/copr.py:660 - msgid "Interact with Playground repository." - msgstr "๋†€์ดํ„ฐ ์ €์žฅ์†Œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜์‹ญ์‹œ์˜ค." - --#: plugins/copr.py:664 -+#: plugins/copr.py:666 - msgid "Enabling a Playground repository." - msgstr "๋™์ž‘ ์ €์žฅ์†Œ์™€ ํ™œ์šฉํ•˜๊ธฐ." - --#: plugins/copr.py:665 -+#: plugins/copr.py:667 - msgid "Do you want to continue?" - msgstr "๊ณ„์†ํ•˜๊ธฐ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?" - --#: plugins/copr.py:709 -+#: plugins/copr.py:711 - msgid "Playground repositories successfully enabled." - msgstr "๋†€์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:712 -+#: plugins/copr.py:714 - msgid "Playground repositories successfully disabled." - msgstr "๋†€์ดํ„ฐ ์ €์žฅ์†Œ๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - --#: plugins/copr.py:716 -+#: plugins/copr.py:718 - msgid "Playground repositories successfully updated." - msgstr "๋†€์ดํ„ฐ ์ €์žฅ์†Œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - - #: plugins/debug.py:53 - msgid "dump information about installed rpm packages to file" --msgstr "์„ค์น˜๋œ rpm ๊พธ๋Ÿฌ๋ฏธ(package)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํŒŒ์ผ์— ๋คํ”„ํ•˜์‹ญ์‹œ์˜ค" -+msgstr "์„ค์น˜๋œ rpm ๊พธ๋Ÿฌ๋ฏธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํŒŒ์ผ์— ๋คํ”„ํ•˜์„ธ์š”" - - #: plugins/debug.py:67 - msgid "do not attempt to dump the repository contents." -@@ -535,7 +548,7 @@ msgstr "์ž‘์„ฑ๋œ ์ถœ๋ ฅ : %s" - - #: plugins/debug.py:172 - msgid "restore packages recorded in debug-dump file" --msgstr "๋””๋ฒ„๊ทธ ๋คํ”„ ํŒŒ์ผ์— ๊ธฐ๋ก ๋œ ๊พธ๋Ÿฌ๋ฏธ(package) ๋ณต์›" -+msgstr "๋””๋ฒ„๊ทธ ๋คํ”„ ํŒŒ์ผ์— ๊ธฐ๋ก ๋œ ๊พธ๋Ÿฌ๋ฏธ ๋ณต์›" - - #: plugins/debug.py:185 - msgid "output commands that would be run to stdout." -@@ -549,7 +562,9 @@ msgstr "๊ธฐ๋ก ๋œ ๊พธ๋Ÿฌ๋ฏธ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค." - msgid "" - "Ignore architecture and install missing packages matching the name, epoch, " - "version and release." --msgstr "๊ตฌ์กฐ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด๋ฆ„, ๊ธฐ์›, ๋ฒ„์ „๋ฐ ์ถœ์‹œ์™€ ์ผ์น˜ํ•˜๋Š” ๋ˆ„๋ฝ ๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค." -+msgstr "" -+"๊ตฌ์กฐ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด๋ฆ„, ๊ธฐ์›, ๋ฒ„์ „๋ฐ ์ถœ์‹œ์™€ ์ผ์น˜ํ•˜๋Š” ๋ˆ„๋ฝ ๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์„ค์น˜ํ•˜์‹ญ" -+"์‹œ์˜ค." - - #: plugins/debug.py:196 - msgid "limit to specified type" -@@ -559,7 +574,9 @@ msgstr "ํŠน์ • ์œ ํ˜•์œผ๋กœ ์ œํ•œ" - msgid "" - "Allow removing of install-only packages. Using this option may result in an " - "attempt to remove the running kernel." --msgstr "์„ค์น˜์ „์šฉ ๊พธ๋ฆฌ๋ฏธ ์ œ๊ฑฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ ํƒ์˜ ์‚ฌ์šฉ์€ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." -+msgstr "" -+"์„ค์น˜์ „์šฉ ๊พธ๋ฆฌ๋ฏธ ์ œ๊ฑฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ ํƒ์˜ ์‚ฌ์šฉ์€ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์„ ์ œ๊ฑฐ" -+"ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." - - #: plugins/debug.py:202 - msgid "name of dump file" -@@ -568,7 +585,7 @@ msgstr "๋คํ”„ ํŒŒ์ผ์˜ ์ด๋ฆ„" - #: plugins/debug.py:273 - #, python-format - msgid "Package %s is not available" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package) %s ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" -+msgstr "๊พธ๋Ÿฌ๋ฏธ %s๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/debug.py:283 - #, python-format -@@ -577,31 +594,32 @@ msgstr "์ž˜๋ชป๋œ dnf ๋””๋ฒ„๊ทธ ํŒŒ์ผ : %s" - - #: plugins/debuginfo-install.py:56 - msgid "install debuginfo packages" --msgstr "๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ(package) ์„ค์น˜" -+msgstr "๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ ์„ค์น˜" - - #: plugins/debuginfo-install.py:180 - #, python-format - msgid "" - "Could not find debuginfo package for the following available packages: %s" --msgstr "๋‹ค์Œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊พธ๋Ÿฌ๋ฏธ(package): %s ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" -+msgstr "" -+"๋‹ค์Œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: %s" - - #: plugins/debuginfo-install.py:185 - #, python-format - msgid "" - "Could not find debugsource package for the following available packages: %s" --msgstr "๋‹ค์Œ ๊ฐ€์šฉํ•œ ๊พธ๋Ÿฌ๋ฏธ(package): %s ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ž์› ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" -+msgstr "๋‹ค์Œ ๊ฐ€์šฉํ•œ ๊พธ๋Ÿฌ๋ฏธ: %s ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ž์› ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/debuginfo-install.py:190 - #, python-format - msgid "" - "Could not find debuginfo package for the following installed packages: %s" --msgstr "๋‹ค์Œ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ(package): %s ๋ฅผ ์œ„ํ•œ ๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" -+msgstr "๋‹ค์Œ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•œ ๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: %s" - - #: plugins/debuginfo-install.py:195 - #, python-format - msgid "" - "Could not find debugsource package for the following installed packages: %s" --msgstr "๋‹ค์Œ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ(package): %s ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ž์› ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" -+msgstr "๋‹ค์Œ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ: %s ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ž์› ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/debuginfo-install.py:199 - msgid "Unable to find a match" -@@ -621,15 +639,15 @@ msgstr "๋Œ€์‹  src.rpm์„ ๋‚ด๋ ค๋ฐ›์œผ์„ธ์š”" - - #: plugins/download.py:55 - msgid "download the -debuginfo package instead" --msgstr "๋Œ€์‹  -debuginfo ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ๋‚ด๋ ค๋ฐ›์•„์š”" -+msgstr "๋Œ€์‹  -debuginfo ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„์š”" - - #: plugins/download.py:57 - msgid "download the -debugsource package instead" --msgstr "๋Œ€์‹  -debuginfo ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ์„ธ์š”" -+msgstr "๋Œ€์‹  -debuginfo ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๋‚ด๋ ค๋ฐ›์œผ์„ธ์š”" - - #: plugins/download.py:60 - msgid "limit the query to packages of given architectures." --msgstr "์š”์ฒญ๋ฅผ ์ฃผ์–ด์ง„ ๊ตฌ์กฐ ๊พธ๋Ÿฌ๋ฏธ(package)๋กœ ์ œํ•œํ•˜์‹ญ์‹œ์˜ค." -+msgstr "์š”์ฒญ๋ฅผ ์ œ๊ณต๋œ ๊ตฌ์กฐ์˜ ๊พธ๋Ÿฌ๋ฏธ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค." - - #: plugins/download.py:62 plugins/modulesync.py:51 - msgid "resolve and download needed dependencies" -@@ -639,7 +657,9 @@ msgstr "ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ณ  ๋‚ด๋ ค๋ฐ›์•„์š”" - msgid "" - "when running with --resolve, download all dependencies (do not exclude " - "already installed ones)" --msgstr "--resolve ์™€ ํ•จ๊ป˜ ์‹คํ–‰ ํ•  ๋•Œ์—, ๋ชจ๋“  ์˜์กด์„ฑ์„ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค (์ด๋ฏธ ์„ค์น˜๋œ ๊ฒƒ๋“ค์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)" -+msgstr "" -+"--resolve ์™€ ํ•จ๊ป˜ ์‹คํ–‰ ํ•  ๋•Œ์—, ๋ชจ๋“  ์˜์กด์„ฑ์„ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค (์ด๋ฏธ ์„ค์น˜๋œ ๊ฒƒ๋“ค" -+"์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)" - - #: plugins/download.py:67 - msgid "" -@@ -661,17 +681,17 @@ msgstr "์—„๊ฒฉํ•œ ์„ค์ •์œผ๋กœ ์ธํ•ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค." - - #: plugins/download.py:261 - msgid "Error in resolve of packages:" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package) ํ•ด๊ฒฐ ์˜ค๋ฅ˜ :" -+msgstr "๊พธ๋Ÿฌ๋ฏธ ํ•ด๊ฒฐ ์˜ค๋ฅ˜ :" - - #: plugins/download.py:279 - #, python-format - msgid "No source rpm defined for %s" --msgstr "์†Œ์Šค rpm์ด ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. %s" -+msgstr "%s๋ฅผ ์œ„ํ•œ ์›์ฒœ rpm์ด ์ •์˜๋˜์ง€ ์•Š์Œ" - - #: plugins/download.py:296 plugins/download.py:309 - #, python-format - msgid "No package %s available." --msgstr "๊ฐ€์šฉํ•œ ๊พธ๋Ÿฌ๋ฏธ(package) %s๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค." -+msgstr "๊ฐ€์šฉํ•œ ๊พธ๋Ÿฌ๋ฏธ %s๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค." - - #: plugins/groups_manager.py:49 - msgid "Invalid group id" -@@ -687,7 +707,9 @@ msgstr "๋ฒˆ์—ญ๋œ ์ž๋ฃŒ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์Œ/๋น„์›Œ์ง" - - #: plugins/groups_manager.py:71 - msgid "Can't generate group id from '{}'. Please specify group id using --id." --msgstr "'{}' ์—์„œ ๊ทธ๋ฃน id๋ฅผ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •ํ•ด ์ฃผ์„ธ์š”." -+msgstr "" -+"'{}' ์—์„œ ๊ทธ๋ฃน id๋ฅผ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •ํ•ด ์ฃผ" -+"์„ธ์š”." - - #: plugins/groups_manager.py:79 - msgid "create and edit groups metadata file" -@@ -743,23 +765,23 @@ msgstr "๊ทธ๋ฃน ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ‘œ์‹œ" - - #: plugins/groups_manager.py:123 - msgid "add packages to the mandatory section" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ํ•„ ์ˆ˜ ๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค" -+msgstr "๊พธ๋Ÿฌ๋ฏธ๋ฅผ ํ•„์ˆ˜ ๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค" - - #: plugins/groups_manager.py:125 - msgid "add packages to the optional section" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์„ ํƒ ๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค" -+msgstr "๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์„ ํƒ ๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค" - - #: plugins/groups_manager.py:127 - msgid "remove packages from the group instead of adding them" --msgstr "์ถ”๊ฐ€ํ•˜๊ธฐ ๋Œ€์‹ ์— ๊ทธ๋ฃน์—์„œ ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค" -+msgstr "์ถ”๊ฐ€ํ•˜๊ธฐ ๋Œ€์‹ ์— ๊ทธ๋ฃน์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค" - - #: plugins/groups_manager.py:129 - msgid "include also direct dependencies for packages" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์œ„ํ•ด ์ง์ ‘์ ์ธ ์˜์กด์„ฑ์„ ํฌํ•จํ•œ๋‹ค" -+msgstr "๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•ด ์ง์ ‘์ ์ธ ์˜์กด์„ฑ์„ ํฌํ•จํ•œ๋‹ค" - - #: plugins/groups_manager.py:132 - msgid "package specification" --msgstr "๊พธ๋Ÿฌ๋ฏธ(package) ์‚ฌ์–‘" -+msgstr "๊พธ๋Ÿฌ๋ฏธ ์‚ฌ์–‘" - - #: plugins/groups_manager.py:156 - msgid "Can't edit group without specifying it (use --id or --name)" -@@ -779,17 +801,19 @@ msgstr "์ผ์น˜ํ•˜๋Š” ์ธ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค :{}" - - #: plugins/groups_manager.py:298 - msgid "Can't remove packages from non-existent group" --msgstr "์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์—์„œ ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" -+msgstr "์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/groups_manager.py:307 - msgid "" --"Group id '{}' generated from '{}' is duplicit. Please specify group id using" --" --id." --msgstr "'{}'์—์„œ ๋ฐœ์ƒํ•œ ๊ทธ๋ฃน id '{}'๋Š” ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •ํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค." -+"Group id '{}' generated from '{}' is duplicit. Please specify group id using " -+"--id." -+msgstr "" -+"'{}'์—์„œ ๋ฐœ์ƒํ•œ ๊ทธ๋ฃน id '{}'๋Š” ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •" -+"ํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค." - - #: plugins/leaves.py:32 - msgid "List installed packages not required by any other package" --msgstr "๋‹ค๋ฅธ ๊พธ๋Ÿฌ๋ฏธ(package)์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ(packages) ๋‚˜์—ด" -+msgstr "๋‹ค๋ฅธ ๊พธ๋Ÿฌ๋ฏธ์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ ๋‚˜์—ด" - - #: plugins/local.py:122 - msgid "Unable to create a directory '{}' due to '{}'" -@@ -822,67 +846,58 @@ msgstr "๊ธฐ๋ก ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘ ..." - #: plugins/modulesync.py:37 - msgid "" - "Download packages from modules and/or create a repository with modular data" --msgstr "" -+msgstr "๋ชจ๋“ˆ์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๋‚ด๋ ค ๋ฐ›๊ธฐ์™€/๋˜๋Š” ๋ชจ๋“ˆ์‹ ์ž๋ฃŒ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑ" - - #: plugins/modulesync.py:44 - msgid "MODULE" --msgstr "" -+msgstr "MODULE" - - #: plugins/modulesync.py:45 --#, fuzzy --#| msgid "packages to download" - msgid "modules to download" --msgstr "๋‚ด๋ ค๋ฐ›๊ธฐ ํ•  ๊พธ๋Ÿฌ๋ฏธ" -+msgstr "๋‚ด๋ ค๋ฐ›๊ธฐ ํ•  ๋ชจ๋“ˆ" - - #: plugins/modulesync.py:47 --#, fuzzy --#| msgid "Specify repositories to check" - msgid "enable repositories with source packages" --msgstr "์ ๊ฒ€ ํ•  ์ €์žฅ์†Œ๋ฅผ ์ง€์ •ํ•˜์„ธ์š”" -+msgstr "์›์ฒœ ๊พธ๋Ÿฌ๋ฏธ๋กœ ์ €์žฅ์†Œ ํ™œ์„ฑํ™”" - - #: plugins/modulesync.py:49 - msgid "enable repositories with debug-info and debug-source packages" --msgstr "" -+msgstr "debug-info์™€ debug-source ๊พธ๋Ÿฌ๋ฏธ๋กœ ์ €์žฅ์†Œ ํ™œ์„ฑํ™”" - - #: plugins/modulesync.py:53 --#, fuzzy --#| msgid "download all packages from remote repo" - msgid "download only packages from newest modules" --msgstr "์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ชจ๋“  ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ๋‚ด๋ ค๋ฐ›์•„์š”" -+msgstr "์ตœ์‹  ๋ชจ๋“ˆ์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋งŒ ๋‚ด๋ ค๋ฐ›๊ธฐ" - - #: plugins/modulesync.py:85 --#, fuzzy --#| msgid "No match for argument: {}" - msgid "Unable to find a match for argument: '{}'" - msgid_plural "Unable to find a match for arguments: '{}'" --msgstr[0] "์ผ์น˜ํ•˜๋Š” ์ธ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค :{}" -+msgstr[0] "์ธ์ˆ˜์™€ ์ผ์น˜ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: '{}'" - - #: plugins/modulesync.py:107 - msgid "" - "Creation of repository failed with return code {}. All downloaded content " - "was kept on the system" --msgstr "" -+msgstr "๋ฐ˜ํ™˜ ์ฝ”๋“œ {}๋กœ ์ธํ•˜์—ฌ ์ €์žฅ์†Œ ์ƒ์„ฑ์— ์‹คํŒจํ•จ. ๋ชจ๋‘ ๋‚ด๋ ค๋ฐ›๊ธฐ๋œ ๋‚ด์šฉ์€ " -+"์‹œ์Šคํ…œ์—์„œ ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค" - - #: plugins/modulesync.py:144 - #, python-brace-format - msgid "No match for artifact '{0}' from module '{1}'" --msgstr "" -+msgstr "๋ชจ๋“ˆ '{1}' ์—์„œ ์ธ์œ„ ๊ฒฐ๊ณผ๋ฌผ '{0}'๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/modulesync.py:162 - #, python-brace-format - msgid "No match for package name '{0}' in profile {1} from module {2}" --msgstr "" -+msgstr "๋ชจ๋“ˆ {2}์—์„œ ํ”„๋กœํŒŒ์ผ {1}์ธ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ '{0}'๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/modulesync.py:166 --#, fuzzy --#| msgid "No match for argument: {}" - msgid "No mach for argument '{}'" --msgstr "์ผ์น˜ํ•˜๋Š” ์ธ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค :{}" -+msgstr "์ธ์ˆ˜ '{}'์™€ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค" - - #. TODO(jmracek) Shell we end with an error or with RC 1? - #: plugins/modulesync.py:198 - msgid "Unable to satisfy require {}" --msgstr "" -+msgstr "ํ•„์š”์‚ฌํ•ญ {}๋ฅผ ๋งŒ์กฑ ํ•  ์ˆ˜ ์—†์Œ" - - #: plugins/needs_restarting.py:66 - #, python-brace-format -@@ -890,8 +905,8 @@ msgid "" - "No installed package found for package name \"{pkg}\" specified in needs-" - "restarting file \"{file}\"." - msgstr "" --"์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•œ ํŒŒ์ผ \"{file}\" ์— ์ง€์ •ํ•œ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ \"{pkg}\"์„ ์œ„ํ•˜์—ฌ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ์ฐพ์„ ์ˆ˜ " --"์—†์Šต๋‹ˆ๋‹ค." -+"์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•œ ํŒŒ์ผ \"{file}\" ์— ์ง€์ •ํ•œ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ \"{pkg}\"์„ ์œ„ํ•˜์—ฌ ์„ค์น˜" -+"๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." - - #: plugins/needs_restarting.py:220 - msgid "determine updated binaries that need restarting" -@@ -904,7 +919,8 @@ msgstr "์ด ์‚ฌ์šฉ์ž์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ๊ณ ๋ คํ•˜์„ธ์š”" - #: plugins/needs_restarting.py:227 - msgid "" - "only report whether a reboot is required (exit code 1) or not (exit code 0)" --msgstr "์žฌ์‹œ์ž‘์ด ์š”๊ตฌ๋˜๋Š” (exit code 1) ๋˜๋Š” ์•„๋‹Œ(exit code0) ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค" -+msgstr "" -+"์žฌ์‹œ์ž‘์ด ์š”๊ตฌ๋˜๋Š” (exit code 1) ๋˜๋Š” ์•„๋‹Œ(exit code0) ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค" - - #: plugins/needs_restarting.py:230 - msgid "only report affected systemd services" -@@ -956,25 +972,25 @@ msgstr "์—ฐ๊ฒฐ ํ›„ ๋™์ž‘: ์ž˜๋ชป๋œ ๋ช…๋ น \"%s\": %s" - msgid "Display a list of unresolved dependencies for repositories" - msgstr "์ €์žฅ์†Œ์— ๋Œ€ํ•œ ํ™•์ธ๋˜์ง€ ์•Š์€ ์ข…์†์„ฑ ๋ชฉ๋ก ํ‘œ์‹œ" - --#: plugins/repoclosure.py:66 --msgid "Repoclosure ended with unresolved dependencies." --msgstr "์žฌ๊ตฌ ์ถ•์€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์ข…์†์„ฑ์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." -+#: plugins/repoclosure.py:69 -+msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." -+msgstr "Repoclosure๋Š” {} ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์˜์กด์„ฑ ({})์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." - --#: plugins/repoclosure.py:153 -+#: plugins/repoclosure.py:159 - msgid "check packages of the given archs, can be specified multiple times" --msgstr "์ง€์ •๋œ ์•„์น˜์˜ ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค" -+msgstr "์ง€์ •๋œ ์•„์น˜์˜ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค" - --#: plugins/repoclosure.py:156 -+#: plugins/repoclosure.py:162 - msgid "Specify repositories to check" - msgstr "์ ๊ฒ€ ํ•  ์ €์žฅ์†Œ๋ฅผ ์ง€์ •ํ•˜์„ธ์š”" - --#: plugins/repoclosure.py:158 -+#: plugins/repoclosure.py:164 - msgid "Check only the newest packages in the repos" --msgstr "์ €์žฅ์†Œ ์ตœ์‹  ๊พธ๋Ÿฌ๋ฏธ(package)๋งŒ ํ™•์ธํ•˜์„ธ์š”" -+msgstr "์ €์žฅ์†Œ ์ตœ์‹  ๊พธ๋Ÿฌ๋ฏธ๋งŒ ํ™•์ธํ•˜์„ธ์š”" - --#: plugins/repoclosure.py:161 -+#: plugins/repoclosure.py:167 - msgid "Check closure for this package only" --msgstr "์ด ๊พธ๋Ÿฌ๋ฏธ(package)์˜ ํ์‡„๋งŒ ํ™•์ธํ•˜์„ธ์š”" -+msgstr "์ด ๊พธ๋Ÿฌ๋ฏธ์˜ ํ์‡„๋งŒ ํ™•์ธํ•˜์„ธ์š”" - - #: plugins/repodiff.py:45 - msgid "List differences between two sets of repositories" -@@ -992,7 +1008,9 @@ msgstr "์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ๋Š”, ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค - msgid "" - "Specify architectures to compare, can be used multiple times. By default, " - "only source rpms are compared." --msgstr "๋น„๊ต ํ•  ๊ตฌ์กฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ, ์ž์› rpms๋งŒ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค." -+msgstr "" -+"๋น„๊ต ํ•  ๊ตฌ์กฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ, ์ž์› rpms" -+"๋งŒ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค." - - #: plugins/repodiff.py:67 - msgid "Output additional data about the size of the changes." -@@ -1000,13 +1018,14 @@ msgstr "ํฌ๊ธฐ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ž๋ฃŒ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." - - #: plugins/repodiff.py:69 - msgid "" --"Compare packages also by arch. By default packages are compared just by " --"name." --msgstr "๊ตฌ์กฐ์— ์˜ํ•ด ๊พธ๋Ÿฌ๋ฏธ(package) ๋˜ํ•œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊พธ๋Ÿฌ๋ฏธ(package)๋Š” ์ด๋ฆ„์œผ๋กœ๋งŒ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค." -+"Compare packages also by arch. By default packages are compared just by name." -+msgstr "" -+"๊ตฌ์กฐ์— ์˜ํ•ด ๊พธ๋Ÿฌ๋ฏธ ๋˜ํ•œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊พธ๋Ÿฌ๋ฏธ๋Š” ์ด๋ฆ„์œผ๋กœ๋งŒ ๋น„๊ต๋ฉ๋‹ˆ" -+"๋‹ค." - - #: plugins/repodiff.py:72 - msgid "Output a simple one line message for modified packages." --msgstr "์ˆ˜์ •๋œ ๊พธ๋Ÿฌ๋ฏธ(pacakage)์ง€๋ฅผ ์œ„ํ•ด ๋‹จ์ˆœํžˆ ํ•œ ์ค„ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." -+msgstr "์ˆ˜์ •๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•ด ๋‹จ์ˆœํžˆ ํ•œ ์ค„ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." - - #: plugins/repodiff.py:74 - msgid "" -@@ -1024,11 +1043,11 @@ msgstr "ํฌ๊ธฐ ๋ณ€ํ™”: {} bytes" - - #: plugins/repodiff.py:184 - msgid "Added package : {}" --msgstr "์ถ”๊ฐ€๋œ ๊พธ๋Ÿฌ๋ฏธ(package) : {}" -+msgstr "์ถ”๊ฐ€๋œ ๊พธ๋Ÿฌ๋ฏธ : {}" - - #: plugins/repodiff.py:187 - msgid "Removed package: {}" --msgstr "์ œ๊ฑฐ๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "์ œ๊ฑฐ๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:190 - msgid "Obsoleted by : {}" -@@ -1040,7 +1059,7 @@ msgid "" - "Upgraded packages" - msgstr "" - "\n" --"ํ–ฅ์ƒ๋œ ๊พธ๋Ÿฌ๋ฏธ(package)" -+"ํ–ฅ์ƒ๋œ ๊พธ๋Ÿฌ๋ฏธ" - - #: plugins/repodiff.py:200 - msgid "" -@@ -1056,7 +1075,7 @@ msgid "" - "Modified packages" - msgstr "" - "\n" --"๋ณ€ํ˜•๋œ ๊พธ๋Ÿฌ๋ฏธ(package)" -+"๋ณ€ํ˜•๋œ ๊พธ๋Ÿฌ๋ฏธ" - - #: plugins/repodiff.py:212 - msgid "" -@@ -1068,35 +1087,35 @@ msgstr "" - - #: plugins/repodiff.py:213 - msgid "Added packages: {}" --msgstr "์ถ”๊ฐ€๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "์ถ”๊ฐ€๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:214 - msgid "Removed packages: {}" --msgstr "์ œ๊ฑฐ๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "์ œ๊ฑฐ๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:216 - msgid "Upgraded packages: {}" --msgstr "ํ–ฅ์ƒ๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "ํ–ฅ์ƒ๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:217 - msgid "Downgraded packages: {}" --msgstr "ํ•˜ํ–ฅ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" -+msgstr "ํ•˜ํ–ฅ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:219 - msgid "Modified packages: {}" --msgstr "๋ณ€ํ˜•๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "๋ณ€ํ˜•๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:222 - msgid "Size of added packages: {}" --msgstr "ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:223 - msgid "Size of removed packages: {}" --msgstr "ํฌ๊ธฐ๊ฐ€ ์ œ๊ฑฐ๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "ํฌ๊ธฐ๊ฐ€ ์ œ๊ฑฐ๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:225 - msgid "Size of modified packages: {}" --msgstr "ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ˜•๋œ ๊พธ๋Ÿฌ๋ฏธ(package): {}" -+msgstr "ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ˜•๋œ ๊พธ๋Ÿฌ๋ฏธ: {}" - - #: plugins/repodiff.py:228 - msgid "Size of upgraded packages: {}" -@@ -1112,7 +1131,7 @@ msgstr "ํฌ๊ธฐ ๋ณ€๊ฒฝ: {}" - - #: plugins/repograph.py:50 - msgid "Output a full package dependency graph in dot format" --msgstr "๋„ํŠธ ํ˜•์‹์˜ ์ „์ฒด ๊พธ๋Ÿฌ๋ฏธ(package) ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ" -+msgstr "๋„ํŠธ ํ˜•์‹์˜ ์ „์ฒด ๊พธ๋Ÿฌ๋ฏธ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ" - - #: plugins/repograph.py:110 - #, python-format -@@ -1121,7 +1140,7 @@ msgstr "์•„๋ฌด๊ฒƒ๋„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค : '%s'" - - #: plugins/repomanage.py:45 - msgid "Manage a directory of rpm packages" --msgstr "rpm ๊พธ๋Ÿฌ๋ฏธ(package) ๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ฆฌ" -+msgstr "rpm ๊พธ๋Ÿฌ๋ฏธ ๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ฆฌ" - - #: plugins/repomanage.py:59 - msgid "Pass either --old or --new, not both!" -@@ -1137,7 +1156,7 @@ msgstr "{}์„ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" - - #: plugins/repomanage.py:180 - msgid "Print the older packages" --msgstr "์ด์ „ ๊พธ๋Ÿฌ๋ฏธ(package) ์ธ์‡„" -+msgstr "์ด์ „ ๊พธ๋Ÿฌ๋ฏธ ์ธ์‡„" - - #: plugins/repomanage.py:182 - msgid "Print the newest packages" -@@ -1157,7 +1176,7 @@ msgstr "๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ" - - #: plugins/reposync.py:55 - msgid "download all packages from remote repo" --msgstr "์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ชจ๋“  ๊พธ๋Ÿฌ๋ฏธ(package)๋ฅผ ๋‚ด๋ ค๋ฐ›์•„์š”" -+msgstr "์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ชจ๋“  ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„์š”" - - #: plugins/reposync.py:64 - msgid "download only packages for this ARCH" -@@ -1181,9 +1200,11 @@ msgstr "๋˜ํ•œ comps.xml ๋‚ด๋ ค๋ฐ›๊ธฐ์™€ ์••์ถ• ํ’€๊ธฐ" - - #: plugins/reposync.py:75 - msgid "" --"where to store downloaded repository metadata. Defaults to the value of " --"--download-path." --msgstr "๋‚ด๋ ค๋ฐ›์€ ์ €์žฅ์†Œ ๋ฉ”ํƒ€๋ฐ์ดํƒ€๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์†Œ. --download-path์˜ ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค." -+"where to store downloaded repository metadata. Defaults to the value of --" -+"download-path." -+msgstr "" -+"๋‚ด๋ ค๋ฐ›์€ ์ €์žฅ์†Œ ๋ฉ”ํƒ€๋ฐ์ดํƒ€๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์†Œ. --download-path์˜ ๊ฐ’์œผ๋กœ ๊ธฐ" -+"๋ณธ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค." - - #: plugins/reposync.py:78 - msgid "download only newest packages per-repo" -@@ -1203,7 +1224,7 @@ msgstr "์„œ๋ฒ„์— ์žˆ๋Š” ํ•˜๋‚˜์—์„œ ๋กœ์ปฌํŒŒ์ผ์˜ ๋กœ์ปฌ ํƒ€์ž„์Šคํ…œํ”„ ์„ค - - #: plugins/reposync.py:87 - msgid "download only source packages" --msgstr "์›์ฒœ ๊พธ๋Ÿฌ๋ฏธ์—์„œ๋งŒ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค" -+msgstr "์›์ฒœ ๊พธ๋Ÿฌ๋ฏธ๋งŒ ๋‚ด๋ ค๋ฐ›๊ธฐ" - - #: plugins/reposync.py:89 - msgid "Just list urls of what would be downloaded, don't download" -@@ -1251,7 +1272,7 @@ msgstr "์ €์žฅ์†Œ์— ๋Œ€ํ•œ comps.xml %s ์ €์žฅ๋œ" - - #: plugins/show_leaves.py:54 - msgid "New leaves:" --msgstr "๋…๋ฆฝ ๊พธ๋Ÿฌ๋ฏธ(package):" -+msgstr "๋…๋ฆฝ ๊พธ๋Ÿฌ๋ฏธ:" - - #: plugins/versionlock.py:33 - #, python-format -@@ -1299,7 +1320,8 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" - msgstr "๋ฒ„์ „ ์ž ๊ธˆ ํ”Œ๋Ÿฌ๊ทธ์ธ: ์ ์šฉ๋œ ํŒŒ์ผ \"{} \"์—์„œ ์ž ๊ธˆ ๊ทœ์น™์˜ ์ˆ˜: {}" - - #: plugins/versionlock.py:44 --msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" -+msgid "" -+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" - msgstr "๋ฒ„์ „ ์ž ๊ธˆ ํ”Œ๋Ÿฌ๊ทธ์ธ: ์ ์šฉ๋œ ํŒŒ์ผ \"{} \"์—์„œ ์ œ์™ธ ๊ทœ์น™์˜ ์ˆ˜: {}" - - #: plugins/versionlock.py:45 -@@ -1316,7 +1338,9 @@ msgstr "๊พธ๋Ÿฌ๋ฏธ(package) ์‚ฌ์–‘์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ตฌ๋ฌธ ๋ถ„์„์„ - - #: plugins/versionlock.py:164 - msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." --msgstr "ํ•˜์œ„๋ช…๋ น '{}'๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— '์˜ˆ์™ธ' ํ•˜์œ„๋ช…๋ น๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค." -+msgstr "" -+"ํ•˜์œ„๋ช…๋ น '{}'๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— ํ•˜์œ„๋ช…๋ น 'exclude'๋ฅผ ์‚ฌ์šฉํ•ฉ" -+"๋‹ˆ๋‹ค." - - #~ msgid "" - #~ "This repository does not have any builds yet so you cannot enable it now." -diff --git a/po/zh_CN.po b/po/zh_CN.po -index 7959618..1db2a02 100644 ---- a/po/zh_CN.po -+++ b/po/zh_CN.po -@@ -5,21 +5,24 @@ - # cheng ye <18969068329@163.com>, 2017. #zanata - # Ludek Janda , 2018. #zanata, 2021. - # Hongqiao Chen , 2020. -+# Sundeep Anand , 2021. - # Qiyu Yan , 2021. -+# Transtats , 2022. - msgid "" - msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" - "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2022-01-11 01:55+0000\n" --"PO-Revision-Date: 2021-09-11 10:04+0000\n" --"Last-Translator: Ludek Janda \n" --"Language-Team: Chinese (Simplified) \n" -+"POT-Creation-Date: 2022-08-31 13:39+0200\n" -+"PO-Revision-Date: 2022-09-07 14:19+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.8\n" -+"X-Generator: Weblate 4.14\n" - - #: plugins/builddep.py:45 - msgid "[PACKAGE|PACKAGE.spec]" -@@ -59,8 +62,7 @@ msgid "Some packages could not be found." - msgstr "ๆŸไบ›่ฝฏไปถๅŒ…ๆ— ๆณ•ๆ‰พๅˆฐใ€‚" - - #. No provides, no files --#. Richdeps can have no matches but it could be correct (solver must decide --#. later) -+#. Richdeps can have no matches but it could be correct (solver must decide later) - #: plugins/builddep.py:173 - #, python-format - msgid "No matching package to install: '%s'" -@@ -80,7 +82,7 @@ msgstr "ๆฒกๆœ‰ๆปก่ถณๅ…จ้ƒจ็š„ไพ่ต–ๅ…ณ็ณป" - msgid "Failed to open: '%s', not a valid spec file: %s" - msgstr "ๆ‰“ๅผ€ๅคฑ่ดฅ๏ผš '%s'๏ผŒ ไธๆ˜ฏๆœ‰ๆ•ˆ็š„ spec ๆ–‡ไปถ๏ผš %s" - --#: plugins/builddep.py:230 plugins/repoclosure.py:118 -+#: plugins/builddep.py:230 plugins/repoclosure.py:124 - #, python-format - msgid "no package matched: %s" - msgstr "ๆ— ๅŒน้…่ฝฏไปถๅŒ…๏ผš %s" -@@ -98,7 +100,8 @@ msgstr "ๆŸฅ็œ‹่ฝฏไปถๅŒ…็š„ๆ”นๅ˜ๆ—ฅๅฟ—ๆ•ฐๆฎ" - msgid "" - "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " - "is recommended." --msgstr "ๆ˜พ็คบ่‡ช DATE ๅผ€ๅง‹็š„ๆ”นๅ˜ๆ—ฅๅฟ—ไฟกๆฏใ€‚ไธบไบ†้ฟๅ…ๆททๆท†๏ผŒๆŽจ่ไฝฟ็”จ YYYY-MM-DD ๆ ผๅผใ€‚" -+msgstr "" -+"ๆ˜พ็คบ่‡ช DATE ๅผ€ๅง‹็š„ๆ”นๅ˜ๆ—ฅๅฟ—ไฟกๆฏใ€‚ไธบไบ†้ฟๅ…ๆททๆท†๏ผŒๆŽจ่ไฝฟ็”จ YYYY-MM-DD ๆ ผๅผใ€‚" - - #: plugins/changelog.py:55 - msgid "show given number of changelog entries per package" -@@ -182,8 +185,8 @@ msgid "" - "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " - "manager. Use --set-enabled/--set-disabled instead." - msgstr "" --"่ญฆๅ‘Š๏ผš--enablerepo/--disablerepo ๅ‚ๆ•ฐๅฏนไบŽ config manager ๆฒกๆœ‰ไฝœ็”จใ€‚่ฏทไฝฟ็”จ --set-" --"enabled/--set-disabledใ€‚" -+"่ญฆๅ‘Š๏ผš--enablerepo/--disablerepo ๅ‚ๆ•ฐๅฏนไบŽ config manager ๆฒกๆœ‰ไฝœ็”จใ€‚่ฏทไฝฟ็”จ --" -+"set-enabled/--set-disabledใ€‚" - - #: plugins/config_manager.py:132 - #, python-format -@@ -283,44 +286,45 @@ msgstr "ๆŒ‰็…ง็”จๆˆท NAME ๅˆ—ๅ‡บๅฏ็”จ็š„ Copr ไป“ๅบ“" - msgid "Specify an instance of Copr to work with" - msgstr "ๆŒ‡ๅฎš้œ€่ฆไฝฟ็”จ็š„ Copr ๅฎžไพ‹" - --#: plugins/copr.py:164 plugins/copr.py:232 plugins/copr.py:259 -+#: plugins/copr.py:164 plugins/copr.py:236 plugins/copr.py:263 - msgid "Error: " - msgstr "้”™่ฏฏ๏ผš " - - #: plugins/copr.py:165 - msgid "" --"specify Copr hub either with `--hub` or using " --"`copr_hub/copr_username/copr_projectname` format" -+"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" -+"copr_projectname` format" - msgstr "" --"ไฝฟ็”จ `--hub` ๆˆ–ไฝฟ็”จ `copr_hub/copr_username/copr_projectname` ๆ ผๅผๆŒ‡ๅฎš Copr hub" -+"ไฝฟ็”จ `--hub` ๆˆ–ไฝฟ็”จ `copr_hub/copr_username/copr_projectname` ๆ ผๅผๆŒ‡ๅฎš Copr " -+"hub" - - #: plugins/copr.py:168 - msgid "multiple hubs specified" - msgstr "ๆŒ‡ๅฎšๅคšไธช hub" - --#: plugins/copr.py:233 plugins/copr.py:237 -+#: plugins/copr.py:237 plugins/copr.py:241 - msgid "exactly two additional parameters to copr command are required" - msgstr "Copr ๅ‘ฝไปค่ฆๆฑ‚ๆœ‰ไธ”ไป…ๆœ‰ไธคไธช้ขๅค–ๅ‚ๆ•ฐ" - --#: plugins/copr.py:242 -+#: plugins/copr.py:246 - msgid "Too many arguments." - msgstr "ๅ‚ๆ•ฐ่ฟ‡ๅคšใ€‚" - --#: plugins/copr.py:245 -+#: plugins/copr.py:249 - msgid "" - "Bad format of optional chroot. The format is distribution-version-" - "architecture." - msgstr "ๅฏ้€‰ chroot ็š„้”™่ฏฏๆ ผๅผใ€‚ๆ ผๅผไธบ distribution-version-architectureใ€‚" - --#: plugins/copr.py:260 -+#: plugins/copr.py:264 - msgid "use format `copr_username/copr_projectname` to reference copr project" - msgstr "ไฝฟ็”จๆ ผๅผ `copr_username/copr_projectname` ๆฅๅผ•็”จ Copr ้กน็›ฎ" - --#: plugins/copr.py:262 -+#: plugins/copr.py:266 - msgid "bad copr project format" - msgstr "้”™่ฏฏ็š„ Copr ้กน็›ฎๆ ผๅผ" - --#: plugins/copr.py:276 -+#: plugins/copr.py:280 - msgid "" - "\n" - "Enabling a Copr repository. Please note that this repository is not part\n" -@@ -328,7 +332,8 @@ msgid "" - "\n" - "The Fedora Project does not exercise any power over the contents of\n" - "this repository beyond the rules outlined in the Copr FAQ at\n" --",\n" -+",\n" - "and packages are not held to any quality or security level.\n" - "\n" - "Please do not file bug reports about these packages in Fedora\n" -@@ -339,95 +344,94 @@ msgstr "" - "ไธๆ˜ฏไธปๅ‘่กŒ็‰ˆๆœฌ็š„ไธ€้ƒจๅˆ†๏ผŒ่ดจ้‡ๅฏ่ƒฝไผšๆœ‰ๆ‰€ไธๅŒใ€‚\n" - "\n" - "Fedora ้กน็›ฎๅฏนๅ…ถไธ่กŒไฝฟ้™คไบ†ไบŽ Copr ๅธธ่ง้—ฎ้ข˜\n" --"\n" -+"\n" - "ไธญๆ‰€ๆๅ‡บ็š„่ง„ๅˆ™ๅค–็š„ไปปไฝ•ๆƒๅŠ›๏ผŒๅนถไธ”ๅ…ถ่ฝฏไปถๅŒ…ไธไฟ่ฏ่พพๅˆฐ็‰นๅฎš่ดจ้‡\n" - "ๅ’Œๅฎ‰ๅ…จๆฐดๅ‡†ใ€‚\n" - "\n" - "่ฏทไธ่ฆๅœจ Fedora Bugzilla ไธญๆŠฅๅ‘Š่ฟ™ไบ›่ฝฏไปถๅŒ…ไธญๅ‡บ็Žฐ็š„\n" - "้—ฎ้ข˜ใ€‚ๅฝ“ๅ‡บ็Žฐ้—ฎ้ข˜ๆ—ถ๏ผŒ่ฏท่”็ณปไป“ๅบ“็š„ๆ‰€ๆœ‰่€…ใ€‚\n" - --#: plugins/copr.py:293 -+#: plugins/copr.py:297 - msgid "Repository successfully enabled." - msgstr "ๅฏ็”จ่ฝฏไปถไป“ๅบ“ๆˆๅŠŸใ€‚" - --#: plugins/copr.py:298 -+#: plugins/copr.py:302 - msgid "Repository successfully disabled." - msgstr "็ฆ็”จ่ฝฏไปถไป“ๅบ“ๆˆๅŠŸใ€‚" - --#: plugins/copr.py:302 -+#: plugins/copr.py:306 - msgid "Repository successfully removed." - msgstr "่ฝฏไปถไป“ๅบ“ๅทฒๆˆๅŠŸๅˆ ้™คใ€‚" - --#: plugins/copr.py:306 plugins/copr.py:719 -+#: plugins/copr.py:310 plugins/copr.py:721 - msgid "Unknown subcommand {}." - msgstr "ๆœช็Ÿฅ็š„ๅญๅ‘ฝไปค {}ใ€‚" - --#: plugins/copr.py:363 -+#: plugins/copr.py:367 - msgid "" --"* These coprs have repo file with an old format that contains no information" --" about Copr hub - the default one was assumed. Re-enable the project to fix " -+"* These coprs have repo file with an old format that contains no information " -+"about Copr hub - the default one was assumed. Re-enable the project to fix " - "this." - msgstr "" --"* ่ฟ™ไบ› coprs ๆœ‰ไฝฟ็”จๆ—งๆ ผๅผ็š„ repo ๆ–‡ไปถ๏ผŒๅฎƒไปฌๆฒกๆœ‰ๅŒ…ๆ‹ฌ Copr hub ็š„ไฟกๆฏ - ๅ‡่ฎพไฝฟ็”จ้ป˜่ฎคๅ€ผใ€‚้‡ๆ–ฐๅฏ็”จ้กน็›ฎๆฅ่งฃๅ†ณ่ฟ™ไธช้—ฎ้ข˜ใ€‚" -+"* ่ฟ™ไบ› coprs ๆœ‰ไฝฟ็”จๆ—งๆ ผๅผ็š„ repo ๆ–‡ไปถ๏ผŒๅฎƒไปฌๆฒกๆœ‰ๅŒ…ๆ‹ฌ Copr hub ็š„ไฟกๆฏ - ๅ‡่ฎพไฝฟ" -+"็”จ้ป˜่ฎคๅ€ผใ€‚้‡ๆ–ฐๅฏ็”จ้กน็›ฎๆฅ่งฃๅ†ณ่ฟ™ไธช้—ฎ้ข˜ใ€‚" - --#: plugins/copr.py:376 -+#: plugins/copr.py:380 - msgid "Can't parse repositories for username '{}'." - msgstr "ๆ— ๆณ•ไธบ็”จๆˆทๅ username '{}' ่งฃๆžไป“ๅบ“ใ€‚" - --#: plugins/copr.py:379 -+#: plugins/copr.py:383 - msgid "List of {} coprs" - msgstr "{} Coprs ๅˆ—่กจ" - --#: plugins/copr.py:384 -+#: plugins/copr.py:388 - msgid "No description given" - msgstr "ๆฒกๆœ‰็ป™ๅ‡บๆ่ฟฐ" - --#: plugins/copr.py:396 -+#: plugins/copr.py:400 - msgid "Can't parse search for '{}'." - msgstr "ๆ— ๆณ•่งฃๆž้’ˆๅฏน '{}' ็š„ๆœ็ดขใ€‚" - --#: plugins/copr.py:399 -+#: plugins/copr.py:403 - msgid "Matched: {}" - msgstr "ๅŒน้…๏ผš{}" - --#: plugins/copr.py:404 -+#: plugins/copr.py:408 - msgid "No description given." - msgstr "ๆฒกๆœ‰็ป™ๅ‡บๆ่ฟฐใ€‚" - --#: plugins/copr.py:426 -+#: plugins/copr.py:430 - msgid "Safe and good answer. Exiting." - msgstr "ๅฎ‰ๅ…จๅŠๆ˜Žๆ™บ็š„็ญ”ๆกˆใ€‚้€€ๅ‡บใ€‚" - --#: plugins/copr.py:433 -+#: plugins/copr.py:437 - msgid "This command has to be run under the root user." - msgstr "่ฏฅๅ‘ฝไปคๅฟ…้กปไปฅ root ็”จๆˆท่ฟ่กŒใ€‚" - --#: plugins/copr.py:485 -+#: plugins/copr.py:487 - #, python-brace-format - msgid "Request to {0} failed: {1} - {2}" --msgstr "" -+msgstr "่ฏทๆฑ‚ {0} ๅคฑ่ดฅ๏ผš{1} - {2}" - --#: plugins/copr.py:487 -+#: plugins/copr.py:489 - msgid "It wasn't possible to enable this project.\n" --msgstr "" -+msgstr "ๆ— ๆณ•ๅฏ็”จๆญค้กน็›ฎใ€‚\n" - --#: plugins/copr.py:492 --#, fuzzy, python-brace-format --#| msgid "Such repository does not exist." -+#: plugins/copr.py:494 -+#, python-brace-format - msgid "Repository '{0}' does not exist in project '{1}'." --msgstr "่ฏฅ่ฝฏไปถไป“ๅบ“ไธๅญ˜ๅœจใ€‚" -+msgstr "ไป“ๅบ“ '{0}' ๅœจ้กน็›ฎ '{1}' ไธญไธๅญ˜ๅœจใ€‚" - --#: plugins/copr.py:495 --#, fuzzy --#| msgid "List enabled Copr repositories" -+#: plugins/copr.py:497 - msgid "" - "\n" - "Available repositories: " - msgstr "" - "\n" --"ๅˆ—ๅ‡บๅฏๅŠจ็š„ Copr ไป“ๅบ“ " -+"ๅฏ็”จ่ฝฏไปถไป“ๅบ“๏ผš " - --#: plugins/copr.py:497 -+#: plugins/copr.py:499 - #, python-brace-format - msgid "" - "\n" -@@ -436,20 +440,23 @@ msgid "" - " 'dnf copr enable {0} '\n" - "But note that the installed repo file will likely need a manual modification." - msgstr "" -+"\n" -+"\n" -+"ๅฆ‚ๆžœ้œ€่ฆๅฏ็”จไธ€ไธช้ž้ป˜่ฎค็š„ไป“ๅบ“๏ผŒไฝฟ็”จไปฅไธ‹ๅ‘ฝไปค :\n" -+" 'dnf copr enable {0} '\n" -+"ไฝ†่ฏทๆณจๆ„๏ผŒๅฎ‰่ฃ…็š„ repo ๆ–‡ไปถๅฐ†ๆฅๅฏ่ƒฝ้œ€่ฆๆ‰‹ๅŠจไฟฎๆ”นใ€‚" - --#: plugins/copr.py:503 --#, fuzzy, python-brace-format --#| msgid "Such repository does not exist." -+#: plugins/copr.py:505 -+#, python-brace-format - msgid "Project {0} does not exist." --msgstr "่ฏฅ่ฝฏไปถไป“ๅบ“ไธๅญ˜ๅœจใ€‚" -+msgstr "้กน็›ฎ {0} ไธๅญ˜ๅœจใ€‚" - --#: plugins/copr.py:506 --#, fuzzy, python-brace-format --#| msgid "Failed to remove copr repo {0}/{1}/{2}" -+#: plugins/copr.py:508 -+#, python-brace-format - msgid "Failed to connect to {0}: {1}" --msgstr "ๅˆ ้™ค copr ไป“ๅบ“ {0}/{1}/{2} ๅคฑ่ดฅ" -+msgstr "่ฟžๆŽฅๅˆฐ {0} ๅคฑ่ดฅ๏ผš{1}" - --#: plugins/copr.py:553 -+#: plugins/copr.py:555 - #, python-brace-format - msgid "" - "Maintainer of the enabled Copr repository decided to make\n" -@@ -478,44 +485,44 @@ msgstr "" - "\n" - "่ฟ™ไบ›ไป“ๅบ“ๅทฒ่ขซ่‡ชๅŠจๅฏ็”จใ€‚" - --#: plugins/copr.py:574 -+#: plugins/copr.py:576 - msgid "Do you want to keep them enabled?" - msgstr "ๆ‚จ้œ€่ฆไฟๆŒๅฎƒไปฌ่ขซๅฏ็”จๅ—๏ผŸ" - --#: plugins/copr.py:607 -+#: plugins/copr.py:609 - #, python-brace-format - msgid "Failed to remove copr repo {0}/{1}/{2}" --msgstr "ๅˆ ้™ค copr ไป“ๅบ“ {0}/{1}/{2} ๅคฑ่ดฅ" -+msgstr "ๆ— ๆณ•ๅˆ ้™ค copr ๅญ˜ๅ‚จๅบ“ {0}/{1}/{2}" - --#: plugins/copr.py:618 -+#: plugins/copr.py:620 - msgid "Failed to disable copr repo {}/{}" --msgstr "ๆ— ๆณ•็ฆ็”จ Copr ่ฝฏไปถไป“ๅบ“ {}/{}" -+msgstr "ๆ— ๆณ•็ฆ็”จ Copr ๅญ˜ๅ‚จๅบ“ {}/{}" - --#: plugins/copr.py:636 plugins/copr.py:673 -+#: plugins/copr.py:638 plugins/copr.py:675 - msgid "Unknown response from server." - msgstr "ๆฅ่‡ชๆœๅŠกๅ™จ็š„ๆœช็Ÿฅๅ“ๅบ”ใ€‚" - --#: plugins/copr.py:658 -+#: plugins/copr.py:660 - msgid "Interact with Playground repository." - msgstr "ไธŽ Playground ไป“ๅบ“ไบคไบ’ใ€‚" - --#: plugins/copr.py:664 -+#: plugins/copr.py:666 - msgid "Enabling a Playground repository." - msgstr "ๅฏ็”จ Playground ไป“ๅบ“ใ€‚" - --#: plugins/copr.py:665 -+#: plugins/copr.py:667 - msgid "Do you want to continue?" - msgstr "ๆ‚จๅธŒๆœ›็ปง็ปญๅ—๏ผŸ" - --#: plugins/copr.py:709 -+#: plugins/copr.py:711 - msgid "Playground repositories successfully enabled." - msgstr "ๅฏ็”จ Playground ไป“ๅบ“ๆˆๅŠŸใ€‚" - --#: plugins/copr.py:712 -+#: plugins/copr.py:714 - msgid "Playground repositories successfully disabled." - msgstr "็ฆ็”จ Playground ไป“ๅบ“ๆˆๅŠŸใ€‚" - --#: plugins/copr.py:716 -+#: plugins/copr.py:718 - msgid "Playground repositories successfully updated." - msgstr "ๆ›ดๆ–ฐ Playground ไป“ๅบ“ๆˆๅŠŸใ€‚" - -@@ -562,7 +569,9 @@ msgstr "้™ๅˆถๅˆฐๆŒ‡ๅฎš็ฑปๅž‹" - msgid "" - "Allow removing of install-only packages. Using this option may result in an " - "attempt to remove the running kernel." --msgstr "ๅ…่ฎธๅˆ ้™คไป…ๅฎ‰่ฃ…(install-only)็š„่ฝฏไปถๅŒ…ใ€‚ไฝฟ็”จ่ฟ™ไธช้€‰้กนๅฏ่ƒฝไผšๅฏผ่‡ดๅฐ่ฏ•ๅˆ ้™คๆญฃๅœจ่ฟ่กŒ็š„ๅ†…ๆ ธใ€‚" -+msgstr "" -+"ๅ…่ฎธๅˆ ้™คไป…ๅฎ‰่ฃ…(install-only)็š„่ฝฏไปถๅŒ…ใ€‚ไฝฟ็”จ่ฟ™ไธช้€‰้กนๅฏ่ƒฝไผšๅฏผ่‡ดๅฐ่ฏ•ๅˆ ้™คๆญฃๅœจ่ฟ่กŒ" -+"็š„ๅ†…ๆ ธใ€‚" - - #: plugins/debug.py:202 - msgid "name of dump file" -@@ -766,7 +775,7 @@ msgstr "่ฝฏไปถๅŒ…่ง„ๆ ผ" - - #: plugins/groups_manager.py:156 - msgid "Can't edit group without specifying it (use --id or --name)" --msgstr "ๆฒกๆœ‰ๆŒ‡ๅฎš็ป„๏ผˆไฝฟ็”จ --id ๆˆ– --name๏ผ‰ๅฐฑๆ— ๆณ•็ผ–่พ‘็ป„" -+msgstr "ๆฒกๆœ‰ๆŒ‡ๅฎšๅฎƒ๏ผˆไฝฟ็”จ --id ๆˆ– --name๏ผ‰ๅฐฑไธ่ƒฝ็ผ–่พ‘็ป„" - - #: plugins/groups_manager.py:190 - msgid "Can't load file \"{}\": {}" -@@ -786,8 +795,8 @@ msgstr "ๆ— ๆณ•ไปŽไธๅญ˜ๅœจ็š„็ป„ไธญๅˆ ้™ค่ฝฏไปถๅŒ…" - - #: plugins/groups_manager.py:307 - msgid "" --"Group id '{}' generated from '{}' is duplicit. Please specify group id using" --" --id." -+"Group id '{}' generated from '{}' is duplicit. Please specify group id using " -+"--id." - msgstr "ไปŽ '{}' ็”Ÿๆˆ็š„็ป„ id '{}' ๆ˜ฏๆ˜พๅผ็š„ใ€‚่ฏทไฝฟ็”จ --id ๆŒ‡ๅฎš็ป„ IDใ€‚" - - #: plugins/leaves.py:32 -@@ -825,74 +834,65 @@ msgstr "ๆญฃๅœจ่ฟ็งปๅŽ†ๅฒๆ•ฐๆฎโ€ฆ" - #: plugins/modulesync.py:37 - msgid "" - "Download packages from modules and/or create a repository with modular data" --msgstr "" -+msgstr "ไปŽๆจกๅ—ไธ‹่ฝฝ่ฝฏไปถๅŒ…ๅ’Œ/ๆˆ–ๅˆ›ๅปบๅธฆๆœ‰ๆจกๅ—ๅŒ–ๆ•ฐๆฎ็š„ๅญ˜ๅ‚จๅบ“" - - #: plugins/modulesync.py:44 - msgid "MODULE" --msgstr "" -+msgstr "ๆจกๅ—" - - #: plugins/modulesync.py:45 --#, fuzzy --#| msgid "packages to download" - msgid "modules to download" --msgstr "ๅฐ†่ฆไธ‹่ฝฝ็š„่ฝฏไปถๅŒ…" -+msgstr "่ฆไธ‹่ฝฝ็š„ๆจกๅ—" - - #: plugins/modulesync.py:47 --#, fuzzy --#| msgid "Specify repositories to check" - msgid "enable repositories with source packages" --msgstr "ๆŒ‡ๅฎš่ฆๆฃ€ๆŸฅ็š„่ฝฏไปถไป“ๅบ“" -+msgstr "ๅฏ็”จๅธฆๆœ‰ๆบ่ฝฏไปถๅŒ…็š„่ฝฏไปถไป“ๅบ“" - - #: plugins/modulesync.py:49 - msgid "enable repositories with debug-info and debug-source packages" --msgstr "" -+msgstr "ๅฏ็”จๅธฆๆœ‰ debug-info ๅ’Œ debug-source ่ฝฏไปถๅŒ…็š„่ฝฏไปถไป“ๅบ“" - - #: plugins/modulesync.py:53 --#, fuzzy --#| msgid "download all packages from remote repo" - msgid "download only packages from newest modules" --msgstr "ไธ‹่ฝฝ่ฟœ็จ‹ไป“ๅบ“ไธญ็š„ๅ…จ้ƒจ่ฝฏไปถๅŒ…" -+msgstr "ๅชไปŽๆœ€ๆ–ฐ็š„ๆจกๅ—ไธญไธ‹่ฝฝ่ฝฏไปถๅŒ…" - - #: plugins/modulesync.py:85 --#, fuzzy --#| msgid "No match for argument: {}" - msgid "Unable to find a match for argument: '{}'" - msgid_plural "Unable to find a match for arguments: '{}'" --msgstr[0] "ๆœชๆ‰พๅˆฐๅŒน้…็š„ๅ‚ๆ•ฐ๏ผš {}" -+msgstr[0] "ๆ‰พไธๅˆฐไธŽๅ‚ๆ•ฐๅŒน้…็š„้กน๏ผš'{}'" - - #: plugins/modulesync.py:107 - msgid "" - "Creation of repository failed with return code {}. All downloaded content " - "was kept on the system" --msgstr "" -+msgstr "ๅˆ›ๅปบๅญ˜ๅ‚จๅบ“ไผšๅคฑ่ดฅ๏ผŒๅนถๆ˜พ็คบ่ฟ”ๅ›ž็  {}ใ€‚ๆ‰€ๆœ‰ไธ‹่ฝฝ็š„ๅ†…ๅฎน้ƒฝไฟๅญ˜ๅœจ็ณป็ปŸไธŠ" - - #: plugins/modulesync.py:144 - #, python-brace-format - msgid "No match for artifact '{0}' from module '{1}'" --msgstr "" -+msgstr "ๆฒกๆœ‰ไธŽๆจกๅ— '{1}' ็š„ๅทฅไปถ '{0}' ็›ธๅŒน้…็š„้กน" - - #: plugins/modulesync.py:162 - #, python-brace-format - msgid "No match for package name '{0}' in profile {1} from module {2}" --msgstr "" -+msgstr "ๆฒกๆœ‰ไธŽๆจกๅ— {2} ไธญ้…็ฝฎๆ–‡ไปถ {1} ็š„่ฝฏไปถๅŒ…ๅ็งฐ '{0}' ็›ธๅŒน้…็š„้กน" - - #: plugins/modulesync.py:166 --#, fuzzy --#| msgid "No match for argument: {}" - msgid "No mach for argument '{}'" --msgstr "ๆœชๆ‰พๅˆฐๅŒน้…็š„ๅ‚ๆ•ฐ๏ผš {}" -+msgstr "ๆฒกๆœ‰ไธŽๅ‚ๆ•ฐ '{}' ็›ธๅŒน้…็š„้กน" - - #. TODO(jmracek) Shell we end with an error or with RC 1? - #: plugins/modulesync.py:198 - msgid "Unable to satisfy require {}" --msgstr "" -+msgstr "ๆ— ๆณ•ๆปก่ถณ่ฆๆฑ‚ {}" - - #: plugins/needs_restarting.py:66 - #, python-brace-format - msgid "" - "No installed package found for package name \"{pkg}\" specified in needs-" - "restarting file \"{file}\"." --msgstr "ๆฒกๆœ‰ไธบๅœจ้œ€่ฆ้‡ๆ–ฐๅฏๅŠจๆ–‡ไปถ \"{file}\" ไธญๆŒ‡ๅฎš็š„ๅไธบ \"{pkg}\" ็š„่ฝฏไปถๅŒ…ๆ‰พๅˆฐๅฎ‰่ฃ…็š„่ฝฏไปถๅŒ…ใ€‚" -+msgstr "ๆœชๆ‰พๅˆฐๅœจ้œ€่ฆ้‡ๆ–ฐๅฏๅŠจ็š„ๆ–‡ไปถ \"{file}\" ไธญๆŒ‡ๅฎš็š„่ฝฏไปถๅŒ…ๅไธบ \"{pkg}\" " -+"็š„ๅทฒๅฎ‰่ฃ…็š„่ฝฏไปถๅŒ…ใ€‚" - - #: plugins/needs_restarting.py:220 - msgid "determine updated binaries that need restarting" -@@ -957,23 +957,23 @@ msgstr "ไบ‹็‰ฉๅŽ็š„ๆ“ไฝœ : ๆ— ๆ•ˆ็š„ๅ‘ฝไปค \"%s\": %s" - msgid "Display a list of unresolved dependencies for repositories" - msgstr "ๆ˜พ็คบไป“ๅบ“ไธญๆœช่ขซ่งฃๅ†ณ็š„ไพ่ต–ๅ…ณ็ณป็š„ๅˆ—่กจ" - --#: plugins/repoclosure.py:66 --msgid "Repoclosure ended with unresolved dependencies." --msgstr "Repoclosure ้€€ๅ‡บๆ—ถ่ฟ˜ๆœ‰ไพ่ต–ๅ…ณ็ณปๆœช่งฃๅ†ณใ€‚" -+#: plugins/repoclosure.py:69 -+msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." -+msgstr "Repoclosure ้€€ๅ‡บๆ—ถ่ฟ˜ๆœ‰ๆœช่งฃๅ†ณ็š„ไพ่ต–้กน๏ผˆ{}๏ผ‰๏ผŒ้’ˆๅฏน {} ่ฝฏไปถๅŒ…ใ€‚" - --#: plugins/repoclosure.py:153 -+#: plugins/repoclosure.py:159 - msgid "check packages of the given archs, can be specified multiple times" - msgstr "ๆฃ€ๆŸฅ็ป™ๅฎšๆžถๆž„็š„่ฝฏไปถๅŒ…๏ผŒๅฏไปฅ่ขซๆŒ‡ๅฎšๅคšๆฌก" - --#: plugins/repoclosure.py:156 -+#: plugins/repoclosure.py:162 - msgid "Specify repositories to check" - msgstr "ๆŒ‡ๅฎš่ฆๆฃ€ๆŸฅ็š„่ฝฏไปถไป“ๅบ“" - --#: plugins/repoclosure.py:158 -+#: plugins/repoclosure.py:164 - msgid "Check only the newest packages in the repos" - msgstr "ๅชๆฃ€ๆŸฅไป“ๅบ“ไธญๆœ€ๆ–ฐ็š„่ฝฏไปถๅŒ…" - --#: plugins/repoclosure.py:161 -+#: plugins/repoclosure.py:167 - msgid "Check closure for this package only" - msgstr "ไป…ไธบ่ฏฅ่ฝฏไปถๅŒ…ๆฃ€ๆŸฅไพ่ต–้—ญๅˆๆ€ง" - -@@ -1001,8 +1001,7 @@ msgstr "่พ“ๅ‡บๅ…ณไบŽๆ”นๅ˜ๅคงๅฐ็š„้ขๅค–ๆ•ฐๆฎใ€‚" - - #: plugins/repodiff.py:69 - msgid "" --"Compare packages also by arch. By default packages are compared just by " --"name." -+"Compare packages also by arch. By default packages are compared just by name." - msgstr "ๅŒๆ—ถๆŒ‰ๆžถๆž„ๆฏ”่พƒ่ฝฏไปถๅŒ…ใ€‚ๅœจ้ป˜่ฎคๆƒ…ๅ†ตไธ‹ๅชๆŒ‰ๅ็งฐๆฏ”่พƒ่ฝฏไปถๅŒ…ใ€‚" - - #: plugins/repodiff.py:72 -@@ -1126,7 +1125,7 @@ msgstr "็ฎก็† RPM ่ฝฏไปถๅŒ…็›ฎๅฝ•" - - #: plugins/repomanage.py:59 - msgid "Pass either --old or --new, not both!" --msgstr "ไผ ๅ…ฅ --old ๆˆ–่€… --new๏ผŒไธๅฏๅŒๆ—ถไผ ๅ…ฅ๏ผ" -+msgstr "ไผ ้€’ --old ๆˆ–่€… --new๏ผŒ่€Œไธๆ˜ฏไธค่€…้ƒฝไผ ้€’๏ผ" - - #: plugins/repomanage.py:89 - msgid "No files to process" -@@ -1182,8 +1181,8 @@ msgstr "ๅŒๆ—ถไธ‹่ฝฝๅนถ่งฃๅŽ‹ comps.xml" - - #: plugins/reposync.py:75 - msgid "" --"where to store downloaded repository metadata. Defaults to the value of " --"--download-path." -+"where to store downloaded repository metadata. Defaults to the value of --" -+"download-path." - msgstr "ๅญ˜ๅ‚จไธ‹่ฝฝ็š„ไป“ๅบ“ๅ…ƒๆ•ฐๆฎ็š„ไฝ็ฝฎใ€‚้ป˜่ฎคไธบ --download-path ็š„ๅ€ผใ€‚" - - #: plugins/reposync.py:78 -@@ -1204,7 +1203,7 @@ msgstr "ๆ นๆฎๆœๅŠกๅ™จไธŠ็š„ๆ–‡ไปถ่ฎพ็ฝฎๆœฌๅœฐๆ–‡ไปถ็š„ๆœฌๅœฐๆ—ถ้—ดๆˆณ" - - #: plugins/reposync.py:87 - msgid "download only source packages" --msgstr "ๅชไธ‹่ฝฝๆบ็ ๅŒ…" -+msgstr "ๅชไธ‹่ฝฝๆบ่ฝฏไปถๅŒ…" - - #: plugins/reposync.py:89 - msgid "Just list urls of what would be downloaded, don't download" -@@ -1300,7 +1299,8 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" - msgstr "Versionlock ๆ’ไปถ: ๆ–‡ไปถ \"{}\" ไธญ็š„้”ๅฎšๆ•ฐ้‡่ง„ๅˆ™่ขซๅบ”็”จ๏ผš{}" - - #: plugins/versionlock.py:44 --msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" -+msgid "" -+"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" - msgstr "Versionlock ๆ’ไปถ: ๆ–‡ไปถ \"{}\" ไธญ็š„ๆŽ’้™ค่ง„ๅˆ™ๆ•ฐ้‡่ขซๅบ”็”จ๏ผš{}" - - #: plugins/versionlock.py:45 -@@ -1317,7 +1317,7 @@ msgstr "ๆŒ‰ๅŽŸๆ ทไฝฟ็”จ็จ‹ๅบๅŒ…่ง„ๆ ผ๏ผŒ่ฏทๅ‹ฟๅฐ่ฏ•่งฃๆžๅฎƒไปฌ" - - #: plugins/versionlock.py:164 - msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." --msgstr "ๅญๅ‘ฝไปค '{}' ๅทฒ่ขซๅผƒ็”จใ€‚่ฏทๆข็”จ 'exclude' ๅญๅ‘ฝไปคใ€‚" -+msgstr "ๅญๅ‘ฝไปค '{}' ๅทฒ่ขซๅผƒ็”จใ€‚ๆ”นไธบไฝฟ็”จ 'exclude' ๅญๅ‘ฝไปคใ€‚" - - #~ msgid "" - #~ "This repository does not have any builds yet so you cannot enable it now." --- -2.37.3 - diff --git a/SOURCES/0003-offline-upgrade-Add-security-filters.patch b/SOURCES/0003-offline-upgrade-Add-security-filters.patch new file mode 100644 index 0000000..f15d5d9 --- /dev/null +++ b/SOURCES/0003-offline-upgrade-Add-security-filters.patch @@ -0,0 +1,61 @@ +From eef927ac825c1a07082e10ffbf11e16ecbd7688c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tarc=C3=ADsio=20Ladeia=20de=20Oliveira?= + +Date: Thu, 20 Oct 2022 22:16:59 -0300 +Subject: [PATCH 1/2] [offline-upgrade] Add security filters (RhBug:1939975) + +Add support for security filter options that are available in the main +`dnf` commands, that is, `--advisory`, `--bugfix`, `--security`, and +`--enhancement`. + += changelog = +msg: [offline-upgrade] Add support for security filters +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1939975 +--- + plugins/system_upgrade.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py +index 0baf978..ef1de73 100644 +--- a/plugins/system_upgrade.py ++++ b/plugins/system_upgrade.py +@@ -467,6 +467,9 @@ class SystemUpgradeCommand(dnf.cli.Command): + logger.error(_("Operation aborted.")) + sys.exit(1) + check_release_ver(self.base.conf, target=self.opts.releasever) ++ elif 'offline-upgrade' == self.opts.command: ++ self.cli._populate_update_security_filter(self.opts) ++ + self.cli.demands.root_user = True + self.cli.demands.resolving = True + self.cli.demands.available_repos = True +-- +2.38.1 + + +From 7e5d3028caa743f3e5ac7bf921c3ec39a4d2c85b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tarc=C3=ADsio=20Ladeia=20de=20Oliveira?= + +Date: Thu, 20 Oct 2022 22:27:22 -0300 +Subject: [PATCH 2/2] Add myself as contributor in AUTHORS + +--- + AUTHORS | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/AUTHORS b/AUTHORS +index 352e195..f098cb6 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -32,6 +32,7 @@ DNF-PLUGINS-CORE CONTRIBUTORS + Neal Gompa + Paul Howarth + Rickard Dybeck ++ Tarcรญsio Ladeia de Oliveira + Tomas Babej + Vladan Kudlac + Wieland Hoffmann +-- +2.38.1 + diff --git a/SOURCES/0004-system-upgrade-Show-warning-always-for-a-downstream.patch b/SOURCES/0004-system-upgrade-Show-warning-always-for-a-downstream.patch new file mode 100644 index 0000000..d5b4ce9 --- /dev/null +++ b/SOURCES/0004-system-upgrade-Show-warning-always-for-a-downstream.patch @@ -0,0 +1,62 @@ +From e04aff1e65fb260912e7e0feeb201e17fa5abda4 Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Fri, 16 Dec 2022 05:55:19 +0000 +Subject: [PATCH] system-upgrade: Show warning always for a downstream + +As the distro package is not available in the BaseOS, the warning implementation will be shown always, but only in related downstreams. + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2152846 +--- + dnf-plugins-core.spec | 3 ++- + plugins/system_upgrade.py | 6 ++---- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec +index 1ee87a1..4df6e44 100644 +--- a/dnf-plugins-core.spec ++++ b/dnf-plugins-core.spec +@@ -148,13 +148,14 @@ Summary: Core Plugins for DNF + %{?python_provide:%python_provide python3-%{name}} + BuildRequires: python3-dbus + BuildRequires: python3-devel +-BuildRequires: python3-distro + BuildRequires: python3-dnf >= %{dnf_lowest_compatible} + BuildRequires: python3-systemd + BuildRequires: pkgconfig(systemd) + BuildRequires: systemd + %{?systemd_ordering} ++%if 0%{?fedora} + Requires: python3-distro ++%endif + Requires: python3-dbus + Requires: python3-dnf >= %{dnf_lowest_compatible} + Requires: python3-hawkey >= %{hawkey_version} +diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py +index ef1de73..4f7620f 100644 +--- a/plugins/system_upgrade.py ++++ b/plugins/system_upgrade.py +@@ -20,7 +20,6 @@ + """system_upgrade.py - DNF plugin to handle major-version system upgrades.""" + + from subprocess import call, Popen, check_output, CalledProcessError +-import distro + import json + import os + import os.path +@@ -452,9 +451,8 @@ class SystemUpgradeCommand(dnf.cli.Command): + + def configure_download(self): + if 'system-upgrade' == self.opts.command or 'fedup' == self.opts.command: +- if distro.id() == 'rhel': +- logger.warning(_('WARNING: this operation is not supported on the RHEL distribution. ' +- 'Proceed at your own risk.')) ++ logger.warning(_('WARNING: this operation is not supported on the RHEL distribution. ' ++ 'Proceed at your own risk.')) + help_url = get_url_from_os_release() + if help_url: + msg = _('Additional information for System Upgrade: {}') +-- +2.39.0 + diff --git a/SOURCES/0005-Update-translations.patch b/SOURCES/0005-Update-translations.patch new file mode 100644 index 0000000..b9423d2 --- /dev/null +++ b/SOURCES/0005-Update-translations.patch @@ -0,0 +1,2782 @@ +From cf8fa271469d1da6ba42b44d3e6e1d08484cef33 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Wed, 15 Mar 2023 14:56:50 +0100 +Subject: [PATCH] Update translations + +--- + po/dnf-plugins-core.pot | 171 +++++++++++++++- + po/fr.po | 318 +++++++++++++++++++++++------ + po/ja.po | 431 +++++++++++++++++++++++++++++++--------- + po/ko.po | 376 +++++++++++++++++++++++++++-------- + po/zh_CN.po | 310 +++++++++++++++++++++++------ + 5 files changed, 1306 insertions(+), 300 deletions(-) + +diff --git a/po/dnf-plugins-core.pot b/po/dnf-plugins-core.pot +index 98ba30d..51a2b8e 100644 +--- a/po/dnf-plugins-core.pot ++++ b/po/dnf-plugins-core.pot +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-19 03:05+0000\n" ++"POT-Creation-Date: 2023-02-28 12:26+0100\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +@@ -1201,6 +1201,175 @@ msgstr "" + msgid "New leaves:" + msgstr "" + ++#. Translators: This string is only used in unit tests. ++#: plugins/system_upgrade.py:45 ++msgid "the color of the sky" ++msgstr "" ++ ++#: plugins/system_upgrade.py:57 ++msgid "Need a --releasever greater than the current system version." ++msgstr "" ++ ++#. Translators: do not change "reboot" here ++#: plugins/system_upgrade.py:59 ++#, python-brace-format ++msgid "" ++"Download complete! Use 'dnf {command} reboot' to start the upgrade.\n" ++"To remove cached metadata and transaction use 'dnf {command} clean'" ++msgstr "" ++ ++#: plugins/system_upgrade.py:62 ++msgid "Sorry, you need to use 'download --releasever' instead of '--network'" ++msgstr "" ++ ++#: plugins/system_upgrade.py:71 ++msgid "Reboot turned off, not rebooting." ++msgstr "" ++ ++#: plugins/system_upgrade.py:122 ++#, python-format ++msgid "Screen blanking can't be disabled: %s" ++msgstr "" ++ ++#: plugins/system_upgrade.py:142 ++#, python-format ++msgid "Failed loading state file: %s, continuing with empty state." ++msgstr "" ++ ++#: plugins/system_upgrade.py:289 ++msgid "The following boots appear to contain upgrade logs:" ++msgstr "" ++ ++#: plugins/system_upgrade.py:299 ++msgid "-- no logs were found --" ++msgstr "" ++ ++#: plugins/system_upgrade.py:314 ++msgid "Cannot find logs with this index." ++msgstr "" ++ ++#: plugins/system_upgrade.py:323 ++msgid "Unable to match systemd journal entry" ++msgstr "" ++ ++#: plugins/system_upgrade.py:344 ++msgid "Prepare system for upgrade to a new release" ++msgstr "" ++ ++#: plugins/system_upgrade.py:360 ++msgid "keep installed packages if the new release's version is older" ++msgstr "" ++ ++#: plugins/system_upgrade.py:364 ++msgid "which logs to show" ++msgstr "" ++ ++#: plugins/system_upgrade.py:398 ++#, python-brace-format ++msgid "Incompatible version of data. Rerun 'dnf {command} download [OPTIONS]'" ++msgstr "" ++ ++#: plugins/system_upgrade.py:434 ++msgid "Command 'offline-distrosync' cannot be used with --no-downgrade option" ++msgstr "" ++ ++#: plugins/system_upgrade.py:454 ++msgid "" ++"WARNING: this operation is not supported on the RHEL distribution. Proceed " ++"at your own risk." ++msgstr "" ++ ++#: plugins/system_upgrade.py:458 ++msgid "Additional information for System Upgrade: {}" ++msgstr "" ++ ++#: plugins/system_upgrade.py:461 ++msgid "" ++"Before you continue ensure that your system is fully upgraded by running " ++"\"dnf --refresh upgrade\". Do you want to continue" ++msgstr "" ++ ++#: plugins/system_upgrade.py:465 ++msgid "Operation aborted." ++msgstr "" ++ ++#: plugins/system_upgrade.py:526 ++msgid "system is not ready for upgrade" ++msgstr "" ++ ++#: plugins/system_upgrade.py:529 ++#, python-brace-format ++msgid "" ++"the transaction was not prepared for '{command}'. Rerun 'dnf {command} " ++"download [OPTIONS]'" ++msgstr "" ++ ++#: plugins/system_upgrade.py:533 ++msgid "upgrade is already scheduled" ++msgstr "" ++ ++#: plugins/system_upgrade.py:539 ++msgid "trigger file does not exist. exiting quietly." ++msgstr "" ++ ++#: plugins/system_upgrade.py:542 ++msgid "another upgrade tool is running. exiting quietly." ++msgstr "" ++ ++#: plugins/system_upgrade.py:551 ++#, python-brace-format ++msgid "use 'dnf {command} reboot' to begin the upgrade" ++msgstr "" ++ ++#: plugins/system_upgrade.py:569 ++msgid "Rebooting to perform upgrade." ++msgstr "" ++ ++#: plugins/system_upgrade.py:602 ++msgid "Starting offline upgrade. This will take a while." ++msgstr "" ++ ++#: plugins/system_upgrade.py:604 ++msgid "Starting offline distrosync. This will take a while." ++msgstr "" ++ ++#: plugins/system_upgrade.py:606 ++msgid "Starting system upgrade. This will take a while." ++msgstr "" ++ ++#: plugins/system_upgrade.py:622 ++msgid "Cleaning up downloaded data..." ++msgstr "" ++ ++#: plugins/system_upgrade.py:652 ++msgid "" ++"The system-upgrade transaction is empty, your system is already up-to-date." ++msgstr "" ++ ++#: plugins/system_upgrade.py:661 ++msgid "Transaction saved to {}." ++msgstr "" ++ ++#: plugins/system_upgrade.py:664 ++msgid "Error storing transaction: {}" ++msgstr "" ++ ++#: plugins/system_upgrade.py:686 ++msgid "Download finished." ++msgstr "" ++ ++#: plugins/system_upgrade.py:689 plugins/system_upgrade.py:690 ++msgid "Upgrade complete! Cleaning up and rebooting..." ++msgstr "" ++ ++#: plugins/system_upgrade.py:699 ++msgid "Prepare offline upgrade of the system" ++msgstr "" ++ ++#: plugins/system_upgrade.py:704 ++msgid "Prepare offline distrosync of the system" ++msgstr "" ++ + #: plugins/versionlock.py:33 + #, python-format + msgid "Unable to read version lock configuration: %s" +diff --git a/po/fr.po b/po/fr.po +index 7f3fd0b..c35064b 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -5,23 +5,25 @@ + # Jean-Baptiste Holcroft , 2018. #zanata, 2020. + # Ludek Janda , 2018. #zanata, 2021, 2022. + # Jean-Baptiste Holcroft , 2019. #zanata, 2020. +-# Julien Humbert , 2020, 2021, 2022. +-# Arnaud T. , 2021. +-# Transtats , 2022. ++# Julien Humbert , 2020, 2021. ++# Sundeep Anand , 2021. ++# Transtats , 2022, 2023. ++# blutch112 , 2022. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-08 02:57+0000\n" +-"PO-Revision-Date: 2022-03-09 12:39+0000\n" +-"Last-Translator: Ludek Janda \n" +-"Language-Team: French \n" ++"POT-Creation-Date: 2023-02-28 12:26+0100\n" ++"PO-Revision-Date: 2023-03-06 13:48+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.11.2\n" ++"X-Generator: Weblate 4.15.2\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -42,8 +44,7 @@ msgstr "dรฉfinit une macro pour lโ€™interprรฉtation du fichier spec" + + #: plugins/builddep.py:95 + msgid "skip build dependencies not available in repositories" +-msgstr "" +-"ignorer les dรฉpendances de compilation non disponibles dans les dรฉpรดts" ++msgstr "ignorer les dรฉpendances de compilation non disponibles dans les dรฉpรดts" + + #: plugins/builddep.py:98 + msgid "treat commandline arguments as spec files" +@@ -62,8 +63,7 @@ msgid "Some packages could not be found." + msgstr "Certains paquets nโ€™ont pu รชtre trouvรฉs." + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -74,16 +74,23 @@ msgstr "Aucun paquet correspondant ร  installer : ยซ %s ยป" + msgid "Failed to open: '%s', not a valid source rpm file." + msgstr "ร‰chec dโ€™ouverture : ยซ %s ยป, nโ€™est pas un fichier source rpm valide." + +-#: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237 ++#: plugins/builddep.py:204 plugins/builddep.py:224 plugins/builddep.py:241 + msgid "Not all dependencies satisfied" + msgstr "Toutes les dรฉpendances ne sont pas satisfaites" + +-#: plugins/builddep.py:211 ++#: plugins/builddep.py:208 ++msgid "" ++"Warning: -D or --define arguments have no meaning for source rpm packages." ++msgstr "" ++"Attention : les arguments -D ou --define n'ont aucune signification pour les " ++"paquets rpm source." ++ ++#: plugins/builddep.py:215 + #, python-format + msgid "Failed to open: '%s', not a valid spec file: %s" + msgstr "ร‰chec ร  lโ€™ouvertureโ€ฏde ยซ %s ยป, %s nโ€™est pas un fichier spec valide" + +-#: plugins/builddep.py:230 plugins/repoclosure.py:124 ++#: plugins/builddep.py:234 plugins/repoclosure.py:124 + #, python-format + msgid "no package matched: %s" + msgstr "aucun paquet ne correspondย ร โ€ฏ: %s" +@@ -304,11 +311,11 @@ msgstr "Erreurโ€ฏ: " + + #: plugins/copr.py:165 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"prรฉcisez un hub Copr soit via `--hub` ou en utilisant le format " +-"`hub_copr/utilisateur_copr/projet_copr`" ++"prรฉcisez un hub Copr soit via `--hub` ou en utilisant le format `hub_copr/" ++"utilisateur_copr/projet_copr`" + + #: plugins/copr.py:168 + msgid "multiple hubs specified" +@@ -348,7 +355,8 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" +@@ -360,10 +368,12 @@ msgstr "" + "\n" + "Le projet Fedora nโ€™exerce aucun pouvoir sur le contenu de ce dรฉpรดt au delร \n" + "des rรจgles prรฉcisรฉes dans la FAQ Copr \n" +-",\n" ++",\n" + "et les paquets ne sont tenus ร  aucun niveau de qualitรฉ ou de sรฉcuritรฉ.\n" + "\n" +-"Veuillez ne pas signaler de bogues ร  propos de ces paquets dans le Bugzilla de Fedora.\n" ++"Veuillez ne pas signaler de bogues ร  propos de ces paquets dans le Bugzilla " ++"de Fedora.\n" + "En cas de problรจmes, contactez le propriรฉtaire de ce dรฉpรดt.\n" + + #: plugins/copr.py:297 +@@ -384,8 +394,8 @@ msgstr "Sous-commande inconnue {}." + + #: plugins/copr.py:367 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" + "* Ces Copr ont des fichiers de dรฉpรดts avec un ancien format qui ne contient " +@@ -428,16 +438,16 @@ msgstr "Cette commande requiert les privilรจges du super utilisateur." + #: plugins/copr.py:487 + #, python-brace-format + msgid "Request to {0} failed: {1} - {2}" +-msgstr "" ++msgstr "La demande ร  {0} a รฉchouรฉ : {1} - {2}" + + #: plugins/copr.py:489 + msgid "It wasn't possible to enable this project.\n" +-msgstr "" ++msgstr "Il n'a pas รฉtรฉ possible d'activer ce projet.\n" + + #: plugins/copr.py:494 + #, python-brace-format + msgid "Repository '{0}' does not exist in project '{1}'." +-msgstr "Le dรฉpรดt ยซโ€ฏ{0}โ€ฏยป nโ€™existe pas dans le projet ยซโ€ฏ{1}โ€ฏยป." ++msgstr "Le rรฉfรฉrentiel '{0}' n'existe pas dans le projet '{1}'." + + #: plugins/copr.py:497 + msgid "" +@@ -445,7 +455,7 @@ msgid "" + "Available repositories: " + msgstr "" + "\n" +-"Dรฉpรดts disponiblesย : " ++"Dรฉpรดts disponibles : " + + #: plugins/copr.py:499 + #, python-brace-format +@@ -456,16 +466,23 @@ msgid "" + " 'dnf copr enable {0} '\n" + "But note that the installed repo file will likely need a manual modification." + msgstr "" ++"\n" ++"\n" ++"Si vous voulez activer un rรฉfรฉrentiel autre que celui par dรฉfaut, utilisez " ++"la commande suivante :\n" ++" 'dnf copr enable {0} '\n" ++"Mais notez que le fichier repo installรฉ devra probablement รชtre modifiรฉ " ++"manuellement." + + #: plugins/copr.py:505 + #, python-brace-format + msgid "Project {0} does not exist." +-msgstr "Le projet {0} nโ€™existe pas." ++msgstr "Le projet {0} n'existe pas." + + #: plugins/copr.py:508 + #, python-brace-format + msgid "Failed to connect to {0}: {1}" +-msgstr "Impossible de se connecter ร  {0}ย : {1}" ++msgstr "ร‰chec de la connexion ร  {0}โ€ฏ: {1}" + + #: plugins/copr.py:555 + #, python-brace-format +@@ -619,8 +636,7 @@ msgstr "" + msgid "" + "Could not find debugsource package for the following available packages: %s" + msgstr "" +-"Impossible de trouver le paquet debugsource pour ces paquets disponibles : " +-"%s" ++"Impossible de trouver le paquet debugsource pour ces paquets disponibles : %s" + + #: plugins/debuginfo-install.py:190 + #, python-format +@@ -823,8 +839,8 @@ msgstr "Les paquets ne peuvent pas รชtre retirรฉs d'un groupe qui n'existe pas" + + #: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." + msgstr "" + "L'id du groupe ยซ {} ยป qui a รฉtรฉ gรฉnรฉrรฉ pour ยซ {} ยป est en double. Veuillez " + "le spรฉcifier en utilisant --id." +@@ -917,7 +933,7 @@ msgstr "" + + #: plugins/modulesync.py:166 + msgid "No mach for argument '{}'" +-msgstr "Pas de correspondance pour l'argument '{}'" ++msgstr "Aucune correspondance pour l'argument '{}'" + + #. TODO(jmracek) Shell we end with an error or with RC 1? + #: plugins/modulesync.py:198 +@@ -1005,11 +1021,10 @@ msgid "Display a list of unresolved dependencies for repositories" + msgstr "Affiche une liste de dรฉpendances non rรฉsolues pour les dรฉpรดts" + + #: plugins/repoclosure.py:69 +-#, fuzzy +-#| msgid "Repoclosure ended with unresolved dependencies." +-msgid "" +-"Repoclosure ended with unresolved dependencies ({}) across {} packages." +-msgstr "Repoclosure a terminรฉ avec des dรฉpendances non-rรฉsolues." ++msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." ++msgstr "" ++"Repoclosure s'est terminรฉ avec des dรฉpendances non rรฉsolues ({}) sur {} " ++"paquets." + + #: plugins/repoclosure.py:159 + msgid "check packages of the given archs, can be specified multiple times" +@@ -1055,11 +1070,10 @@ msgstr "Affichez des donnรฉes supplรฉmentaires sur la taille des changements." + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." ++"Compare packages also by arch. By default packages are compared just by name." + msgstr "" +-"Compare รฉgalement les paquets par architecture. Par dรฉfaut, les paquets sont" +-" uniquement comparรฉs par nom." ++"Compare รฉgalement les paquets par architecture. Par dรฉfaut, les paquets sont " ++"uniquement comparรฉs par nom." + + #: plugins/repodiff.py:72 + msgid "Output a simple one line message for modified packages." +@@ -1187,16 +1201,12 @@ msgid "Pass either --old or --new, not both!" + msgstr "Passez soit --old, soit --new, mais pas les deux !" + + #: plugins/repomanage.py:61 +-#, fuzzy +-#| msgid "Pass either --old or --new, not both!" + msgid "Pass either --oldonly or --new, not both!" +-msgstr "Passez soit --old, soit --new, mais pas les deux !" ++msgstr "Passez soit --oldonly, soit --new, mais pas les deux !" + + #: plugins/repomanage.py:63 +-#, fuzzy +-#| msgid "Pass either --old or --new, not both!" + msgid "Pass either --old or --oldonly, not both!" +-msgstr "Passez soit --old, soit --new, mais pas les deux !" ++msgstr "Passez --old ou --oldonly, mais pas les deux !" + + #: plugins/repomanage.py:100 + msgid "No files to process" +@@ -1211,10 +1221,8 @@ msgid "Print the older packages" + msgstr "Afficher les paquets plus anciens" + + #: plugins/repomanage.py:225 +-#, fuzzy +-#| msgid "Print the newest packages" + msgid "Print the older packages. Exclude the newest packages." +-msgstr "Afficher les paquets les plus rรฉcents" ++msgstr "Afficher les anciens paquets. Exclure les paquets les plus rรฉcents." + + #: plugins/repomanage.py:227 + msgid "Print the newest packages" +@@ -1260,11 +1268,11 @@ msgstr "รฉgalement tรฉlรฉcharger et dรฉcompresser comps.xml" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." + msgstr "" +-"lร  oรน stocker les mรฉtadonnรฉes du dรฉpรดt. Prend par dรฉfaut la valeur de " +-"--download-path." ++"lร  oรน stocker les mรฉtadonnรฉes du dรฉpรดt. Prend par dรฉfaut la valeur de --" ++"download-path." + + #: plugins/reposync.py:78 + msgid "download only newest packages per-repo" +@@ -1339,6 +1347,199 @@ msgstr "comps.xml pour le dรฉpรดt %s sauvegardรฉ" + msgid "New leaves:" + msgstr "Nouvelles feuillesโ€ฏ:" + ++#. Translators: This string is only used in unit tests. ++#: plugins/system_upgrade.py:45 ++msgid "the color of the sky" ++msgstr "la couleur du ciel" ++ ++#: plugins/system_upgrade.py:57 ++msgid "Need a --releasever greater than the current system version." ++msgstr "Besoin d'un --releasever supรฉrieur ร  la version actuelle du systรจme." ++ ++#. Translators: do not change "reboot" here ++#: plugins/system_upgrade.py:59 ++#, python-brace-format ++msgid "" ++"Download complete! Use 'dnf {command} reboot' to start the upgrade.\n" ++"To remove cached metadata and transaction use 'dnf {command} clean'" ++msgstr "" ++"Tรฉlรฉchargement terminรฉ ! Utilisez 'dnf {command} reboot' pour dรฉmarrer la " ++"mise ร  jour.\n" ++"Pour supprimer les mรฉtadonnรฉes mises en cache et les transactions, utilisez " ++"'dnf {command} clean'โ€™" ++ ++#: plugins/system_upgrade.py:62 ++msgid "Sorry, you need to use 'download --releasever' instead of '--network'" ++msgstr "" ++"Dรฉsolรฉ, vous devez utiliser 'download --releasever' au lieu de '--network'โ€™" ++ ++#: plugins/system_upgrade.py:71 ++msgid "Reboot turned off, not rebooting." ++msgstr "Redรฉmarrage dรฉsactivรฉ, pas de redรฉmarrage." ++ ++#: plugins/system_upgrade.py:122 ++#, python-format ++msgid "Screen blanking can't be disabled: %s" ++msgstr "L'effacement d'รฉcran ne peut pas รชtre dรฉsactivรฉ : %s" ++ ++#: plugins/system_upgrade.py:142 ++#, python-format ++msgid "Failed loading state file: %s, continuing with empty state." ++msgstr "" ++"ร‰chec du chargement du fichier d'รฉtat : %s, continuer avec un รฉtat vide." ++ ++#: plugins/system_upgrade.py:289 ++msgid "The following boots appear to contain upgrade logs:" ++msgstr "" ++"Les dรฉmarrages suivants semblent contenir des journaux de mise ร  niveau :" ++ ++#: plugins/system_upgrade.py:299 ++msgid "-- no logs were found --" ++msgstr "-- aucun journal n'a รฉtรฉ trouvรฉ --" ++ ++#: plugins/system_upgrade.py:314 ++msgid "Cannot find logs with this index." ++msgstr "Impossible de trouver des journaux avec cet index." ++ ++#: plugins/system_upgrade.py:323 ++msgid "Unable to match systemd journal entry" ++msgstr "Impossible de faire correspondre l'entrรฉe du journal de systemd" ++ ++#: plugins/system_upgrade.py:344 ++msgid "Prepare system for upgrade to a new release" ++msgstr "Prรฉparer le systรจme pour la mise ร  niveau vers une nouvelle version" ++ ++#: plugins/system_upgrade.py:360 ++msgid "keep installed packages if the new release's version is older" ++msgstr "" ++"Conserver les paquets installรฉs si la version de la nouvelle version est " ++"plus ancienne" ++ ++#: plugins/system_upgrade.py:364 ++msgid "which logs to show" ++msgstr "Quels journaux afficher" ++ ++#: plugins/system_upgrade.py:398 ++#, python-brace-format ++msgid "Incompatible version of data. Rerun 'dnf {command} download [OPTIONS]'" ++msgstr "" ++"Version incompatible des donnรฉes. Relancez 'dnf {command} download " ++"[OPTIONS]'โ€™" ++ ++#: plugins/system_upgrade.py:434 ++msgid "Command 'offline-distrosync' cannot be used with --no-downgrade option" ++msgstr "" ++"La commande 'offline-distrosync' ne peut pas รชtre utilisรฉe avec l'option " ++"--no-downgrade" ++ ++#: plugins/system_upgrade.py:454 ++msgid "" ++"WARNING: this operation is not supported on the RHEL distribution. Proceed " ++"at your own risk." ++msgstr "" ++"AVERTISSEMENT : cette opรฉration n'est pas prise en charge sur la " ++"distribution RHEL. Procรฉdez ร  vos propres risques." ++ ++#: plugins/system_upgrade.py:458 ++msgid "Additional information for System Upgrade: {}" ++msgstr "Informations supplรฉmentaires pour la mise ร  niveau du systรจme : {}" ++ ++#: plugins/system_upgrade.py:461 ++msgid "" ++"Before you continue ensure that your system is fully upgraded by running " ++"\"dnf --refresh upgrade\". Do you want to continue" ++msgstr "" ++"Avant de continuer, assurez-vous que votre systรจme est entiรจrement mis ร  " ++"jour en exรฉcutant \"dnf --refresh upgrade\". Voulez-vous continuer" ++ ++#: plugins/system_upgrade.py:465 ++msgid "Operation aborted." ++msgstr "Opรฉration avortรฉe." ++ ++#: plugins/system_upgrade.py:526 ++msgid "system is not ready for upgrade" ++msgstr "Le systรจme n'est pas prรชt pour la mise ร  niveau" ++ ++#: plugins/system_upgrade.py:529 ++#, python-brace-format ++msgid "" ++"the transaction was not prepared for '{command}'. Rerun 'dnf {command} " ++"download [OPTIONS]'" ++msgstr "" ++"La transaction n'a pas รฉtรฉ prรฉparรฉe pour '{command}'. Relancez 'dnf {command}" ++" download [OPTIONS]'" ++ ++#: plugins/system_upgrade.py:533 ++msgid "upgrade is already scheduled" ++msgstr "la mise ร  niveau est dรฉjร  prรฉvue" ++ ++#: plugins/system_upgrade.py:539 ++msgid "trigger file does not exist. exiting quietly." ++msgstr "Le fichier de dรฉclenchement n'existe pas. Il se termine tranquillement." ++ ++#: plugins/system_upgrade.py:542 ++msgid "another upgrade tool is running. exiting quietly." ++msgstr "" ++"Un autre outil de mise ร  niveau est en cours d'exรฉcution. il se termine " ++"tranquillement." ++ ++#: plugins/system_upgrade.py:551 ++#, python-brace-format ++msgid "use 'dnf {command} reboot' to begin the upgrade" ++msgstr "Utilisez 'dnf {command} reboot' pour commencer la mise ร  jour" ++ ++#: plugins/system_upgrade.py:569 ++msgid "Rebooting to perform upgrade." ++msgstr "Redรฉmarrage pour effectuer la mise ร  niveau." ++ ++#: plugins/system_upgrade.py:602 ++msgid "Starting offline upgrade. This will take a while." ++msgstr "" ++"Je commence la mise ร  jour hors ligne. Cela va prendre un certain temps." ++ ++#: plugins/system_upgrade.py:604 ++msgid "Starting offline distrosync. This will take a while." ++msgstr "" ++"Dรฉmarrage de la distrosync hors ligne. Cela va prendre un certain temps." ++ ++#: plugins/system_upgrade.py:606 ++msgid "Starting system upgrade. This will take a while." ++msgstr "" ++"Je commence la mise ร  jour du systรจme. Cela va prendre un certain temps." ++ ++#: plugins/system_upgrade.py:622 ++msgid "Cleaning up downloaded data..." ++msgstr "Nettoyage des donnรฉes tรฉlรฉchargรฉes..." ++ ++#: plugins/system_upgrade.py:652 ++msgid "" ++"The system-upgrade transaction is empty, your system is already up-to-date." ++msgstr "La transaction system-upgrade est vide, votre systรจme est dรฉjร  ร  jour." ++ ++#: plugins/system_upgrade.py:661 ++msgid "Transaction saved to {}." ++msgstr "Transaction enregistrรฉe vers {}." ++ ++#: plugins/system_upgrade.py:664 ++msgid "Error storing transaction: {}" ++msgstr "Erreur lors du stockage de la transactionย : {}" ++ ++#: plugins/system_upgrade.py:686 ++msgid "Download finished." ++msgstr "Tรฉlรฉchargement terminรฉ." ++ ++#: plugins/system_upgrade.py:689 plugins/system_upgrade.py:690 ++msgid "Upgrade complete! Cleaning up and rebooting..." ++msgstr "Mise ร  jour terminรฉe ! Nettoyage et redรฉmarrage..." ++ ++#: plugins/system_upgrade.py:699 ++msgid "Prepare offline upgrade of the system" ++msgstr "Prรฉparer la mise ร  niveau hors ligne du systรจme" ++ ++#: plugins/system_upgrade.py:704 ++msgid "Prepare offline distrosync of the system" ++msgstr "Prรฉparer la distrosynchronisation hors ligne du systรจme" ++ + #: plugins/versionlock.py:33 + #, python-format + msgid "Unable to read version lock configuration: %s" +@@ -1387,7 +1588,8 @@ msgstr "" + "appliquรฉesโ€ฏ: {}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "" + "Plugin versionlockโ€ฏ: nombre de rรจgles dโ€™exclusion du fichier \"{}\" " + "appliquรฉesโ€ฏ: {}" +diff --git a/po/ja.po b/po/ja.po +index 8f7cdd4..60f4a29 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -1,21 +1,23 @@ + # Ooyama Yosiyuki , 2015. #zanata +-# Ludek Janda , 2018. #zanata, 2021. ++# Ludek Janda , 2018. #zanata, 2021, 2023. + # Casey Jones , 2020. +-# Transtats , 2022. ++# Sundeep Anand , 2021. ++# Transtats , 2022, 2023. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-08 02:57+0000\n" +-"PO-Revision-Date: 2022-03-09 12:39+0000\n" +-"Last-Translator: Transtats \n" +-"Language-Team: Japanese \n" ++"POT-Creation-Date: 2023-02-28 12:26+0100\n" ++"PO-Revision-Date: 2023-03-06 13:48+0000\n" ++"Last-Translator: Ludek Janda \n" ++"Language-Team: Japanese \n" + "Language: ja\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=1; plural=0;\n" +-"X-Generator: Weblate 4.11.2\n" ++"X-Generator: Weblate 4.15.2\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -55,8 +57,7 @@ msgid "Some packages could not be found." + msgstr "ไธ€้ƒจใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸใ€‚" + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -65,18 +66,25 @@ msgstr "ใ‚คใƒณใ‚นใƒˆใƒผใƒซ็”จใฎไธ€่‡ดใ™ใ‚‹ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒใ‚ใ‚Šใพใ›ใ‚“: ' + #: plugins/builddep.py:191 + #, python-format + msgid "Failed to open: '%s', not a valid source rpm file." +-msgstr "้–‹ใใ“ใจใซๅคฑๆ•—ใ—ใพใ—ใŸ: '%s'ใ€ๆœ‰ๅŠนใชใ‚ฝใƒผใ‚น rpm ใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" ++msgstr "" ++"้–‹ใใ“ใจใซๅคฑๆ•—ใ—ใพใ—ใŸ: '%s'ใ€ๆœ‰ๅŠนใชใ‚ฝใƒผใ‚น rpm ใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" + +-#: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237 ++#: plugins/builddep.py:204 plugins/builddep.py:224 plugins/builddep.py:241 + msgid "Not all dependencies satisfied" + msgstr "ใ™ในใฆใฎไพๅญ˜้–ขไฟ‚ใŒๆบ€ใŸใ•ใ‚Œใฆใ„ใ‚‹ใ‚ใ‘ใงใฏใชใ„" + +-#: plugins/builddep.py:211 ++#: plugins/builddep.py:208 ++msgid "" ++"Warning: -D or --define arguments have no meaning for source rpm packages." ++msgstr "่ญฆๅ‘Š: -D ใพใŸใฏ --define ๅผ•ๆ•ฐใซใฏใ€ใ‚ฝใƒผใ‚น rpm " ++"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใซๅฏพใ™ใ‚‹ๆ„ๅ‘ณใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" ++ ++#: plugins/builddep.py:215 + #, python-format + msgid "Failed to open: '%s', not a valid spec file: %s" + msgstr "้–‹ใใ“ใจใซๅคฑๆ•—ใ—ใพใ—ใŸ: '%s'ใ€ๆœ‰ๅŠนใชใ‚นใƒšใƒƒใ‚ฏใƒ•ใ‚กใ‚คใƒซใงใฏใ‚ใ‚Šใพใ›ใ‚“: %s" + +-#: plugins/builddep.py:230 plugins/repoclosure.py:124 ++#: plugins/builddep.py:234 plugins/repoclosure.py:124 + #, python-format + msgid "no package matched: %s" + msgstr "ไธ€่‡ดใ™ใ‚‹ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏใ‚ใ‚Šใพใ›ใ‚“: %s" +@@ -94,7 +102,9 @@ msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ changelog ใƒ‡ใƒผใ‚ฟใ‚’่กจ็คบใ—ใพใ™" + msgid "" + "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " + "is recommended." +-msgstr "DATE ไปฅ้™ใฎ changelog ใ‚จใƒณใƒˆใƒชใƒผใ‚’่กจ็คบใ—ใพใ™ใ€‚ไธๆ˜Ž็žญใ•ใ‚’้ฟใ‘ใ‚‹ใŸใ‚ใ€YYYY-MM-DD ใฎใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใŒๆŽจๅฅจใ•ใ‚Œใพใ™ใ€‚" ++msgstr "" ++"DATE ไปฅ้™ใฎ changelog ใ‚จใƒณใƒˆใƒชใƒผใ‚’่กจ็คบใ—ใพใ™ใ€‚ไธๆ˜Ž็žญใ•ใ‚’้ฟใ‘ใ‚‹ใŸใ‚ใ€YYYY-MM-" ++"DD ใฎใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใŒๆŽจๅฅจใ•ใ‚Œใพใ™ใ€‚" + + #: plugins/changelog.py:55 + msgid "show given number of changelog entries per package" +@@ -105,7 +115,8 @@ msgid "" + "show only new changelog entries for packages, that provide an upgrade for " + "some of already installed packages." + msgstr "" +-"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ‘ใ‘ใฎๆ–ฐใ—ใ„ changelog ใ‚จใƒณใƒˆใƒชใƒผใฎใฟใ‚’่กจ็คบใ—ใพใ™ใ€‚ใ“ใ‚Œใฏใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎไธ€้ƒจใซใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’ๆไพ›ใ—ใพใ™ใ€‚" ++"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ‘ใ‘ใฎๆ–ฐใ—ใ„ changelog ใ‚จใƒณใƒˆใƒชใƒผใฎใฟใ‚’่กจ็คบใ—ใพใ™ใ€‚ใ“ใ‚Œใฏใ€ใ‚คใƒณใ‚น" ++"ใƒˆใƒผใƒซๆธˆใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎไธ€้ƒจใซใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’ๆไพ›ใ—ใพใ™ใ€‚" + + #: plugins/changelog.py:60 + msgid "PACKAGE" +@@ -127,7 +138,9 @@ msgstr[0] "ๆœ€ๆ–ฐใฎ changelog ใฎใฟใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" + + #: plugins/changelog.py:116 + msgid "Listing only new changelogs since installed version of the package" +-msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณไปฅ้™ใฎๆ–ฐใ—ใ„ changelogs ใฎใฟใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" ++msgstr "" ++"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณไปฅ้™ใฎๆ–ฐใ—ใ„ changelogs ใฎใฟใ‚’ไธ€่ฆง่กจ" ++"็คบใ—ใพใ™" + + #: plugins/changelog.py:118 + msgid "Listing all changelogs" +@@ -179,8 +192,8 @@ msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" +-"่ญฆๅ‘Š: --enablerepo/--disablerepo ใฎๅผ•ๆ•ฐใฏ config manager ใงใฏๆ„ๅ‘ณใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ไปฃใ‚ใ‚Šใซ -set-" +-"enabled/--set-disabled ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚" ++"่ญฆๅ‘Š: --enablerepo/--disablerepo ใฎๅผ•ๆ•ฐใฏ config manager ใงใฏๆ„ๅ‘ณใŒใ‚ใ‚Šใพใ›" ++"ใ‚“ใ€‚ไปฃใ‚ใ‚Šใซ -set-enabled/--set-disabled ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚" + + #: plugins/config_manager.py:132 + #, python-format +@@ -262,7 +275,8 @@ msgstr "" + + #: plugins/copr.py:120 + msgid "List all installed Copr repositories (default)" +-msgstr "ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใ™ในใฆใฎ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™ (ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ)" ++msgstr "" ++"ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใ™ในใฆใฎ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™ (ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ)" + + #: plugins/copr.py:122 + msgid "List enabled Copr repositories" +@@ -286,11 +300,11 @@ msgstr "ใ‚จใƒฉใƒผ: " + + #: plugins/copr.py:165 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"`--hub` ใพใŸใฏ `copr_hub/copr_username/copr_projectname` ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใ‚’ไฝฟใฃใฆใ€Copr " +-"ใƒใƒ–ใ‚’ๆŒ‡ๅฎšใ—ใพใ™" ++"`--hub` ใพใŸใฏ `copr_hub/copr_username/copr_projectname` ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใ‚’ไฝฟใฃ" ++"ใฆใ€Copr ใƒใƒ–ใ‚’ๆŒ‡ๅฎšใ—ใพใ™" + + #: plugins/copr.py:168 + msgid "multiple hubs specified" +@@ -308,11 +322,15 @@ msgstr "ๅผ•ๆ•ฐใŒๅคšใ™ใŽใพใ™ใ€‚" + msgid "" + "Bad format of optional chroot. The format is distribution-version-" + "architecture." +-msgstr "ใ‚ชใƒ—ใ‚ทใƒงใƒณใฎ chroot ใฎๅฝขๅผใŒ็„กๅŠนใงใ™ใ€‚ๆญฃใ—ใ„ๅฝขๅผใฏ distribution-version-architecture ใงใ™ใ€‚" ++msgstr "" ++"ใ‚ชใƒ—ใ‚ทใƒงใƒณใฎ chroot ใฎๅฝขๅผใŒ็„กๅŠนใงใ™ใ€‚ๆญฃใ—ใ„ๅฝขๅผใฏ distribution-version-" ++"architecture ใงใ™ใ€‚" + + #: plugins/copr.py:264 + msgid "use format `copr_username/copr_projectname` to reference copr project" +-msgstr "copr ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ‚็…งใ™ใ‚‹ใซใฏ `copr_username/copr_projectname` ๅฝขๅผใ‚’ไฝฟ็”จใ—ใพใ™" ++msgstr "" ++"copr ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ‚็…งใ™ใ‚‹ใซใฏ `copr_username/copr_projectname` ๅฝขๅผใ‚’ไฝฟ็”จใ—" ++"ใพใ™" + + #: plugins/copr.py:266 + msgid "bad copr project format" +@@ -326,7 +344,8 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" +@@ -334,9 +353,11 @@ msgid "" + msgstr "" + "\n" + "Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนๅŒ–ใ—ใฆใ„ใพใ™ใ€‚ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฏ\n" +-"ไธป่ฆใƒ‡ใ‚ฃใ‚นใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณใฎไธ€้ƒจใงใฏใชใ„ใŸใ‚ใ€ๅ“่ณชใŒไธ€ๅฎšใ—ใฆใ„ใชใ„็‚นใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚\n" ++"ไธป่ฆใƒ‡ใ‚ฃใ‚นใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณใฎไธ€้ƒจใงใฏใชใ„ใŸใ‚ใ€ๅ“่ณชใŒไธ€ๅฎšใ—ใฆใ„ใชใ„็‚นใซๆณจๆ„ใ—" ++"ใฆใใ ใ•ใ„ใ€‚\n" + "\n" +-"Fedora Project ใฏใ€ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใซ้–ขใ—ใฆใ€ ใฎ \n" ++"Fedora Project ใฏใ€ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใซ้–ขใ—ใฆใ€ ใฎ \n" + "Copr FAQ ใง็คบใ•ใ‚ŒใŸใƒซใƒผใƒซใ‚’่ถ…ใˆใฆๆจฉๅˆฉใ‚’่กŒไฝฟใ™ใ‚‹ใ“ใจใฏ\n" + "ใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใพใŸใ€ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏใ€ไปปๆ„ใฎๅ“่ณชใพใŸใฏใ‚ปใ‚ญใƒฅใƒช\n" + "ใƒ†ใ‚ฃใƒผใƒฌใƒ™ใƒซใ‚’ๅ›บๅฎˆใ—ใฆใ„ใพใ›ใ‚“ใ€‚\n" +@@ -362,12 +383,13 @@ msgstr "ไธๆ˜Žใชใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ {}ใ€‚" + + #: plugins/copr.py:367 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" + "* ใ“ใ‚Œใ‚‰ใฎ coprs ใซใฏใ€Copr ใƒใƒ–ใซ้–ขใ™ใ‚‹ๆƒ…ๅ ฑใŒใชใ„ๅคใ„ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใฎ repo " +-"ใƒ•ใ‚กใ‚คใƒซใŒใ‚ใ‚Šใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใฏไปฎๅฎšใงใ™ใ€‚ใ“ใ‚Œใ‚’ไฟฎๆญฃใ™ใ‚‹ใซใฏใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๅ†ๅบฆๆœ‰ๅŠนๅŒ–ใ—ใฆใใ ใ•ใ„ใ€‚" ++"ใƒ•ใ‚กใ‚คใƒซใŒใ‚ใ‚Šใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใฏไปฎๅฎšใงใ™ใ€‚ใ“ใ‚Œใ‚’ไฟฎๆญฃใ™ใ‚‹ใซใฏใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’" ++"ๅ†ๅบฆๆœ‰ๅŠนๅŒ–ใ—ใฆใใ ใ•ใ„ใ€‚" + + #: plugins/copr.py:380 + msgid "Can't parse repositories for username '{}'." +@@ -404,27 +426,24 @@ msgstr "ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใฏ root ใƒฆใƒผใ‚ถใƒผใฎไธ‹ใงๅฎŸ่กŒใ™ใ‚‹ๅฟ…่ฆใŒใ‚ + #: plugins/copr.py:487 + #, python-brace-format + msgid "Request to {0} failed: {1} - {2}" +-msgstr "" ++msgstr "{0} ใธใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใซๅคฑๆ•—ใ—ใพใ—ใŸ: {1} - {2}" + + #: plugins/copr.py:489 + msgid "It wasn't possible to enable this project.\n" +-msgstr "" ++msgstr "ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๆœ‰ๅŠนใซใ™ใ‚‹ใ“ใจใŒใงใใพใ›ใ‚“ใงใ—ใŸใ€‚\n" + + #: plugins/copr.py:494 +-#, fuzzy, python-brace-format +-#| msgid "Such repository does not exist." ++#, python-brace-format + msgid "Repository '{0}' does not exist in project '{1}'." +-msgstr "ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" ++msgstr "'{0}' ใƒชใƒใ‚ธใƒˆใƒชใƒผใฏใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ '{1}' ใซๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" + + #: plugins/copr.py:497 +-#, fuzzy +-#| msgid "List enabled Copr repositories" + msgid "" + "\n" + "Available repositories: " + msgstr "" + "\n" +-"ๆœ‰ๅŠนๅŒ–ใ•ใ‚ŒใŸ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™ " ++"ๅˆฉ็”จๅฏ่ƒฝใชใƒชใƒใ‚ธใƒˆใƒชใƒผ: " + + #: plugins/copr.py:499 + #, python-brace-format +@@ -435,18 +454,22 @@ msgid "" + " 'dnf copr enable {0} '\n" + "But note that the installed repo file will likely need a manual modification." + msgstr "" ++"\n" ++"\n" ++"ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆไปฅๅค–ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ™ใ‚‹ๅ ดๅˆใฏใ€ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จใ—ใพใ™:\n" ++" 'dnf copr enable {0} '\n" ++"ใŸใ ใ—ใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚Œใฆใ„ใ‚‹ใƒชใƒใ‚ธใƒˆใƒชใƒผใƒ•ใ‚กใ‚คใƒซใ‚’ๆ‰‹ๅ‹•ใงๅค‰ๆ›ดใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹" ++"ๅฏ่ƒฝๆ€งใŒใ‚ใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚" + + #: plugins/copr.py:505 +-#, fuzzy, python-brace-format +-#| msgid "Such repository does not exist." ++#, python-brace-format + msgid "Project {0} does not exist." +-msgstr "ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" ++msgstr "ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ {0} ใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚" + + #: plugins/copr.py:508 +-#, fuzzy, python-brace-format +-#| msgid "Failed to remove copr repo {0}/{1}/{2}" ++#, python-brace-format + msgid "Failed to connect to {0}: {1}" +-msgstr "copr repo {0}/{1}/{2} ใฎๅ‰Š้™คใซๅคฑๆ•—ใ—ใพใ—ใŸ" ++msgstr "{0} ใธใฎๆŽฅ็ถšใซๅคฑๆ•—ใ—ใพใ—ใŸ: {1}" + + #: plugins/copr.py:555 + #, python-brace-format +@@ -466,7 +489,8 @@ msgid "" + msgstr "" + "ๆœ‰ๅŠนๅŒ–ใ—ใŸ Copr ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎ็ฎก็†่€…ใฏ\n" + "ไป–ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใซไพๅญ˜ใ™ใ‚‹ใ‚ˆใ†ใซๆฑบใ‚ใพใ—ใŸใ€‚\n" +-"ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏ้€šๅธธใ€ไธปใช Corp ใƒฌใ‚ธใ‚นใƒˆใƒชใƒผ(ใƒฉใƒณใ‚ฟใ‚คใƒ ไพๅญ˜้–ขไฟ‚ใ‚’ๆไพ›) ใ‹ใ‚‰ RPM ใ‚’\n" ++"ใใฎใ‚ˆใ†ใชใƒชใƒใ‚ธใƒˆใƒชใƒผใฏ้€šๅธธใ€ไธปใช Corp ใƒฌใ‚ธใ‚นใƒˆใƒชใƒผ(ใƒฉใƒณใ‚ฟใ‚คใƒ ไพๅญ˜้–ขไฟ‚ใ‚’ๆ" ++"ไพ›) ใ‹ใ‚‰ RPM ใ‚’\n" + "ๆญฃๅธธใซใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆใงใ™ใ€‚\n" + "\n" + "ไธŠ่จ˜ใฎๅ“่ณชใจใƒใ‚ฐๅ ฑๅ‘Šใซใคใ„ใฆใฎๆณจๆ„็‚นใŒใ“ใ“ใงใ‚‚้ฉ็”จ\n" +@@ -551,7 +575,9 @@ msgstr "่จ˜้Œฒใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎๆœ€ๆ–ฐใƒใƒผใ‚ธใƒงใƒณใ‚’ใ‚คใƒณใ‚นใƒˆใƒผ + msgid "" + "Ignore architecture and install missing packages matching the name, epoch, " + "version and release." +-msgstr "ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’็„ก่ฆ–ใ—ใ€ๅๅ‰ใ€ใ‚จใƒใƒƒใ‚ฏใ€ใƒใƒผใ‚ธใƒงใƒณใ€ใŠใ‚ˆใณใƒชใƒชใƒผใ‚นใจไธ€่‡ดใ™ใ‚‹ไธ่ถณใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใพใ™ใ€‚" ++msgstr "" ++"ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’็„ก่ฆ–ใ—ใ€ๅๅ‰ใ€ใ‚จใƒใƒƒใ‚ฏใ€ใƒใƒผใ‚ธใƒงใƒณใ€ใŠใ‚ˆใณใƒชใƒชใƒผใ‚นใจไธ€่‡ดใ™" ++"ใ‚‹ไธ่ถณใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใพใ™ใ€‚" + + #: plugins/debug.py:196 + msgid "limit to specified type" +@@ -561,7 +587,9 @@ msgstr "ๆŒ‡ๅฎšใ—ใŸใ‚ฟใ‚คใƒ—ใซ้™ๅฎšใ—ใพใ™" + msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." +-msgstr "ใ‚คใƒณใ‚นใƒˆใƒผใƒซใฎใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎๅ‰Š้™คใ‚’่จฑๅฏใ—ใพใ™ใ€‚ใ“ใฎใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€ๅฎŸ่กŒใ—ใฆใ„ใ‚‹ใ‚ซใƒผใƒใƒซใฎๅ‰Š้™คใ‚’่ฉฆใฟใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚" ++msgstr "" ++"ใ‚คใƒณใ‚นใƒˆใƒผใƒซใฎใฟใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎๅ‰Š้™คใ‚’่จฑๅฏใ—ใพใ™ใ€‚ใ“ใฎใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€" ++"ๅฎŸ่กŒใ—ใฆใ„ใ‚‹ใ‚ซใƒผใƒใƒซใฎๅ‰Š้™คใ‚’่ฉฆใฟใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚" + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -585,25 +613,31 @@ msgstr "debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ" + #, python-format + msgid "" + "Could not find debuginfo package for the following available packages: %s" +-msgstr "ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" ++msgstr "" ++"ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" + + #: plugins/debuginfo-install.py:185 + #, python-format + msgid "" + "Could not find debugsource package for the following available packages: %s" +-msgstr "ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" ++msgstr "" ++"ๆฌกใฎๅˆฉ็”จๅฏ่ƒฝใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" + + #: plugins/debuginfo-install.py:190 + #, python-format + msgid "" + "Could not find debuginfo package for the following installed packages: %s" +-msgstr "ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" ++msgstr "" ++"ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debuginfo ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—" ++"ใŸ: %s" + + #: plugins/debuginfo-install.py:195 + #, python-format + msgid "" + "Could not find debugsource package for the following installed packages: %s" +-msgstr "ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: %s" ++msgstr "" ++"ๆฌกใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎ debugsource ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—" ++"ใŸ: %s" + + #: plugins/debuginfo-install.py:199 + msgid "Unable to find a match" +@@ -641,12 +675,15 @@ msgstr "ๅฟ…่ฆใชไพๅญ˜้–ขไฟ‚ใ‚’่งฃๆฑบใ—ใ€ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™" + msgid "" + "when running with --resolve, download all dependencies (do not exclude " + "already installed ones)" +-msgstr "--resolve ใงๅฎŸ่กŒใ™ใ‚‹ๅ ดๅˆใ€ใ™ในใฆใฎไพๅญ˜้–ขไฟ‚ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™ (ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใ‚‚ใฎใ‚’้™คๅค–ใ—ใชใ„ใงใใ ใ•ใ„)" ++msgstr "" ++"--resolve ใงๅฎŸ่กŒใ™ใ‚‹ๅ ดๅˆใ€ใ™ในใฆใฎไพๅญ˜้–ขไฟ‚ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใพใ™ (ใ‚คใƒณใ‚นใƒˆใƒผใƒซ" ++"ๆธˆใฟใฎใ‚‚ใฎใ‚’้™คๅค–ใ—ใชใ„ใงใใ ใ•ใ„)" + + #: plugins/download.py:67 + msgid "" + "print list of urls where the rpms can be downloaded instead of downloading" +-msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€rpm ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใงใใ‚‹ url ใฎไธ€่ฆงใ‚’ๅฐๅˆทใ—ใพใ™" ++msgstr "" ++"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไปฃใ‚ใ‚Šใซใ€rpm ใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใงใใ‚‹ url ใฎไธ€่ฆงใ‚’ๅฐๅˆทใ—ใพใ™" + + #: plugins/download.py:72 + msgid "when running with --url, limit to specific protocols" +@@ -689,7 +726,9 @@ msgstr "็ฟป่จณใ•ใ‚ŒใŸใƒ‡ใƒผใ‚ฟใฎ็„กๅŠนใพใŸใฏ็ฉบใช่จ€่ชž" + + #: plugins/groups_manager.py:71 + msgid "Can't generate group id from '{}'. Please specify group id using --id." +-msgstr "'{}' ใ‹ใ‚‰ใ‚ฐใƒซใƒผใƒ— ID ใ‚’็”Ÿๆˆใงใใพใ›ใ‚“ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„ใ€‚" ++msgstr "" ++"'{}' ใ‹ใ‚‰ใ‚ฐใƒซใƒผใƒ— ID ใ‚’็”Ÿๆˆใงใใพใ›ใ‚“ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆ" ++"ใใ ใ•ใ„ใ€‚" + + #: plugins/groups_manager.py:79 + msgid "create and edit groups metadata file" +@@ -765,7 +804,8 @@ msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธไป•ๆง˜" + + #: plugins/groups_manager.py:156 + msgid "Can't edit group without specifying it (use --id or --name)" +-msgstr "ๆŒ‡ๅฎšใ›ใšใซใฏใ‚ฐใƒซใƒผใƒ—ใ‚’็ทจ้›†ใงใใพใ›ใ‚“ (--id ใพใŸใฏ --name ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„)" ++msgstr "" ++"ๆŒ‡ๅฎšใ›ใšใซใฏใ‚ฐใƒซใƒผใƒ—ใ‚’็ทจ้›†ใงใใพใ›ใ‚“ (--id ใพใŸใฏ --name ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„)" + + #: plugins/groups_manager.py:190 + msgid "Can't load file \"{}\": {}" +@@ -785,13 +825,16 @@ msgstr "ๅญ˜ๅœจใ—ใชใ„ใ‚ฐใƒซใƒผใƒ—ใ‹ใ‚‰ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅ‰Š้™คใงใใพใ›ใ‚“ + + #: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." +-msgstr "'{}' ใ‹ใ‚‰็”Ÿๆˆใ•ใ‚ŒใŸใ‚ฐใƒซใƒผใƒ— ID '{}' ใฏ้‡่ค‡ใ—ใฆใ„ใพใ™ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„ใ€‚" ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." ++msgstr "" ++"'{}' ใ‹ใ‚‰็”Ÿๆˆใ•ใ‚ŒใŸใ‚ฐใƒซใƒผใƒ— ID '{}' ใฏ้‡่ค‡ใ—ใฆใ„ใพใ™ใ€‚--id ใ‚’ไฝฟ็”จใ—ใฆใ‚ฐใƒซใƒผ" ++"ใƒ— ID ใ‚’ๆŒ‡ๅฎšใ—ใฆใใ ใ•ใ„ใ€‚" + + #: plugins/leaves.py:32 + msgid "List installed packages not required by any other package" +-msgstr "ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ๅฟ…่ฆใจใ•ใ‚Œใชใ„ใ‚คใƒณใ‚นใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" ++msgstr "" ++"ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ๅฟ…่ฆใจใ•ใ‚Œใชใ„ใ‚คใƒณใ‚นใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ไธ€่ฆง่กจ็คบใ—ใพใ™" + + #: plugins/local.py:122 + msgid "Unable to create a directory '{}' due to '{}'" +@@ -824,7 +867,9 @@ msgstr "ๅฑฅๆญดใƒ‡ใƒผใ‚ฟใ‚’็งป่กŒไธญ..." + #: plugins/modulesync.py:37 + msgid "" + "Download packages from modules and/or create a repository with modular data" +-msgstr "ใƒขใ‚ธใƒฅใƒผใƒซใ‹ใ‚‰ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใŸใ‚Šใ€ใƒขใ‚ธใƒฅใƒฉใƒผใƒ‡ใƒผใ‚ฟใงใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ไฝœๆˆใ—ใŸใ‚Šใ—ใพใ™" ++msgstr "" ++"ใƒขใ‚ธใƒฅใƒผใƒซใ‹ใ‚‰ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใŸใ‚Šใ€ใƒขใ‚ธใƒฅใƒฉใƒผใƒ‡ใƒผใ‚ฟใงใƒชใƒใ‚ธใƒˆใƒชใƒผ" ++"ใ‚’ไฝœๆˆใ—ใŸใ‚Šใ—ใพใ™" + + #: plugins/modulesync.py:44 + msgid "MODULE" +@@ -840,7 +885,9 @@ msgstr "ใ‚ฝใƒผใ‚นใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅซใ‚€ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ—ใพใ™ + + #: plugins/modulesync.py:49 + msgid "enable repositories with debug-info and debug-source packages" +-msgstr "debug-info ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŠใ‚ˆใณ debug-source ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใงใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ—ใพใ™" ++msgstr "" ++"debug-info ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŠใ‚ˆใณ debug-source ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใงใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆœ‰ๅŠนใซใ—ใพ" ++"ใ™" + + #: plugins/modulesync.py:53 + msgid "download only packages from newest modules" +@@ -855,7 +902,9 @@ msgstr[0] "ๅผ•ๆ•ฐใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ: '{}'" + msgid "" + "Creation of repository failed with return code {}. All downloaded content " + "was kept on the system" +-msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎไฝœๆˆใฏๆˆปใ‚Šใ‚ณใƒผใƒ‰ {} ใงๅคฑๆ•—ใ—ใพใ—ใŸใ€‚ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ•ใ‚ŒใŸใ‚ณใƒณใƒ†ใƒณใƒ„ใฏใ™ในใฆใ‚ทใ‚นใƒ†ใƒ ใซไฟๆŒใ•ใ‚Œใพใ—ใŸ" ++msgstr "" ++"ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎไฝœๆˆใฏๆˆปใ‚Šใ‚ณใƒผใƒ‰ {} ใงๅคฑๆ•—ใ—ใพใ—ใŸใ€‚ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ•ใ‚ŒใŸใ‚ณใƒณใƒ†ใƒณ" ++"ใƒ„ใฏใ™ในใฆใ‚ทใ‚นใƒ†ใƒ ใซไฟๆŒใ•ใ‚Œใพใ—ใŸ" + + #: plugins/modulesync.py:144 + #, python-brace-format +@@ -865,7 +914,9 @@ msgstr "ใƒขใ‚ธใƒฅใƒผใƒซ '{1}' ใฎใ‚ขใƒผใƒ†ใ‚ฃใƒ•ใ‚กใ‚ฏใƒˆ '{0}' ใซไธ€่‡ดใ™ใ‚‹ + #: plugins/modulesync.py:162 + #, python-brace-format + msgid "No match for package name '{0}' in profile {1} from module {2}" +-msgstr "ใƒขใ‚ธใƒฅใƒผใƒซ {2} ใ‹ใ‚‰ใฎใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซ {1} ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ '{0}' ใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใฏใ‚ใ‚Šใพใ›ใ‚“" ++msgstr "" ++"ใƒขใ‚ธใƒฅใƒผใƒซ {2} ใ‹ใ‚‰ใฎใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซ {1} ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅ '{0}' ใซไธ€่‡ดใ™ใ‚‹ใ‚‚ใฎใฏใ‚" ++"ใ‚Šใพใ›ใ‚“" + + #: plugins/modulesync.py:166 + msgid "No mach for argument '{}'" +@@ -882,8 +933,8 @@ msgid "" + "No installed package found for package name \"{pkg}\" specified in needs-" + "restarting file \"{file}\"." + msgstr "" +-"needs-restarting ใƒ•ใ‚กใ‚คใƒซ \"{file}\" ใซๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใ‚‹ \"{pkg}\" " +-"ใจใ„ใ†ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใ€‚" ++"needs-restarting ใƒ•ใ‚กใ‚คใƒซ \"{file}\" ใซๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใ‚‹ \"{pkg}\" ใจใ„ใ†ใƒ‘ใƒƒ" ++"ใ‚ฑใƒผใ‚ธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใ€‚" + + #: plugins/needs_restarting.py:220 + msgid "determine updated binaries that need restarting" +@@ -896,7 +947,8 @@ msgstr "ใ“ใฎใƒฆใƒผใ‚ถใƒผใฎใƒ—ใƒญใ‚ปใ‚นใฎใฟใ‚’ๆคœ่จŽใ—ใพใ™" + #: plugins/needs_restarting.py:227 + msgid "" + "only report whether a reboot is required (exit code 1) or not (exit code 0)" +-msgstr "ๅ†่ตทๅ‹•ใŒๅฟ…่ฆใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 1) ๅฟ…่ฆใงใชใ„ใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 0) ใฎใฟใ‚’ๅ ฑๅ‘Šใ—ใพใ™" ++msgstr "" ++"ๅ†่ตทๅ‹•ใŒๅฟ…่ฆใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 1) ๅฟ…่ฆใงใชใ„ใ‹ (็ต‚ไบ†ใ‚ณใƒผใƒ‰ 0) ใฎใฟใ‚’ๅ ฑๅ‘Šใ—ใพใ™" + + #: plugins/needs_restarting.py:230 + msgid "only report affected systemd services" +@@ -916,7 +968,8 @@ msgstr "่ฉณ็ดฐๆƒ…ๅ ฑ:" + + #: plugins/needs_restarting.py:263 + msgid "No core libraries or services have been updated since boot-up." +-msgstr "่ตทๅ‹•ไปฅ้™ใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ•ใ‚ŒใŸใ‚ณใ‚ขใƒฉใ‚คใƒ–ใƒฉใƒชใƒผใพใŸใฏใ‚ตใƒผใƒ“ใ‚นใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" ++msgstr "" ++"่ตทๅ‹•ไปฅ้™ใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ•ใ‚ŒใŸใ‚ณใ‚ขใƒฉใ‚คใƒ–ใƒฉใƒชใƒผใพใŸใฏใ‚ตใƒผใƒ“ใ‚นใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" + + #: plugins/needs_restarting.py:265 + msgid "Reboot should not be necessary." +@@ -949,11 +1002,9 @@ msgid "Display a list of unresolved dependencies for repositories" + msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผใฎๆœช่งฃๆฑบใฎไพๅญ˜้–ขไฟ‚ใฎไธ€่ฆงใ‚’่กจ็คบใ—ใพใ™" + + #: plugins/repoclosure.py:69 +-#, fuzzy +-#| msgid "Repoclosure ended with unresolved dependencies." +-msgid "" +-"Repoclosure ended with unresolved dependencies ({}) across {} packages." +-msgstr "repoclosure ใฏๆœช่งฃๆฑบใฎไพๅญ˜้–ขไฟ‚ใง็ต‚ไบ†ใ—ใพใ—ใŸใ€‚" ++msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." ++msgstr "" ++"Repoclosure ใฏใ€{} ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใงไพๅญ˜้–ขไฟ‚ ({}) ใŒ่งฃๆฑบใ•ใ‚Œใšใซ็ต‚ไบ†ใ—ใพใ™ใ€‚" + + #: plugins/repoclosure.py:159 + msgid "check packages of the given archs, can be specified multiple times" +@@ -987,7 +1038,9 @@ msgstr "ๆ–ฐใ—ใ„ใƒชใƒใ‚ธใƒˆใƒชใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€ใ“ใ‚Œใฏ่ค‡ๆ•ฐๅ›žไฝฟ็”จ + msgid "" + "Specify architectures to compare, can be used multiple times. By default, " + "only source rpms are compared." +-msgstr "ๆฏ”่ผƒใ™ใ‚‹ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€ใ“ใ‚Œใฏ่ค‡ๆ•ฐๅ›žไฝฟ็”จใงใใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ€ใ‚ฝใƒผใ‚น rpms ใฎใฟใŒๆฏ”่ผƒใ•ใ‚Œใพใ™ใ€‚" ++msgstr "" ++"ๆฏ”่ผƒใ™ใ‚‹ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใƒผใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€ใ“ใ‚Œใฏ่ค‡ๆ•ฐๅ›žไฝฟ็”จใงใใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ" ++"ใงใ€ใ‚ฝใƒผใ‚น rpms ใฎใฟใŒๆฏ”่ผƒใ•ใ‚Œใพใ™ใ€‚" + + #: plugins/repodiff.py:67 + msgid "Output additional data about the size of the changes." +@@ -995,9 +1048,10 @@ msgstr "ๅค‰ๆ›ดใ‚ตใ‚คใ‚บใซ้–ขใ™ใ‚‹่ฟฝๅŠ ใƒ‡ใƒผใ‚ฟใ‚’ๅ‡บๅŠ›ใ—ใพใ™ใ€‚" + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." +-msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ Arch ใงใ‚‚ๆฏ”่ผƒใ—ใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ€ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏๅๅ‰ใฎใฟใงๆฏ”่ผƒใ•ใ‚Œใพใ™ใ€‚" ++"Compare packages also by arch. By default packages are compared just by name." ++msgstr "" ++"ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ Arch ใงใ‚‚ๆฏ”่ผƒใ—ใพใ™ใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใ€ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏๅๅ‰ใฎใฟใงๆฏ”่ผƒใ•" ++"ใ‚Œใพใ™ใ€‚" + + #: plugins/repodiff.py:72 + msgid "Output a simple one line message for modified packages." +@@ -1007,7 +1061,9 @@ msgstr "ๅค‰ๆ›ดใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใซ็ฐกๅ˜ใช 1 ่กŒใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ๅ‡บๅŠ› + msgid "" + "Split the data for modified packages between upgraded and downgraded " + "packages." +-msgstr "ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใƒ€ใ‚ฆใƒณใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใฎ้–“ใงใ€ๅค‰ๆ›ดใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒ‡ใƒผใ‚ฟใ‚’ๅˆ†ๅ‰ฒใ—ใพใ™ใ€‚" ++msgstr "" ++"ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใƒ€ใ‚ฆใƒณใ‚ฐใƒฌใƒผใƒ‰ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจใฎ้–“ใงใ€ๅค‰ๆ›ด" ++"ใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒ‡ใƒผใ‚ฟใ‚’ๅˆ†ๅ‰ฒใ—ใพใ™ใ€‚" + + #: plugins/repodiff.py:86 + msgid "Both old and new repositories must be set." +@@ -1120,19 +1176,15 @@ msgstr "rpm ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใƒผใ‚’็ฎก็†ใ—ใพใ™" + + #: plugins/repomanage.py:59 + msgid "Pass either --old or --new, not both!" +-msgstr "--old ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€‚ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" ++msgstr "--old ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“!" + + #: plugins/repomanage.py:61 +-#, fuzzy +-#| msgid "Pass either --old or --new, not both!" + msgid "Pass either --oldonly or --new, not both!" +-msgstr "--old ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€‚ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" ++msgstr "--oldonly ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“!" + + #: plugins/repomanage.py:63 +-#, fuzzy +-#| msgid "Pass either --old or --new, not both!" + msgid "Pass either --old or --oldonly, not both!" +-msgstr "--old ใพใŸใฏ --new ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€‚ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚" ++msgstr "--old ใพใŸใฏ --oldonly ใฎใ„ใšใ‚Œใ‹ใ‚’ๆธกใ—ใพใ™ใ€ไธกๆ–นใงใฏใ‚ใ‚Šใพใ›ใ‚“!" + + #: plugins/repomanage.py:100 + msgid "No files to process" +@@ -1147,10 +1199,8 @@ msgid "Print the older packages" + msgstr "ๅคใ„ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅฐๅˆทใ—ใพใ™" + + #: plugins/repomanage.py:225 +-#, fuzzy +-#| msgid "Print the newest packages" + msgid "Print the older packages. Exclude the newest packages." +-msgstr "ๆœ€ๆ–ฐใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅฐๅˆทใ—ใพใ™" ++msgstr "ๅคใ„ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ๅ‡บๅŠ›ใ—ใพใ™ใ€‚ๆœ€ๆ–ฐใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’้™คๅค–ใ—ใพใ™ใ€‚" + + #: plugins/repomanage.py:227 + msgid "Print the newest packages" +@@ -1194,9 +1244,11 @@ msgstr "comps.xml ใ‚‚ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใฆๅฑ•้–‹ใ—ใพใ™" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." +-msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ๆธˆใฟใƒชใƒใ‚ธใƒˆใƒชใƒผใƒกใ‚ฟใƒ‡ใƒผใ‚ฟใฎไฟ็ฎกๅ ดๆ‰€ใ€‚ๅˆๆœŸๅ€คใฏ --download-path ใงใ™ใ€‚" ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." ++msgstr "" ++"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ๆธˆใฟใƒชใƒใ‚ธใƒˆใƒชใƒผใƒกใ‚ฟใƒ‡ใƒผใ‚ฟใฎไฟ็ฎกๅ ดๆ‰€ใ€‚ๅˆๆœŸๅ€คใฏ --download-path ใง" ++"ใ™ใ€‚" + + #: plugins/reposync.py:78 + msgid "download only newest packages per-repo" +@@ -1220,7 +1272,9 @@ msgstr "ใ‚ฝใƒผใ‚นใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใฟใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰" + + #: plugins/reposync.py:89 + msgid "Just list urls of what would be downloaded, don't download" +-msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไบˆๅฎšใฎใ‚‚ใฎใฎ URL ใ‚’ใƒชใ‚นใƒˆใ™ใ‚‹ใ ใ‘ใงใ€ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใชใ„ใงใใ ใ•ใ„" ++msgstr "" ++"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ไบˆๅฎšใฎใ‚‚ใฎใฎ URL ใ‚’ใƒชใ‚นใƒˆใ™ใ‚‹ใ ใ‘ใงใ€ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใชใ„ใงใใ " ++"ใ•ใ„" + + #: plugins/reposync.py:113 + msgid "Can't use --norepopath with multiple repositories" +@@ -1264,7 +1318,188 @@ msgstr "ใƒชใƒใ‚ธใƒˆใƒชใƒผ %s ใฎ comps.xml ใŒไฟๅญ˜ใ•ใ‚Œใพใ—ใŸ" + + #: plugins/show_leaves.py:54 + msgid "New leaves:" +-msgstr "ๆ–ฐ่ฆใฎใƒชใƒผใƒ•ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ (ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ไพๅญ˜ใ•ใ‚Œใฆใ„ใชใ„ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ) :" ++msgstr "" ++"ๆ–ฐ่ฆใฎใƒชใƒผใƒ•ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ (ไป–ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‹ใ‚‰ไพๅญ˜ใ•ใ‚Œใฆใ„ใชใ„ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธ) :" ++ ++#. Translators: This string is only used in unit tests. ++#: plugins/system_upgrade.py:45 ++msgid "the color of the sky" ++msgstr "Sky ใฎ่‰ฒ" ++ ++#: plugins/system_upgrade.py:57 ++msgid "Need a --releasever greater than the current system version." ++msgstr "็พๅœจใฎใ‚ทใ‚นใƒ†ใƒ ใƒใƒผใ‚ธใƒงใƒณใ‚ˆใ‚Šใ‚‚ๅคงใใ„ --releasever ใŒๅฟ…่ฆใงใ™ใ€‚" ++ ++#. Translators: do not change "reboot" here ++#: plugins/system_upgrade.py:59 ++#, python-brace-format ++msgid "" ++"Download complete! Use 'dnf {command} reboot' to start the upgrade.\n" ++"To remove cached metadata and transaction use 'dnf {command} clean'" ++msgstr "" ++"ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใŒๅฎŒไบ†ใ—ใพใ—ใŸ! 'dnf {command} reboot' " ++"ใ‚’ไฝฟ็”จใ—ใฆ๏ฝคใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’้–‹ๅง‹ใ—ใพใ™๏ฝก\n" ++"ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใŸใƒกใ‚ฟใƒ‡ใƒผใ‚ฟใ‚„ใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ‰Š้™คใ™ใ‚‹ใซใฏ๏ฝค'dnf {command} " ++"clean' ใ‚’ไฝฟ็”จใ—ใพใ™ใ€" ++ ++#: plugins/system_upgrade.py:62 ++msgid "Sorry, you need to use 'download --releasever' instead of '--network'" ++msgstr "็”ณใ—่จณใ”ใ–ใ„ใพใ›ใ‚“๏ฝก'--network' ใฎไปฃใ‚ใ‚Šใซ 'download --releasever' " ++"ใ‚’ไฝฟ็”จใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€" ++ ++#: plugins/system_upgrade.py:71 ++msgid "Reboot turned off, not rebooting." ++msgstr "ๅ†่ตทๅ‹•ใงใฏใชใใ€ๅ†่ตทๅ‹•ใ‚’ใ‚ชใƒ•ใซใ—ใพใ—ใŸใ€‚" ++ ++#: plugins/system_upgrade.py:122 ++#, python-format ++msgid "Screen blanking can't be disabled: %s" ++msgstr "็ฉบ็™ฝใฎ็”ป้ขใฏ็„กๅŠนใซใงใใพใ›ใ‚“: %s" ++ ++#: plugins/system_upgrade.py:142 ++#, python-format ++msgid "Failed loading state file: %s, continuing with empty state." ++msgstr "็Šถๆ…‹ใƒ•ใ‚กใ‚คใƒซใฎ่ชญใฟ่พผใฟใซๅคฑๆ•—: %s๏ฝค็ฉบใฎ็Šถๆ…‹ใง็ถš่กŒใ€‚" ++ ++#: plugins/system_upgrade.py:289 ++msgid "The following boots appear to contain upgrade logs:" ++msgstr "ไปฅไธ‹ใฎใƒ–ใƒผใƒˆใซใฏใ€ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใƒญใ‚ฐใŒๅซใพใ‚Œใฆใ„ใ‚‹ใ‚ˆใ†ใซ่ฆ‹ใˆใพใ™:" ++ ++#: plugins/system_upgrade.py:299 ++msgid "-- no logs were found --" ++msgstr "-- ใƒญใ‚ฐใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใงใ—ใŸ --" ++ ++#: plugins/system_upgrade.py:314 ++msgid "Cannot find logs with this index." ++msgstr "ใ“ใฎใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นใฎใƒญใ‚ฐใŒ่ฆ‹ใคใ‹ใ‚Šใพใ›ใ‚“ใ€‚" ++ ++#: plugins/system_upgrade.py:323 ++msgid "Unable to match systemd journal entry" ++msgstr "systemd ใ‚ธใƒฃใƒผใƒŠใƒซใ‚จใƒณใƒˆใƒชใƒผใซใƒžใƒƒใƒใงใใชใ„" ++ ++#: plugins/system_upgrade.py:344 ++msgid "Prepare system for upgrade to a new release" ++msgstr "ๆ–ฐใ—ใ„ใƒชใƒชใƒผใ‚นใธใฎใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใซๅ‘ใ‘ใŸใ‚ทใ‚นใƒ†ใƒ ใฎๆบ–ๅ‚™" ++ ++#: plugins/system_upgrade.py:360 ++msgid "keep installed packages if the new release's version is older" ++msgstr "ๆ–ฐใ—ใ„ใƒชใƒชใƒผใ‚นใฎใƒใƒผใ‚ธใƒงใƒณใŒๅคใ„ๅ ดๅˆใฏใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’็ถญๆŒใ—ใพ" ++"ใ™" ++ ++#: plugins/system_upgrade.py:364 ++msgid "which logs to show" ++msgstr "่กจ็คบใ™ใ‚‹ใƒญใ‚ฐ" ++ ++#: plugins/system_upgrade.py:398 ++#, python-brace-format ++msgid "Incompatible version of data. Rerun 'dnf {command} download [OPTIONS]'" ++msgstr "ไบ’ๆ›ๆ€งใฎใชใ„ใƒใƒผใ‚ธใƒงใƒณใฎใƒ‡ใƒผใ‚ฟใ€‚'dnf {command} download [OPTIONS]' " ++"ใ‚’ๅ†ๅฎŸ่กŒใ—ใพใ™ใ€" ++ ++#: plugins/system_upgrade.py:434 ++msgid "Command 'offline-distrosync' cannot be used with --no-downgrade option" ++msgstr "ใ‚ณใƒžใƒณใƒ‰ 'offline-distrosync' ใฏ --no-downgrade ใ‚ชใƒ—ใ‚ทใƒงใƒณใจไฝต็”จใงใใพใ›ใ‚“" ++ ++#: plugins/system_upgrade.py:454 ++msgid "" ++"WARNING: this operation is not supported on the RHEL distribution. Proceed " ++"at your own risk." ++msgstr "่ญฆๅ‘Š: ใ“ใฎๆ“ไฝœใฏ RHEL ใƒ‡ใ‚ฃใ‚นใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณใงใฏใ‚ตใƒใƒผใƒˆใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚่‡ชๅทฑ" ++"่ฒฌไปปใง็ถš่กŒใ—ใฆใใ ใ•ใ„ใ€‚" ++ ++#: plugins/system_upgrade.py:458 ++msgid "Additional information for System Upgrade: {}" ++msgstr "ใ‚ทใ‚นใƒ†ใƒ ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใฎ่ฟฝๅŠ ๆƒ…ๅ ฑ: {}" ++ ++#: plugins/system_upgrade.py:461 ++msgid "" ++"Before you continue ensure that your system is fully upgraded by running " ++"\"dnf --refresh upgrade\". Do you want to continue" ++msgstr "็ถš่กŒใ™ใ‚‹ๅ‰ใซใ€dnf --refresh upgrade ใ‚’ๅฎŸ่กŒใ—ใฆใ€ใ‚ทใ‚นใƒ†ใƒ ใŒๅฎŒๅ…จใซใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผ" ++"ใƒ‰ใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ‚’็ขบ่ชใ—ใพใ™ใ€‚็ถš่กŒใ—ใพใ™ใ‹" ++ ++#: plugins/system_upgrade.py:465 ++msgid "Operation aborted." ++msgstr "ๆ“ไฝœใŒไธญๆ–ญใ•ใ‚Œใพใ—ใŸใ€‚" ++ ++#: plugins/system_upgrade.py:526 ++msgid "system is not ready for upgrade" ++msgstr "ใ‚ทใ‚นใƒ†ใƒ ใŒใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใฎๆบ–ๅ‚™ใŒใงใใฆใ„ใพใ›ใ‚“" ++ ++#: plugins/system_upgrade.py:529 ++#, python-brace-format ++msgid "" ++"the transaction was not prepared for '{command}'. Rerun 'dnf {command} " ++"download [OPTIONS]'" ++msgstr "" ++"ใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใฏ '{command}' ใซๅฏพใ—ใฆๆบ–ๅ‚™ใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚'dnf {command} " ++"download [OPTIONS]' ใ‚’ๅ†ๅฎŸ่กŒใ—ใพใ™ใ€" ++ ++#: plugins/system_upgrade.py:533 ++msgid "upgrade is already scheduled" ++msgstr "ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใฏใ™ใงใซใ‚นใ‚ฑใ‚ธใƒฅใƒผใƒซใ•ใ‚Œใฆใ„ใพใ™" ++ ++#: plugins/system_upgrade.py:539 ++msgid "trigger file does not exist. exiting quietly." ++msgstr "ใƒˆใƒชใ‚ฌใƒผใƒ•ใ‚กใ‚คใƒซใฏๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚้–“ใ‚‚ใชใ็ต‚ไบ†ใ—ใพใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:542 ++msgid "another upgrade tool is running. exiting quietly." ++msgstr "ๅˆฅใฎใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใƒ„ใƒผใƒซใŒๅฎŸ่กŒไธญใงใ€่ญฆๅ‘Šใชใ—ใง็ต‚ไบ†ใ—ใพใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:551 ++#, python-brace-format ++msgid "use 'dnf {command} reboot' to begin the upgrade" ++msgstr "'dnf {command} reboot' ใ‚’ไฝฟ็”จใ—ใฆใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’้–‹ๅง‹ใ—ใพใ™" ++ ++#: plugins/system_upgrade.py:569 ++msgid "Rebooting to perform upgrade." ++msgstr "ๅ†่ตทๅ‹•ใ—ใฆใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:602 ++msgid "Starting offline upgrade. This will take a while." ++msgstr "ใ‚ชใƒ•ใƒฉใ‚คใƒณใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใฎ้–‹ๅง‹ใ€‚ใ“ใ‚Œใซใฏๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใพใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:604 ++msgid "Starting offline distrosync. This will take a while." ++msgstr "ใ‚ชใƒ•ใƒฉใ‚คใƒณใฎ distrosync ใฎ้–‹ๅง‹ใ€‚ใ“ใ‚Œใซใฏๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใพใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:606 ++msgid "Starting system upgrade. This will take a while." ++msgstr "ใ‚ทใ‚นใƒ†ใƒ ใฎใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใ‚’้–‹ๅง‹ใ—ใพใ™ใ€‚ใ“ใ‚Œใซใฏๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใพใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:622 ++msgid "Cleaning up downloaded data..." ++msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใŸใƒ‡ใƒผใ‚ฟใฎใ‚ฏใƒชใƒผใƒณใ‚ขใƒƒใƒ—ไธญ..." ++ ++#: plugins/system_upgrade.py:652 ++msgid "" ++"The system-upgrade transaction is empty, your system is already up-to-date." ++msgstr "ใ‚ทใ‚นใƒ†ใƒ ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใฏ็ฉบใงใ€ใ‚ทใ‚นใƒ†ใƒ ใฏใ™ใงใซๆœ€ๆ–ฐใงใ™ใ€‚" ++ ++#: plugins/system_upgrade.py:661 ++msgid "Transaction saved to {}." ++msgstr "{} ใซไฟๅญ˜ใ•ใ‚Œใฆใ„ใ‚‹ใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใ€‚" ++ ++#: plugins/system_upgrade.py:664 ++msgid "Error storing transaction: {}" ++msgstr "ใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณใฎไฟๅญ˜ใ‚จใƒฉใƒผ๏ผš {}" ++ ++#: plugins/system_upgrade.py:686 ++msgid "Download finished." ++msgstr "ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใŒๅฎŒไบ†ใ—ใพใ—ใŸใ€‚" ++ ++#: plugins/system_upgrade.py:689 plugins/system_upgrade.py:690 ++msgid "Upgrade complete! Cleaning up and rebooting..." ++msgstr "ใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใฎๅฎŒไบ†! ใ‚ฏใƒชใƒผใƒณใ‚ขใƒƒใƒ—ใŠใ‚ˆใณๅ†่ตทๅ‹•ใ‚’่กŒใฃใฆใ„ใพใ™..." ++ ++#: plugins/system_upgrade.py:699 ++msgid "Prepare offline upgrade of the system" ++msgstr "ใ‚ทใ‚นใƒ†ใƒ ใฎใ‚ชใƒ•ใƒฉใ‚คใƒณใ‚ขใƒƒใƒ—ใ‚ฐใƒฌใƒผใƒ‰ใฎๆบ–ๅ‚™" ++ ++#: plugins/system_upgrade.py:704 ++msgid "Prepare offline distrosync of the system" ++msgstr "ใ‚ทใ‚นใƒ†ใƒ ใฎใ‚ชใƒ•ใƒฉใ‚คใƒณใฎ distrosync ใ‚’ๆบ–ๅ‚™ใ—ใพใ™" + + #: plugins/versionlock.py:33 + #, python-format +@@ -1312,7 +1547,8 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "versionlock ใƒ—ใƒฉใ‚ฐใ‚คใƒณ: ใƒ•ใ‚กใ‚คใƒซ \"{}\" ใฎใƒญใƒƒใ‚ฏใƒซใƒผใƒซใฎๆ•ฐใ‚’้ฉ็”จ: {}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "versionlock ใƒ—ใƒฉใ‚ฐใ‚คใƒณ: ใƒ•ใ‚กใ‚คใƒซ \"{}\" ใฎ้™คๅค–ใƒซใƒผใƒซใฎๆ•ฐใ‚’้ฉ็”จ: {}" + + #: plugins/versionlock.py:45 +@@ -1329,11 +1565,14 @@ msgstr "ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธไป•ๆง˜ใ‚’ใใฎใพใพไฝฟ็”จใ—ใ€่งฃๆžใ‚’่ฉฆใฟใชใ„ใง + + #: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." +-msgstr "ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ '{}' ใฏ้žๆŽจๅฅจใซใชใ‚Šใพใ—ใŸใ€‚ไปฃใ‚ใ‚Šใซ 'exclude' ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚" ++msgstr "" ++"ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ '{}' ใฏ้žๆŽจๅฅจใซใชใ‚Šใพใ—ใŸใ€‚ไปฃใ‚ใ‚Šใซ 'exclude' ใ‚ตใƒ–ใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จ" ++"ใ—ใฆใใ ใ•ใ„ใ€‚" + + #~ msgid "" + #~ "This repository does not have any builds yet so you cannot enable it now." +-#~ msgstr "ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใซใฏใพใ ใƒ“ใƒซใƒ‰ใŒใ‚ใ‚Šใพใ›ใ‚“ใฎใงใ€ไปŠใ™ใๆœ‰ๅŠนๅŒ–ใงใใพใ›ใ‚“ใ€‚" ++#~ msgstr "" ++#~ "ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใƒผใซใฏใพใ ใƒ“ใƒซใƒ‰ใŒใ‚ใ‚Šใพใ›ใ‚“ใฎใงใ€ไปŠใ™ใๆœ‰ๅŠนๅŒ–ใงใใพใ›ใ‚“ใ€‚" + + #~ msgid "" + #~ "\n" +diff --git a/po/ko.po b/po/ko.po +index d799e98..6b77d34 100644 +--- a/po/ko.po ++++ b/po/ko.po +@@ -1,22 +1,22 @@ + # Ludek Janda , 2018. #zanata, 2020. +-# Marek Blaha , 2020. +-# simmon , 2021, 2022. ++# simmon , 2021. + # Kim InSoo , 2022. +-# ๊น€์ธ์ˆ˜ , 2022. ++# ๊น€์ธ์ˆ˜ , 2022, 2023. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-08 02:57+0000\n" +-"PO-Revision-Date: 2022-07-21 10:36+0000\n" ++"POT-Creation-Date: 2023-02-28 12:26+0100\n" ++"PO-Revision-Date: 2023-03-03 04:20+0000\n" + "Last-Translator: ๊น€์ธ์ˆ˜ \n" +-"Language-Team: Korean \n" ++"Language-Team: Korean \n" + "Language: ko\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=1; plural=0;\n" +-"X-Generator: Weblate 4.13\n" ++"X-Generator: Weblate 4.15.2\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -37,7 +37,7 @@ msgstr "ํŠน์ •ํ•œ ํŒŒ์ผ ๊ตฌ๋ฌธ๋ถ„์„์„ ์œ„ํ•ด ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•œ๋‹ค" + + #: plugins/builddep.py:95 + msgid "skip build dependencies not available in repositories" +-msgstr "์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๋Š” ๊ตฌ์„ฑ ์˜์กด์„ฑ์„ ๊ฑด๋„ˆ๋„๊ธฐ ํ•œ๋‹ค" ++msgstr "์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๋Š” ๊ตฌ์„ฑ ์˜์กด์„ฑ์„ ๊ฑด๋„ˆ ๋›ฐ๊ธฐ ํ•œ๋‹ค" + + #: plugins/builddep.py:98 + msgid "treat commandline arguments as spec files" +@@ -56,8 +56,7 @@ msgid "Some packages could not be found." + msgstr "๋ช‡๋ช‡ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -68,16 +67,22 @@ msgstr "์„ค์น˜: '%s' ๊พธ๋Ÿฌ๋ฏธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" + msgid "Failed to open: '%s', not a valid source rpm file." + msgstr "์—ฌ๋Š”๋ฐ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค: '%s', ์œ ํšจํ•œ rpm ํŒŒ์ผ ์ถœ์ฒ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค." + +-#: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237 ++#: plugins/builddep.py:204 plugins/builddep.py:224 plugins/builddep.py:241 + msgid "Not all dependencies satisfied" + msgstr "๋ชจ๋“  ์˜์กด์„ฑ์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" + +-#: plugins/builddep.py:211 ++#: plugins/builddep.py:208 ++msgid "" ++"Warning: -D or --define arguments have no meaning for source rpm packages." ++msgstr "๊ฒฝ๊ณ : -D ๋˜๋Š” --define ์ธ์ˆ˜๋Š” ์›์ฒœ rpm ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•ด ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ " ++"์•Š์Šต๋‹ˆ๋‹ค." ++ ++#: plugins/builddep.py:215 + #, python-format + msgid "Failed to open: '%s', not a valid spec file: %s" + msgstr "์—ฌ๋Š”๋ฐ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค '%s', ์ง€์ •ํ•œ ํŒŒ์ผ: %s๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค" + +-#: plugins/builddep.py:230 plugins/repoclosure.py:124 ++#: plugins/builddep.py:234 plugins/repoclosure.py:124 + #, python-format + msgid "no package matched: %s" + msgstr "์ผ์น˜ํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ ์—†์Œ: %s" +@@ -95,7 +100,9 @@ msgstr "๊พธ๋Ÿฌ๋ฏธ์˜ ๋ณ€ํ™” ๊ธฐ๋ก์ž๋ฃŒ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค" + msgid "" + "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " + "is recommended." +-msgstr "DATE ์ดํ›„์— ๋ณ€ํ™”๊ธฐ๋ก๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ชจํ˜ธํ•จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, YYYY-MM-DD ํ˜•์‹์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค." ++msgstr "" ++"DATE ์ดํ›„์— ๋ณ€ํ™”๊ธฐ๋ก๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ชจํ˜ธํ•จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, YYYY-MM-DD ํ˜•์‹์„ " ++"์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค." + + #: plugins/changelog.py:55 + msgid "show given number of changelog entries per package" +@@ -105,7 +112,9 @@ msgstr "์ฃผ์–ด์ง„ ์ˆ˜์˜ ๊พธ๋Ÿฌ๋ฏธ ๋งˆ๋‹ค ๋ณ€ํ™”๊ธฐ๋ก ํ•ญ๋ชฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค + msgid "" + "show only new changelog entries for packages, that provide an upgrade for " + "some of already installed packages." +-msgstr "๋ช‡๋ช‡ ์ด๋ฏธ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋“ค์˜ ์ตœ์‹ ํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ณ€ํ™”๊ธฐ๋ก๋งŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค." ++msgstr "" ++"๋ช‡๋ช‡ ์ด๋ฏธ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋“ค์˜ ์ตœ์‹ ํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ณ€ํ™”๊ธฐ๋ก" ++"๋งŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค." + + #: plugins/changelog.py:60 + msgid "PACKAGE" +@@ -179,8 +188,8 @@ msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" +-"๊ฒฝ๊ณ : -- --enablerepo/--disablerepo ์ธ์ˆ˜๋Š” ์„ค์ • ๊ด€๋ฆฌ์ž์™€ ํ•จ๊ป˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— --set-" +-"enabled/--set-disabled๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”." ++"๊ฒฝ๊ณ : -- --enablerepo/--disablerepo ์ธ์ˆ˜๋Š” ์„ค์ • ๊ด€๋ฆฌ์ž์™€ ํ•จ๊ป˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ณ  ์žˆ" ++"์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— --set-enabled/--set-disabled๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”." + + #: plugins/config_manager.py:132 + #, python-format +@@ -200,7 +209,7 @@ msgstr[0] "์ €์žฅ์†Œ ๊ตฌ์„ฑ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค" + #: plugins/config_manager.py:217 + #, python-format + msgid "Could not save repo to repofile %s: %s" +-msgstr "repofile์— repo๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. %s: %s" ++msgstr "repofile์— repo๋ฅผ ์ €์žฅ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. %s: %s" + + #: plugins/copr.py:70 + msgid "y" +@@ -286,11 +295,11 @@ msgstr "์˜ค๋ฅ˜: " + + #: plugins/copr.py:165 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"Corp hub๋ฅผ `--hub` ๋˜๋Š” ์‚ฌ์šฉํ•˜๊ธฐ `copr_hub/copr_username/copr_projectname`ํ˜•์‹์œผ๋กœ " +-"์ง€์ •ํ•ฉ๋‹ˆ๋‹ค" ++"Corp hub๋ฅผ `--hub` ๋˜๋Š” ์‚ฌ์šฉํ•˜๊ธฐ `copr_hub/copr_username/copr_projectname`ํ˜•" ++"์‹์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค" + + #: plugins/copr.py:168 + msgid "multiple hubs specified" +@@ -312,7 +321,9 @@ msgstr "์„ ํƒ์ ์ธ chroot์˜ ๋‚˜์œ ํ˜•์‹. ํ˜•์‹์€ ๋ฐฐํฌ-๋ฒ„์ „-๊ตฌ์กฐ์ž… + + #: plugins/copr.py:264 + msgid "use format `copr_username/copr_projectname` to reference copr project" +-msgstr "copr ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด`copr_username / copr_projectname` ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค" ++msgstr "" ++"copr ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด`copr_username / copr_projectname` ํ˜•์‹์„ ์‚ฌ์šฉํ•˜" ++"์‹ญ์‹œ์˜ค" + + #: plugins/copr.py:266 + msgid "bad copr project format" +@@ -326,19 +337,23 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" + "Bugzilla. In case of problems, contact the owner of this repository.\n" + msgstr "" + "\n" +-"Core ์ €์ •์†Œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ์ฃผ์š” ๋ฐฐํฌํŒ ๋ถ€๋ถ„์ด ์•„๋‹˜์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋ฐ”๋ผ๊ณ ,\n" ++"Core ์ €์ •์†Œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ์ฃผ์š” ๋ฐฐํฌํŒ ๋ถ€๋ถ„์ด ์•„๋‹˜์„ ์•Œ๊ณ  ์žˆ๊ธฐ " ++"๋ฐ”๋ผ๊ณ ,\n" + "ํ’ˆ์งˆ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n" + "\n" + "ํŽ˜๋„๋ผ ํ”„๋กœ์ ํŠธ๋Š”\n" +-"์—\n" +-"Core FAQ์— ์žˆ๋Š” ์„ค๋ช…๋œ ๊ทœ์น™์„ ๋„˜๋Š” ์ €์žฅ์†Œ ๋‚ด์šฉ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ์‹œํ—˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ,\n" ++"์—\n" ++"Core FAQ์— ์žˆ๋Š” ์„ค๋ช…๋œ ๊ทœ์น™์„ ๋„˜๋Š” ์ €์žฅ์†Œ ๋‚ด์šฉ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ์‹œํ—˜ํ•˜์ง€ ์•Š์œผ" ++"๋ฉฐ,\n" + "๊ทธ๋ฆฌ๊ณ  ๊พธ๋Ÿฌ๋ฏธ(package)๋Š” ์–ด๋–ค ํ’ˆ์งˆ์ด๋‚˜ ๋ณด์•ˆ ์ˆ˜์ค€์„ ์œ ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.\n" + "\n" + "ํŽ˜๋„๋ผ ๋ฒ„๊ทธ์งˆ๋ผ์— ์ด๋“ค ๊พธ๋Ÿฌ๋ฏธ์— ๋Œ€ํ•œ ํŒŒ์ผ ๊ฒฐ์  ๋ณด๊ณ ๋ฅผ ์ œ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”.\n" +@@ -362,12 +377,12 @@ msgstr "์•Œ ์ˆ˜์—†๋Š” ๋ถ€์† ๋ช…๋ น {}." + + #: plugins/copr.py:367 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" +-"* ์ด๋“ค coprs์€ Copr hub์— ๋Œ€ํ•˜์—ฌ ์–ด๋–ค ์ •๋ณด๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ํ˜•ํƒœ์˜ ์ €์žฅ์†Œ ํŒŒ์ผ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ" +-" ์œ„ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์žฌํ™œ์„ฑํ™”ํ•˜์„ธ์š”." ++"* ์ด๋“ค coprs์€ Copr hub์— ๋Œ€ํ•˜์—ฌ ์–ด๋–ค ์ •๋ณด๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ํ˜•ํƒœ์˜ ์ €์žฅ" ++"์†Œ ํŒŒ์ผ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์žฌํ™œ์„ฑํ™”ํ•˜์„ธ์š”." + + #: plugins/copr.py:380 + msgid "Can't parse repositories for username '{}'." +@@ -408,12 +423,12 @@ msgstr "{0}์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์‹คํŒจํ•จ: {1} - {2}" + + #: plugins/copr.py:489 + msgid "It wasn't possible to enable this project.\n" +-msgstr "์ด ํ”„๋กœ์ ํŠธ๋Š” ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n" ++msgstr "์ด์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n" + + #: plugins/copr.py:494 + #, python-brace-format + msgid "Repository '{0}' does not exist in project '{1}'." +-msgstr "์ €์žฅ์†Œ '{0}'๋Š” ํ”„๋กœ์ ํŠธ '{1}'์—์„œ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." ++msgstr "์ €์žฅ์†Œ '{0}'๋Š” ํ”„๋กœ์ ํŠธ '{1}'์— ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." + + #: plugins/copr.py:497 + msgid "" +@@ -421,7 +436,7 @@ msgid "" + "Available repositories: " + msgstr "" + "\n" +-"์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ €์žฅ์†Œ ๋ชฉ๋ก: " ++"์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ €์žฅ์†Œ: " + + #: plugins/copr.py:499 + #, python-brace-format +@@ -434,19 +449,21 @@ msgid "" + msgstr "" + "\n" + "\n" +-"๋งŒ์•ฝ ๊ธฐ๋ณธ์„ค์ •๋˜์ง€ ์•Š์€ ์ €์žฅ์†Œ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์„ธ์š”:\n" +-" 'dnf copr enable {0} '\n" +-"ํ•˜์ง€๋งŒ ์„ค์น˜๋œ ์ €์žฅ์†Œ ํŒŒ์ผ์€ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”." ++"๋งŒ์•ฝ ๊ธฐ๋ณธ์„ค์ •๋˜์ง€ ์•Š์€ ์ €์žฅ์†Œ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์„ธ" ++"์š”: \n" ++" 'dnf copr enable {0} ' \n" ++"ํ•˜์ง€๋งŒ ์„ค์น˜๋œ ์ €์žฅ์†Œ ํŒŒ์ผ์€ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ์ฐธ๊ณ ํ•˜์„ธ" ++"์š”." + + #: plugins/copr.py:505 + #, python-brace-format + msgid "Project {0} does not exist." +-msgstr "ํ”„๋กœ์ ํŠธ {0}๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." ++msgstr "ํ”„๋กœ์ ํŠธ {0}๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." + + #: plugins/copr.py:508 + #, python-brace-format + msgid "Failed to connect to {0}: {1}" +-msgstr "{0}: {1}๋กœ ์—ฐ๊ฒฐ ํ•˜๋Š”๋ฐ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค" ++msgstr "์—ฐ๊ฒฐ ํ•˜๋Š”๋ฐ ์‹คํŒจํ•จ {0}: {1}" + + #: plugins/copr.py:555 + #, python-brace-format +@@ -551,7 +568,9 @@ msgstr "๊ธฐ๋ก ๋œ ๊พธ๋Ÿฌ๋ฏธ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค." + msgid "" + "Ignore architecture and install missing packages matching the name, epoch, " + "version and release." +-msgstr "๊ตฌ์กฐ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด๋ฆ„, ๊ธฐ์›, ๋ฒ„์ „๋ฐ ์ถœ์‹œ์™€ ์ผ์น˜ํ•˜๋Š” ๋ˆ„๋ฝ ๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค." ++msgstr "" ++"๊ตฌ์กฐ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด๋ฆ„, ๊ธฐ์›, ๋ฒ„์ „๋ฐ ์ถœ์‹œ์™€ ์ผ์น˜ํ•˜๋Š” ๋ˆ„๋ฝ ๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์„ค์น˜ํ•˜์‹ญ" ++"์‹œ์˜ค." + + #: plugins/debug.py:196 + msgid "limit to specified type" +@@ -561,7 +580,9 @@ msgstr "ํŠน์ • ์œ ํ˜•์œผ๋กœ ์ œํ•œ" + msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." +-msgstr "์„ค์น˜์ „์šฉ ๊พธ๋ฆฌ๋ฏธ ์ œ๊ฑฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ ํƒ์˜ ์‚ฌ์šฉ์€ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." ++msgstr "" ++"์„ค์น˜์ „์šฉ ๊พธ๋ฆฌ๋ฏธ ์ œ๊ฑฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ ํƒ์˜ ์‚ฌ์šฉ์€ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์„ ์ œ๊ฑฐ" ++"ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -585,7 +606,8 @@ msgstr "๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ ์„ค์น˜" + #, python-format + msgid "" + "Could not find debuginfo package for the following available packages: %s" +-msgstr "๋‹ค์Œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: %s" ++msgstr "" ++"๋‹ค์Œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ๋””๋ฒ„๊ทธ์ •๋ณด ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: %s" + + #: plugins/debuginfo-install.py:185 + #, python-format +@@ -641,7 +663,9 @@ msgstr "ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ณ  ๋‚ด๋ ค๋ฐ›์•„์š”" + msgid "" + "when running with --resolve, download all dependencies (do not exclude " + "already installed ones)" +-msgstr "--resolve ์™€ ํ•จ๊ป˜ ์‹คํ–‰ ํ•  ๋•Œ์—, ๋ชจ๋“  ์˜์กด์„ฑ์„ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค (์ด๋ฏธ ์„ค์น˜๋œ ๊ฒƒ๋“ค์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)" ++msgstr "" ++"--resolve ์™€ ํ•จ๊ป˜ ์‹คํ–‰ ํ•  ๋•Œ์—, ๋ชจ๋“  ์˜์กด์„ฑ์„ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค (์ด๋ฏธ ์„ค์น˜๋œ ๊ฒƒ๋“ค" ++"์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)" + + #: plugins/download.py:67 + msgid "" +@@ -689,11 +713,13 @@ msgstr "๋ฒˆ์—ญ๋œ ์ž๋ฃŒ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์Œ/๋น„์›Œ์ง" + + #: plugins/groups_manager.py:71 + msgid "Can't generate group id from '{}'. Please specify group id using --id." +-msgstr "'{}' ์—์„œ ๊ทธ๋ฃน id๋ฅผ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •ํ•ด ์ฃผ์„ธ์š”." ++msgstr "" ++"'{}' ์—์„œ ๊ทธ๋ฃน id๋ฅผ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •ํ•ด ์ฃผ" ++"์„ธ์š”." + + #: plugins/groups_manager.py:79 + msgid "create and edit groups metadata file" +-msgstr "๊ทธ๋ฃน ๋ฉ”ํƒ€๋ฐ์ดํƒ€ ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค" ++msgstr "๊ทธ๋ฃน ๋ฉ”ํƒ€์ž๋ฃŒ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค" + + #: plugins/groups_manager.py:90 + msgid "load groups metadata from file" +@@ -709,7 +735,7 @@ msgstr "๊ทธ๋ฃน ๋ฉ”ํƒ€ํŒŒ์ผ์„ ํŒŒ์ผ์— ์ ์žฌํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค" + + #: plugins/groups_manager.py:97 + msgid "print the result metadata to stdout" +-msgstr "๊ฒฐ๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํƒ€๋ฅผ ํ‘œ์ค€์ถœ๋ ฅ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค" ++msgstr "๊ฒฐ๊ณผ ๋ฉ”ํƒ€์ž๋ฃŒ๋ฅผ ํ‘œ์ค€์ถœ๋ ฅ์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค" + + #: plugins/groups_manager.py:100 + msgid "group id" +@@ -785,9 +811,11 @@ msgstr "์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ + + #: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." +-msgstr "'{}'์—์„œ ๋ฐœ์ƒํ•œ ๊ทธ๋ฃน id '{}'๋Š” ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •ํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." ++msgstr "" ++"'{}'์—์„œ ๋ฐœ์ƒํ•œ ๊ทธ๋ฃน id '{}'๋Š” ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --id๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน id๋ฅผ ์ง€์ •" ++"ํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค." + + #: plugins/leaves.py:32 + msgid "List installed packages not required by any other package" +@@ -824,23 +852,24 @@ msgstr "๊ธฐ๋ก ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘ ..." + #: plugins/modulesync.py:37 + msgid "" + "Download packages from modules and/or create a repository with modular data" +-msgstr "๋ชจ๋“ˆ์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๋‚ด๋ ค ๋ฐ›๊ธฐ์™€/๋˜๋Š” ๋ชจ๋“ˆ์‹ ์ž๋ฃŒ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑ" ++msgstr "" ++"๋ชจ๋“ˆ์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ๋‚ด๋ ค ๋ฐ›๊ธฐ์™€/๋˜๋Š” ๋ชจ๋“ˆ์‹ ์ž๋ฃŒ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑ" + + #: plugins/modulesync.py:44 + msgid "MODULE" +-msgstr "๋ชจ๋“ˆ" ++msgstr "MODULE" + + #: plugins/modulesync.py:45 + msgid "modules to download" +-msgstr "๋‚ด๋ ค๋ฐ›์•„์•ผ ํ•  ๋ชจ๋“ˆ" ++msgstr "๋‚ด๋ ค๋ฐ›๊ธฐ ํ•  ๋ชจ๋“ˆ" + + #: plugins/modulesync.py:47 + msgid "enable repositories with source packages" +-msgstr "์›์ฒœ ๊พธ๋Ÿฌ๋ฏธ์™€ ํ•จ๊ป˜ ์ €์žฅ์†Œ๋ฅผ ํ™œ์„ฑํ™”" ++msgstr "์›์ฒœ ๊พธ๋Ÿฌ๋ฏธ๋กœ ์ €์žฅ์†Œ ํ™œ์„ฑํ™”" + + #: plugins/modulesync.py:49 + msgid "enable repositories with debug-info and debug-source packages" +-msgstr "๋””๋ฒ„๊ทธ-์ •๋ณด์™€ ๋””๋ฒ„๊ทธ-์›์ฒœ ๊พธ๋Ÿฌ๋ฏธ์™€ ํ•จ๊ป˜ ์ €์žฅ์†Œ ํ™œ์„ฑํ™”" ++msgstr "debug-info์™€ debug-source ๊พธ๋Ÿฌ๋ฏธ๋กœ ์ €์žฅ์†Œ ํ™œ์„ฑํ™”" + + #: plugins/modulesync.py:53 + msgid "download only packages from newest modules" +@@ -849,27 +878,30 @@ msgstr "์ตœ์‹  ๋ชจ๋“ˆ์—์„œ ๊พธ๋Ÿฌ๋ฏธ๋งŒ ๋‚ด๋ ค๋ฐ›๊ธฐ" + #: plugins/modulesync.py:85 + msgid "Unable to find a match for argument: '{}'" + msgid_plural "Unable to find a match for arguments: '{}'" +-msgstr[0] "์ธ์ˆ˜์™€ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: '{}'" ++msgstr[0] "์ธ์ˆ˜์™€ ์ผ์น˜ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: '{}'" + + #: plugins/modulesync.py:107 + msgid "" + "Creation of repository failed with return code {}. All downloaded content " + "was kept on the system" +-msgstr "๋ฐ˜ํ™˜ ์ฝ”๋“œ {}๋กœ ์ธํ•˜์—ฌ ์ €์žฅ์†Œ ์ƒ์„ฑ์— ์‹คํŒจํ•จ. ๋ชจ๋‘ ๋‚ด๋ ค๋ฐ›๊ธฐ๋œ ๋‚ด์šฉ์€ ์‹œ์Šคํ…œ์—์„œ ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค" ++msgstr "" ++"๋ฐ˜ํ™˜ ์ฝ”๋“œ {}๋กœ ์ธํ•˜์—ฌ ์ €์žฅ์†Œ ์ƒ์„ฑ์— ์‹คํŒจํ•จ. ๋ชจ๋‘ ๋‚ด๋ ค๋ฐ›๊ธฐ๋œ ๋‚ด์šฉ์€ ์‹œ์Šคํ…œ์—" ++"์„œ ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค" + + #: plugins/modulesync.py:144 + #, python-brace-format + msgid "No match for artifact '{0}' from module '{1}'" +-msgstr "๋ชจ๋“ˆ '{1}'์—์„œ ์ธ์œ„ ๊ฒฐ๊ณผ๋ฌผ '{0}'๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค" ++msgstr "๋ชจ๋“ˆ '{1}' ์—์„œ ์ธ์œ„ ๊ฒฐ๊ณผ๋ฌผ '{0}'๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค" + + #: plugins/modulesync.py:162 + #, python-brace-format + msgid "No match for package name '{0}' in profile {1} from module {2}" +-msgstr "๋ชจ๋“ˆ {2}์—์„œ ํ”„๋กœํŒŒ์ผ {1}์ธ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ '{0}'๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค" ++msgstr "" ++"๋ชจ๋“ˆ {2}์—์„œ ํ”„๋กœํŒŒ์ผ {1}์ธ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ '{0}'๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†์Šต๋‹ˆ๋‹ค" + + #: plugins/modulesync.py:166 + msgid "No mach for argument '{}'" +-msgstr "์ธ์ˆ˜์™€ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค '{}'" ++msgstr "์ธ์ˆ˜ '{}'์™€ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค" + + #. TODO(jmracek) Shell we end with an error or with RC 1? + #: plugins/modulesync.py:198 +@@ -881,7 +913,9 @@ msgstr "ํ•„์š”์‚ฌํ•ญ {}๋ฅผ ๋งŒ์กฑ ํ•  ์ˆ˜ ์—†์Œ" + msgid "" + "No installed package found for package name \"{pkg}\" specified in needs-" + "restarting file \"{file}\"." +-msgstr "์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•œ ํŒŒ์ผ \"{file}\" ์— ์ง€์ •ํ•œ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ \"{pkg}\"์„ ์œ„ํ•˜์—ฌ ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." ++msgstr "" ++"์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•œ ํŒŒ์ผ \"{file}\" ์— ์ง€์ •ํ•œ ๊พธ๋Ÿฌ๋ฏธ ์ด๋ฆ„ \"{pkg}\"์„ ์œ„ํ•˜์—ฌ ์„ค์น˜" ++"๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." + + #: plugins/needs_restarting.py:220 + msgid "determine updated binaries that need restarting" +@@ -894,7 +928,8 @@ msgstr "์ด ์‚ฌ์šฉ์ž์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ๊ณ ๋ คํ•˜์„ธ์š”" + #: plugins/needs_restarting.py:227 + msgid "" + "only report whether a reboot is required (exit code 1) or not (exit code 0)" +-msgstr "์žฌ์‹œ์ž‘์ด ์š”๊ตฌ๋˜๋Š” (exit code 1) ๋˜๋Š” ์•„๋‹Œ(exit code0) ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค" ++msgstr "" ++"์žฌ์‹œ์ž‘์ด ์š”๊ตฌ๋˜๋Š” (exit code 1) ๋˜๋Š” ์•„๋‹Œ(exit code0) ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค" + + #: plugins/needs_restarting.py:230 + msgid "only report affected systemd services" +@@ -947,9 +982,9 @@ msgid "Display a list of unresolved dependencies for repositories" + msgstr "์ €์žฅ์†Œ์— ๋Œ€ํ•œ ํ™•์ธ๋˜์ง€ ์•Š์€ ์ข…์†์„ฑ ๋ชฉ๋ก ํ‘œ์‹œ" + + #: plugins/repoclosure.py:69 +-msgid "" +-"Repoclosure ended with unresolved dependencies ({}) across {} packages." +-msgstr "Repoclosure๋Š” {} ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์˜์กด์„ฑ ({})์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ++msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." ++msgstr "" ++"Repoclosure๋Š” {} ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์˜์กด์„ฑ ({})์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." + + #: plugins/repoclosure.py:159 + msgid "check packages of the given archs, can be specified multiple times" +@@ -983,7 +1018,9 @@ msgstr "์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ๋Š”, ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค + msgid "" + "Specify architectures to compare, can be used multiple times. By default, " + "only source rpms are compared." +-msgstr "๋น„๊ต ํ•  ๊ตฌ์กฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ, ์ž์› rpms๋งŒ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค." ++msgstr "" ++"๋น„๊ต ํ•  ๊ตฌ์กฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ, ์ž์› rpms" ++"๋งŒ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค." + + #: plugins/repodiff.py:67 + msgid "Output additional data about the size of the changes." +@@ -991,9 +1028,10 @@ msgstr "ํฌ๊ธฐ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ž๋ฃŒ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค." + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." +-msgstr "๊ตฌ์กฐ์— ์˜ํ•ด ๊พธ๋Ÿฌ๋ฏธ ๋˜ํ•œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊พธ๋Ÿฌ๋ฏธ๋Š” ์ด๋ฆ„์œผ๋กœ๋งŒ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค." ++"Compare packages also by arch. By default packages are compared just by name." ++msgstr "" ++"๊ตฌ์กฐ์— ์˜ํ•ด ๊พธ๋Ÿฌ๋ฏธ ๋˜ํ•œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊พธ๋Ÿฌ๋ฏธ๋Š” ์ด๋ฆ„์œผ๋กœ๋งŒ ๋น„๊ต๋ฉ๋‹ˆ" ++"๋‹ค." + + #: plugins/repodiff.py:72 + msgid "Output a simple one line message for modified packages." +@@ -1124,7 +1162,7 @@ msgstr "--oldonly ๋˜๋Š” --new ์ค‘ ํ•˜๋‚˜๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”!" + + #: plugins/repomanage.py:63 + msgid "Pass either --old or --oldonly, not both!" +-msgstr "--oldonly ๋˜๋Š” --new ์ค‘ ํ•˜๋‚˜๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”!" ++msgstr "--old ๋˜๋Š” --oldonly ์ค‘ ํ•˜๋‚˜๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”!" + + #: plugins/repomanage.py:100 + msgid "No files to process" +@@ -1140,11 +1178,11 @@ msgstr "์ด์ „ ๊พธ๋Ÿฌ๋ฏธ ์ธ์‡„" + + #: plugins/repomanage.py:225 + msgid "Print the older packages. Exclude the newest packages." +-msgstr "์˜ค๋ž˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๊พธ๋Ÿฌ๋ฏธ๋Š” ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค." ++msgstr "์ด์ „ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๊พธ๋Ÿฌ๋ฏธ๋Š” ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค." + + #: plugins/repomanage.py:227 + msgid "Print the newest packages" +-msgstr "์ตœ์‹  ๊พธ๋Ÿฌ๋ฏธ(package) ์ธ์‡„" ++msgstr "์ตœ์‹  ๊พธ๋Ÿฌ๋ฏธ ์ถœ๋ ฅ" + + #: plugins/repomanage.py:229 + msgid "Space separated output, not newline" +@@ -1152,7 +1190,7 @@ msgstr "๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ ๋œ ์ถœ๋ ฅ์ด ์•„๋‹Œ ๊ฐœํ–‰ ๋ฌธ์ž" + + #: plugins/repomanage.py:231 + msgid "Newest N packages to keep - defaults to 1" +-msgstr "๋ณด๊ด€ํ•  ์ตœ์‹  N ๊พธ๋Ÿฌ๋ฏธ(package) - ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค" ++msgstr "๋ณด๊ด€ํ•˜๋ ค๋Š” ์ตœ์‹  N ๊พธ๋Ÿฌ๋ฏธ - ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค" + + #: plugins/repomanage.py:234 + msgid "Path to directory" +@@ -1172,7 +1210,7 @@ msgstr "์ €์žฅ์†Œ์— ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋กœ์ปฌ ๊พธ๋Ÿฌ๋ฏธ(package) + + #: plugins/reposync.py:68 + msgid "download all the metadata." +-msgstr "๋ชจ๋“  ๋ฉ”ํƒ€๋ฐ์ดํƒ€ ๋‚ด๋ ค๋ฐ›๊ธฐ." ++msgstr "๋ชจ๋“  ๋ฉ”ํƒ€์ž๋ฃŒ ๋‚ด๋ ค๋ฐ›๊ธฐ." + + #: plugins/reposync.py:70 + msgid "Remove packages that fail GPG signature checking after downloading" +@@ -1184,9 +1222,11 @@ msgstr "๋˜ํ•œ comps.xml ๋‚ด๋ ค๋ฐ›๊ธฐ์™€ ์••์ถ• ํ’€๊ธฐ" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." +-msgstr "๋‚ด๋ ค๋ฐ›์€ ์ €์žฅ์†Œ ๋ฉ”ํƒ€๋ฐ์ดํƒ€๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์†Œ. --download-path์˜ ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." ++msgstr "" ++"๋‚ด๋ ค๋ฐ›์€ ์ €์žฅ์†Œ ๋ฉ”ํƒ€์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์†Œ. --download-path์˜ ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ " ++"์ง€์ •ํ•ฉ๋‹ˆ๋‹ค." + + #: plugins/reposync.py:78 + msgid "download only newest packages per-repo" +@@ -1219,7 +1259,7 @@ msgstr "๋‹ค์ค‘ ์ €์žฅ์†Œ์™€ ํ•จ๊ป˜ --norepath๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" + #: plugins/reposync.py:132 + #, python-format + msgid "Failed to get mirror for metadata: %s" +-msgstr "๋ฉ”ํƒ€๋ฐ์ดํƒ€์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ฃผ์†Œ ์–ป๊ธฐ๋ฅผ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค:%s" ++msgstr "๋ฉ”ํƒ€์ž๋ฃŒ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ฃผ์†Œ ์–ป๊ธฐ๋ฅผ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค:%s" + + #: plugins/reposync.py:149 + msgid "Failed to get mirror for the group file." +@@ -1256,6 +1296,181 @@ msgstr "์ €์žฅ์†Œ์— ๋Œ€ํ•œ comps.xml %s ์ €์žฅ๋œ" + msgid "New leaves:" + msgstr "๋…๋ฆฝ ๊พธ๋Ÿฌ๋ฏธ:" + ++#. Translators: This string is only used in unit tests. ++#: plugins/system_upgrade.py:45 ++msgid "the color of the sky" ++msgstr "ํ•˜๋Š˜์˜ ์ƒ‰" ++ ++#: plugins/system_upgrade.py:57 ++msgid "Need a --releasever greater than the current system version." ++msgstr "ํ˜„์žฌ ์‹œ์Šคํ…œ ๋ฒ„์ „ ๋ณด๋‹ค ํฐ --releasever๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค." ++ ++#. Translators: do not change "reboot" here ++#: plugins/system_upgrade.py:59 ++#, python-brace-format ++msgid "" ++"Download complete! Use 'dnf {command} reboot' to start the upgrade.\n" ++"To remove cached metadata and transaction use 'dnf {command} clean'" ++msgstr "" ++"๋‚ด๋ ค๋ฐ›๊ธฐ ์™„๋ฃŒ! ํ–ฅ์ƒ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด 'dnf {command} reboot'๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.\n" ++"์บ์‰ฌ๋œ ๋ฉ”ํƒ€์ž๋ฃŒ์™€ ์—ฐ๊ฒฐ์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด 'dnf {command} clean'์„ ์‚ฌ์šฉํ•˜์„ธ์š”" ++ ++#: plugins/system_upgrade.py:62 ++msgid "Sorry, you need to use 'download --releasever' instead of '--network'" ++msgstr "์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, '--network' ๋Œ€์‹ ์— 'download --releasever'๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:71 ++msgid "Reboot turned off, not rebooting." ++msgstr "๋‹ค์‹œ ๊ธฐ๋™ํ•˜์ง€ ์•Š๊ณ , ์žฌ์‹œ์ž‘์ด ๊บผ์กŒ์Šต๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:122 ++#, python-format ++msgid "Screen blanking can't be disabled: %s" ++msgstr "ํ™”๋ฉด ๋น„์šฐ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: %s" ++ ++#: plugins/system_upgrade.py:142 ++#, python-format ++msgid "Failed loading state file: %s, continuing with empty state." ++msgstr "์ƒํƒœ ํŒŒ์ผ: %s๋ฅผ ์ ์žฌ ์ค‘ ์‹คํŒจํ•จ, ๊ณต๋ฐฑ ์ƒํƒœ๋กœ ์œ ์ง€๋จ." ++ ++#: plugins/system_upgrade.py:289 ++msgid "The following boots appear to contain upgrade logs:" ++msgstr "๋‹ค์Œ ๊ธฐ๋™์€ ํ–ฅ์ƒ๋œ ๊ธฐ๋ก์„ ํฌํ•จํ•˜์—ฌ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค:" ++ ++#: plugins/system_upgrade.py:299 ++msgid "-- no logs were found --" ++msgstr "-- ์–ด๋–ค ๊ธฐ๋ก๋„ ์ฐพ์„ ์ˆ˜ ์—†์Œ --" ++ ++#: plugins/system_upgrade.py:314 ++msgid "Cannot find logs with this index." ++msgstr "์ด ํ‘œ์‹œ๊ฐ€ ์žˆ๋Š” ๊ธฐ๋ก์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:323 ++msgid "Unable to match systemd journal entry" ++msgstr "systemd journal ํ•ญ๋ชฉ๊ณผ ์ผ์น˜ ํ•  ์ˆ˜ ์—†์Œ" ++ ++#: plugins/system_upgrade.py:344 ++msgid "Prepare system for upgrade to a new release" ++msgstr "์ƒˆ๋กœ์šด ์ถœ์‹œ๋กœ ํ–ฅ์ƒํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:360 ++msgid "keep installed packages if the new release's version is older" ++msgstr "๋งŒ์•ฝ ์‹ ๊ทœ ์ถœ์‹œ์˜ ๋ฒ„์ „์ด ์˜ค๋ž˜๋˜์—ˆ์œผ๋ฉด ์„ค์น˜๋œ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:364 ++msgid "which logs to show" ++msgstr "ํ‘œ์‹œ ํ•  ์–ด๋–ค ๊ธฐ๋ก" ++ ++#: plugins/system_upgrade.py:398 ++#, python-brace-format ++msgid "Incompatible version of data. Rerun 'dnf {command} download [OPTIONS]'" ++msgstr "ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ž๋ฃŒ ๋ฒ„์ „. 'dnf {command} download [OPTIONS]' ๋˜๋Œ๋ฆฌ๊ธฐ" ++ ++#: plugins/system_upgrade.py:434 ++msgid "Command 'offline-distrosync' cannot be used with --no-downgrade option" ++msgstr "๋ช…๋ น 'offline-distrosync'์€ --no-downgrade ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:454 ++msgid "" ++"WARNING: this operation is not supported on the RHEL distribution. Proceed " ++"at your own risk." ++msgstr "๊ฒฝ๊ณ : ์ด์™€ ๊ฐ™์€ ๋™์ž‘์€ RHEL ๋ฐฐํฌํŒ์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์ฑ…์ž„ ํ•˜์— " ++"์ง„ํ–‰ํ•˜์„ธ์š”." ++ ++#: plugins/system_upgrade.py:458 ++msgid "Additional information for System Upgrade: {}" ++msgstr "์‹œ์Šคํ…œ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ถ”๊ฐ€ ์ •๋ณด: {}" ++ ++#: plugins/system_upgrade.py:461 ++msgid "" ++"Before you continue ensure that your system is fully upgraded by running " ++"\"dnf --refresh upgrade\". Do you want to continue" ++msgstr "๊ณ„์†ํ•˜๊ธฐ ์ „์— dnf --refresh upgrade\" ์‹คํ–‰ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์™„์ „ํžˆ ํ–ฅ์ƒ ๋˜๋„๋ก " ++"ํ•ด์ฃผ์„ธ์š”. ๊ณ„์† ํ•˜๊ธธ ์›ํ•˜์„ธ์š”" ++ ++#: plugins/system_upgrade.py:465 ++msgid "Operation aborted." ++msgstr "์ž‘์—…์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:526 ++msgid "system is not ready for upgrade" ++msgstr "์‹œ์Šคํ…œ์ด ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:529 ++#, python-brace-format ++msgid "" ++"the transaction was not prepared for '{command}'. Rerun 'dnf {command} " ++"download [OPTIONS]'" ++msgstr "" ++"์—ฐ๊ฒฐ์ด '{command}'์„ ์œ„ํ•ด ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 'dnf {command} download " ++"[OPTIONS]'์„ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:533 ++msgid "upgrade is already scheduled" ++msgstr "ํ–ฅ์ƒ์€ ์ด๋ฏธ ๊ณ„ํš๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:539 ++msgid "trigger file does not exist. exiting quietly." ++msgstr "ํŠธ๋ฆฌ๊ฑฐ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ข…๋ฃŒํ•˜๊ธฐ." ++ ++#: plugins/system_upgrade.py:542 ++msgid "another upgrade tool is running. exiting quietly." ++msgstr "๋‹ค๋ฅธ ํ–ฅ์ƒ ๋„๊ตฌ๊ฐ€ ๋™์ž‘ ์ค‘์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ข…๋ฃŒํ•˜๊ธฐ." ++ ++#: plugins/system_upgrade.py:551 ++#, python-brace-format ++msgid "use 'dnf {command} reboot' to begin the upgrade" ++msgstr "'dnf {command} reboot' ์‚ฌ์šฉํ•˜์—ฌ ํ–ฅ์ƒ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:569 ++msgid "Rebooting to perform upgrade." ++msgstr "ํ–ฅ์ƒ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์žฌ์‹œ์ž‘ ์ค‘." ++ ++#: plugins/system_upgrade.py:602 ++msgid "Starting offline upgrade. This will take a while." ++msgstr "์˜คํ”„๋ผ์ธ ํ–ฅ์ƒ ์‹œ์ž‘ํ•˜๊ธฐ. ์ด๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:604 ++msgid "Starting offline distrosync. This will take a while." ++msgstr "์˜คํ”„๋ผ์ธ distrosync ์‹œ์ž‘ ์ค‘. ์ด๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:606 ++msgid "Starting system upgrade. This will take a while." ++msgstr "์‹œ์Šคํ…œ ํ–ฅ์ƒ์ด ์‹œ์ž‘ ์ค‘. ์ด๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:622 ++msgid "Cleaning up downloaded data..." ++msgstr "๋‚ด๋ ค๋ฐ›๊ธฐ๋œ ์ž๋ฃŒ๋ฅผ ์ •๋ฆฌ ์ค‘..." ++ ++#: plugins/system_upgrade.py:652 ++msgid "" ++"The system-upgrade transaction is empty, your system is already up-to-date." ++msgstr "์‹œ์Šคํ…œ-ํ–ฅ์ƒ ์—ฐ๊ฒฐ์ด ๋น„์›Œ ์žˆ์œผ๋ฉฐ, ์‹œ์Šคํ…œ์€ ์ด๋ฏธ ์ตœ์‹ ํ™” ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:661 ++msgid "Transaction saved to {}." ++msgstr "์—ฐ๊ฒฐ์ด {}๋กœ ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ++ ++#: plugins/system_upgrade.py:664 ++msgid "Error storing transaction: {}" ++msgstr "์ €์žฅ ์ค‘ ์—ฐ๊ฒฐ ์˜ค๋ฅ˜: {}" ++ ++#: plugins/system_upgrade.py:686 ++msgid "Download finished." ++msgstr "๋‚ด๋ ค๋ฐ›๊ธฐ ์™„๋ฃŒ๋จ." ++ ++#: plugins/system_upgrade.py:689 plugins/system_upgrade.py:690 ++msgid "Upgrade complete! Cleaning up and rebooting..." ++msgstr "ํ–ฅ์ƒ ์„ฑ๊ณต! ์ •๋ฆฌํ•˜๊ณ  ์žฌ์‹œ์ž‘ํ•˜๊ธฐ..." ++ ++#: plugins/system_upgrade.py:699 ++msgid "Prepare offline upgrade of the system" ++msgstr "์‹œ์Šคํ…œ์˜ ์˜คํ”„๋ผ์ธ ํ–ฅ์ƒ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค" ++ ++#: plugins/system_upgrade.py:704 ++msgid "Prepare offline distrosync of the system" ++msgstr "์‹œ์Šคํ…œ์˜ ์˜คํ”„๋ผ์ธ distrosync๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค" ++ + #: plugins/versionlock.py:33 + #, python-format + msgid "Unable to read version lock configuration: %s" +@@ -1302,7 +1517,8 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "๋ฒ„์ „ ์ž ๊ธˆ ํ”Œ๋Ÿฌ๊ทธ์ธ: ์ ์šฉ๋œ ํŒŒ์ผ \"{} \"์—์„œ ์ž ๊ธˆ ๊ทœ์น™์˜ ์ˆ˜: {}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "๋ฒ„์ „ ์ž ๊ธˆ ํ”Œ๋Ÿฌ๊ทธ์ธ: ์ ์šฉ๋œ ํŒŒ์ผ \"{} \"์—์„œ ์ œ์™ธ ๊ทœ์น™์˜ ์ˆ˜: {}" + + #: plugins/versionlock.py:45 +@@ -1319,7 +1535,9 @@ msgstr "๊พธ๋Ÿฌ๋ฏธ(package) ์‚ฌ์–‘์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ตฌ๋ฌธ ๋ถ„์„์„ + + #: plugins/versionlock.py:164 + msgid "Subcommand '{}' is deprecated. Use 'exclude' subcommand instead." +-msgstr "ํ•˜์œ„๋ช…๋ น '{}'๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— ํ•˜์œ„๋ช…๋ น 'exclude'๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค." ++msgstr "" ++"ํ•˜์œ„๋ช…๋ น '{}'๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— ํ•˜์œ„๋ช…๋ น 'exclude'๋ฅผ ์‚ฌ์šฉํ•ฉ" ++"๋‹ˆ๋‹ค." + + #~ msgid "" + #~ "This repository does not have any builds yet so you cannot enable it now." +diff --git a/po/zh_CN.po b/po/zh_CN.po +index 88d02a1..9fdd07c 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -5,22 +5,24 @@ + # cheng ye <18969068329@163.com>, 2017. #zanata + # Ludek Janda , 2018. #zanata, 2021. + # Hongqiao Chen , 2020. ++# Sundeep Anand , 2021. + # Qiyu Yan , 2021. +-# Transtats , 2022. ++# Transtats , 2022, 2023. + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2022-08-08 02:57+0000\n" +-"PO-Revision-Date: 2022-03-09 10:22+0000\n" ++"POT-Creation-Date: 2023-02-28 12:26+0100\n" ++"PO-Revision-Date: 2023-03-06 13:48+0000\n" + "Last-Translator: Transtats \n" +-"Language-Team: Chinese (Simplified) \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.11.2\n" ++"X-Generator: Weblate 4.15.2\n" + + #: plugins/builddep.py:45 + msgid "[PACKAGE|PACKAGE.spec]" +@@ -60,8 +62,7 @@ msgid "Some packages could not be found." + msgstr "ๆŸไบ›่ฝฏไปถๅŒ…ๆ— ๆณ•ๆ‰พๅˆฐใ€‚" + + #. No provides, no files +-#. Richdeps can have no matches but it could be correct (solver must decide +-#. later) ++#. Richdeps can have no matches but it could be correct (solver must decide later) + #: plugins/builddep.py:173 + #, python-format + msgid "No matching package to install: '%s'" +@@ -72,16 +73,21 @@ msgstr "ๆฒกๆœ‰ๅŒน้…็š„่ฝฏไปถๅŒ…ๅฏไปฅๅฎ‰่ฃ…๏ผš '%s'" + msgid "Failed to open: '%s', not a valid source rpm file." + msgstr "ๆ‰“ๅผ€ๆ–‡ไปถๅคฑ่ดฅ๏ผš '%s'๏ผŒไธๆ˜ฏๆœ‰ๆ•ˆ็š„ๆบ็  RPM ๆ–‡ไปถใ€‚" + +-#: plugins/builddep.py:204 plugins/builddep.py:220 plugins/builddep.py:237 ++#: plugins/builddep.py:204 plugins/builddep.py:224 plugins/builddep.py:241 + msgid "Not all dependencies satisfied" + msgstr "ๆฒกๆœ‰ๆปก่ถณๅ…จ้ƒจ็š„ไพ่ต–ๅ…ณ็ณป" + +-#: plugins/builddep.py:211 ++#: plugins/builddep.py:208 ++msgid "" ++"Warning: -D or --define arguments have no meaning for source rpm packages." ++msgstr "่ญฆๅ‘Š๏ผš-D ๆˆ– --define ๅ‚ๆ•ฐๅฏนๆบ rpm ่ฝฏไปถๅŒ…ๆฒกๆœ‰ๆ„ไน‰ใ€‚" ++ ++#: plugins/builddep.py:215 + #, python-format + msgid "Failed to open: '%s', not a valid spec file: %s" + msgstr "ๆ‰“ๅผ€ๅคฑ่ดฅ๏ผš '%s'๏ผŒ ไธๆ˜ฏๆœ‰ๆ•ˆ็š„ spec ๆ–‡ไปถ๏ผš %s" + +-#: plugins/builddep.py:230 plugins/repoclosure.py:124 ++#: plugins/builddep.py:234 plugins/repoclosure.py:124 + #, python-format + msgid "no package matched: %s" + msgstr "ๆ— ๅŒน้…่ฝฏไปถๅŒ…๏ผš %s" +@@ -99,7 +105,8 @@ msgstr "ๆŸฅ็œ‹่ฝฏไปถๅŒ…็š„ๆ”นๅ˜ๆ—ฅๅฟ—ๆ•ฐๆฎ" + msgid "" + "show changelog entries since DATE. To avoid ambiguosity, YYYY-MM-DD format " + "is recommended." +-msgstr "ๆ˜พ็คบ่‡ช DATE ๅผ€ๅง‹็š„ๆ”นๅ˜ๆ—ฅๅฟ—ไฟกๆฏใ€‚ไธบไบ†้ฟๅ…ๆททๆท†๏ผŒๆŽจ่ไฝฟ็”จ YYYY-MM-DD ๆ ผๅผใ€‚" ++msgstr "" ++"ๆ˜พ็คบ่‡ช DATE ๅผ€ๅง‹็š„ๆ”นๅ˜ๆ—ฅๅฟ—ไฟกๆฏใ€‚ไธบไบ†้ฟๅ…ๆททๆท†๏ผŒๆŽจ่ไฝฟ็”จ YYYY-MM-DD ๆ ผๅผใ€‚" + + #: plugins/changelog.py:55 + msgid "show given number of changelog entries per package" +@@ -183,8 +190,8 @@ msgid "" + "Warning: --enablerepo/--disablerepo arguments have no meaningwith config " + "manager. Use --set-enabled/--set-disabled instead." + msgstr "" +-"่ญฆๅ‘Š๏ผš--enablerepo/--disablerepo ๅ‚ๆ•ฐๅฏนไบŽ config manager ๆฒกๆœ‰ไฝœ็”จใ€‚่ฏทไฝฟ็”จ --set-" +-"enabled/--set-disabledใ€‚" ++"่ญฆๅ‘Š๏ผš--enablerepo/--disablerepo ๅ‚ๆ•ฐๅฏนไบŽ config manager ๆฒกๆœ‰ไฝœ็”จใ€‚่ฏทไฝฟ็”จ --" ++"set-enabled/--set-disabledใ€‚" + + #: plugins/config_manager.py:132 + #, python-format +@@ -290,10 +297,11 @@ msgstr "้”™่ฏฏ๏ผš " + + #: plugins/copr.py:165 + msgid "" +-"specify Copr hub either with `--hub` or using " +-"`copr_hub/copr_username/copr_projectname` format" ++"specify Copr hub either with `--hub` or using `copr_hub/copr_username/" ++"copr_projectname` format" + msgstr "" +-"ไฝฟ็”จ `--hub` ๆˆ–ไฝฟ็”จ `copr_hub/copr_username/copr_projectname` ๆ ผๅผๆŒ‡ๅฎš Copr hub" ++"ไฝฟ็”จ `--hub` ๆˆ–ไฝฟ็”จ `copr_hub/copr_username/copr_projectname` ๆ ผๅผๆŒ‡ๅฎš Copr " ++"hub" + + #: plugins/copr.py:168 + msgid "multiple hubs specified" +@@ -329,7 +337,8 @@ msgid "" + "\n" + "The Fedora Project does not exercise any power over the contents of\n" + "this repository beyond the rules outlined in the Copr FAQ at\n" +-",\n" ++",\n" + "and packages are not held to any quality or security level.\n" + "\n" + "Please do not file bug reports about these packages in Fedora\n" +@@ -340,7 +349,8 @@ msgstr "" + "ไธๆ˜ฏไธปๅ‘่กŒ็‰ˆๆœฌ็š„ไธ€้ƒจๅˆ†๏ผŒ่ดจ้‡ๅฏ่ƒฝไผšๆœ‰ๆ‰€ไธๅŒใ€‚\n" + "\n" + "Fedora ้กน็›ฎๅฏนๅ…ถไธ่กŒไฝฟ้™คไบ†ไบŽ Copr ๅธธ่ง้—ฎ้ข˜\n" +-"\n" ++"\n" + "ไธญๆ‰€ๆๅ‡บ็š„่ง„ๅˆ™ๅค–็š„ไปปไฝ•ๆƒๅŠ›๏ผŒๅนถไธ”ๅ…ถ่ฝฏไปถๅŒ…ไธไฟ่ฏ่พพๅˆฐ็‰นๅฎš่ดจ้‡\n" + "ๅ’Œๅฎ‰ๅ…จๆฐดๅ‡†ใ€‚\n" + "\n" +@@ -365,11 +375,12 @@ msgstr "ๆœช็Ÿฅ็š„ๅญๅ‘ฝไปค {}ใ€‚" + + #: plugins/copr.py:367 + msgid "" +-"* These coprs have repo file with an old format that contains no information" +-" about Copr hub - the default one was assumed. Re-enable the project to fix " ++"* These coprs have repo file with an old format that contains no information " ++"about Copr hub - the default one was assumed. Re-enable the project to fix " + "this." + msgstr "" +-"* ่ฟ™ไบ› coprs ๆœ‰ไฝฟ็”จๆ—งๆ ผๅผ็š„ repo ๆ–‡ไปถ๏ผŒๅฎƒไปฌๆฒกๆœ‰ๅŒ…ๆ‹ฌ Copr hub ็š„ไฟกๆฏ - ๅ‡่ฎพไฝฟ็”จ้ป˜่ฎคๅ€ผใ€‚้‡ๆ–ฐๅฏ็”จ้กน็›ฎๆฅ่งฃๅ†ณ่ฟ™ไธช้—ฎ้ข˜ใ€‚" ++"* ่ฟ™ไบ› coprs ๆœ‰ไฝฟ็”จๆ—งๆ ผๅผ็š„ repo ๆ–‡ไปถ๏ผŒๅฎƒไปฌๆฒกๆœ‰ๅŒ…ๆ‹ฌ Copr hub ็š„ไฟกๆฏ - ๅ‡่ฎพไฝฟ" ++"็”จ้ป˜่ฎคๅ€ผใ€‚้‡ๆ–ฐๅฏ็”จ้กน็›ฎๆฅ่งฃๅ†ณ่ฟ™ไธช้—ฎ้ข˜ใ€‚" + + #: plugins/copr.py:380 + msgid "Can't parse repositories for username '{}'." +@@ -406,27 +417,24 @@ msgstr "่ฏฅๅ‘ฝไปคๅฟ…้กปไปฅ root ็”จๆˆท่ฟ่กŒใ€‚" + #: plugins/copr.py:487 + #, python-brace-format + msgid "Request to {0} failed: {1} - {2}" +-msgstr "" ++msgstr "่ฏทๆฑ‚ {0} ๅคฑ่ดฅ๏ผš{1} - {2}" + + #: plugins/copr.py:489 + msgid "It wasn't possible to enable this project.\n" +-msgstr "" ++msgstr "ๆ— ๆณ•ๅฏ็”จๆญค้กน็›ฎใ€‚\n" + + #: plugins/copr.py:494 +-#, fuzzy, python-brace-format +-#| msgid "Such repository does not exist." ++#, python-brace-format + msgid "Repository '{0}' does not exist in project '{1}'." +-msgstr "่ฏฅ่ฝฏไปถไป“ๅบ“ไธๅญ˜ๅœจใ€‚" ++msgstr "ไป“ๅบ“ '{0}' ๅœจ้กน็›ฎ '{1}' ไธญไธๅญ˜ๅœจใ€‚" + + #: plugins/copr.py:497 +-#, fuzzy +-#| msgid "List enabled Copr repositories" + msgid "" + "\n" + "Available repositories: " + msgstr "" + "\n" +-"ๅˆ—ๅ‡บๅฏๅŠจ็š„ Copr ไป“ๅบ“ " ++"ๅฏ็”จ่ฝฏไปถไป“ๅบ“๏ผš " + + #: plugins/copr.py:499 + #, python-brace-format +@@ -437,18 +445,21 @@ msgid "" + " 'dnf copr enable {0} '\n" + "But note that the installed repo file will likely need a manual modification." + msgstr "" ++"\n" ++"\n" ++"ๅฆ‚ๆžœ้œ€่ฆๅฏ็”จไธ€ไธช้ž้ป˜่ฎค็š„ไป“ๅบ“๏ผŒไฝฟ็”จไปฅไธ‹ๅ‘ฝไปค :\n" ++" 'dnf copr enable {0} '\n" ++"ไฝ†่ฏทๆณจๆ„๏ผŒๅฎ‰่ฃ…็š„ repo ๆ–‡ไปถๅฐ†ๆฅๅฏ่ƒฝ้œ€่ฆๆ‰‹ๅŠจไฟฎๆ”นใ€‚" + + #: plugins/copr.py:505 +-#, fuzzy, python-brace-format +-#| msgid "Such repository does not exist." ++#, python-brace-format + msgid "Project {0} does not exist." +-msgstr "่ฏฅ่ฝฏไปถไป“ๅบ“ไธๅญ˜ๅœจใ€‚" ++msgstr "้กน็›ฎ {0} ไธๅญ˜ๅœจใ€‚" + + #: plugins/copr.py:508 +-#, fuzzy, python-brace-format +-#| msgid "Failed to remove copr repo {0}/{1}/{2}" ++#, python-brace-format + msgid "Failed to connect to {0}: {1}" +-msgstr "ๅˆ ้™ค copr ไป“ๅบ“ {0}/{1}/{2} ๅคฑ่ดฅ" ++msgstr "่ฟžๆŽฅๅˆฐ {0} ๅคฑ่ดฅ๏ผš{1}" + + #: plugins/copr.py:555 + #, python-brace-format +@@ -486,11 +497,11 @@ msgstr "ๆ‚จ้œ€่ฆไฟๆŒๅฎƒไปฌ่ขซๅฏ็”จๅ—๏ผŸ" + #: plugins/copr.py:609 + #, python-brace-format + msgid "Failed to remove copr repo {0}/{1}/{2}" +-msgstr "ๅˆ ้™ค copr ไป“ๅบ“ {0}/{1}/{2} ๅคฑ่ดฅ" ++msgstr "ๆ— ๆณ•ๅˆ ้™ค copr ๅญ˜ๅ‚จๅบ“ {0}/{1}/{2}" + + #: plugins/copr.py:620 + msgid "Failed to disable copr repo {}/{}" +-msgstr "ๆ— ๆณ•็ฆ็”จ Copr ่ฝฏไปถไป“ๅบ“ {}/{}" ++msgstr "ๆ— ๆณ•็ฆ็”จ Copr ๅญ˜ๅ‚จๅบ“ {}/{}" + + #: plugins/copr.py:638 plugins/copr.py:675 + msgid "Unknown response from server." +@@ -563,7 +574,9 @@ msgstr "้™ๅˆถๅˆฐๆŒ‡ๅฎš็ฑปๅž‹" + msgid "" + "Allow removing of install-only packages. Using this option may result in an " + "attempt to remove the running kernel." +-msgstr "ๅ…่ฎธๅˆ ้™คไป…ๅฎ‰่ฃ…(install-only)็š„่ฝฏไปถๅŒ…ใ€‚ไฝฟ็”จ่ฟ™ไธช้€‰้กนๅฏ่ƒฝไผšๅฏผ่‡ดๅฐ่ฏ•ๅˆ ้™คๆญฃๅœจ่ฟ่กŒ็š„ๅ†…ๆ ธใ€‚" ++msgstr "" ++"ๅ…่ฎธๅˆ ้™คไป…ๅฎ‰่ฃ…(install-only)็š„่ฝฏไปถๅŒ…ใ€‚ไฝฟ็”จ่ฟ™ไธช้€‰้กนๅฏ่ƒฝไผšๅฏผ่‡ดๅฐ่ฏ•ๅˆ ้™คๆญฃๅœจ่ฟ่กŒ" ++"็š„ๅ†…ๆ ธใ€‚" + + #: plugins/debug.py:202 + msgid "name of dump file" +@@ -767,7 +780,7 @@ msgstr "่ฝฏไปถๅŒ…่ง„ๆ ผ" + + #: plugins/groups_manager.py:156 + msgid "Can't edit group without specifying it (use --id or --name)" +-msgstr "ๆฒกๆœ‰ๆŒ‡ๅฎš็ป„๏ผˆไฝฟ็”จ --id ๆˆ– --name๏ผ‰ๅฐฑๆ— ๆณ•็ผ–่พ‘็ป„" ++msgstr "ๆฒกๆœ‰ๆŒ‡ๅฎšๅฎƒ๏ผˆไฝฟ็”จ --id ๆˆ– --name๏ผ‰ๅฐฑไธ่ƒฝ็ผ–่พ‘็ป„" + + #: plugins/groups_manager.py:190 + msgid "Can't load file \"{}\": {}" +@@ -787,8 +800,8 @@ msgstr "ๆ— ๆณ•ไปŽไธๅญ˜ๅœจ็š„็ป„ไธญๅˆ ้™ค่ฝฏไปถๅŒ…" + + #: plugins/groups_manager.py:307 + msgid "" +-"Group id '{}' generated from '{}' is duplicit. Please specify group id using" +-" --id." ++"Group id '{}' generated from '{}' is duplicit. Please specify group id using " ++"--id." + msgstr "ไปŽ '{}' ็”Ÿๆˆ็š„็ป„ id '{}' ๆ˜ฏๆ˜พๅผ็š„ใ€‚่ฏทไฝฟ็”จ --id ๆŒ‡ๅฎš็ป„ IDใ€‚" + + #: plugins/leaves.py:32 +@@ -821,7 +834,7 @@ msgstr "่ฟ็งป yum ็š„ๅŽ†ๅฒใ€ๅˆ†็ป„ไปฅๅŠ yumdb ๆ•ฐๆฎ่‡ณ dnf" + + #: plugins/migrate.py:54 + msgid "Migrating history data..." +-msgstr "ๆญฃๅœจ่ฟ็งปๅŽ†ๅฒๆ•ฐๆฎโ€ฆ" ++msgstr "ๆญฃๅœจ่ฟ็งปๅŽ†ๅฒๆ•ฐๆฎ..." + + #: plugins/modulesync.py:37 + msgid "" +@@ -851,7 +864,7 @@ msgstr "ๅชไปŽๆœ€ๆ–ฐ็š„ๆจกๅ—ไธญไธ‹่ฝฝ่ฝฏไปถๅŒ…" + #: plugins/modulesync.py:85 + msgid "Unable to find a match for argument: '{}'" + msgid_plural "Unable to find a match for arguments: '{}'" +-msgstr[0] "ๆ‰พไธๅˆฐไธŽๅ‚ๆ•ฐ๏ผš'{}'็›ธๅŒน้…็š„้กน" ++msgstr[0] "ๆ‰พไธๅˆฐไธŽๅ‚ๆ•ฐๅŒน้…็š„้กน๏ผš'{}'" + + #: plugins/modulesync.py:107 + msgid "" +@@ -862,12 +875,12 @@ msgstr "ๅˆ›ๅปบๅญ˜ๅ‚จๅบ“ไผšๅคฑ่ดฅ๏ผŒๅนถๆ˜พ็คบ่ฟ”ๅ›ž็  {}ใ€‚ๆ‰€ๆœ‰ไธ‹่ฝฝ็š„ๅ†…ๅฎน + #: plugins/modulesync.py:144 + #, python-brace-format + msgid "No match for artifact '{0}' from module '{1}'" +-msgstr "ๆฒกๆœ‰ไธŽๆจกๅ— '{1}' ็š„ๅทฅไปถ '{0}' ็›ธๅŒน้…็š„้กน" ++msgstr "ๆฒกๆœ‰ไธŽๆฅ่‡ชๆจกๅ— '{1}' ็š„ๅทฅไปถ '{0}' ็›ธๅŒน้…็š„้กน" + + #: plugins/modulesync.py:162 + #, python-brace-format + msgid "No match for package name '{0}' in profile {1} from module {2}" +-msgstr "ๆฒกๆœ‰ไธŽๆจกๅ— {2} ไธญ้…็ฝฎๆ–‡ไปถ {1} ็š„่ฝฏไปถๅŒ…ๅ็งฐ '{0}' ็›ธๅŒน้…็š„้กน" ++msgstr "ๆฒกๆœ‰ไธŽๆฅ่‡ชๆจกๅ— {2} ไธญ้…็ฝฎ้›† {1} ็š„่ฝฏไปถๅŒ…ๅ็งฐ '{0}' ็›ธๅŒน้…็š„้กน" + + #: plugins/modulesync.py:166 + msgid "No mach for argument '{}'" +@@ -883,7 +896,9 @@ msgstr "ๆ— ๆณ•ๆปก่ถณ่ฆๆฑ‚ {}" + msgid "" + "No installed package found for package name \"{pkg}\" specified in needs-" + "restarting file \"{file}\"." +-msgstr "ๆœชๆ‰พๅˆฐๅœจ้œ€่ฆ้‡ๆ–ฐๅฏๅŠจๆ–‡ไปถ \"{file}\" ไธญๆŒ‡ๅฎš็š„่ฝฏไปถๅŒ…ๅไธบ \"{pkg}\" ็š„ๅทฒๅฎ‰่ฃ…็š„่ฝฏไปถๅŒ…ใ€‚" ++msgstr "" ++"ๆœชๆ‰พๅˆฐๅœจ้œ€่ฆ้‡ๆ–ฐๅฏๅŠจ็š„ๆ–‡ไปถ \"{file}\" ไธญๆŒ‡ๅฎš็š„่ฝฏไปถๅŒ…ๅไธบ \"{pkg}\" ็š„ๅทฒๅฎ‰่ฃ…็š„" ++"่ฝฏไปถๅŒ…ใ€‚" + + #: plugins/needs_restarting.py:220 + msgid "determine updated binaries that need restarting" +@@ -949,11 +964,8 @@ msgid "Display a list of unresolved dependencies for repositories" + msgstr "ๆ˜พ็คบไป“ๅบ“ไธญๆœช่ขซ่งฃๅ†ณ็š„ไพ่ต–ๅ…ณ็ณป็š„ๅˆ—่กจ" + + #: plugins/repoclosure.py:69 +-#, fuzzy +-#| msgid "Repoclosure ended with unresolved dependencies." +-msgid "" +-"Repoclosure ended with unresolved dependencies ({}) across {} packages." +-msgstr "Repoclosure ้€€ๅ‡บๆ—ถ่ฟ˜ๆœ‰ไพ่ต–ๅ…ณ็ณปๆœช่งฃๅ†ณใ€‚" ++msgid "Repoclosure ended with unresolved dependencies ({}) across {} packages." ++msgstr "Repoclosure ้€€ๅ‡บๆ—ถ่ฟ˜ๆœ‰ๆœช่งฃๅ†ณ็š„ไพ่ต–้กน๏ผˆ{}๏ผ‰๏ผŒ้’ˆๅฏน {} ่ฝฏไปถๅŒ…ใ€‚" + + #: plugins/repoclosure.py:159 + msgid "check packages of the given archs, can be specified multiple times" +@@ -995,8 +1007,7 @@ msgstr "่พ“ๅ‡บๅ…ณไบŽๆ”นๅ˜ๅคงๅฐ็š„้ขๅค–ๆ•ฐๆฎใ€‚" + + #: plugins/repodiff.py:69 + msgid "" +-"Compare packages also by arch. By default packages are compared just by " +-"name." ++"Compare packages also by arch. By default packages are compared just by name." + msgstr "ๅŒๆ—ถๆŒ‰ๆžถๆž„ๆฏ”่พƒ่ฝฏไปถๅŒ…ใ€‚ๅœจ้ป˜่ฎคๆƒ…ๅ†ตไธ‹ๅชๆŒ‰ๅ็งฐๆฏ”่พƒ่ฝฏไปถๅŒ…ใ€‚" + + #: plugins/repodiff.py:72 +@@ -1120,19 +1131,15 @@ msgstr "็ฎก็† RPM ่ฝฏไปถๅŒ…็›ฎๅฝ•" + + #: plugins/repomanage.py:59 + msgid "Pass either --old or --new, not both!" +-msgstr "ไผ ๅ…ฅ --old ๆˆ–่€… --new๏ผŒไธๅฏๅŒๆ—ถไผ ๅ…ฅ๏ผ" ++msgstr "ไผ ้€’ --old ๆˆ–่€… --new๏ผŒ่€Œไธๆ˜ฏไธค่€…้ƒฝไผ ้€’๏ผ" + + #: plugins/repomanage.py:61 +-#, fuzzy +-#| msgid "Pass either --old or --new, not both!" + msgid "Pass either --oldonly or --new, not both!" +-msgstr "ไผ ๅ…ฅ --old ๆˆ–่€… --new๏ผŒไธๅฏๅŒๆ—ถไผ ๅ…ฅ๏ผ" ++msgstr "ไผ ้€’ --oldonly ๆˆ– --new๏ผŒ่€Œไธๆ˜ฏไธค่€…้ƒฝไผ ้€’๏ผ" + + #: plugins/repomanage.py:63 +-#, fuzzy +-#| msgid "Pass either --old or --new, not both!" + msgid "Pass either --old or --oldonly, not both!" +-msgstr "ไผ ๅ…ฅ --old ๆˆ–่€… --new๏ผŒไธๅฏๅŒๆ—ถไผ ๅ…ฅ๏ผ" ++msgstr "ไผ ้€’ --old ๆˆ– --oldonly๏ผŒ่€Œไธๆ˜ฏไธค่€…้ƒฝไผ ้€’๏ผ" + + #: plugins/repomanage.py:100 + msgid "No files to process" +@@ -1147,10 +1154,8 @@ msgid "Print the older packages" + msgstr "ๆ‰“ๅฐ่พƒๆ—ง็š„่ฝฏไปถๅŒ…" + + #: plugins/repomanage.py:225 +-#, fuzzy +-#| msgid "Print the newest packages" + msgid "Print the older packages. Exclude the newest packages." +-msgstr "ๆ‰“ๅฐๆœ€ๆ–ฐ็š„่ฝฏไปถๅŒ…" ++msgstr "ๆ‰“ๅฐๆ—ง็š„่ฝฏไปถๅŒ…ใ€‚ๆŽ’้™คๆœ€ๆ–ฐ็š„่ฝฏไปถๅŒ…ใ€‚" + + #: plugins/repomanage.py:227 + msgid "Print the newest packages" +@@ -1194,8 +1199,8 @@ msgstr "ๅŒๆ—ถไธ‹่ฝฝๅนถ่งฃๅŽ‹ comps.xml" + + #: plugins/reposync.py:75 + msgid "" +-"where to store downloaded repository metadata. Defaults to the value of " +-"--download-path." ++"where to store downloaded repository metadata. Defaults to the value of --" ++"download-path." + msgstr "ๅญ˜ๅ‚จไธ‹่ฝฝ็š„ไป“ๅบ“ๅ…ƒๆ•ฐๆฎ็š„ไฝ็ฝฎใ€‚้ป˜่ฎคไธบ --download-path ็š„ๅ€ผใ€‚" + + #: plugins/reposync.py:78 +@@ -1266,6 +1271,178 @@ msgstr "ไป“ๅบ“ %s ็š„ comps.xml ๅทฒไฟๅญ˜" + msgid "New leaves:" + msgstr "ๆ–ฐๅขžไฟ็•™้กน๏ผš" + ++#. Translators: This string is only used in unit tests. ++#: plugins/system_upgrade.py:45 ++msgid "the color of the sky" ++msgstr "sky ็š„้ขœ่‰ฒ" ++ ++#: plugins/system_upgrade.py:57 ++msgid "Need a --releasever greater than the current system version." ++msgstr "้œ€่ฆๅคงไบŽๅฝ“ๅ‰็ณป็ปŸ็‰ˆๆœฌ็š„ --releaseverใ€‚" ++ ++#. Translators: do not change "reboot" here ++#: plugins/system_upgrade.py:59 ++#, python-brace-format ++msgid "" ++"Download complete! Use 'dnf {command} reboot' to start the upgrade.\n" ++"To remove cached metadata and transaction use 'dnf {command} clean'" ++msgstr "" ++"ไธ‹่ฝฝๅฎŒๆˆ๏ผไฝฟ็”จ 'dnf {command} reboot' ๅฏๅŠจๅ‡็บงใ€‚ \n" ++" ่ฆๅˆ ้™ค็ผ“ๅญ˜็š„ๅ…ƒๆ•ฐๆฎๅ’Œไบ‹ๅŠก๏ผŒ่ฏทไฝฟ็”จ 'dnf {command} clean'" ++ ++#: plugins/system_upgrade.py:62 ++msgid "Sorry, you need to use 'download --releasever' instead of '--network'" ++msgstr "ๆ‚จ้œ€่ฆไฝฟ็”จ 'download --releasever' ่€Œไธๆ˜ฏ '-network'" ++ ++#: plugins/system_upgrade.py:71 ++msgid "Reboot turned off, not rebooting." ++msgstr "้‡ๅฏ่ขซๅ…ณ้—ญ๏ผŒๆฒกๆœ‰้‡ๆ–ฐๅฏๅŠจใ€‚" ++ ++#: plugins/system_upgrade.py:122 ++#, python-format ++msgid "Screen blanking can't be disabled: %s" ++msgstr "ๆ— ๆณ•็ฆ็”จๅฑๅน•็ฉบ็™ฝ๏ผš%s" ++ ++#: plugins/system_upgrade.py:142 ++#, python-format ++msgid "Failed loading state file: %s, continuing with empty state." ++msgstr "ๅŠ ่ฝฝ็Šถๆ€ๆ–‡ไปถๅคฑ่ดฅ๏ผš%s๏ผŒ็ปง็ปญไธบ็ฉบ็Šถๆ€ใ€‚" ++ ++#: plugins/system_upgrade.py:289 ++msgid "The following boots appear to contain upgrade logs:" ++msgstr "ไปฅไธ‹ๅผ•ๅฏผไผšๅŒ…ๅซๅ‡็บงๆ—ฅๅฟ—๏ผš" ++ ++#: plugins/system_upgrade.py:299 ++msgid "-- no logs were found --" ++msgstr "-- ๆฒกๆœ‰ๆ‰พๅˆฐๆ—ฅๅฟ— --" ++ ++#: plugins/system_upgrade.py:314 ++msgid "Cannot find logs with this index." ++msgstr "ๆ— ๆณ•ๆ‰พๅˆฐไฝฟ็”จๆญค็ดขๅผ•็š„ๆ—ฅๅฟ—ใ€‚" ++ ++#: plugins/system_upgrade.py:323 ++msgid "Unable to match systemd journal entry" ++msgstr "ๆ— ๆณ•ไธŽ systemd ๆ—ฅๅฟ—ๆก็›ฎๅŒน้…" ++ ++#: plugins/system_upgrade.py:344 ++msgid "Prepare system for upgrade to a new release" ++msgstr "ๅ‡†ๅค‡็ณป็ปŸไปฅๅ‡็บงๅˆฐๆ–ฐ็‰ˆๆœฌ" ++ ++#: plugins/system_upgrade.py:360 ++msgid "keep installed packages if the new release's version is older" ++msgstr "ๅฆ‚ๆžœๆ–ฐ็‰ˆๆœฌไธญ็š„็‰ˆๆœฌๆ›ดๆ—ง๏ผŒไฟ็•™ๅฎ‰่ฃ…็š„่ฝฏไปถๅŒ…" ++ ++#: plugins/system_upgrade.py:364 ++msgid "which logs to show" ++msgstr "่ฆๆ˜พ็คบ็š„ๆ—ฅๅฟ—" ++ ++#: plugins/system_upgrade.py:398 ++#, python-brace-format ++msgid "Incompatible version of data. Rerun 'dnf {command} download [OPTIONS]'" ++msgstr "ไธๅ…ผๅฎน็š„ๆ•ฐๆฎ็‰ˆๆœฌใ€‚้‡ๆ–ฐ่ฟ่กŒ 'dnf {command} download [OPTIONS]'" ++ ++#: plugins/system_upgrade.py:434 ++msgid "Command 'offline-distrosync' cannot be used with --no-downgrade option" ++msgstr "ๅ‘ฝไปค 'offline-distrosync' ๆ— ๆณ•ไธŽ --no-downgrade ้€‰้กนไธ€่ตทไฝฟ็”จ" ++ ++#: plugins/system_upgrade.py:454 ++msgid "" ++"WARNING: this operation is not supported on the RHEL distribution. Proceed " ++"at your own risk." ++msgstr "่ญฆๅ‘Š๏ผšๅœจ RHEL ๅ‘่กŒ็‰ˆไธŠไธๆ”ฏๆŒๆญคๆ“ไฝœใ€‚ๆ‚จ้œ€่ฆ่‡ชๆ€งๆ‰ฟๆ‹…็›ธๅ…ณ็š„้ฃŽ้™ฉใ€‚" ++ ++#: plugins/system_upgrade.py:458 ++msgid "Additional information for System Upgrade: {}" ++msgstr "็ณป็ปŸๅ‡็บง็š„้ขๅค–ไฟกๆฏ๏ผš{}" ++ ++#: plugins/system_upgrade.py:461 ++msgid "" ++"Before you continue ensure that your system is fully upgraded by running " ++"\"dnf --refresh upgrade\". Do you want to continue" ++msgstr "ๅœจ็ปง็ปญ่ฏท๏ผŒ็กฎๅฎšๆ‚จ็š„็ณป็ปŸๅทฒ้€š่ฟ‡่ฟ่กŒ \"dnf --refresh upgrade\" " ++"ๅฎŒๅ…จๅ‡็บงใ€‚ๆ‚จ่ฆ็ปง็ปญๆ“ไฝœ" ++ ++#: plugins/system_upgrade.py:465 ++msgid "Operation aborted." ++msgstr "ๆ“ไฝœไธญๆญขใ€‚" ++ ++#: plugins/system_upgrade.py:526 ++msgid "system is not ready for upgrade" ++msgstr "็ณป็ปŸ่ฟ˜ๆœชๅฐฑ็ปช่ฟ›่กŒๅ‡็บง" ++ ++#: plugins/system_upgrade.py:529 ++#, python-brace-format ++msgid "" ++"the transaction was not prepared for '{command}'. Rerun 'dnf {command} " ++"download [OPTIONS]'" ++msgstr "ไบ‹ๅŠกๆฒกๆœ‰ไธบ '{command}' ๅ‡†ๅค‡ใ€‚้‡ๆ–ฐ่ฟ่กŒ 'dnf {command} download [OPTIONS]'" ++ ++#: plugins/system_upgrade.py:533 ++msgid "upgrade is already scheduled" ++msgstr "ๅ‡็บงๅทฒ่ขซ่ฐƒๅบฆ" ++ ++#: plugins/system_upgrade.py:539 ++msgid "trigger file does not exist. exiting quietly." ++msgstr "่งฆๅ‘ๅ™จๆ–‡ไปถไธๅญ˜ๅœจใ€‚้™้ป˜้€€ๅ‡บใ€‚" ++ ++#: plugins/system_upgrade.py:542 ++msgid "another upgrade tool is running. exiting quietly." ++msgstr "ๅฆไธ€ไธชๅ‡็บงๅทฅๅ…ทๆญฃๅœจ่ฟ่กŒใ€‚้™้ป˜้€€ๅ‡บใ€‚" ++ ++#: plugins/system_upgrade.py:551 ++#, python-brace-format ++msgid "use 'dnf {command} reboot' to begin the upgrade" ++msgstr "ไฝฟ็”จ 'dnf {command} reboot' ๅผ€ๅง‹ๅ‡็บง" ++ ++#: plugins/system_upgrade.py:569 ++msgid "Rebooting to perform upgrade." ++msgstr "้‡ๅฏไปฅๆ‰ง่กŒๅ‡็บงใ€‚" ++ ++#: plugins/system_upgrade.py:602 ++msgid "Starting offline upgrade. This will take a while." ++msgstr "ๅฏๅŠจ็ฆป็บฟๅ‡็บงใ€‚่ฟ™ๅฐ†้œ€่ฆไธ€ๆฎตๆ—ถ้—ดใ€‚" ++ ++#: plugins/system_upgrade.py:604 ++msgid "Starting offline distrosync. This will take a while." ++msgstr "ๅฏๅŠจ็ฆป็บฟ distrosyncใ€‚่ฟ™ๅฐ†้œ€่ฆไธ€ๆฎตๆ—ถ้—ดใ€‚" ++ ++#: plugins/system_upgrade.py:606 ++msgid "Starting system upgrade. This will take a while." ++msgstr "ๅฏๅŠจ็ณป็ปŸๅ‡็บงใ€‚่ฟ™้œ€่ฆไธ€ๆฎตๆ—ถ้—ดใ€‚" ++ ++#: plugins/system_upgrade.py:622 ++msgid "Cleaning up downloaded data..." ++msgstr "ๆธ…็†ไธ‹่ฝฝ็š„ๆ•ฐๆฎ..." ++ ++#: plugins/system_upgrade.py:652 ++msgid "" ++"The system-upgrade transaction is empty, your system is already up-to-date." ++msgstr "system-upgrade ไบ‹ๅŠกไธบ็ฉบ๏ผŒๆ‚จ็š„็ณป็ปŸๅทฒ็ปไธบๆœ€ๆ–ฐ็‰ˆๆœฌใ€‚" ++ ++#: plugins/system_upgrade.py:661 ++msgid "Transaction saved to {}." ++msgstr "ไบ‹ๅŠกๅทฒไฟๅญ˜ๅˆฐ {}ใ€‚" ++ ++#: plugins/system_upgrade.py:664 ++msgid "Error storing transaction: {}" ++msgstr "ๅญ˜ๅ‚จไบ‹ๅŠกๆ—ถๅ‡บ็Žฐ้”™่ฏฏ๏ผš{}" ++ ++#: plugins/system_upgrade.py:686 ++msgid "Download finished." ++msgstr "ไธ‹่ฝฝๅทฒๅฎŒๆˆใ€‚" ++ ++#: plugins/system_upgrade.py:689 plugins/system_upgrade.py:690 ++msgid "Upgrade complete! Cleaning up and rebooting..." ++msgstr "ๅ‡็บงๅฎŒๆˆ๏ผๆธ…็†ๅนถ้‡ๅฏ..." ++ ++#: plugins/system_upgrade.py:699 ++msgid "Prepare offline upgrade of the system" ++msgstr "ๅ‡†ๅค‡็ณป็ปŸ็š„็ฆป็บฟๅ‡็บง" ++ ++#: plugins/system_upgrade.py:704 ++msgid "Prepare offline distrosync of the system" ++msgstr "ๅ‡†ๅค‡็ณป็ปŸ็š„็ฆป็บฟ distrosync" ++ + #: plugins/versionlock.py:33 + #, python-format + msgid "Unable to read version lock configuration: %s" +@@ -1312,7 +1489,8 @@ msgid "Versionlock plugin: number of lock rules from file \"{}\" applied: {}" + msgstr "Versionlock ๆ’ไปถ: ๆ–‡ไปถ \"{}\" ไธญ็š„้”ๅฎšๆ•ฐ้‡่ง„ๅˆ™่ขซๅบ”็”จ๏ผš{}" + + #: plugins/versionlock.py:44 +-msgid "Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" ++msgid "" ++"Versionlock plugin: number of exclude rules from file \"{}\" applied: {}" + msgstr "Versionlock ๆ’ไปถ: ๆ–‡ไปถ \"{}\" ไธญ็š„ๆŽ’้™ค่ง„ๅˆ™ๆ•ฐ้‡่ขซๅบ”็”จ๏ผš{}" + + #: plugins/versionlock.py:45 +-- +2.39.2 + diff --git a/SPECS/dnf-plugins-core.spec b/SPECS/dnf-plugins-core.spec index f7d32d7..f029e82 100644 --- a/SPECS/dnf-plugins-core.spec +++ b/SPECS/dnf-plugins-core.spec @@ -33,14 +33,18 @@ %endif Name: dnf-plugins-core -Version: 4.1.0 -Release: 3%{?dist} +Version: 4.3.0 +Release: 5%{?dist} Summary: Core Plugins for DNF License: GPLv2+ URL: https://github.com/rpm-software-management/dnf-plugins-core Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -Patch1: 0001-copr-Guess-EPEL-chroots-for-CentOS-Stream-RhBug-2058.patch -Patch2: 0002-Update-translations.patch +Patch1: 0001-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch +Patch2: 0002-Add-a-warning-when-using-system-upgrade-on-RHEL.patch +Patch3: 0003-offline-upgrade-Add-security-filters.patch +Patch4: 0004-system-upgrade-Show-warning-always-for-a-downstream.patch +Patch5: 0005-Update-translations.patch + BuildArch: noarch BuildRequires: cmake @@ -67,6 +71,9 @@ Provides: dnf-command(repograph) Provides: dnf-command(repomanage) Provides: dnf-command(reposync) Provides: dnf-command(repodiff) +Provides: dnf-command(system-upgrade) +Provides: dnf-command(offline-upgrade) +Provides: dnf-command(offline-distrosync) Provides: dnf-plugins-extras-debug = %{version}-%{release} Provides: dnf-plugins-extras-repoclosure = %{version}-%{release} Provides: dnf-plugins-extras-repograph = %{version}-%{release} @@ -83,6 +90,7 @@ Provides: dnf-plugin-repodiff = %{version}-%{release} Provides: dnf-plugin-repograph = %{version}-%{release} Provides: dnf-plugin-repomanage = %{version}-%{release} Provides: dnf-plugin-reposync = %{version}-%{release} +Provides: dnf-plugin-system-upgrade = %{version}-%{release} %if %{with yumcompatibility} Provides: yum-plugin-copr = %{version}-%{release} Provides: yum-plugin-changelog = %{version}-%{release} @@ -136,8 +144,8 @@ Conflicts: python-%{name} < %{version}-%{release} %description -n python2-%{name} Core Plugins for DNF, Python 2 interface. This package enhances DNF with builddep, config-manager, copr, degug, debuginfo-install, download, needs-restarting, -groups-manager, repoclosure, repograph, repomanage, reposync, changelog -and repodiff commands. +groups-manager, repoclosure, repograph, repomanage, reposync, changelog, +repodiff, system-upgrade, offline-upgrade and offline-distrosync commands. Additionally provides generate_completion_cache passive plugin. %endif @@ -148,6 +156,10 @@ Summary: Core Plugins for DNF BuildRequires: python3-dbus BuildRequires: python3-devel BuildRequires: python3-dnf >= %{dnf_lowest_compatible} +BuildRequires: python3-systemd +BuildRequires: pkgconfig(systemd) +BuildRequires: systemd +%{?systemd_ordering} %if 0%{?fedora} Requires: python3-distro %endif @@ -155,14 +167,17 @@ Requires: python3-dbus Requires: python3-dnf >= %{dnf_lowest_compatible} Requires: python3-hawkey >= %{hawkey_version} Requires: python3-dateutil +Requires: python3-systemd Provides: python3-dnf-plugins-extras-debug = %{version}-%{release} Provides: python3-dnf-plugins-extras-repoclosure = %{version}-%{release} Provides: python3-dnf-plugins-extras-repograph = %{version}-%{release} Provides: python3-dnf-plugins-extras-repomanage = %{version}-%{release} +Provides: python3-dnf-plugin-system-upgrade = %{version}-%{release} Obsoletes: python3-dnf-plugins-extras-debug < %{dnf_plugins_extra} Obsoletes: python3-dnf-plugins-extras-repoclosure < %{dnf_plugins_extra} Obsoletes: python3-dnf-plugins-extras-repograph < %{dnf_plugins_extra} Obsoletes: python3-dnf-plugins-extras-repomanage < %{dnf_plugins_extra} +Obsoletes: python3-dnf-plugin-system-upgrade < %{version}-%{release} Conflicts: %{name} <= 0.1.5 # let the both python plugin versions be updated simultaneously @@ -172,8 +187,8 @@ Conflicts: python-%{name} < %{version}-%{release} %description -n python3-%{name} Core Plugins for DNF, Python 3 interface. This package enhances DNF with builddep, config-manager, copr, debug, debuginfo-install, download, needs-restarting, -groups-manager, repoclosure, repograph, repomanage, reposync, changelog -and repodiff commands. +groups-manager, repoclosure, repograph, repomanage, reposync, changelog, +repodiff, system-upgrade, offline-upgrade and offline-distrosync commands. Additionally provides generate_completion_cache passive plugin. %endif @@ -454,6 +469,17 @@ pushd build-py3 %make_install popd %endif + +%if %{with python3} +mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants/ +pushd %{buildroot}%{_unitdir}/system-update.target.wants/ + ln -sr ../dnf-system-upgrade.service +popd + +ln -sf %{_mandir}/man8/dnf-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf-offline-upgrade.8.gz +ln -sf %{_mandir}/man8/dnf-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf-offline-distrosync.8.gz +%endif + %find_lang %{name} %if %{with yumutils} %if %{with python3} @@ -518,6 +544,9 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ %{_mandir}/man8/dnf-repograph.* %{_mandir}/man8/dnf-repomanage.* %{_mandir}/man8/dnf-reposync.* +%{_mandir}/man8/dnf-system-upgrade.* +%{_mandir}/man8/dnf-offline-upgrade.* +%{_mandir}/man8/dnf-offline-distrosync.* %if %{with yumcompatibility} %{_mandir}/man1/yum-changelog.* %{_mandir}/man8/yum-copr.* @@ -575,6 +604,7 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ %{python3_sitelib}/dnf-plugins/repograph.py %{python3_sitelib}/dnf-plugins/repomanage.py %{python3_sitelib}/dnf-plugins/reposync.py +%{python3_sitelib}/dnf-plugins/system_upgrade.py %{python3_sitelib}/dnf-plugins/__pycache__/builddep.* %{python3_sitelib}/dnf-plugins/__pycache__/changelog.* %{python3_sitelib}/dnf-plugins/__pycache__/config_manager.* @@ -590,7 +620,11 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ %{python3_sitelib}/dnf-plugins/__pycache__/repograph.* %{python3_sitelib}/dnf-plugins/__pycache__/repomanage.* %{python3_sitelib}/dnf-plugins/__pycache__/reposync.* +%{python3_sitelib}/dnf-plugins/__pycache__/system_upgrade.* %{python3_sitelib}/dnfpluginscore/ +%{_unitdir}/dnf-system-upgrade.service +%{_unitdir}/dnf-system-upgrade-cleanup.service +%{_unitdir}/system-update.target.wants/dnf-system-upgrade.service %endif %if %{with yumutils} @@ -789,6 +823,27 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ * Wed Mar 15 2023 MSVSphere Packaging Team - 4.1.0-3 - Rebuilt for MSVSphere 9.1. +* Wed Mar 15 2023 Marek Blaha - 4.3.0-5 +- Update translations + +* Fri Jan 06 2023 Nicola Sella - 4.3.0-4 +- Remove requirement of python3-distro (fix specfile) + +* Thu Jan 05 2023 Nicola Sella - 4.3.0-3 +- Remove requirement of python3-distro + +* Wed Dec 03 2022 Nicola Sella - 4.3.0-2 +- Move system-upgrade plugin to core (RhBug:2054235) +- offline-upgrade: add support for security filters (RhBug:1939975) + +* Thu Sep 22 2022 Lukas Hrazky - 4.3.0-1 +- Update to 4.3.0 +- [config-manager] Update documentation (RhBug:2075366) +- [builddep] Warning when using macros with source rpms (RhBug:2077820) +- [repomanage] Use modules only from repo they are handling (RhBug:2072441) +- Skip all non rpm transaction items for transaction_action plugins (rhbug:2023652) +- feat(repomanage): Add new option --oldonly + * Wed Sep 14 2022 Marek Blaha - 4.1.0-3 - Update translations